PHPからMecabを利用する拡張モジュール
PHPからMecabを使いたかったので、Page2さんで公開されているPHP拡張モジュールを試してみた。試したのは、PHP5とMecab 0.95という組み合わせ。
- ソースのダウンロード
$ wget http://page2.xrea.jp/pub/php_mecab-0.2.0.tgz $ tar zxvf php_mecab-0.2.0.tgz
- コンパイルとインストール
$ cd php_mecab-0.2.0 $ /usr/bin/phpize $ ./configure --with-php-config=/usr/bin/php-config \ --with-mecab=/usr/bin/mecab-config $ make $ sudo make install
- 動作確認
<?php dl('mecab.so'); $t = new MeCab_Tagger(); $str = 'すもももももももものうち'; echo $t->parse($str);実行結果1
す 接頭辞,名詞接頭辞,*,*,す,す,* もも 名詞,普通名詞,*,*,もも,もも,代表表記:股 も 助詞,副助詞,*,*,も,も,* もも 名詞,普通名詞,*,*,もも,もも,代表表記:股 も 助詞,副助詞,*,*,も,も,* もも 名詞,普通名詞,*,*,もも,もも,代表表記:股 の 助詞,接続助詞,*,*,の,の,* うち 名詞,副詞的名詞,*,*,うち,うち,* EOS
問題なく動作しているようだけど、「すもも」が一つの名詞として認識されてなくて、「す」+「もも」という変な組み合わせになっている。次に辞書をJumanからipadicに変更してみる。
<?php dl('mecab.so'); $options = array('-d', '/var/lib/mecab/dic/ipadic'); $t = new MeCab_Tagger($options); $str = 'すもももももももものうち'; print $t->parse($str);実行結果2
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
今度はちゃんと認識してくれた。素晴らしい!










rsk said
on 2008-01-07 10:50 a.m.
紹介ありがとうございます。作者です。
あっちのサイトで告知し忘れていたのですが、最新版は↓にあります。
http://d.hatena.ne.jp/rsky/20071228/1...
0.2.0との違いはPHP 5.3/6.0に対応しただけなので、特にアップグレードしなくても大丈夫です。
weboo said
on 2008-01-07 5:46 p.m.
rskさん、ありがとうございます。
さらに新しいバージョンがあるんですね。MeCab extensionありがたく使わせてもらっています。ウノウラボのほうでも紹介させて頂きました。
http://labs.unoh.net/2008/01/keyword-...