MeCabをCentOSにインストールする
仕事でMeCabをインストールする必要があったので
そこらへんをメモしときます。
MeCabとは、オープンソースの日本語形態素解析エンジンです。
http://mecab.sourceforge.net/
MeCab本体のインストール
wget http://downloads.sourceforge.net/project/mecab/mecab/0.98/mecab-0.98.tar.gz tar xvzf mecab-0.98.tar.gz cd mecab-0.98 ./configure --with-charset=utf8 --enable-utf8-only make sudo make install cd ..
/etc/ld.so.confを編集、下記の1行を加える
/usr/local/lib
設定を反映する
sudo /sbin/ldconfig
辞書(NAIST Japanese Dictionary)のインストール
http://sourceforge.jp/projects/naist-jdic/releases/ から
mecab-naist-jdic-0.6.1-20090630.tar.gz をダウンロード。
ちなみに、なぜか、最新版の mecab-naist-jdic-0.6.3-20100801.tar.gz だと
うまくいきませんでした。。
tar xvzf mecab-naist-jdic-0.6.1-20090630.tar.gz cd mecab-naist-jdic-0.6.1-20090630 ./configure --with-charset=utf8 --with-mecab-config=/usr/local/bin/mecab-config make sudo make install cd ..
/usr/local/etc/mecabrcを編集
dicdir = /usr/local/lib/mecab/dic/naist-jdic/
MeCab Javaライブラリのインストール
wget http://downloads.sourceforge.net/project/mecab/mecab-win32/0.98/mecab-java-0.98.tar.gz tar xvzf mecab-java-0.98.tar.gz cd mecab-java-0.98
次に、MakefileのJavaのパスやmecab-configのパスを環境に合わせて変更。
両方ともパスが通ってれば変更の必要なし。
最後に、MeCab_wrap.cxxの703行目あたりを編集
SWIGEXPORT jlong JNICALL Java_org_chasen_mecab_MeCabJNI_Node_1next_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject ja rg1_) { jlong jresult = 0 ; mecab_node_t *arg1 = (mecab_node_t *) 0 ; mecab_node_t *result = 0 ; (void)jenv; (void)jcls; (void)jarg1_; arg1 = *(mecab_node_t **)&jarg1; result = (mecab_node_t *) ((arg1)->next); char work[128] ; // 追加 sprintf(work,"result:%0x\n",result); // 追加 *(mecab_node_t **)&jresult = result; return jresult; }
これをしないとなぜかテストプログラムが途中で落ちます。。
↓ここに書いてありました
http://d.hatena.ne.jp/knaka20blue/20090907/1252305752
後は、注意点として、Javaで動かす際に、
Taggerクラスは同じプロセスの中で何度もインスタンス生成をすると落ちます。
あと、TaggerクラスのparseToNodeメソッドにnullや空文字を入れると落ちます。
ここら辺結構はまりました。。