MeCabにユーザ辞書を追加する方法

2010年2月14日

MeCabの辞書登録方法には、ipadicなどのシステム辞書を一気に更新してしまう方法と ユーザ辞書を追加で登録する方法があります。/usr/local/etc/mecabrcの編集権限が あるならば、いつでも追加登録する辞書を切り替えられる点で後者の方が楽でしょう。

辞書の作成方法については、本家の 解説サイトを見てください。ここでは、以下の例(hoge.csv)を追加用ファイルとして用います。 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
【hoge.csv】

AOC,-1,-1,3049,名詞,固有名詞,一般,*,*,*,AOC,AOC,AOC
AOCホールディングス,-1,-1,3013,名詞,固有名詞,一般,*,*,*,AOCホールディングス,AOCホールディングス,AOCホールディングス
AOCワインの一覧,-1,-1,3016,名詞,固有名詞,一般,*,*,*,AOCワインの一覧,AOCワインの一覧,AOCワインの一覧
AOD,-1,-1,3049,名詞,固有名詞,一般,*,*,*,AOD,AOD,AOD
AOE,-1,-1,3049,名詞,固有名詞,一般,*,*,*,AOE,AOE,AOE
AOE1,-1,-1,3036,名詞,固有名詞,一般,*,*,*,AOE1,AOE1,AOE1
AOE2,-1,-1,3036,名詞,固有名詞,一般,*,*,*,AOE2,AOE2,AOE2
AOE3,-1,-1,3036,名詞,固有名詞,一般,*,*,*,AOE3,AOE3,AOE3
AOJ,-1,-1,3049,名詞,固有名詞,一般,*,*,*,AOJ,AOJ,AOJ
AOKI,-1,-1,3036,名詞,固有名詞,一般,*,*,*,AOKI,AOKI,AOKI
AOKIホールディングス,-1,-1,3012,名詞,固有名詞,一般,*,*,*,AOKIホールディングス,AOKIホールディングス,AOKIホールディングス
AOL,-1,-1,3049,名詞,固有名詞,一般,*,*,*,AOL,AOL,AOL

辞書を追加する際は、上記のようなフォーマットに従ったcsvファイルが必要となります。 また、MeCabをインストールした時に設定した辞書ファイル中にある、left-id.defright-id.def の文字エンコーディングと上記hoge.csvのそれが合致していないと、辞書構築中にエラーとなりますので 注意してください。今回の例では、left-id.defright-id.defがeuc-jpだったため、hoge.csvも euc-jpに変換します。

1
$ nkf -e hoge.csv > hoge_euc.csv

準備が整ったら、CSVファイルから辞書ファイルを構築します。これには以下のようなコマンドを用います。

1
$ /usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic/ -u ~/hoge.dic -f euc-jp -t utf8 hoge_e uc.csv

コマンドの意味としては、システム辞書へのパスを「-d」オプションで指定し、 「-u」オプションで生成する辞書ファイル名を指定します。 「-f」オプションは入力となるCSVファイルの文字コード(ここではhoge_euc.csvの文字コード)、 「-t」オプションは出力される辞書ファイルの文字コード(ここではhoge.dic)となります。 辞書ファイル(hoge.dic)の文字コードが異なるものになると、mecab実行時に辞書データとして 機能しないので注意してください。MeCabが期待している入力ファイルの文字コードがutf8ならばutf8、 euc-jpならばeuc-jpと指定しましょう。


上記コマンドを実行すると、「hoge.dic」という辞書ファイルが生成されていますので 確認してみてください。 後は、設定ファイルに生成したhoge.dicを登録するだけです。
1
2
$ sudo emacs /usr/local/etc/mecabrc
  userdic = ~/hoge.dic

なお、複数の辞書を登録したい時は、userdicという項目にカンマ(,)区切りで続けて指定すれば OKです。おためしあれ。