卢森搜索引擎的词干处理器有哪些区别:英语词干处理器、波特词干处理器、洛文斯词干处理器。

4

有没有人比较过Lucene中的这些词干提取器(包括org.tartarus.snowball.ext):EnglishStemmer、PorterStemmer、LovinsStemmer?它们背后的算法有什么优缺点?应该在何时使用每个算法?或者可能还有其他可用于英语单词词干提取的算法吗?

谢谢。

2个回答

18

Lovins词干提取器是一种非常古老的算法,实际上并没有太多实用价值,因为Porter词干提取器更加强大。根据对源代码的快速浏览,似乎PorterStemmer实现了Porter的原始(1980年)算法,而EnglishStemmer实现了他的更新版本,应该更好。

在斯坦福NLP工具中有一个更强大的词干提取器(实际上是一个词形还原器)。我自己开发的Lucene-Stanford NLP桥接工具在这里可用(API文档)。

有关词干提取和词形还原的一般信息,请参阅Manning,Raghavan&Schütze


你的词干提取器是GPL许可的,因此它不能很好地插入Apache Lucene生态系统。您是否考虑将您的词干提取器许可从GPL更改为Apache 2,以便更多人可以使用它? - RonC

1
我已经测试了来自org.apache.lucene.analysis.en版本4.4.0的3个Lucene词干处理器,它们是EnglishMinimalStemFilterKStemFilterPorterStemFilter。我正在解决一个文档分类问题。我的结果证实了《信息检索导论》作者的说法:对于文档分类设置中的小训练语料库,词干处理会产生负面影响;而对于大型语料库,词干处理没有影响。

对于搜索和索引,词干提取可能更有用(例如参见Jenkins & Smith),但即使在那里,你的问题的答案也取决于你所做的具体细节。没有免费的午餐!

到最后,没有什么比在真实数据上运行真实代码的经验测试更好的了。唯一能让你真正知道哪个更好的方法是在应用程序中自己运行词干提取器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接