概要
MeCab は, ChaSen と同様, 出力のフォーマットを比較的自由に再定義することができます. また, 設定ファイルにフォーマットを複数記述しておき, 実行時にそれらを 切り変えることが可能です. これは, MeCab 独自の機能です.
出力フォーマットの指定
以下の 3つ出力フォーマットを変更することができます.
- node: 1つの形態素を出力, デフォルトは空文字
- unk: 1つの未知語形態素を出力, デフォルトは node と同一フォーマット
- bos: 形態素解析の結果に先だって出力 (header 的役割), デフォルトは空文字
- eos: 形態素解析の結果の後に出力 (footer 的役割), デフォルトは “EOS\n”
- eon: N-best出力で, N-Bestの出力が終了したときに出力, デフォルトは空文字列
明示的に指定されない場合, それぞれのデフォルト文字列が使用されます.
これらは, 以下の 2つの方法で指定します.
コマンドラインから
% mecab --node-format=STR --bos-format=STR --eos-format=STR --unk-format=STR --eon-format=STR
mecabrc に記述する場合
任意の文字列 KEY を使い, mecabrc に以下のように定義.
node-format-KEY = STR
unk-format-KEY = STR
eos-format-KEY = STR
bos-format-KEY = STR
eon-format-KEY = STR
この KEY をコマンドラインから呼び出す.
% mecab -Okey
出力フォーマット
フォーマット | 意味 |
---|---|
%s |
形態素種類 (0: 通常, 1: 未知語, 2:文頭, 3:文末) |
%S |
入力文 |
%L |
入力文の長さ |
%m |
形態素の表層文字列 |
%M |
形態素の表層文字列, ただし空白文字も含めて出力 (%pS を参照のこと) |
%h |
素性の内部 ID |
%% |
% そのもの |
%c |
単語生起コスト |
%H |
素性 (品詞, 活用, 読み) 等を CSV で表現したもの |
%t |
文字種 id |
%P |
周辺確率 (-l2 オプションを指定したときのみ有効) |
%pi |
形態素に付与されるユニークなID |
%pS |
もし形態素が空白文字列で始まる場合は, その空白文字列を表示 %pS%m と %M は同一 |
%ps |
開始位置 |
%pe |
終了位置 |
%pC |
1つ前の形態素との連接コスト |
%pw |
%c と同じ |
%pc |
連接コスト + 単語生起コスト (文頭から累積) |
%pn |
連接コスト + 単語生起コスト (その形態素単独, %pw + %pC ) |
%pb |
最適パスの場合 * , それ以外は ' ' |
%pP |
周辺確率 (-l2 オプションを指定したときのみ有効) |
%pA |
blpha, forward log 確率 (-l2 オプションを指定したときのみ有効) |
%pB |
beta, backward log 確率 (-l2 オプションを指定したときのみ有効) |
%pl |
形態素の表層文字列としての長さ, strlen (%m ) と同一 |
%pL |
形態素の表層文字列としての長さ, ただし空白文字列も含む, strlen (%M ) と同一 |
%phl |
左文脈 id |
%phr |
右文脈 id |
%f[N] |
csv で表記された素性の N番目の要素 |
%f[N1,N2,N3...] |
N1,N2,N3番目の素性を, “,” をデリミタとして表示 |
%FC[N1,N2,N3...] |
N1,N2,N3番目の素性を, C をデリミタとして表示.ただし, 要素が 空の場合は以降表示が省略される. (例)%F-[0,1,2] |
\0 \a \b \t \n \v \f \r \\ |
通常の エスケープ文字列 |
\s |
’ ’ (半角スペース) 設定ファイルに記述するときに使用 |
例
dicrc より抜粋した例
; yomi
node-format-yomi = %pS%f[7]
unk-format-yomi = %M
eos-format-yomi = \n
; simple
node-format-simple = %m\t%F-[0,1,2,3]\n
eos-format-simple = EOS\n
; csv
node-format-csv = %m,%f[7],%f[8],%f[6],%F-[0,1,2,3],%f[4],%f[5]\n
unk-format-csv = %m,%m,%m,%f[6],%F-[0,1,2,3],,\n
eos-format-csv = EOS,,,,,,\n
; ChaSen
node-format-chasen = %m\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
unk-format-chasen = %m\t%m\t%m\t%F-[0,1,2,3]\t\t\n
eos-format-chasen = EOS\n
注意事項
わかち書き出力 (-Owakati
),
デフォルトの出力, 出力ダンプ (-Odump
) は
高速性を犠牲にしたく ないために, ハードコーディングされています.