77 lines
2.5 KiB
Python
77 lines
2.5 KiB
Python
#!/usr/bin/env python
|
|
# coding: utf8
|
|
#pour installer nltk stopWords tout est là : http://www.nltk.org/data.html
|
|
#finalement je n'utilise pas nltk stopWords qui est lacunaire mais ma propre liste
|
|
import re
|
|
#from nltk.tokenize import sent_tokenize, word_tokenize
|
|
#from nltk.corpus import stopwords
|
|
POEME_A_REDUIRE = "mirabeau.txt"
|
|
|
|
def load_stopwords():
|
|
with open("stopwords-fr.txt", "r") as sw:
|
|
text_stopwords = sw.read()
|
|
text_stopwords = text_stopwords[:-1] # pour enlever le retour charriot à la fin
|
|
return text_stopwords.split("\n")
|
|
#print("stopwords_list : ", load_stopwords() )
|
|
|
|
def load_texte_a_reduire():
|
|
with open(POEME_A_REDUIRE, "r") as source:
|
|
texte_original = source.read()
|
|
return texte_original
|
|
#print("texte original :", texte_original)
|
|
|
|
def nettoyer(texte_original):
|
|
# enlever les traits d'union et les apostrophes
|
|
texte_net = texte_original.replace("'", " ")
|
|
texte_net = texte_net.replace("-", " ")
|
|
return texte_net
|
|
|
|
def verses_list(texte_net): # sépare les vers sur le retour charriot
|
|
return texte_net.split("\n")
|
|
|
|
def decoupage_en_mots(verses):
|
|
tous_les_mots =[]
|
|
for verse in verses:
|
|
mots_du_vers = verse.split(" ")
|
|
tous_les_mots.append(mots_du_vers)
|
|
tous_les_mots = tous_les_mots[1:]
|
|
return tous_les_mots
|
|
|
|
def reduction(tous_les_mots): # retourne les mots qui ne sont pas dans stopwords
|
|
liste_reduite =[]
|
|
for mot in tous_les_mots :
|
|
if mot not in mots_interdits:
|
|
liste_reduite.append(mot)
|
|
return liste_reduite
|
|
|
|
#def majuscule( ):# #ré-introduire les majuscules en debut de vers
|
|
# for i in range( len ( liste_reduit ) ):
|
|
# mot_split = liste_reduit[i].split("\n")
|
|
# #print("mot_split", mot_split)
|
|
# if ( len(mot_split) == 2):
|
|
# mot_split[1] = mot_split[1].capitalize()
|
|
# liste_reduit[i] = mot_split[0] + "\n" + mot_split[1]
|
|
# if ( i > 0 and liste_reduit[i-1] == '' ):
|
|
# liste_reduit[i] = liste_reduit[i].capitalize()
|
|
#
|
|
#
|
|
# poeme_reduit = " ".join(liste_reduit)
|
|
# #print("version réduite du poeme :", poeme_reduit)
|
|
#
|
|
# with open("mirabeau_reduit.txt", "w") as destination :
|
|
# destination.write(" ".join(liste_reduit))
|
|
|
|
|
|
#Appel des fonctions
|
|
|
|
texte_original = load_texte_a_reduire()
|
|
mots_interdits = load_stopwords()
|
|
texte_net = nettoyer(texte_original)
|
|
verses = verses_list(texte_net)
|
|
tous_les_mots = decoupage_en_mots(verses)
|
|
liste_reduite = reduction(tous_les_mots)
|
|
#print("la liste des vers : ", verses)
|
|
#print("la liste de tous les mots séparés :", tous_les_mots)
|
|
#print("mots interdit : ", mots_interdits)
|
|
print("liste des mots réduite :", liste_reduite)
|