ChaSen を PHP で動かす
2010年 04月 16日
Google検索などにも使われているマルコフ連鎖こと形態素解析。
今回は普通の文章も解析組み合わせできるようにPHPを追加。
PEAR info で事前にXML/RSSがインストールされてるかも確認!
>pear install pear_info[ENTER]
次
>pear install XML_RSS[ENTER]
これでPEARの確認はできるようになったので、以下。
ChaSenは文字コードがEUCなので、
以下のようにエンコードしてあげるとUTF8でも可能。
6、22行目注目。
function markov($text){
// ChaSenのパス
$chasen = '/usr/local/php/bin/chasen';
$text = mb_convert_encoding($text, "EUC-JP", "UTF-8");
//形態素解析をしたい文章を渡しつつ、ChaSenへのハンドルオープン
$handle = popen ("echo '$text' | $chasen ", 'r');
//結果を1行ずつ取得
while ($get_chasen = fgets($handle)) {
//ChaSenの結果がTAB区切りで帰ってくるので\tで分解
$kaiseki = split ("\t", $get_chasen);
//結果を表示
$res.= $kaiseki[0]." / ".$kaiseki[1]." / ".$kaiseki[2]." / ".$kaiseki[3]." / ".$kaiseki[4]." / ".$kaiseki[5]."\n";
}
//ハンドルを閉じる
pclose ($handle);
return mb_convert_encoding($res, "UTF-8");
}
こんな感じでうまく動作してくれる。
マルコフ連鎖にも使われている形態素解析、言語学も楽しいものです。
ヽ(´ー`)ノ
