Edited at

MeCabの出力フォーマットを指定する方法

More than 1 year has passed since last update.

MeCabの出力フォーマットを指定する方法についてまとめます。


出力フォーマット指定方法 (正攻法)


オプション

オプション
指定するもの

-F, --node-format

通常の形態素の出力フォーマット

-U, --unk-format

未知語形態素の出力フォーマット

-B, --bos-format

Headerの出力フォーマット

-E, --eos-format

Footerの出力フォーマット


オプションに与える文字列

MeCab: Yet Another Japanese Dependency Structure Analyzerをご覧ください。

なお、%f[N]の指定方法についてはMeCab辞書について | Yuta Hayashibeを参考にすると良いかと思います。




$ echo "本日は晴天なり。" | mecab -F "%m\n"

本日

晴天
なり

EOS


出力フォーマット指定方法 (バッドノウハウ)

IPAdicの場合、上記の方法で出力フォーマットの変更が可能です。

しかし、それ以外の辞書 (-d {辞書のパス}オプションで指定) の場合、上記の通りにオプションを指定しても、出力フォーマットは変更されないかと思います。

これはMeCabのバグに起因するものであり、-O ""をオプションとして付与するというバッドノウハウを用いることで解消されます。



$ echo "本日は晴天なり。" | mecab -d /var/lib/mecab/dic/unidic -O "" -F "%m\n"

本日

晴天
なり

EOS

なお、この方法はMeCabのPythonバインディングの1つであるnatto-pyにおいても用いることが可能です (natto-py 0.9.0以降のみ)。


関連リンク


参考文献