我有这个代码:
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.stem import PorterStemmer
import re
fo = open('cran.all.1400', 'r+')
contents = fo.read()
docs = re.split(r'\.I[\s][\d]*')
stop_words = set(stopwords.words('english'))
tokens = []
for each in docs:
tokens.append(word_tokenize(eac))
s_words = [w for w in tokens if not w in stop_words]
print(s_words)
当我尝试运行它时,我收到此错误:
我该怎么解决这个问题?
看来你的变量each
是一个列表,你试着看看后者是否属于set
。 in
运算符需要each
是可以清除的,以便在集合中搜索它。
不确定它是否相关,但我认为你的意思是[w for w in tokens if w not in stop_words]
tokens.append(word_tokenize(each))
each
是一个清单。也许你期望这是一维列表,在这种情况下你可以使用tokens.concat(word_tokenize(each))