1

我在 Java 中使用 Lucene 来索引语料库并从中提取词干词表。我使用EnglishAnalyzer进行词干。然后我把单词表交给 Python 来用 NLTK 做一些事情。NLTK 中是否有与 Lucene 的 EnglishAnalyzer 使用的词干分析器完全兼容的词干分析器?

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

4

2 回答 2

1

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

于 2012-07-06T01:44:49.383 回答
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 搬运工:

cat computer argue ->
cat comput argu

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

P/S:嗨 Marc Schuler,(我是疯狂的亚洲人,你的名字不带“d”)

于 2012-09-18T02:43:39.133 回答