確率モデル

English version

Enju の確率モデルは,log-linear model というモデルになっています.入力 文を s, 構文木を t とすると,以下の式で確率値を与えます.

p(t|s)=1/Z exp( sum( l_i f_i(t,s) ) )

f_i(t,s) は確率モデルにおける素性(素性構造の素性とは 違う意味)です.t, s がある特徴を満たすとき,0 以外の値をとる関数です. つまり,t, s の特徴を実数空間に写像するための関数です.l_i は各素性に対 応する重みで,確率モデルのパラメタです.パラメタ推定プログラムが自動的 に最適な l_i を計算します(詳しくは,Feature forest モデルを参照して下さい).Z は,全ての t について p(t|s) を 足したときに1になるように正規化するための項です.

上のモデルを用いて曖昧性解消を行うには,p(t|s) を最大にする t を求めれ ばよいことになります.ここで式をよく見ると,Z は定数なので,曖昧性解消 を行うためには計算する必要がないことがわかります.また,exp も単調増加 関数なので,計算する必要がありません.従って,構文解析の際には,

sum( l_i f_i(t,s) )
だけ計算すればよいことになります.この値は,構文木のもっともらしさを表 す値なので,FOM (figure-of-merit) と呼ぶことにします.

Enju の現在の実装では,f_i(t,s) はスキーマ適用の特徴を表す関数になって います.従って,構文解析の際,スキーマ適用が成功した後に,そのスキーマ 適用に対する FOM を足していけば,構文木全体の FOM が計算できます.

スキーマ適用の FOM は,以下のような手順で計算されます.

  1. 確率イベントを表す文字列リストを作る
  2. 文字列リストにマスクをかけて素性を作る
  3. 素性の重みを得る

以下,それぞれについて説明します.

確率イベントを作る

準備中です…

マスクをかけて素性を作る

準備中です…

素性の重みを得る

準備中です…
Enju 開発者用マニュアル Enju ホームページ 辻井研究室
MIYAO Yusuke (yusuke@is.s.u-tokyo.ac.jp)