2009年11月02日

XREAでMeCab(PHPから使う)

「XREAでChasen(PHPから使う)」の記事のようなことで、結局形態素解析部分はPHPをCGI動作で使うと割り切ることにした(というかせざるを得なかった)ので、「どうせCGIならChasenじゃなくてMeCabも使えるんじゃね?」というわけで試してみることにした。
(/usr/local/bin/にmecabがあることは確認済み)

「XREAでChasen(PHPから使う)」でのテストコードの、$pathの内容を"/usr/local/bin/mecab"に変えただけのテストページを作って試してみたら、あっさり動作。ただし文字化け。

「UTF-8のままで良いのか?」と、mb_convert_encodingを使っているところを削除して再度トライ。正常な結果が得られました。

つまり

XREA(のs222サーバ)では、MeCabのデフォルトの文字コードはUTF-8

ということのようです。

以下にそのときのコード。
(今回の私の用途では品詞等の情報は不要で、単に文を分解できればそれで良かったので、MeCabを分かち書きモードで動作させてます)


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>MeCab 分かち書きテスト</title>
</head>
<body>
<?php
$path = '/usr/local/bin/mecab -O wakati';
$str = "浜松駅の耐震工事のために長いこと利用できなかったekimachi eastの工事が、予定通り3月15日までに終了した。これでマクドナルドやミスドにまた行けるようになったし、地下の谷島屋も復活した。";

$results = popen ("echo $str | $path ", 'r');
while ($chasen_result = fgets($results)) {
 echo $chasen_result.'
';
}
pclose ($results);

?>
</body>
</html>


まあ、ちょっとしたテストコードなんで、変数名が$chasen_resultのまんまだったりするのは…気にしない。


ラベル:XREA mecab PHP
posted by 管理者 at 10:40| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。