形態素解析をしよう(2)

形態素解析をしよう(2)

どうも、さむらいです。
前回スタートしました企画『改めて形態素解析について復習してみました。』の続きです。

<参照>
・bitWave過去記事『形態素解析をしよう(1)』。

今回の命題は前回の宣言通り『IGO-PHPが利用する辞書にユーザ辞書を登録し、絶対に「ファ」と「ラオ」を分けずに出力する編』です。

できるのか?
できたのか!?

まずはIGO-PHPが使う辞書の登録方法を調査

以下のサイトを参考にさせてもらいました。
http://takuti.me/note/hatena-keyword-to-ipadic/

ふむふむ。なるほどそうゆうことか。

ということで、辞書をコンパイルする時に、含めたい言葉が入ったCSVファイルを用意すればよいのだな?
それは簡単。

辞書作成

さっそく「ファラオ」を登録したCSVを辞書コンパイル用フォルダに突っ込んでみましょう。

image11

コマンドラインから以下のコマンドを投入

そして『MeCab』を起動して「ファラオ」を入力すると……、ドキドキ

キタ━━━━(゚∀゚)━━━━!! キィ━━タァ━━━━(゚∀゚)━━━━!!

前回の記事の最後の方は結構苦労してて時間切れになったのに、日を改めるって大事ですね。
でも、これはあくまでコマンドラインで成功しただけであって、IGO-PHPからも同様にできたかどうかは分かりません。

ということで、ここで再びコチラの記事の一部分を解析機にかけます。
ヒエログリフで壊れないかな……、ドキドキ、ドキドキ

image08

うん、だめ。
ぜんっぜん変わってない。

さむらいが作ったPHP から呼んでいる辞書はIGO-PHPの辞書で、それに「ファラオ」を入れたい。
なのにできない。

あれ、execコマンド使ってPHPから直接『MeCab』を呼び出して解析かけたらいいんじゃね?
(もはやIGO-PHPの存在異議が……)

よし、やってみよう。
そう思って、PHPファイルを開くと何やら怪しい文字が。

image10

ipadicって辞書のフォルダだよね。

ということは、これを先ほどうまく「ファラオ」が出てきた『MeCab』の辞書ディレクトリに変えてやれば、ひょっとしてひょっとする?
というわけで、mecab -Dで辞書の場所を確認してみました。
(以下図)

image09

「ファラオ」という単語が辞書で認識されてるのを確認できたら、あらためてPHPが読み込む辞書の場所を変更し、かつ、『IGO』でコンパイルした辞書もこのフォルダに突っ込んで、再度ヒエログリフを解析させる。

image01

キテルジャナイ━━━━(゚∀゚)━━━━!!
な、長かった….
一体、何回「ファラオ」って打ったんだろう……。
もう見たくないよ、ファラオ。

辞書作成まとめ

『IGO』の辞書はEUC-JPが前提なのに、ファラオ.csvはUTF-8で作っていたため、「ファラオ」が単語登録されなかった。『IGO』で辞書をコンパイルする時は、EUC-JPで登録したい単語ファイルを作成しよう!!

いや、ちょっとまて

元々辞書を作ることが目的ではないので、これをまとめとするとアレなんだけど、形態素解析のために何が必要で、何をしていくべきか結構理解できました。

とはいえ、調べている途中に最新の言葉が含まれている「mecab-ipadic-neologd」という辞書を見つけたので、最初からこれ使えばよかったんですけどね。

前回のブログで「次回に続く」って書いちゃったのに、これ(辞書)登録しました、じゃダメでしょ、と意地になっただけです。

みなさんはこのサイトを参考に、「ファラオ」以外の新しい言葉で形態素解析しちゃってください。

ではまた!

コメント