运行 nltk.stem.porter.PorterStemmer().stem_word(word)
后,我得到很多单词的 'ing' 被截断或 'y' 与 'i' 交换。例如“质量”变成了“质量”,(甚至更奇怪)“值(value)”变成了“值(value)”?
由于生成的单词不是实际的英语单词,我不确定我应该如何使用它们?我最好的猜测是,我打算将词干放入另一个函数中,该函数将为我提供来自该词干的所有派生词/子词(例如,'valu' 将返回 ['valuing','valued', 'values ', ...]
.有这样的功能吗?
最佳答案
词干提取通过一系列去除常见后缀和前缀的转换规则来提取词干。因此,产生的结果可能不是真正的英语单词。 词干提取的一般用途是规范化单词,使它们被认为是相同的。例如:
stem_word('value') == stem_word('valuing')
然后可以将词干词编入索引以供搜索。对传入查询进行相同的词干提取,以便查询词在进行查找时与索引中的词干词匹配。
关于python - NLTK 词干产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11515339/