2015年4月29日水曜日

Mecabの辞書に単語を登録する方法

Mroongaを使ってタグクラウドを作った。
(作ったのはこちら⇒http://www.direc.biz/home/tags)

よく見ると「足つぼマッサージ」という文字列の分解結果に「つぼ」がでてこない。

Mroongaのトークナイザーに使っているMecabに「足つぼマッサージ」を投げてみると、
「つぼ」は「つ」と「ぼ」になっていた。「つぼ」という単語が辞書にない模様。

[goy@myserver tmp]$ echo "足つぼマッサージ" | mecab
足      名詞,一般,*,*,*,*,足,アシ,アシ
つ      助動詞,*,*,*,下二・タ行,基本形,つ,ツ,ツ
ぼ      動詞,自立,*,*,五段・ラ行,体言接続特殊2,ぼる,ボ,ボ
マッサージ      名詞,一般,*,*,*,*,マッサージ,マッサージ,マッサージ

Mecabの辞書にはシステム辞書とユーザー辞書がありどちらにも追加登録できるが、システム辞書は
しくったらめんどそうだったので今回はユーザー辞書に登録する。


ユーザー辞書への登録


/tmp/foo.csv をつくり以下のように記載。4項目は検索スコアだが、いったん適当にいれる。
つぼ,,,5279,名詞,一般,*,*,*,*,つぼ,ツボ

辞書に登録するコマンドを実行する。実行ユーザーのホームディレクトリに拡張子が.dicのユーザー辞書ができる。

[goy@myserver tmp]$ /usr/libexec/mecab/mecab-dict-index -d /usr/lib64/mecab/dic/ipadic -u goy.dic -f utf-8 -t utf-8 /tmp/foo.csv
emitting double-array: 100% |###########################################|



Mecabにユーザー辞書を読み込ませる


/usr/lib64/mecab/dic/ipadic/dicrc を開き 末尾にユーザー辞書の設定を追加


; ChaSen (include spaces)
node-format-chasen2 = %M\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
unk-format-chasen2 = %M\t%m\t%m\t%F-[0,1,2,3]\t\t\n
eos-format-chasen2 = EOS\n

userdic = /home/goy/goy.dic # ←ここを追加


再度Mecabで形態素解析をしてみると、、、

[goy@myserver ~]$ echo "足つぼマッサージ" | mecab
足      名詞,一般,*,*,*,*,足,アシ,アシ
つぼ    名詞,一般,*,*,*,*,つぼ,ツボ
マッサージ      名詞,一般,*,*,*,*,マッサージ,マッサージ,マッサージ

今度は「つぼ」に分解された!



関連記事:
Mroongaを使ったタグクラウドの作り方

0 件のコメント:

コメントを投稿