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