#!/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)