pattern__phrase_vers_dot~20171216-190149.py 968 B

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