2012-07-17 58 views
4

我得到了许多的话运行nltk.stem.porter.PorterStemmer().stem_word(word)后“荷兰国际集团”切断或“Y”换用“I”。例如'质量'变成'Qualiti',(甚至更奇怪的)'价值'变成'价值'?NLTK干的话会产生奇怪的结果

。所获得的话不是实际的英语单词,我不知道我怎么打算使用它们?我最好的猜测是,我的意思是把词干放到另一个函数中,这个函数会给我所有来自这个词干的衍生词/子词(例如'valu'将返回['valuing','valued', 'values', ...]。是否有这样的功能?

+0

你试过这些词语吗?那里有什么结果? – inspectorG4dget 2012-07-17 02:49:18

+0

用于所要求的术语是** lexeme **。因此,最好的做法是采用原始的预处理单词,并通过这种功能而不是词干版本来运行,以获取单词的所有词位。 – demongolem 2013-03-14 14:34:12

回答

4

Stemming extracts字由通过一系列的变换规则去其剥离共同前缀和后缀的茎,因此产生的结果可能不是一个实际的英语单词。 一般使用所产生的是归一化的话,使它们被认为是相同的例如:

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

去梗,然后的话可以被索引搜索相同而产生与输入的查询,以便完成查询词在查找时与索引中的词干匹配。

相关问题