redux_4.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/usr/bin/env python
  2. # coding: utf8
  3. #pour installer nltk stopWords tout est là : http://www.nltk.org/data.html
  4. #finalement je n'utilise pas nltk stopWords qui est lacunaire mais ma propre liste
  5. import re
  6. #from nltk.tokenize import sent_tokenize, word_tokenize
  7. #from nltk.corpus import stopwords
  8. POEME_A_REDUIRE = "mirabeau.txt"
  9. def load_stopwords():
  10. with open("stopwords-fr.txt", "r") as sw:
  11. text_stopwords = sw.read()
  12. text_stopwords = text_stopwords[:-1] # pour enlever le retour charriot à la fin
  13. return text_stopwords.split("\n")
  14. #print("stopwords_list : ", load_stopwords() )
  15. def load_texte_a_reduire():
  16. with open(POEME_A_REDUIRE, "r") as source:
  17. texte_original = source.read()
  18. return texte_original
  19. #print("texte original :", texte_original)
  20. def nettoyer(texte_original):
  21. # enlever les traits d'union et les apostrophes
  22. texte_net = texte_original.replace("'", " ")
  23. texte_net = texte_net.replace("-", " ")
  24. return texte_net
  25. def verses_list(texte_net): # sépare les vers sur le retour charriot
  26. return texte_net.split("\n")
  27. def decoupage_en_mots(verses):
  28. tous_les_mots =[]
  29. for verse in verses:
  30. mots_du_vers = verse.split(" ")
  31. tous_les_mots.append(mots_du_vers)
  32. tous_les_mots = tous_les_mots[1:]
  33. return tous_les_mots
  34. def reduction(tous_les_mots): # retourne les mots qui ne sont pas dans stopwords
  35. liste_reduite =[]
  36. for mot in tous_les_mots :
  37. if mot not in mots_interdits:
  38. liste_reduite.append(mot)
  39. return liste_reduite
  40. #def majuscule( ):# #ré-introduire les majuscules en debut de vers
  41. # for i in range( len ( liste_reduit ) ):
  42. # mot_split = liste_reduit[i].split("\n")
  43. # #print("mot_split", mot_split)
  44. # if ( len(mot_split) == 2):
  45. # mot_split[1] = mot_split[1].capitalize()
  46. # liste_reduit[i] = mot_split[0] + "\n" + mot_split[1]
  47. # if ( i > 0 and liste_reduit[i-1] == '' ):
  48. # liste_reduit[i] = liste_reduit[i].capitalize()
  49. #
  50. #
  51. # poeme_reduit = " ".join(liste_reduit)
  52. # #print("version réduite du poeme :", poeme_reduit)
  53. #
  54. # with open("mirabeau_reduit.txt", "w") as destination :
  55. # destination.write(" ".join(liste_reduit))
  56. #Appel des fonctions
  57. texte_original = load_texte_a_reduire()
  58. mots_interdits = load_stopwords()
  59. texte_net = nettoyer(texte_original)
  60. verses = verses_list(texte_net)
  61. tous_les_mots = decoupage_en_mots(verses)
  62. liste_reduite = reduction(tous_les_mots)
  63. #print("la liste des vers : ", verses)
  64. #print("la liste de tous les mots séparés :", tous_les_mots)
  65. #print("mots interdit : ", mots_interdits)
  66. print("liste des mots réduite :", liste_reduite)