【形態素解析】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(クラスパスに通す)
お試しソース
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); } } }
これだけのソースです。
しかし「相葉」が「相」と「葉」で分かれています。
出力結果
嵐 名詞,一般,*,*,*,*,嵐,アラシ,アラシ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
相 接頭詞,動詞接続,*,*,*,*,相,アイ,アイ
葉 名詞,一般,*,*,*,*,葉,ハ,ハ
君 名詞,接尾,人名,*,*,*,君,クン,クン
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
動物 名詞,一般,*,*,*,*,動物,ドウブツ,ドーブツ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
好き 名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ
これは辞書に「相葉」がないことが原因です。
次回は独自の辞書登録を行います。