pattern__phrase_vers_dot.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import imports.arguments as ARG
  4. from pattern.fr import parse, split
  5. texte_brut = ARG.obtenir( '-p', u"Le petit chat rugit alors que l'esclave humain tarde a accomplir sa tache de nourrissage du maitre et seigneur." )
  6. texte_traite = parse( texte_brut )
  7. numero_mot = -1
  8. def imprimer_erreur ( erreur ):
  9. print '💩 erreur : ' + str( erreur )
  10. def demarrer_graphe () :
  11. print 'digraph G {'
  12. print ' graph [ rankdir=LR ];'
  13. def ajouter_noeud_mot ( word, numero ):
  14. print ' ' + str( numero ) + ' [label="' + word.string + '"];'
  15. def lier_a_noeud_precedent ( numero ):
  16. if ( numero_mot > 0 ):
  17. print ' ' + str( numero - 1 ) + ' -> ' + str ( numero )
  18. def clore_graphe () :
  19. print '}'
  20. demarrer_graphe ()
  21. # pour chaque phrase
  22. for phrase in split( texte_traite ):
  23. # pour chaque mot
  24. for word in phrase.words:
  25. # on incrément le numéro du mot
  26. numero_mot = numero_mot + 1
  27. ajouter_noeud_mot ( word, numero_mot )
  28. lier_a_noeud_precedent ( numero_mot )
  29. clore_graphe ()