$Id: training.html,v 1.3 2003/05/11 16:56:42 taku-ku Exp $;
基本的に, cabocha -f1 の出力結果と同じフォーマットで学習データ を作成すれば, それが学習データとなります. cabocha -f1 の出力 結果を人手で修正するとことで作成できると思います.
実際には, どの機能の学習を行うかで, 学習データのフォーマットが変わります.
固有表現解析: cabocha -f1 -O1 -n1 の出力形式 文節区切り: cabocha -f1 -O2 -n0 の出力形式 係り受け: cabocha -f1 -O4 -n0 の出力形式京都大学コーパス を cabocha 用 係り受け学習データに変換するスクリプトが /usr/local/libexec/cabocha/kc2cabocha.pl としてインストールされます. 参考にしてみてください.
/usr/local/libexec/cabocha/kc2cabocha.pl 950101.KNP > train.dep
cabocha-config を --libexecdir という
オプション で起動し, libexec の
ディレクトリを表示させます.
そのディレクトリにある Makefile を利用し,
学習を行ないます. まず, Makefile をローカルディレクトリにコピーしてください.
% cabocha-config --libexecdir /usr/local/libexec/cabocha % cp /usr/local/libexec/cabocha .以下の手順で学習を行います.
固有表現解析 % make CORPUS=train.ne MODEL=case-study-ne train-ne 文節区切り % make CORPUS=train.chunk MODEL=case-study-chunk train-chunk かかり受け % make CORPUS=train.dep MODEL=case-study-dep train-dep
Makefileに与える時の必須パラメータとしてCORPUSと
MODELがあります.
CORPUSは,
前節で述べた学習データのファイルで,
MODELは, 学習後に作成されるモデルファイルや,
各種中間ファイルの prefix となります.
上記の例では, CORPUSに train.(ne|chunk|dep) を, MODELに case-study-(ne|chunk|dep)を指定しています.
学習後に, 下記のファイルが生成されます
case_study-*.log : 学習過程のログ case_study-*.model : バイナリ形式のモデル (アーキテクチャ依存) case_study-*.svmdata : 変換後の学習にデータ case_study-*.txtmodel.gz : テキスト形式のモデル (アーキテクチャ非依存)
case_study-(ne|chunk|dep).model が学習後のモデルです. このモデルを係り受け解析モデルとして使用します.
固有表現抽出 % cabocha -N case_study-ne.model < INPUT 文節区切り % cabocha -M case_study-chunk.model < INPUT 係り受け解析 % cabocha -m case_study-dep.model < INPUT
係り受け解析に用いる素性をユーザ側で再定義して学習,
解析を行うことが可能です.
具体的には, 自分で素性選択レイヤのプログラムを perl
等で記述し, その出力を, cabocha
の係り受け解析レイヤに入力するという流れになります.
素性には, 以下の 4つの種類があります. それぞれ任意の文字列として与えますが, 先頭の一文字 (Prefix)により区別されます.
これら4つの素性の関係を図示すると以下のようになります.
係り元と係り先の同定に,
図中の位置関係にある文節中の素性 F,G,A,B が使用
されます.
具体例としてこちらをご覧ください.
自分で素性を再定義した場合は,
素性選択レイヤまで終了したデータを使用するために,
INPUT_LAYER=3 というオプションを指定する必要があります.
テストデータも同様に素性選択レイヤまで終了したデータとして作成しておきます.
こちらに CaboChaの selector (入力データとして京大コーパスを指定)を Perl で実装したものがありますので参考にしてみてください.
% ./selector.pl < 950101.KNP > train.selected % make CORPUS=train.selected MODEL=foo INPUT_LAYER=3 train-dep % ./selector.pl < 950102.KNP | cabocha -m foo.model -I3 -O4 -f1
$Id: training.html,v 1.3 2003/05/11 16:56:42 taku-ku Exp $;
taku-ku@is.aist-nara.ac.jp