イタリア語の単語の文字列をステミングするために、Javaライブラリまたは何かを検索しています。
目標は、イタリア語を比較することです。この瞬間、「attacco」、「attacchi」、「attaccare」などの単語は異なると見なされますが、代わりに真の比較を返したいと思います。
Lucene、snowball.tartarus.orgなどのようなものを見つけました。他に役立つものはありますか、それともJavaでどのように使用できますか?
回答ありがとうございます。
ここからSnowballforJavaをダウンロードします。
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
別の使用例についてTestApp.java
は、同じtgzファイルに含まれているを参照してください。
Javaで記述されたLuceneは、たとえばSnowballFilterのフィルターとして、Snowballをステミングに使用します。