日本語形態素解析のためのエンジンです。 現状一番広く使われているようです。
公式(http://taku910.github.io/mecab/)を参考。
mecab本体と辞書をインストールする必要があります。 辞書は幾つか種類がありますが、トラブル時の情報の多さから、IPA辞書を入れておくと良いでしょう。
今のご時世(2017年)なら、辞書の文字コードはeucではなくutf-8にしておいた方が便利でしょう。
./configure --with-charset=utf8
csv形式で、追加したい単語を記述します。
宇佐美,,,,名詞,固有名詞,人名,姓,*,*,うさみ,ウサミ,ウサミ いちか,,,,名詞,固有名詞,人名,名,*,*,いちか,イチカ,イチカ
非活用の単語は1行で済みますが、活用する単語は記述が少々面倒です。 詳しくは公式ページを参考ください。 ユーザー辞書に追加したい単語は、基本的に固有名詞かと思うので、活用形を持つ単語を登録する機会はないかと思うのですが。
https://taku910.github.io/mecab/dic.html
続いて、文脈IDやコスト値を学習モデルから自動的に補完します。手動で直接入れることも可能ですが、加減が悩ましいので自動で入れた方が良いです。
まずmecab-ipadicのモデルファイルをこちらから入手します。リンクが切れていたら、公式などから辿ってください。文字コードはeucになっているので、IPA辞書がそれ以外になっている場合は、変換が必要になります。巨大なファイルなので、emacsではなくviで開くと良いです。
$ vi mecab-ipadic-2.7.0-20070801.model
先頭付近にあるcharsetをutf-8に変更します。
charset: utf-8
続いてモデルファイル自体の文字コードを変換します。
$ nkf -w --overwrite ./mecab-ipadic-2.7.0-20070801.model
これで準備が整ったので、下記のコマンドを実行します。
$ /usr/local/libexec/mecab/mecab-dict-index -m ../mecab/mecab-ipadic-2.7.0-20070801.model\ -d /usr/local/lib/mecab/dic/ipadic -u output_dic.csv \ -f utf-8 -t utf-8 -a input_dic.csv
csvから辞書をコンパイルします。
$ /usr/local/libexec/mecab/mecab-dict-index -d/usr/local/lib/mecab/dic/ipadic -u usr.dic -f utf-8 -t utf-8 output_dic.csv
/usr/local/lib/mecab/dic/ipadic/dicrcを編集して、下記を追加します。これでユーザー辞書が使えるようになります。
userdic = /home/foo/bar/usr.dic
../mecab/mecab-ipadic-2.7.0-20070801.model is not a binary model. reopen it as text mode...
特にエラーメッセージではないです。
feature_index.cpp(81) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/feature.def
なぜかfeature.defがインストールされていなかったので、ダウンロードしたファイルの中にあったものを、コピーして解決です。
reading user_dic.csv ... context_id.cpp(96) [it != left_.end()] cannot find LEFT-ID for 名詞,固有名詞,人名,名.*,*,うさみ,*
これは幾つか原因がありそうですが、csvの記載内容が正しくない場合に出力されます。下記などをチェックしましょう。自分はまさかの後者でした。
viterbi.cpp(50) [tokenizer_->open(param)] tokenizer.cpp(130) [sysdic->isCompatible(*d)] incompatible dictionary: /home/var/foo/usr.dic
文字コードが異なっているかもしれません。辞書コンパイル時の文字コード指定が適切だったか確認しましょう。