我正在尝试使用python库NLTK进行自然语言处理。
我的问题:我正在尝试执行词干;将单词缩减为标准化形式。但它没有产生正确的话语。我正确使用词干类吗?我怎样才能得到我想要得到的结果?
我想规范化以下词语:
words = ["forgot","forgotten","there's","myself","remuneration"]
......进入这个:
words = ["forgot","forgot","there","myself","remunerate"]
我的代码:
from nltk import stem
words = ["forgot","forgotten","there's","myself","remuneration"]
for word in words:
print stemmer.stem(word)
#output is:
#forgot forgotten there' myself remuner
答案 0 :(得分:1)
您可以在单词级别执行两种类型的规范化。
词干 - 一个快速而肮脏的黑客将单词转换成一些不能保证是实际单词的标记,但通常不同形式的同一个单词应映射到相同的词干标记
词形还原 - 将单词转换为某种基本形式(单数,现在时等),它本身就是一个合法的单词。这显然可能更慢,更复杂,并且通常不需要很多NLP任务。
你似乎在寻找一个变形器而不是一个词干器。搜索Stack Overflow中的'lemmatization'应该会为你提供大量关于如何设置其中一个的线索。我玩过这个叫morpha的人,发现它很有用而且很酷。
答案 1 :(得分:1)
与adi92一样,我也相信你在寻找词形还原。由于您使用的是NLTK,因此可以使用其WordNet interface。