CentOS上でPythonからMeCabを使いたくなった。Pythonは3.6
で、一筋縄ではいかなかったので記録。
mecab本体のインストール
まず、git と Cのコンパイラ入ってない場合は入れる。
yum -y install git gcc-c++
そしたら、githubからソースを取得。作業用のディレクトリを決めてから。
cd sandbox git clone https://github.com/taku910/mecab.git
ビルドする。
#本体のビルド cd mecab/mecab ./configure --enable-utf8-only make make check sudo make install #辞書のビルド cd ../mecab-ipadic ./configure --with-charset=utf8 make sudo make install
↑の内容はcloneした下記のhtmlファイルに記載されてるインストール手順。
firefox ~/sandbox/mecab/index.html &
そしたら動作確認。mecabでインタラクティブな実行になるので解析したい文字列を適当に入れてみる。
mecab すもももももももものうち
ただ、この状態だと、「libmecab.so.2」っていうのがリンクしてもらえてなくて、リンクしてもらえるように下記の設定を行う。
#ファイル名は適当だけど拡張子だけは.conf sudo vi /etc/ld.so.conf.d/mecab.conf ###############↓の一行だけ /usr/local/lib ############### sudo ldconfig
本体のインストールは以上。
Pythonから呼べるようにする
※ここから先は仮想環境に切り替えてからやる。
source ~/pyenv/bin/activate
swigのインストール
sudo yum install -y swig
Python用のビルドなんだけど、そのままやると動かないので、setup.pyの一部を書き換える。
cd ~/sandbox/mecab/mecab/python vi setup.py ###################### #return string.split (cmd1(str))ってなっているところを #return cmd1(str).split()にする。 ###################### python setup.py build python setup.py install pip install mecab-python3
mecab-python3のPyPiのページ的にはUbuntuだとapt-getだけでイケルっぽいけど、CentOS用のは用意されてないんですかね。。。
しゃーなし。
ここまででPythonからimportして動くはず。
python import MeCab m = MeCab.Tagger ("-Ochasen") print(m.parse("すもももももももものうち"))
長かった。。。
もうちょっと楽に行けるかと思ってたんだけども。。。
出来るまでに見たエラーは↓
pip install mecab-python3 で。
「unable to execute 'swig': No such file or directory」
import MeCab で。
「ImportError: libmecab.so.2: cannot open shared object file: No such file or directory」