【形態素解析】Javaでラクラク日本語解析

Java形態素解析を行うライブラリはいくつかありますが、初めに本家の純正MeCabをがんばってJNIでJava⇔Cを試しましたが
うまくいかなかったので他を試してみることに。
いろいろある中でも私はIgoが使いやすいと思ったのでIgoで説明します。

準備
以下をダウンロード
Igoのダウンロードサイトからigo-0.4.5.jar
MeCab辞書のダウンロードサイトからmecab-ipadic-2.7.0-20070801.tar.gz
そしてmecab-ipadic-2.7.0-20070801.tar.gzを解凍。

これらをC:\igoに置いたと仮定してすすめます。

C:\igo\mecab-ipadic-2.7.0-20070801
C:\igo\igo-0.4.5.jar

いきなりですが、Igo用(?)の辞書ファイルを生成します。
コマンドプロンプトで以下をたたく!

C:\igo>java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP

新たにipadicフォルダが作成されます。

C:\igo\mecab-ipadic-2.7.0-20070801
C:\igo\igo-0.4.5.jar
C:\igo\ipadic

準備が完了したので実際にJavaで日本語解析をします。
eclipseで新規プロジェクト作成

新規⇒Javaプロジェクト
プロジェクト名:igotest

できあがったigotestプロジェクトに以下をコピーする

ipadic
igo-0.4.5.jar(クラスパスに通す)


こんな感じになっていればOK

お試しソース

package igo.test;
import java.util.List;
import net.reduls.igo.Morpheme;
import net.reduls.igo.Tagger;
public class IgoTest {
	public static void main(String[] args) throws Exception{
		Tagger tagger = new Tagger("ipadic");
		List<Morpheme> list = tagger.parse("嵐の相葉君は動物が好き");
		for (Morpheme morpheme : list) {
			String str = morpheme.surface + "\t"+ morpheme.feature;
			System.out.println(str);
		}
	}
}

これだけのソースです。


出力結果
嵐 名詞,一般,*,*,*,*,嵐,アラシ,アラシ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
相 接頭詞,動詞接続,*,*,*,*,相,アイ,アイ
葉 名詞,一般,*,*,*,*,葉,ハ,ハ

君 名詞,接尾,人名,*,*,*,君,クン,クン
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
動物 名詞,一般,*,*,*,*,動物,ドウブツ,ドーブツ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
好き 名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ
しかし「相葉」が「相」と「葉」で分かれています。
これは辞書に「相葉」がないことが原因です。
次回は独自の辞書登録を行います。