TypeError:不可用类型:python nltk中的'list'

问题描述 投票:0回答:2

我有这个代码:

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)

当我尝试运行它时,我收到此错误:

我该怎么解决这个问题?

python python-3.x nltk
2个回答
1
投票

看来你的变量each是一个列表,你试着看看后者是否属于setin运算符需要each是可以清除的,以便在集合中搜索它。


0
投票

不确定它是否相关,但我认为你的意思是[w for w in tokens if w not in stop_words]

tokens.append(word_tokenize(each)) each是一个清单。也许你期望这是一维列表,在这种情况下你可以使用tokens.concat(word_tokenize(each))

© www.soinside.com 2019 - 2024. All rights reserved.