NLTK词干产生奇怪的结果

时间:2012-07-17 02:43:52

标签: python nlp nltk

运行nltk.stem.porter.PorterStemmer().stem_word(word)后,我收到很多单词'ing'被切断或'y'与'i'交换。例如“质量”变成“质量”,(甚至更奇怪)“价值”变成“价值”?

由于结果单词不是真正的英语单词,我不确定我是怎么意思使用它们的?我最好的猜测是,我的意思是将词干放到另一个函数中,这个函数会给我所有来自这个词干的派生/子词(例如'valu'会返回['valuing','valued', 'values', ...]。是否有这样的函数?

2 个答案:

答案 0 :(得分:5)

Stemming通过一系列转换规则来提取单词的词干,这些规则剥离了常见的后缀和前缀。因此,产生的结果可能不是真正的英语单词。 词干的一般用法是对单词进行标准化,使它们被认为是相同的。例如:

stem_word('value') == stem_word('valuing')

然后可以将词干单词编入索引以进行搜索。对传入的查询执行相同的词干分析,以便在执行查找时查询词与索引中的词干词匹配。

答案 1 :(得分:1)

我不熟悉那个特定的功能,但一般来说词干意味着这个词的根源,不一定是一个合法的英语单词。

您使用的是nltk书吗?本章介绍了词干:http://nltk.googlecode.com/svn/trunk/doc/book/ch03.html