発展的な使い方

English version

ここでは,パワーユーザのために,Enju の使い方・上級編を紹介します.


構文解析結果にアクセスする

Enju の文法は,単一化文法のための高速なパーザ UP を使うように設計されていま す.UP は,MAYZ ツールキット で提供されているパーザです.従って,UP のインタフェースを使って, 構文解析結果にアクセスし,様々な情報を取り出すことができます.例えば, HPSG の sign の素性構造や,解析にかかった時間やエッジ数などのプロファ イルを得ることができます.さらに,これらを利用する LiLFeS プログラムを 書くことで,自分用の出力を出させることができます.

実際,Enju がデフォルトで出力する依存関係や XML 出力は,LiLFeS プログ ラムで計算されています.ソースプログラムはパッケージの "enju/grammar/{outputdep.lil,outputxml.lil}"にありますので,そ ちらを参照して下さい.また,MoriV で構文解 析結果をブラウズするための CGI も,LiLFeS プログラムで書かれています. こちらは,"enju/grammar/moriv.lil" を見て下さい.

UP のインタフェースの詳細については,UP のマニュアルを参照してくだ さい.


文法を自分で作る

Enju のソースパッケージには,Penn Treebank から文法および確率モデルを 作るためのプログラムが含まれています.これらをユーザが書き換えて文法を 作り直すことで,文法を改良したり拡張したりすることができます.ただし, 文法を一から作り直すにはかなりのマシンパワーと時間が必要です(2.2 GHz Xeon, 2 GByte メモリで約一日).

文法を作るためのプログラムを使いこなすには,MAYZ ツールキットが使える 必要があります.詳しくは,MAYZ ツールキットのマニュアル を参照して下さい.また,各ソースプログラムの内容については,README に簡単な説明があります.さらに,amis 3.0 以上がインストールされている 必要があります.

また,リソースとして Penn Treebank II の .mrg ファイル(POS と木構造の 両方が付けられたファイル)と,stemming のために WordNet のデータファイ ル(index.noun, index.verb, noun.exc, verb.exc)が必要です.これらのファ イルを mayz/enju/Corpus/ ディレクトリの下に置いて下さい.

まずはじめに,Penn Treebank のデータを,MAYZ ツールキットで使えるよう に変換します.MAYZ ツールキットでは,一行につき一文,木構造が書かれて いる形式(.trees 形式) を想定しています.Penn Treebank の .mrg ファイル から.trees 形式に変換するための Perl スクリプトが tools/mrg2trees.prl で提供されています.Penn Treebank の .mrg ファイルを標準入力で与えると, 標準出力に .trees 形式で出力されます.例えば,Penn Treebank の Section 02 から Corpus/02.trees を作るには,mayz/enju/ ディレクトリで以下のコ マンドを実行します.

perl tools/mrg2trees.prl Corpus/02/*.mrg > Corpus/02.trees

デフォルトでは,Corpus/02-21.trees というファイルを入力としています.

次に,MAYZ をインストールする際,configure のオプションに --with-enju-grmmar を加える必要があります.

./configure --with-enju-grammar

このオプションをつけて configure をすると,Makefile に 文法を作るため のターゲットも含まれるようになります.後は,mayz/enju/ ディレクトリで make を実行すると,各ソースファイルのタイムスタンプに応じて,文法およ び確率モデルを作り直してくれます.


Enju の使い方 Enju ホームページ 辻井研究室
MIYAO Yusuke (yusuke@is.s.u-tokyo.ac.jp)