web-dev-qa-db-fra.com

NLTK Stopword List

J'ai le code en dessous et j'essaie d'appliquer une liste de mots vides à la liste des mots. Cependant, les résultats montrent encore des mots tels que "a" et "le" qui, selon moi, auraient été supprimés par ce processus. Toute idée qui a mal tourné serait formidable.

import nltk
from nltk.corpus import stopwords

Word_list = open("xxx.y.txt", "r")
filtered_words = [w for w in Word_list if not w in stopwords.words('english')]
print filtered_words
13
saph_top

Quelques points importants.

  • Si vous allez vérifier l'appartenance à une liste à plusieurs reprises, j'utiliserais un ensemble au lieu d'une liste.

  • stopwords.words('english') renvoie une liste de minuscules mots vides. Il est fort probable que votre source contienne des majuscules et ne correspond pas pour cette raison.

  • Vous ne lisez pas correctement le fichier, vous vérifiez l'objet fichier et non une liste des mots séparés par des espaces.

Mettre tous ensemble:

import nltk
from nltk.corpus import stopwords

Word_list = open("xxx.y.txt", "r")
stops = set(stopwords.words('english'))

for line in Word_list:
    for w in line.split():
        if w.lower() not in stops:
            print w
24
Hooked