【发布时间】:2020-03-16 07:51:22
【问题描述】:
我的代码
def tokenize_and_stem(text):
tokens = [sent for sent in nltk.sent_tokenize(text) for word in nltk.word_tokenize(text)]
filtered_tokens = [token for token in tokens if re.search('[a-zA-Z]', token)]
stems = stemmer.stem(filtered_tokens)
words_stemmed = tokenize_and_stem("Today (May 19, 2016) is his only daughter's wedding.")
print(words_stemmed)
我收到了这个错误
AttributeError Traceback(最近一次调用最后一次) 在 13个返回茎 14 ---> 15 words_stemmed = tokenize_and_stem("今天(2016 年 5 月 19 日)是他唯一女儿的婚礼。") 16 打印(words_stemmed)
in tokenize_and_stem(text)
9
10 # 提取过滤后的令牌
---> 11 个词干 = stemmer.stem(filtered_tokens)
12
13个返回茎
/usr/local/lib/python3.6/dist-packages/nltk/stem/snowball.py in stem(self, word) 1415 第1416章 -> 1417 字 = word.lower() 1418 第1419章 如果self.stopwords或len(word)中的单词
AttributeError: 'list' 对象没有属性 'lower'
【问题讨论】:
-
看起来
stemmer.stem需要一个字符串,而不是字符串列表。你可以试试stems = list(map(stemmer.stem, filtered_tokens))。并将return stems添加到您的函数中。
标签: python nltk token tokenize stemming