[小ネタ] mecab + unidic で出力フォーマットを整形する方法

投稿者: | 2014年5月14日

編集長の佐藤(http://cocky.exblog.jp/)です。
最近当ブログも投稿が少ないのでちょっと小ネタをひとつ。

形態素解析といえばおなじみmecabですが、最近は標準のIPADICではなく、代わりにUniDicを使うケースがちょっとずつ出てきてます。特にVer.2.0.1以降はGPL/LGPL/BSDのトリプルライセンス化されたことでライセンス上の問題がなくなったので、その点でも使いやすくなりました。
ただmecabでUniDicを使うと、なぜか標準だと「–node-format」などの出力整形が効きません。しかもUniDicの場合、吊るしの状態で使うと「-Oyomi」などの出力フォーマット指定もできません(UniDicのdicrcに書いてないので当たり前ですが)。
でもIPADICと比べると、UniDicの方が辞書の収録語数などが圧倒的に多いので、どうしても「mecab + UniDicでふりがな生成したい」という局面が出てきます。

そこで便利な小ネタ。それは

「-Oオブションにブランクを指定する」

というだけです。

例えばmecab + UniDic Ver.2.1.2でふりがなだけを生成させたい場合は、

mecab -d /usr/local/lib/mecab/dic/unidic -O ” -F ‘%f[6]’ -U ‘%m’ -E ‘\n’

とやると、IPADICの「mecab -Oyomi」相当の出力を吐いてくれます。これ、ぐぐっても意外と出てこなかったので、困ってる人結構いるのではないかと思われ。