我在Java中使用Lucene索引语料库并从中提取词干列表。我使用EnglishAnalyzer。然后我将wordlist交给Python用NLTK做一些事情。 在NLTK中是否有一个与Lucene的EnglishAnalyzer使用的词干器完全兼容的词干器?
我知道我也可以使用PyLucene来规避这一点,但我想尽量减少依赖。
答案 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.php和http://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”的情况下发出你名字的疯狂亚洲人)