MeCab PHP extension moduleを使ってみた

3年ぐらい前に欲しいなーと思っていたMeCabのPHPモジュールが最近リリースされたようです。DBから取り出したレコードごとに形態素解析したいときなどはPHPから呼び出せると便利。

» Page2 MeCab extension

手元のマシンはmecabが0.90だったのですがconfigure時にmecab_new2のところでエラー。

configure: error: wrong MeCab library version or lib not found.

[mecab-users 86] Re: C ライブラリで “Undefined symbol” となる関数がある

既知の問題だったので最新の0.91をコンパイルし直したらインストールできました。
サンプルのコードはソースの中にもありますがよりシンプルな例を以下に。

<?php
dl('mecab.so');
$mecab = mecab_new();
$str = '私の名前は船木です。';
echo mecab_sparse_tostr($mecab, $str);
mecab_destroy($mecab);

原形を取り出す。MeCabの出力時のフォーマットをちゃんと与えればこんなパースは不要かもしれませんが手っ取り早くやりたいときに。

<?php
dl('mecab.so');
$mecab = mecab_new();
$str = $argv[1];
$buf =  mecab_sparse_tostr($mecab, $str);
$res = array();
$tmp = explode("\n", $buf);
if (is_array($tmp)) {
    foreach ($tmp as $val) {
        $data = explode(',', $val);
        if (isset($data[6])) {
            $res[] = $data[6];
        }
    }
}
mecab_destroy($mecab);
print_r($res);

なお、配布元のサイトは今回初めてアクセスしたのですがPHPのExtensionがたくさんあって充実した趣き。HyperEstraierのも試してみたいところです。

This entry was posted in いじる. Bookmark the permalink. Both comments and trackbacks are currently closed.

One Trackback

Page optimized by WP Minify WordPress Plugin