MeCab を使って読み仮名を取得する方法
2007-06-20-3
出力フォーマットの指定すれば可能です.忘れやすいのでメモ.
$ echo 東京特許許可局 | mecab --node-format="%f[7]" --eos-format="\n"
トウキョウトッキョキョカキョク
- ref.: 出力フォーマット
http://mecab.sourceforge.net/format.html
- 追記 1
上記だと,以下のようなエラーが出ることがある.
tagger.cpp(172) [writer_.write(&ostrs_, str, n)] writer.cpp(322) [n < psize] given index is out of range
--unk-format="%M" オプションを追加すればエラーが出なくなった.
……というか,-Oyomi オプションだけで OK っぽい.うーむ.ドキュメントをよく見ていなかった.
- ref.: 出力フォーマットの変更
http://mecab.sourceforge.net/#format
- 追記 2
読み仮名だけに関して言えば MeCab 0.9x より MeCab 0.81 の方が精度がいいような気がする.
例えば,0.96 だと「北海道立図書館」は「ホッカイドウタテトショカン」,「函館市交通局」は「ハコダテイチコウツウキョク」になる.これ以外にも,○○市△△とかはうまくいかないことが多い.
0.81 の場合は,このあたりはうまくいく.
扱うものによるので一概には言えないけど,0.81 と 0.9x でのチェックは必要になりそう.
- 追記 3 (2007-08-21)
辞書のバグだった模様で、mecab-ipadic-20070801 で修正されています。
- [mecab-users 290] Re: 「立」「市」の読み仮名
http://lists.sourceforge.jp/mailman/archives/mecab-users/2007-August/00028 ...
- [mecab-devel 68] mecab-ipadic-20070801
http://lists.sourceforge.jp/mailman/archives/mecab-devel/2007-August/00006 ...