2012年11月11日日曜日

lucene4.0 で日本語形態素分析してみた。


4.0から日本語形態素がデフォルトで入った、Kuromoji。
javaで作ってみた。
こちらのサイトを参考にさせていただきました。
——-Start——-

import java.io.IOException;
import java.io.StringReader;

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.ja.JapaneseAnalyzer;
import org.apache.lucene.analysis.ja.tokenattributes.BaseFormAttribute;
import org.apache.lucene.analysis.ja.tokenattributes.InflectionAttribute;
import org.apache.lucene.analysis.ja.tokenattributes.PartOfSpeechAttribute;
import org.apache.lucene.analysis.ja.tokenattributes.ReadingAttribute;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.util.*;

public class JapaneseanalyzerTest {
public static void main(String[] args){
JapaneseAnalyzer t = new JapaneseAnalyzer(Version.LUCENE_40);
try {
TokenStream ts = t.tokenStream("txt", new StringReader("明日は山に登ろう。"));
while (ts.incrementToken()){
CharTermAttribute term = ts.getAttribute(CharTermAttribute.class);
BaseFormAttribute basef = ts.getAttribute(BaseFormAttribute.class);
PartOfSpeechAttribute pofs = ts.getAttribute(PartOfSpeechAttribute.class);
ReadingAttribute readattr = ts.getAttribute(ReadingAttribute.class);
InflectionAttribute infatt = ts.getAttribute(InflectionAttribute.class);
System.out.println(term);
System.out.println(basef.getBaseForm());
System.out.println(pofs.getPartOfSpeech());
System.out.println(readattr.getPronunciation());
System.out.println(infatt.getInflectionForm());
}
} catch (IOException e) {
e.printStackTrace();
}
}

}


こんなかんじ like this

明日
null
名詞-副詞可能
アシタ
null
null
名詞-一般
ヤマ
null
登る
登る
動詞-自立
ノボロ
未然ウ接続

0 件のコメント:

コメントを投稿