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以降のみ)。
#関連リンク
-
Fix handling of
node-format
whenoutput-format-type
is set by polm · Pull Request #38 · taku910/mecab
MeCabのバグを修正する (と考えられる) Pull Request - Ubuntu 18.04 LTSのPythonでMeCabを動かす方法 - Qiita
#参考文献