概要
mecab の出力フォーマットを指定したら、英単語が解析結果に出なくなってしまった問題とその解決。
mecab とは
mecab は形態要素解析ツール。
良く使うのは、日本語全文検索システムのための前処理として、日本語文章を分かち書き(品詞ごとに半角スペースで区切る事)する目的。
発生した問題
解析結果の形式を自分で指定する場合は設定ファイル mecabrc に下記の形式でフォーマットを指定する。
node-format-KEY = STR ← 通常単語の場合
unk-format-KEY = STR ← 未知の単語の場合
eos-format-KEY = STR ← 全ての解析結果の後に出力
bos-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
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
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)