PHPでMecab [2007/12/18]

形態素解析をする必要が出たので、PHPの『Mecab Extension』を組み込んで試してみました。

インストールは簡単で、サンプルプログラムを作って動作確認をしてみました。
『5本』が『5』と『本』に分かれてしまうのは仕方ないのか?

****[ソース]****
<?php
dl('mecab.so');
$mecab = mecab_new();

$str = '私には夢があります。ベッカム夢の夢 by 菊蔵下さいabcマートです。5本指。ABCマート。ABCマートです。123';

//名詞を格納する配列
$noun_array = array();

if ($node = mecab_sparse_tonode($mecab, $str))
{
while ($node)
{
$node_array = mecab_node_toarray($node);
//char_typeが2、5、7の単語を抽出
if($node_array["char_type"] == "2" || $node_array["char_type"] == "5" || $node_array["char_type"] == "7")
{
array_push($noun_array, $node_array["surface"]);
}

$node = mecab_node_next($node);
}
}
print_r($noun_array);
mecab_destroy($mecab);
?>


****[結果]****
Array
(
[0] => 私
[1] => 夢
[2] => ベッカム
[3] => 夢
[4] => 夢
[5] => by
[6] => 菊蔵
[7] => 下さい
[8] => abc
[9] => マート
[10] => 本
[11] => 指
[12] => ABC
[13] => マート
[14] => ABC
[15] => マート
)