我已经从nltk.corpus
导入了stopwords
,但我得到了STOPWORDS is not defined
错误。以下是我的代码:
import nltk
from nltk.corpus import stopwords
#Create stopword list:
stopwords = set(STOPWORDS)
上面给出了以下错误:
NameError: name 'STOPWORDS' is not defined
第一次从NLTK
包中使用stopwords
时,您需要执行以下代码,以便将列表下载到您的设备:
import nltk
nltk.download('stopwords')
然后,每次需要使用stopwords
时,只需从包中加载即可。例如,要加载英文stopwords
列表,可以使用以下命令:
from nltk.corpus import stopwords
stop_words = list(stopwords.words('english'))
如果愿意,您甚至可以扩展列表,如下所示(注意:如果stopwords.words()
返回set
类型的对象,则需要转换为list
(如上所示(,以便在stop_words
对象上调用extend()
方法(:
stop_words.extend(["best", "item", "fast"])
要从文本中删除停止词,您可以使用以下方法(查看此处和此处的各种可用标记器(:
from nltk.tokenize import word_tokenize
word_tokens = word_tokenize(text)
clean_word_data = [w for w in word_tokens if w.lower() not in stop_words]
您需要下载想要使用的正确停止语。例如,如果你只是想打印英语中使用的停止语:
import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')
print(stopwords.words('english'))
这应该会给你像'i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves',....]
这样的英语停止语的输出