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
今度はちゃんと認識してくれた。素晴らしい!






