java中的意大利词干库

时间:2012-11-14 14:45:50

标签: java nlp stemming snowball

我正在搜索一个java库或其他东西,以阻止意大利语单词。

目标是比较意大利语单词。在这一刻,像“attacco”,“attacchi”,“attaccare”等词被认为是不同的,而我想要回到真正的比较。

我找到了像Lucene,snowball.tartarus.org等的东西。 还有其他有用的东西,或者我如何在java中使用它们?

感谢您的回答。

1 个答案:

答案 0 :(得分:9)

下载Snowball for Java here

它包含一个名为org.tartarus.snowball.ext.italianStemmer的类,它扩展了SnowballStemmer

要使用SnowballStemmer,请查看动词attaccare现在时的以下测试代码:

import org.junit.Test;
import org.tartarus.snowball.SnowballStemmer;
import org.tartarus.snowball.ext.italianStemmer;

public class SnowballItalianStemmerTest {

    @Test
    public void testSnowballItalianStemmerAttaccare() {

        SnowballStemmer stemmer = (SnowballStemmer) new italianStemmer();

        String[] tokens = "attacco attacchi attacca attacchiamo attaccate attaccano".split(" ");    
        for (String string : tokens) {
            stemmer.setCurrent(string);
            stemmer.stem();
            String stemmed = stemmer.getCurrent();
            Assert.assertEquals("attacc", stemmed);
            System.out.println(stemmed);
        }

    }

}

输出:

attacc
attacc
attacc
attacc
attacc
attacc

有关另一个使用示例,请参阅同一tgz文件中包含的TestApp.java

Lucene,用Java编写,使用Snowball进行词干分析,例如SnowballFilter中的过滤器。