NLTK止动词列表

sap*_*top 12 python nltk stop-words

我有下面的代码,我试图将停用词列表应用于单词列表.然而,结果仍然显示"a"和"the"这样的词,我认为这个词会被这个过程删除.任何出错的想法都会很棒.

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
Run Code Online (Sandbox Code Playgroud)

Hoo*_*ked 23

一些值得注意的事情.

  • 如果您要反复检查列表中的成员资格,我会使用集合而不是列表.

  • stopwords.words('english')返回小写停用词列表.您的来源很可能包含大写字母,因此不匹配.

  • 您没有正确读取文件,您正在检查文件对象而不是按空格分割的单词列表.

把它们放在一起:

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
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您仍然没有过滤标点符号,例如,您需要删除诸如 `';"{}[]/?.,!` 之类的内容。 (2认同)