NLTK和Lucene之间的Stemmers的兼容性

时间:2012-07-05 18:46:43

标签: python lucene nlp nltk stemming

我在Java中使用Lucene索引语料库并从中提取词干列表。我使用EnglishAnalyzer。然后我将wordlist交给Python用NLTK做一些事情。 在NLTK中是否有一个与Lucene的EnglishAnalyzer使用的词干器完全兼容的词干器?

我知道我也可以使用PyLucene来规避这一点,但我想尽量减少依赖。

2 个答案:

答案 0 :(得分:1)

您可以在http://text-processing.com/demo/stem/尝试各种NLTK词干分析器,并使用结果与Lucene的EnglishAnalyzer的工作方式进行比较。有可能它实现了一种常见的算法,无论是Porter还是Lancaster。

答案 1 :(得分:0)

所以如果我没错,lucene有几个由其他人贡献的词干(即雪球,egothor,stempel)。仅仅考虑到雪球限制器和NLTK搬运器限制器,即使是NLTK api也表明雪球限制器更可靠。见http://nltk.googlecode.com/svn/trunk/doc/api/nltk.stem.porter-module.html

如果我们对英语词干进行多次比较(使用http://snowball.tartarus.org/demo.phphttp://text-processing.com/demo/stem/

<强>雪球:

cat -> cat
computer -> comput
argues -> argu

NLTK Porter:

cat computer argue ->
cat comput argu

所以从演示看来,它们几乎是相同的,但可以肯定的是,我会坚持滚雪球并继续使用java编码,因为NLTK api建议如此。

P / S:嗨Marc Schuler,(我是那个在没有“d”的情况下发出你名字的疯狂亚洲人)