mecab
自然言語処理
形態素解析

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

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以降のみ)。

関連リンク

参考文献