Enju 文法の構造

English version


Sign の構造

Enju の文法は,Head-driven Phrase Structure Grammar (HPSG) という文法 理論に基づいています.この文法理論では,言語の構文に関する制約を,型付 き素性構造(typed feature structure)で表します.型付き素性構造について は,LiLFeS ホー ムページの説明を見て下さい.

HPSG の大きな特徴として,構文に関する制約のほとんどは単語の辞書項目(語 彙項目,lexical entry)に記述し,CFG の文法規則に相当する規則は数を少な く(Enju では10個),一般的規則性を記述するにとどめます.これは,文がと りうる構造の制約は,大部分が単語によって決定されるという観察からきてい ます.

単語,および単語を組み上げた句の統語的制約は,signというデー タ構造で表されます.Enju における sign は,基本的に [Pollar and Sag, 1994] および LinGO English Resource Grammar (ERG) を参考にしていますが,complex constraint や Minimal Recursion Semantics (MRS) を使わないように変更,簡単化されてい ます.

PHON: 句がカバーする単語列
SYNSEM
LOCAL
CAT
HEAD 句の主辞(head)から規定される制約
MOD: 修飾先の句の制約
POSTHEAD: 後ろから修飾するか否か
VAL 句の下位範疇化フレーム
SUBJ: 句が左側にとる句の制約
COMPS: 句が右側にとる句の制約
SPR: 句が左側にとる限定詞句の制約
SPEC: 限定詞の係り先の句の制約
CONJ: 並列句にとる句の制約
CONT: 述語項構造
CONX: 現在は使われていません
NONLOCAL 長距離依存関係の制約
INHER 娘から受け継がれる長距離依存制約
QUE: 現在は使われていません
REL: 関係節の先行詞になる句の制約
SLASH: 長距離依存関係にある句の制約
F_REL: 現在は使われていません
TO_BIND この句が打ち消す長距離依存制約
QUE: 現在は使われていません
REL: 関係節の先行詞になる句の制約
SLASH: 長距離依存関係にある句の制約
F_REL: 現在は使われていません

「句の制約」では,実際には細かい文法素性(品詞,agreement, 時制,格など) で,とりうる句の細かい文法的制約を記述しています.

CONT素性には,その句の predicate-argument structure が格納されます. Predicate-argument structure は,単語の意味的な主語,目的語関係を記述 しています.従って,文全体を解析した時,そのトップノードの sign の CONT 素性を見ると,文全体の predicate-argument structure を得ることが できます.

Enju の sign で使われている型,素性は,全て "enju/types.lil" で定義さ れています.詳しい型階層については,そちらを参照して下さい.


システムアーキテクチャ

Enju では,単一化文法のための汎用パーザ UP (mayz パッケージに含まれて いる)を利用します.UP は,語彙項目,文法規則を渡すインタフェースを実装 し,入力文を渡すと,構文解析を行ないます.UP に渡すデータは以下の図の ようにして作られます.

文法のアーキテクチャ

入力文は,sentence_to_word_lattice/2に渡され,extent (単語の 情報と,その位置の組)のリストを word lattice として出力します.その word lattice が,UP に渡され,構文解析が行なわれます. sentence_to_word_lattice/2では,まず,入力文は品詞タガーにか けられ(external_tagger/2),その出力(文字列)をスペースで単語に 区切り,stemming 等を行ないます.sentence_to_word_lattice/2 は,"enju/grammar.lil" で実装されています.品詞タガーはデフォルトでは uptagger ですが,enju の -t オプション(または initialize_external_tagger/2)で変更することができます.

語彙項目を渡すためのインタフェース(lexical_entry/2, lexical_entry_sign/2)は,2つのデータベースを用いて語彙項目を 作ります.一つは,単語をキーとして,その単語に割り当てられる語彙項目の テンプレート名を取得します(lookup_lexicon/2).もう一つは,テ ンプレートの名前をキーとして,実際の素性構造を取得します (lookup_template/2).これらで得られる語彙項目テンプレートに, 単語固有の情報(PHON 素性など)を埋めて,最終的な語彙項目が返されます. このインタフェースは "enju/grammar.lil" で実装されています.

文法規則のインタフェースは,"enju/schema.lil" で実装されています. schema.lil では娘の sign から親の sign を作る句構造規則や,娘の意味構 造から親の意味構造を作る規則が実装されています.


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