【NLP】【Python】CaboChaのPythonバイディングで詰まった

CaboChaをPythonで使いたい

今のバイト先でNLPのためのコードを主に書いています. そこで確か前にMeCabCaboChaの二つをバインディングした仮想環境を作った気がするんですが,最近みたらなぜかその仮想環境が壊れて使えなくなってました. (まぁ,LLVM入れたり,CRF++入れ直したりしてたので...) そこで,再び両方とも入った仮想環境を作ろうとしたら詰まったので,同じ苦しみを味わないためにメモ.

環境

エラーコード

$ python setup.py install

warning: no library file corresponding to '-L/usr/local/Cellar/mecab/0.996/lib' found (skipping)  
clang++ -bundle -undefined dynamic_lookup -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk build/temp.macosx-10.14-x86_64-2.7/CaboCha_wrap.o -L/usr/local/Cellar/cabocha/0.69/lib -lcabocha -lcrfpp -lmecab -liconv -lmecab -lstdc++ -o build/lib.macosx-10.14-x86_64-2.7/_CaboCha.so  
ld: library not found for -lcrfpp  
clang: error: linker command failed with exit code 1 (use -v to see invocation)  
error: command 'clang++' failed with exit status 1

解決策

この記事に書いてあることをコピペしました. www.maytry.net どうやらエンコードの違い?みたいですね. 正直エラーコードからそんなこと1mmもわからなかったので,本当に詰んでました...

まずは公式サイトから自分の持っているCaboChaに対応するバージョンの.tar.bz2ファイルをダウンロードしてください. そのあとそれを解凍して,そのディレクトリに入ります.あとは 以下のコードを実行すればおkです.

$ cd cabocha-0.69
$ ./configure --with-mecab-config=`which mecab-config` --with-charset=utf8 # これでエンコードのエラーが出ないはず
$ make
$ sudo make install
$ cd python
$ sudo python setup.py install

ちなみに,自分の場合この前にこのサイトを参考にして以下のものを試しました.

$ ./configure --with-mecab-config=`which mecab-config` --with-charset=UTF8 --with-posset=UNIDIC
$ make
$ make install
$ cd python
$ sudo pyhton setup.py install

この方法は試しましたが全く効果がありませんでした. 自分のはPython2でこのサイトはPython3だったので,そのために上手くいかなかったのかも.