Kana解剖I

どきどきの新連載、「Kana解剖」第一回の今日はMeCabの話をしてしまおうかな、なんて思っています。ただ、僕が眠いので、いろいろと。あと、だいぶ昔に書いたコードなので*1効率が悪かったり無駄なことしてたり意味がわからなかったりする可能性も。実は僕にも未知の領域なのです(ぉ
MeCab配布元
MeCab形態素解析エンジンです。形態素とは、とかそういうのははてなダイアリーキーワードが勝手にどうにかしてくれると思うのでそこを見てくださいな。とにかく、こういうエンジンを利用して入力された日本語の文章を適切な形態素にバラしてくれるのが形態素解析エンジンです。いきなりPHPでの使い方いっちゃえ。

<?php
$str = "風速と桶屋の売り上げに相関関係は認められない。";
$mecab = "(MeCabのインストール先を指定)";
//パスが通ってたら"mecab"だけでいいと思います。
$handle = popen("echo $str | $mecab", "r");
//関係ないけど、クオーテーションはダブル派です。
while($ret = fgets($handle))  echo $ret;
//本当はこの中でいろいろ処理すべき。
pclose($handle);
?>

さて、こうするとどういう出力になるかというと、

風速      名詞,一般,*,*,*,*,風速,フウソク,フーソク
と        助詞,並立助詞,*,*,*,*,と,ト,ト
桶屋      名詞,固有名詞,地域,一般,*,*,桶屋,オケヤ,オケヤ
の        助詞,連体化,*,*,*,*,の,ノ,ノ
売り上げ  名詞,一般,*,*,*,*,売り上げ,ウリアゲ,ウリアゲ
に        助詞,格助詞,一般,*,*,*,に,ニ,ニ
相関      名詞,サ変接続,*,*,*,*,相関,ソウカン,ソーカン
関係      名詞,サ変接続,*,*,*,*,関係,カンケイ,カンケイ
は        助詞,係助詞,*,*,*,*,は,ハ,ワ
認め      動詞,自立,*,*,一段,未然形,認める,ミトメ,ミトメ
られ      動詞,接尾,*,*,一段,未然形,られる,ラレ,ラレ
ない      助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ
。        記号,句点,*,*,*,*,。,。,。
EOS

となるはずです。せっかく一行読みしてるので、一行ごとにsplit()関数で配列にしてあれこれするといいと思います。
さて、今日は眠いのでこの辺で。次回がもしあったらマルコフ連鎖での文章生成について語るんじゃないかな、と予告めいたものを。

*1:何もそれだけが原因ではあるまいが