#!/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() texte_original = texte_original[2:] 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(verses, mots_interdits): #découpage et réduction # verses est une liste de chaque phrase # mots interdit est une liste de mots l_verses = [] for verse in verses: le_reste =[] mots_du_vers = verse.split(" ") # liste for mot in mots_du_vers: if mot.lower() not in mots_interdits: le_reste.append(mot) l_verses.append(le_reste) return l_verses def capitalisation(reste): for l in reste: #new_l = l for i, mot in enumerate(l): if mot:# si le mot existe mot = mot.capitalize() l[i] = mot break return reste def create_poeme_reduit(reste_capitalize): texte = '' for l_verse_reste in reste_capitalize: verse_restant = ' '.join(l_verse_reste) texte += verse_restant + '\n' return texte #def majuscule(verse) # # poeme_reduit = " ".join(le_reste) # #print("version réduite du poeme :", poeme_reduit) # # with open("mirabeau_reduit.txt", "w") as destination : # destination.write(" ".join(le_reste)) #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) reste = decoupage(verses, mots_interdits) reste_capitalize = capitalisation(reste) texte_final = create_poeme_reduit(reste_capitalize) print ("texte final : ", texte_final)