pattern__phrase_vers_dot~20171216-192248.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import imports.arguments as ARG
  4. from pattern.fr import parse, split
  5. phrase_en_entree = ARG.obtenir( '-p' )
  6. if phrase_en_entree :
  7. texte_brut = phrase_en_entree
  8. else :
  9. texte_brut = u"Suivez les flèches, attention aux trous.".encode('utf-8')
  10. texte_traite = parse( texte_brut )
  11. numero_mot = -1
  12. def imprimer_erreur ( erreur ):
  13. print '💩 erreur : ' + str( erreur )
  14. def demarrer_graphe () :
  15. print 'digraph G {'
  16. print ' graph [ rankdir=LR ];'
  17. def ajouter_noeud_mot ( word, numero ):
  18. print ' ' + str( numero ) + ' [label="' + word.string + '"];'
  19. def lier_a_noeud_precedent ( numero ):
  20. if ( numero_mot > 0 ):
  21. print ' ' + str( numero - 1 ) + ' -> ' + str ( numero )
  22. def clore_graphe () :
  23. print '}'
  24. demarrer_graphe ()
  25. # pour chaque phrase
  26. for phrase in split( texte_traite ):
  27. # pour chaque mot
  28. for word in phrase.words:
  29. # on incrément le numéro du mot
  30. numero_mot = numero_mot + 1
  31. ajouter_noeud_mot ( word, numero_mot )
  32. lier_a_noeud_precedent ( numero_mot )
  33. clore_graphe ()