0

你好:) 我正在使用包 SnowballStemmer,但我收到了一个错误。我很高兴得到任何帮助:)

代码:

stem2 =[]

for word in stem:
    if word not in nlp.Default.stop_words: 
        stem2.append(word)

print(stem2)

这里的错误:

line 127, in <module>
    if word not in nlp.Default.stop_words:  
AttributeError: 'English' object has no attribute 'Default'
4

1 回答 1

0

如果您能显示变量nlp的来源,那么回答这个问题会更容易。

但是根据您所说的,我假设您指的是这个包:https ://pypi.org/project/snowballstemmer ,据我所知,它没有定义任何停用词。

如果您正在使用该nltk软件包,那么您可以这样做:

import nltk

# needed once - nltk seems to cache it
nltk.download('stopwords')
# load cached stop words
stopwords = frozenset(nltk.corpus.stopwords.words('english'))

stem2 =[]
for word in stem:
    if word not in stopwords:
        stem2.append(word)

如果您正在使用该spacy软件包,您可以执行例如

from spacy.lang.en.stop_words import STOP_WORDS

for word in stem:
    if word not in STOP_WORDS:
        stem2.append(word)

更快的应该是列表理解:

stem2 = [word for word in stem if word not in STOP_WORDS]

上面的代码当然假设stem定义了一个很可能是字符串列表的变量。根据您的要求,您可能需要检查实际的停用词,根据您选择的库,它们可能是略有不同的词组,因此上述解决方案通常不会返回相同的结果。

于 2021-12-14T16:23:34.033 回答