概要
Mecab 0.996 + unidic2.1.2
MeCabにunidic辞書を使用する場合、バイナリ辞書、ソース辞書のどちらのインストール方法を取ってもデフォルトのdicrcには出力フォーマットとしてのyomi形式が定義されていないため、エラーとなる。
$ echo "日本語の文章" | mecab -d /usr/local/lib/mecab/dic/unidic -Oyomi
writer.cpp(63) [!tmp.empty()] unkown format type [yomi]
Googleで検索をしてみると、次のページがヒットする。
[小ネタ] mecab + unidic で出力フォーマットを整形する方法
このサイトは参考になったが、しかしながら、この方法はあまり賢くない上に少しだけ間違っている。
それは、次のような例の時におかしくなる。
$ echo "言ってた" | mecab -d /usr/local/lib/mecab/dic/unidic -O '' -F '%f[6]' -U '%m' -E '\n'
イウテルタ
方法
コマンドラインに指定しているオプションをdicrcファイルに定義する。
そして、正しいフィールドを出力するようにする
/usr/local/lib/mecab/dic/unidic/dicrc
; 末尾に以下を追加
; yomi
node-format-yomi = %f[9]
unk-format-yomi = %m
eos-format-yomi = \n
node-format-yomiのフィールド番号は9番を指定する。
参考サイト、6番目は語彙素読み。9番目が発音形出現形となっているため。
この設定ののち、次のように利用できる。
$ echo "日本語の文章" | mecab -d /usr/local/lib/mecab/dic/unidic -Oyomi
ニッポンゴノブンショー
$ echo "言ってた" | mecab -d /usr/local/lib/mecab/dic/unidic -Oyomi
イッテタ