めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

MeCab extensionで抽出した単語の出現数を出してみる

MeCab extensionの使い方がイマイチわからないまま。一つ一つ見て行ったりしてみました。
なにやら重要そうというか、サンプルにやたらあるのがnodeを利用した関数群。これなに?
おそらく、単語毎に細かく処理をしたりすることが出来るようにしてあるんだと思うのだけれど、活用方法が浮かばず。

まずは、名詞だけを抽出して、抽出した単語の出現数を出してみることにしました。
初めて、array_count_valuesなんていう関数を使いました。PHPは関数が多いなあ(Perlにも似た関数あるのかなあ)

<?php
dl('mecab.so');
$mecab = mecab_new();

$str_log = <<<EOS
MeCab extensionの使い方がイマイチわからないまま。一つ一つ見て行ったりしてみました。
なにやら重要そうというか、サンプルにやたらあるのがnodeを利用した関数群。これなに?
おそらく、単語毎に細かく処理をしたりすることが出来るようにしてあるんだと思うのだけれど、活用方法が浮かばず。
EOS;

$GLOBALS['mecab_ipadic_posid_range_noun'] = range(36, 67);

print "元の文<br>" . $str_log;

print "Mecabの情報<br>";
print_r(mecab_dictionary_info($mecab));

function noun_filter($node_info)
{
    return in_array($node_info['posid'], $GLOBALS['mecab_ipadic_posid_range_noun']);
}

print "<pre>";
var_dump( array_count_values( mecab_split($str_log, null, null, 'noun_filter') ) );
print "</pre>";
?>