# 出力フォーマット

$Id: format.html,v 1.9 2003/01/26 20:00:02 taku-ku Exp $;

MeCab は, ChaSen と同様, 出力のフォーマットを比較的自由に再定義することができます. また, 設定ファイルにフォーマットを複数記述しておき, 実行時にそれらを 切り変えることが可能です. これは, MeCab 独自の機能です.

## 出力フォーマットの指定

以下の 3つ出力フォーマットを変更することができます.

- node: 1つの形態素を出力, デフォルトは空文字
- bos: 形態素解析の結果に先だって出力 (header 的役割), デフォルトは空文字
- eos: 形態素解析の結果の後に出力 (footer 的役割), デフォルトは "EOS\n"

明示的に指定されない場合, それぞれのデフォルト文字列が使用されます.

これらは, 以下の 2つの方法で指定します.

- コマンドラインから

      % mecab --node-format=STR --bos-format=STR --eos-format=STR

- mecabrc に記述する場合

  任意の文字列 KEY を使い, mecabrc に以下のように定義.

      node-format-KEY = STR
      eos-format-KEY = STR
      bos-format-KEY = STR

  この KEY をコマンドラインから呼び出す.

      % mecab -Okey

## 出力フォーマット

%S | 入力文
%L | 入力文の長さ
%m | 形態素の表層文字列
%% | % そのもの
%c | 単語生起コスト
%H | 素性 (品詞, 活用, 読み) 等を CSV で表現したもの
%h | 素性の内部 ID
%pi | 形態素に付与されるユニークなID
%ps | 開始位置
%pe | 終了位置
%pC | 1つ前の形態素との連接コスト
%pw | %c と同じ
%pc | 連接コスト + 単語生起コスト (文頭から累積)
%pn | 連接コスト + 単語生起コスト (単独)
%pb | 最適パスの場合 *, それ以外は ' '
%pl | 形態素の表層文字列としての長さ
%ph0 | 後件状態番号
%ph1 | 前件状態番号
%ph2 | 前々件状態番号
%ppi | 未実装
%ppc | 未実装
%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 = %f[7]
    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[5],%f[7]\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
    eos-format-chasen  = EOS\n

## 注意事項

わかち書き出力 (-Owakati) と, デフォルトの出力 は, 高速性を犠牲にしたく ないために, ハードコーディングされています.

$Id: format.html,v 1.9 2003/01/26 20:00:02 taku-ku Exp $;