お暑うございます。梅雨明け以来,ずーっと暑い日が続いている。こういう時には閉じこもっているに限る。ヒッキー体質のワシにはピッタリな気候ってことですな。
ままごとみたいなサーチエンジンシステムに検索IF(PHP)を取り付けて,MeCabをかませて自然言語処理に見せかける処理を行っているのだが,Windows環境だと,popen関数を使ってコマンドラインから
echo $keyword | mecab
とやって$keywordに入ってい文字列をMeCabに渡すようにしている。PHPのMeCab用ライブラリは既にあるようだが,まあ今のところ,処理速度にあまり拘っていないのでこの程度で何とかなっている。
ただ,echoはShift JISしかマトモに扱えないようで,UTF-8を処理するようにしてあるMeCabにUTF-8の$keywordをecho経由で渡すと一部文字化けを起こす(例えば「静岡県袋井市」を渡すと最後の「市」が分割されてしまう)。
仕方がないので,Win32 binaryのnkfを拾ってきて,$keywordはShift JISに変換しておき
echo $keyword | nkf --utf8 | mecab
と3段構えで渡すようにするとうまくいった。・・・が,いくらなんでも能率が悪すぎるので,いずれは改善が必要となろう。
明日は一コマ目から試験監督なのでもう寝ます。