TypeError: unhashable тип: 'list' в Python nltk - PullRequest
0 голосов
/ 01 мая 2018

У меня есть этот код:

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)

Когда я пытаюсь запустить его, я получаю эту ошибку:

error

как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Не уверен, что это связано, но я думаю, что вы имеете в виду [w for w in tokens if w not in stop_words]

tokens.append(word_tokenize(each)) <- это, вероятно, даст вам 2d массив. Так что <code>each это список. Возможно, вы ожидаете, что это будет одномерный список, и в этом случае вы можете использовать tokens.concat(word_tokenize(each))

0 голосов
/ 01 мая 2018

Похоже, что ваша переменная each является списком, и вы пытаетесь посмотреть, принадлежит ли последняя к set. Оператору in необходимо, чтобы each был хэшируемым, чтобы искать его в наборе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...