管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

形態素解析エンジンって知ってます!?

”今日は晴れです”を"今日 は 晴れ です"にしてくれるプログラムですな。英語はスペースで品詞が区切られてるけど、日本語は一繋がりになってるので、こういうエンジンで区切らないといけないわけです
んで、その形態素解析エンジンなんだけど、MeCabってのがメジャーらしい。が、一応javaやってるので、javaで書かれたSenを使ってみることに。
以下自分用メモ
必要なもの

これらはググって落としてくる。んで、解凍。ついでにフォルダ名を”apache-ant”だとか"sen"みたいにシンプルにしておく。
そしたらば、任意のフォルダに移動。今回はどちらも/optに。(毎度、何でも/optなんだけど、どこがベターとかあるのかしら)
んで、pathを通してやる(~/.bashrcに記述)

export $ANT_HOME=/opt/apache-ant
export $SEN_HOME=/opt/sen
export PATH=$PATH:${JAVA_HOME}/bin:${ANT_HOME}/bin
export CLASSPATH=$CLASSPATH:${SEN_HOME}/lib/sen.jar

したらば、

source ~/.bashrc
echo $ANT_HOME
echo $SEN_HOME
ant

などとやって、パスが通ってるかを確認。"ant"と打ったときに、"インストールされてません云々"と出たらどっか間違ってるので注意が必要。
そして、ここから大切。辞書のセットアップをする。…といっても、antがどうにかしてくれるので、インターネット環境でチャレンジ

cd $SEN_HOME
ant
…しばし待つ…
cd $SEN_HOME/dic
ant
…しばし待つ…

とやる。とくに/dicでのantは実際に辞書をDLしてセットアップするので、そこそこ時間がかかる。極端に短いときはDL失敗を疑った方がいいかも。画面にズラズラと文字が流れるので、なんとなく進捗は分かる感じ。
さて、ここまでくれば実際にSenを試すことが可能になりますね。

sh $SEN_HOME/bin/sen.sh
…(メッセージがズラズラ出てくる)…
すもももももももものうち
すもも (すもも) 名詞-一般(0,3,3) スモモ スモモ
も (も) 助詞-係助詞(3,4,1) モ モ
もも (もも) 名詞-一般(4,6,2) モモ モモ
も (も) 助詞-係助詞(6,7,1) モ モ
もも (もも) 名詞-一般(7,9,2) モモ モモ
の (の) 助詞-連体化(9,10,1) ノ ノ
うち (うち) 名詞-非自立-副詞可能(10,12,2) ウチ ウチ

となればOK。終了はctrl-dで。おもしろくてついつい色々試してしまった
んで、こいつをEclipseで使えるように設定する
Senを使いたいプロジェクトの、プロジェクトプロパティー→ビルドパスの”ライブラリ”タブへ移動、"外部jarの追加"で、$SEN_HOME/lib/sen.jar,commons-logging.jarをインポート。んで、コードを適宜書き、実行→実行構成の、"引数"タブへ移動、VM引数に"-Dsen.home=/opt/sen"を追加すれば実行されるはず