我正在搜索一个java库或其他东西,以阻止意大利语单词。
目标是比较意大利语单词。在这一刻,像“attacco”,“attacchi”,“attaccare”等词被认为是不同的,而我想要回到真正的比较。
我找到了像Lucene,snowball.tartarus.org等的东西。 还有其他有用的东西,或者我如何在java中使用它们?
感谢您的回答。
答案 0 :(得分:9)
它包含一个名为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中的过滤器。