8

イタリア語の単語の文字列をステミングするために、Javaライブラリまたは何かを検索しています。

目標は、イタリア語を比較することです。この瞬間、「attacco」、「attacchi」、「attaccare」などの単語は異なると見なされますが、代わりに真の比較を返したいと思います。

Lucene、snowball.tartarus.orgなどのようなものを見つけました。他に役立つものはありますか、それともJavaでどのように使用できますか?

回答ありがとうございます。

4

1 に答える 1

9

ここから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をステミングに使用します

于 2012-11-14T15:24:53.313 に答える