Next: Up: Previous:

PAXの原理

PAXの原理をCKYアルゴリズムとの違いを明らかにしながら説明すると以下 のようになる. CKYアルゴリズムにおいて, ある tex2html_wrap_inline1926 に非終端記号xが 生成された(つまり, 解析木の言葉でいえば, 文 tex2html_wrap_inline1930 に対す る, 記号xを根に持つ解析木ができた)場合, ここからさらに, この解析木を 左または右の子に持つ, より大きな解析木が構築可能になる. 具体的には,
tex2html_wrap_inline1934 という生成規則によって, tex2html_wrap_inline1936 が生成され る
かまたは,
tex2html_wrap_inline1938 という生成規則によって, tex2html_wrap_inline1940 が生成され る
の両方の可能性がある. 言葉で書けば,
pを左端, qを右端とする構文木( tex2html_wrap_inline1930 に対する構文木)で, 根に記号xを持つものが見つかると,
  1. その右にqを左端とする構文木を組み合わせて新しい構文木を作る. その際には, tex2html_wrap_inline1934 という規則を用いる.
  2. その左にpを右端とする構文木を組み合わせてより大きな構文木を作 る. その際には, tex2html_wrap_inline1938 という規則を用いる.
という二つの発展の可能性がある.
図で書くと図5.10のようになる. つまり, 斜線で塗ら れた構文木が生成されると, 点線で書かれたような構文木と, 生成規則により 結びついて, さらに大きな木を生成する可能性が生まれる.

figure528

     図5.11: 構文木の発展. 斜線部の構文木が生成されると, 
             さらに点線部のような大きな構文木が生成される可能性が生まれる. 

PAXでは以下のようなデータ構造とプロセスを組み合わせて, この構文木の発 展を実現している.

図で書くと図5.11のようになる. 実線で示された構文木 L-- tex2html_wrap_inline1220 を覆い, s'を根とする構文木--Lに対して, 実際に tex2html_wrap_inline1126 に格納されるのは, tex2html_wrap_inline2006 という形をした要素全てである(つまり, tex2html_wrap_inline2008 という形をし たルールの数分だけ挿入される). 点線で示された構文木 R-- tex2html_wrap_inline1224 を覆い, s''を根とする構文木--は実際にはデー タとして存在するのではなく, プロセスであり, tex2html_wrap_inline1126 から要素を一つずつ取 り出しては, それが, tex2html_wrap_inline2018 という形をした要素であるかどうかを調べ, 一致していれば, より大 きな構文木を生成する.

figure542

     図5.11: PAXの動作. L は, wi+1 ... w_k を覆い, 
             s'を根とする構文木で, この時実際には, 
             Akという集合に,  s'¥;c, Ai>という要素が
             全て(?-> s'?という形をした規則の数だけ)挿入される. 
             Rは, wk+1 ... wjを覆い, s''を根とする構文木で, 
             この時実際にはこれに対応するプロセスが作られる. 
             そのプロセスは, Akの要素を一つずつ取り出しては, 
             それが,  y ; s'', A>という形であるかどうかを検査し, 
             そうであれば, wi+1 ... wjを覆い, 
             根がxであるような構文木を生成する.


Mitsubishi Research Institute,Inc.
Thu Feb 27 10:02:38 JST 1997