java中的意大利词干库

Sch*_*awo 8 java nlp stemming snowball

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

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

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

谢谢你的回答.

Ton*_*Rad 9

在这里下载Snowball for Java .

它包括一个名为org.tartarus.snowball.ext.italianStemmerextends 的类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);
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

输出:

attacc
attacc
attacc
attacc
attacc
attacc
Run Code Online (Sandbox Code Playgroud)

对于另一个使用示例,请参阅TestApp.java相同的tgz文件.

Lucene是用Java编写的,它使用Snowball进行词干化,例如作为SnowballFilter中的过滤器.