【发布时间】:2018-10-17 17:17:14
【问题描述】:
我想使用 WordNet Lemmatizer 找出引理,还需要计算每个词频。
我收到以下错误。
轨迹如下:
TypeError: unhashable type: 'list'
注意:该语料库在 nltk 包本身上可用。
到目前为止我尝试过的如下:
import nltk, re
import string
from collections import Counter
from string import punctuation
from nltk.tokenize import TweetTokenizer, sent_tokenize, word_tokenize
from nltk.corpus import gutenberg, stopwords
from nltk.stem import WordNetLemmatizer
def remove_punctuation(from_text):
table = str.maketrans('', '', string.punctuation)
stripped = [w.translate(table) for w in from_text]
return stripped
def preprocessing():
raw_data = (gutenberg.raw('shakespeare-hamlet.txt'))
tokens_sentences = sent_tokenize(raw_data)
tokens = [[word.lower() for word in line.split()] for line in tokens_sentences]
print(len(tokens))
global stripped_tokens
stripped_tokens = [remove_punctuation(i) for i in tokens]
sw = (stopwords.words('english'))
filter_set = [[token for token in sentence if (token.lower() not in sw and token.isalnum())] for sentence in stripped_tokens]
lemma= WordNetLemmatizer()
global lem
lem = []
for w in filter_set:
lem.append(lemma.lemmatize(w))
preprocessing()
请帮我解决问题。
【问题讨论】:
-
哪一行触发了错误?
-
@Yuca 我收到以下消息
if form in exceptions: TypeError: unhashable type: 'list' -
是的,但是跟踪通常会显示发生错误的行,共享使我们更容易发现问题
-
@yuca。查看我最近的编辑!
标签: python python-3.x nltk tokenize wordnet