mecab の出力フォーマット…英単語が消えた

概要

mecab出力フォーマットを指定したら、英単語が解析結果に出なくなってしまった問題とその解決。

mecab とは

mecab は形態要素解析ツール。
良く使うのは、日本語全文検索システムのための前処理として、日本語文章を分かち書き(品詞ごとに半角スペースで区切る事)する目的。

発生した問題

解析結果の形式を自分で指定する場合は設定ファイル mecabrc に下記の形式でフォーマットを指定する。

node-format-KEY = STR ← 通常単語の場合
unk-format-KEY = STR ← 未知の単語の場合
eos-format-KEY = STR ← 全ての解析結果の後に出力
bos-format-KEY = STR ← 解析結果の前に出力

「明示的に指定されない場合, それぞれのデフォルト文字列が使用されます。」とあったため、以下のように2行のみを指定したら、英単語の結果が出力されなくなってしまった。

; hinshi
node-format-hinshi = %m\t%f[0]\n
eos-format-hinshi = \n

解決

未知語の出力指定「unk-format-KEY」のデフォルトは「node と同一フォーマット」となっていたので自動的にコピーされるのかと思ったが、セットで明示しないと空文字になってしまうらしい。
英単語=未知語で出力が無くなった。

以下の設定で期待通りでした。

; hinshi
node-format-hinshi = %m\t%f[0]\n
unk-format-hinshi = %m\t%f[0]\n
eos-format-hinshi = \n

ちなみに、これだと出力は

分割した単語(タブ)品詞大分類(改行)

となります。

動作確認バージョン

mecab of 0.97 (Windows)