Kill one bird with two stones.

情報推薦、情報抽出を研究している大学院生の基本的にやったことのメモとか

PHPでMeCabを使う

PHPMeCabを使うにあたり、いろいろとつまづいたからメモ的に残しておこうって記事。
参考にしたページは
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
http://www.programming-magic.com/20080808173652/:MeCabで形態素解析してみた
やべぇ、間に合わねぇwww Apache2.2とPHP5.3でMecabを動かす(Ubuntu 10.04)
php_mecabのインストールに凄くハマりました(時間を費やしたという意味で)
ちなみに環境は
Ubuntu 11.10
Apache2.2.20
PHP5.3.6
PHPではPEARが使えるようにしておく

まず、MeCabのインストールから
注意することは、最新の0.99じゃなくて0.98を使うこと。
php_mecabのインストールに凄くハマりました(時間を費やしたという意味で)で説明がある通り、最新版だと

MeCab::Node:(begin|end)_node_list メンバの削除

のため、後から導入するモジュール的なものが動かないらしい。

そのため、MeCabのバージョンは0.98とする。
Mecabの前にCコンパイラがインストールされていない場合インストールする

apt-get install make g++


ひとまずMeCab0.98のインストール
utf-8環境で動かすことを想定。

$wget http://mecab.googlecode.com/files/mecab-0.98.tar.gz
$tar zxvf mecab-0.98.tar.gz
$cd mecab-0.98
$./configure --with-charset=utf8
$make
$make install

これでインストール完了

$MeCab

してみるとたぶんエラー吐かれると思うので
ライブラリをシステムに認識させるために

$ldconfig

すればOK

次に辞書のインストール

$wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
$tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$mecab-ipadic-2.7.0-20070801
$./configure --with-charset=utf8
$make
$make install

たぶんこれで辞書のインストール完了

$MeCab

して適当な文字列入れると解析されるはず。

次にPHP_MeCabのインストール

$pear channel-discover pecl.opendogs.org
$pear remote-list -c opendogs
$pear install opendogs/mecab-beta

でインストールできるはず。
できない場合php5-devを導入

$apt-get install php5-dev

うまくいってるとextension=mecab.soを加えてねってメッセージが出ると思うから
php.iniに追加。
php.iniの場所はphpinfoなりで見ればわかるはず。
ちなみに私の環境では/etc/php5/apache2/php.ini

適当な場所に変更を加えてapache2を再起動して
http://www.programming-magic.com/20080808173652/:MeCabで形態素解析してみた

のサンプルプログラム動かせばうごくはず




//本当は新はてなブログで書こうと思ったんだけど、めんどくさくなってこっちで書いた