在nltk停止列表中添加单词

时间:2011-04-01 09:49:30

标签: python nltk stop-words

我有一些代码可以从我的数据集中删除停用词,因为停止列表似乎没有删除我想要的大多数单词,我希望在此停止列表中添加单词以便在这种情况下它会删除它们。 我用来删除停用词的代码是:

word_list2 = [w.strip() for w in word_list if w.strip() not in nltk.corpus.stopwords.words('english')]

我不确定添加单词的正确语法,似乎无法在任何地方找到正确的语法。任何帮助表示赞赏。感谢。

10 个答案:

答案 0 :(得分:10)

您只需使用append方法为其添加单词:

stopwords = nltk.corpus.stopwords.words('english')
stopwords.append('newWord')

或扩展以附加一个单词列表,如Charlie在评论中所建议的那样。

stopwords = nltk.corpus.stopwords.words('english')
newStopWords = ['stopWord1','stopWord2']
stopwords.extend(newStopWords)

答案 1 :(得分:2)

我总是在需要它的任何模块的顶部做stopset = set(nltk.corpus.stopwords.words('english'))。然后很容易在集合中添加更多单词,加上成员资格检查更快。

答案 2 :(得分:2)

也在寻找解决方案。经过一些跟踪和错误后,我要在停止列表中添加单词。希望这会有所帮助。

def removeStopWords(str):
#select english stopwords
cachedStopWords = set(stopwords.words("english"))
#add custom words
cachedStopWords.update(('and','I','A','And','So','arnt','This','When','It','many','Many','so','cant','Yes','yes','No','no','These','these'))
#remove stop words
new_str = ' '.join([word for word in str.split() if word not in cachedStopWords]) 
return new_str

答案 3 :(得分:2)

我在Ubuntu机器上的表现方式是,我在ctrl + F中查找root中的“​​stopwords”。它给了我一个文件夹。我走进它里面有不同的文件。我打开了“英语”,里面只有128个单词。添加了我的话。保存完成。

答案 4 :(得分:1)

英语停止词是nltk / corpus / stopwords / english.txt中的一个文件(我想它会在这里......我在这台机器上没有nltk ..最好的事情就是搜索'english.txt内nltk repo)

您可以在此文件中添加新的停用词。

如果您的停用词列表增加到几百

,也会尝试查看bloom filters

答案 5 :(得分:0)

在Windows C上:\ Users \ username \ AppData \ Roaming \ nltk_data \ corpora转到此路径以获取停用词并根据需要进行编辑

答案 6 :(得分:0)

我使用此代码在python的nltk停用词列表中添加新的停用词

from nltk.corpus import stopwords
#...#
stop_words = set(stopwords.words("english"))

#add words that aren't in the NLTK stopwords list
new_stopwords = ['apple','mango','banana']
new_stopwords_list = stop_words.union(new_stopwords)

print(new_stopwords_list)

答案 7 :(得分:0)

import nltk
stopwords = nltk.corpus.stopwords.words('english')
new_words=('re','name', 'user', 'ct')
for i in new_words:
    stopwords.append(i)
print(stopwords)

答案 8 :(得分:0)

我已经发现(Python 3.7,Windows 10上的jupyter笔记本,公司防火墙) 创建列表并使用'append'命令会导致将整个停用词列表附加为原始列表的元素。

这使“停用词”成为列表列表。

Snijesh的答案和Jayantha的答案都很好。

答案 9 :(得分:0)

STOP_WORDS.add(“Lol”) #根据需要将新的停用词添加到语料库中