Python上でMeCabを使う

GCCのインストール

CentOSGCCが入っていないことがあるので、インストールしておく。GCCがないとMeCab入らない。

% yum install glibc glibc.i386
% yum install gcc*   

gcc*でgcc関連のモジュール全部入れる)

MeCabを入れるためのステップは、次のとおりになる。

MeCabのインストール

% wget http://downloads.sourceforge.net/mecab/mecab-0.97.tar.gz
% tar xvfz mecab-0.97.tar.gz
% cd mecab-0.97/
% ./configure
% make
% su 
$ make install

辞書ipadic2.7.0 のインストール

./configure のときに --with-charset=utf8 オプションをつけると、辞書の文字コードUTF-8 になる。つけなければデフォルトの EUC-JP になる。

% wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
% tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz
% cd mecab-ipadic-2.7.0-20070801
% ./configure --with-charset=utf8
% make
% su 
$ make install

Pythonバインディングのインストール

wget http://downloads.sourceforge.net/mecab/mecab-python-0.97.tar.gz
% tar xvfz mecab-python-0.97.tar.gz
% cd mecab-python-0.97
% su
# python setup.py install

本当にバイディングできたのか、テストする。

$ python
>>> import MeCab
>>> m = MeCab.Tagger()
>>> print m.parse("本日は良い天気です")

コンパイルミスへの対応

crt1.oが無い
/usr/bin/ld: crt1.o: No such file: No such file or directory

と出てきて、configureがこけることがある。このメッセージはファイルcrt1.oが見つからないという意味。
crt1.oは、コンパイル時にgccが内部的にリンクするファイルで、glibc-develパッケージに含まれるモジュールなので、glibc-develをインストールする。

# yum install glibc
# yum install glibc-devel
g++が無い
configure: error: Your compiler is not powerful enough to compile MeCab.
If it should be, see config.log for more information of why it failed.

gcc-c++が無いと、こういうエラーが出現するみたい。gcc-c++をいれると解決する。

$ sudo yum install gcc-c+
libmecab.so.1が無い
/usr/local/libexex/mecab/mecab-dict-index: error while loading shared libraries:libmecab.so.1: cannot open shared object file: No such file or directory

mecab をインストールしただけの状態では、IPA辞書のインストール時に libmecab.so.1 が見つからないというエラーが発生する。 libmecab.so.1 は /usr/local/lib/libmecab.so.1 にインストールされているが、標準設定では /usr/local/lib/ 配下のライブラリが読み込まれないようになっている。

これを読み込ませるために /etc/ld.so.conf ファイルを編集する必要がある。このファイルを修正したらldconfigを実行して、ライブラリ読み込みパスの更新する

# vi /etc/ld.so.conf
/usr/local/lib (この1行を追加)
# ldconfig
# exit
pyhton.hが無い

python-develに含まれているので、インストールしましょう。

$ yum install python-devel