Je voudrais supprimer les mots stops dans une liste d'une liste tout en conservant le format identique (c'est-à-dire une liste d'une liste)
suivi, c'est le code que j'ai déjà essayé p>
filtered_words [['sentence', 'list'], ['sentence', 'another', 'list']]
3 Réponses :
Vous pouvez utiliser la sortie sort à être - p> [["phrase", "autre", "liste"],
['phrase', 'liste']]] p>
blockQuote> j'ai suivi un lien sur Stackoverflow - Supprimer des doublons d'un Liste de la liste p> p> iTertools code> une fois que vous avez le résultat dupliqué dans
filtré_words code> -
Ce que vous faites mal, c'est ajouter lst code> à
filtré_words code> à chaque fois que vous trouverez un mot motone non stop. C'est la raison pour laquelle vous avez 2 répétitions du fichier
envoyé1 code> (il contient 2 mots non stops) et 3 répétitions du filtrage
Sen2 code> (il contient 3 mots non stops).
Il suffit d'ajouter une fois que vous avez examiné chaque phrase:
for s in sent_lower:
lst = [j for j in s.split() if j not in stop_words]
filtered_words.append(lst)
Vous êtes les bienvenus. BTW, je viens d'ajouter une version optimisée du code.
Merci! Je savais qu'il y avait une meilleure façon de faire ça!
Cela vous donnera le résultat souhaité
from nltk.corpus import stopwords stop_words = stopwords.words('english') sent1 = 'I have a sentence which is a list' sent2 = 'I have a sentence which is another list' sent1 = sent1.lower().split() sent2 = sent2.lower().split() l = [sent1, sent2] for n, sent in enumerate(l): for stop_word in stop_words: sent = [word for word in sent if word != stop_word] l[n] = sent print(l)
Pourriez-vous ajouter la fonction complète s'il vous plaît? Qu'est-ce qui vous donne cette sortie?
filtré_words code>?
Il peut être utile de rédiger votre sortie souhaitée.
Je viens de faire les modifications
Quel est votre
stop_words code>?
son de la NLTK.CORPUS Import Stopwords