4

运行后,nltk.stem.porter.PorterStemmer().stem_word(word)我得到了许多带有 'ing' 截断或 'y' 与 'i' 交换的单词。例如,“质量”变成“质量”,(甚至更陌生)“价值”变成“价值”?

由于生成的单词不是实际的英文单词,我不确定我打算如何使用它们?我最好的猜测是,我打算将词干放入另一个函数中,该函数将为我提供来自该词干的所有派生/子词(例如 'valu' 将返回['valuing','valued', 'values', ...]。有这样的函数吗?

4

2 回答 2

5

词干提取通过一系列去除常见后缀和前缀的转换规则来提取词干。因此产生的结果可能不是一个实际的英文单词。词干提取的一般用途是对单词进行规范化,以使它们被认为是相同的。例如:

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

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

于 2012-07-17T02:49:47.390 回答
1

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

你在用nltk书吗?本章介绍词干提取:http: //nltk.googlecode.com/svn/trunk/doc/book/ch03.html

于 2012-07-17T02:52:31.957 回答