MeCab を使って読み仮名を取得する方法

  出力フォーマットの指定すれば可能です.忘れやすいのでメモ.

$ 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 ...