MeCab extensionで抽出した単語の出現数を出してみる
MeCab extensionの使い方がイマイチわからないまま。一つ一つ見て行ったりしてみました。
なにやら重要そうというか、サンプルにやたらあるのがnodeを利用した関数群。これなに?
おそらく、単語毎に細かく処理をしたりすることが出来るようにしてあるんだと思うのだけれど、活用方法が浮かばず。
まずは、名詞だけを抽出して、抽出した単語の出現数を出してみることにしました。
初めて、array_count_valuesなんていう関数を使いました。PHPは関数が多いなあ(Perlにも似た関数あるのかなあ)
- http://www.geocities.jp/researcherinus/perltips
- http://oranger.happy.nu/wiki/index.cgi?p=Perl%A5%E1%A5%E2#p9
<?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>"; ?>