MeCab for Win での単語追加 [日記]
形態素解析ツールの「MeCab (和布蕪)」を使ってみた。
で、単語を追加するのに(ユーザ辞書を作るのに)色々と苦労したので、メモっておく。
ちなみに、以下の話は、コンパイル済みのMeCab 0.95 for Windows(mecab-0.95.exe)の話。
単語の追加方法は
http://mecab.sourceforge.net/dic.html
にあるので、その通りにやってみた。
まず、登録する単語(エントリ)をCSVファイルに書きます。
ユーザ設定,-1,-1,10,名詞,一般,*,*,*,*,ユーザ設定,ユーザセッテイ,ユーザセッテイ,追加エントリ
ここで1つ目の落とし穴。
マニュアルには、左文脈IDと右文脈ID(CSVの2つ目と3つめの値)は
『-1 としておくと, mecab-dict-index が自動的に ID を付与します.』
と書いてある。
しかし、実際は-1にすると辞書の作成に失敗する。
というか、rewrite.defというファイルが無いと言われる(もっともrewrite.defを用意しても、うまく行かないが…)。
辞書ファイル(mecab-ipadic-***-***.tar.gz)に付属のleft_id.def、right_id.defから左文脈IDと右文脈IDを探して、自前で指定しなければいけませんでした。
(ちなみに、一般名詞のIDは 1285)
無事にユーザ辞書が出来たので、それを有効にします。
マニュアルに依ると、{インストールディレクトリ}\etc\mecabrc ファイルを編集して
userdic = ユーザ辞書名
と追加すれば良いらしい。
そして2つ目の落とし穴。
userdic は : をデリミタに複数指定可能
つまり、
userdic = c:\work\mydic.dic
と書くと、「c
」と「\work\mydic.dic
」の2つが指定されていることになって、『“c”なんてファイルは無い』とエラーになる。
仕方がないので、辞書をカレントディレクトリに置いて、相対パス指定にすることで対処しました。
辞書は出来た。設定も出来た。
さぁ実行だ。
………。最後の落とし穴。
「ユーザ辞書とシステム辞書に互換がない」とか言われる。
原因は、これ。
辞書を作るツール「mecab-dict-index.exe」は、デフォルトで文字コード「SHIFT-JIS」の辞書を作ります。
付属のシステム辞書は、文字コード「shift_jis」で作られています。
文字コードが「SHIFT-JIS」と「shift_jis」で異なるので、互換性がない………
………
………
………
うがーーーーっ!!
メーリングリストにも同じことで悩んでいる人が居ました。
フォローが付いていないけど、解決してるかな?
そんなわけで、まとめ。
- 文脈IDは、ちゃんと書く。
- ユーザ辞書はカレントドライブの何処かにおいて、ドライブの指定はしない
- ユーザ辞書の文字コードがshift_jisになるように指定する。
今日の一冊 | |
|
コメント 0