about Mecab (2) 出力フォーマットの定義とその指定方法
ユーザによる出力フォーマットの定義とその指定方法
http://mecab.sourceforge.net/format.html
- node
- 一つの形態素を出力,デフォルトは空文字
- unk
- 一つの未知語形態素を出力、デフォルトはnodeと同一フォーマット
- bos
- 形態素解析の結果に先立って出力、デフォルトは空文字
- eos
- 形態素解析の結果のあとに出力,デフォルトは"EOS\n"
これらをもとに指定する。パラメータ詳細は後述。
指定方法
on commandline
mecab --node-format=STR --bos-format=STR --eos-format --unk-format=STR
mecabrcファイルに記述する方法
任意の文字列KEYを使って以下のように定義
node-format-KEY = STR
unk-format-KEY = STR
eos-format-KEY = STR
bos-format-KEY = STR
コマンドラインから呼び出すには
mecab -Okey
on python
import MeCab m = MeCab.Tagger("Okey")
出力フォーマットのパラメータ
%s | 形態素の種類(0:通常、1:未知語, 2:文頭、 3:文末) |
%S | 入力文 |
%L | 入力文の長さ |
%m | 形態素の表層文字列 |
%M | 形態素の空白文字を含む表層文字列 |
%h | 素性の内部ID |
%% | %そのもの |
%c | 単語生起コスト |
%H | 素性(品詞、活用、読み)などをCSVで表現したもの |
%t | 文字種id |
%P | 周辺確率 |
%pi | 形態素に付与されるユニークなID |
%pS | 形態素が空白文字列で始まる場合,その空白文字列を表示 %pS%mと%Mは同一 |
%ps | 開始位置 |
%pe | 集良一 |
%pC | 一つ前の形態素との連接コスト |
%pw | %cと同じ |
%pc | 連接コスト+単語生起コスト (文頭から累積) |
%pn | 連接コスト+単語生起コスト(その形態素単独 = %pw+%pC) |
%pb | 最適パスの場合*, それ以外は'' |
%pP | 周辺確率 |
%pA | blpha, forward log確率 |
%pB | beta, backward log確率 |
%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"をデリミタとして表示 ただし、要素が空の場合は以降表示が省略 ex) %F-[N1, N2] |
\s | ' '半角スペース |
例
# ChaSen node-format-chasen = %m\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t %f]5],\n #; 表層文字列 f[7] f[6] F[0]-F[1]-F[2]-F[3] f[4]f[5] unk-format-chasen = %m\t%m\t%F-[0,1,2,3]\t\t\n eos-format-chasen = EOS\n # 表層文字列 表層文字列F[0]-F[1]-F[2]-F[3]
f[n] ?csvファイルはどれだろう?