(57)【特許請求の範囲】
【請求項１】
単語列を入力する入力部と、
依存文法を格納する文法辞書部と、
単語間の位置をノードとし単語及び連結な依存構造をエッジとして保持する第１のチャートを格納する第１のチャート格納部と、
単語をノードとし連結な依存構造をエッジとして保持する第２のチャートを格納する第２のチャート格納部と、
前記第１のチャートに登録されたエッジと前記第２のチャートに登録されたエッジの対応関係を保持する対応管理部と、
前記第１のチャート及び前記第２のチャートそれぞれのチャート上で隣接するエッジの組に対して、それぞれ依存文法規則を適用し、これらのエッジを依存関係で結んだ連結な依存構造を作成する文法適用部と、
連結な依存構造をエッジとして前記第１のチャート及び前記第２のチャートに追加して登録するエッジ登録部と、
前記依存文法規則の適用順序を制御する解析制御部と、
前記解析制御部で得られる解析結果を出力する出力部と
を具備することを特徴とする自然言語解析装置。
【請求項２】
単語列を入力する入力部と、
依存文法を格納する文法辞書部と、
単語間の位置をノードとし単語及び連結な依存構造をエッジとして保持する第１のチャートを格納する第１のチャート格納部と、
単語をノードとし連結な依存構造をエッジとして保持する第２のチャートを格納する第２のチャート格納部と、
前記第１のチャートに登録されたエッジと前記第２のチャートに登録されたエッジの対応関係を保持する対応管理部と、
前記第１のチャート上で隣接するエッジの組に対し前記依存文法規則を適用して、両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第１の文法適用部と、
前記第２のチャート上で隣接するエッジの組に対し前記依存文法規則を適用し、対応する依存構造を連結して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第２の文法適用部と、
連結な依存構造をエッジとして前記第１のチャート及び前記第２のチャートに追加して登録するエッジ登録部と、
前記依存文法規則の適用順序を制御する解析制御部と、
前記解析制御部で得られる解析結果を出力する出力部と
を具備することを特徴とする自然言語解析装置。
【請求項３】
前記第１のチャート格納部及び第２のチャート格納部に代えて、前記第１のチャート及び前記第２のチャートを物理的に１つのチャート構造上に実現したチャートを格納するチャート格納部を設けたことを特徴とする請求項１又は２に記載の自然言語解析装置。
【請求項４】
依存文法を格納する文法辞書格納手段と、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納手段と、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納手段と、
前記第１のチャートにおいて一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組、及び前記第２のチャートにおいて一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組をそれぞれ入力とし、これらに前記依存文法規則を適用して新たな連結な依存構造を作成する文法適用処理手段と、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理手段と、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理手段と、
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理手段と、
を具備することを特徴とする自然言語解析システム。
【請求項５】
依存文法を格納する文法辞書格納手段と、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納手段と、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納手段と、
前記第１のチャートにおいて一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組に前記依存文法規則を適用して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第１の文法適用処理手段と、
前記第２のチャートにおいて一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組を連結して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第２の文法適用処理手段と、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理手段と、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理手段と、
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理手段と、
を具備することを特徴とする自然言語解析システム。
【請求項６】
前記第１のチャート格納手段及び第２のチャート格納手段に代えて、前記第１のチャート及び前記第２のチャートを物理的に１つのチャート構造上に実現したチャートを格納するチャート格納手段を設けたことを特徴とする請求項４又は５に記載の自然言語解析システム。
【請求項７】
コンピュータに、
依存文法を格納する文法辞書格納機能、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納機能、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納機能、
前記第１のチャート格納機能において一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組、及び前記第２のチャート格納機能において一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組をそれぞれ入力とし、これらに前記依存文法規則を適用して新たな連結な依存構造を作成する文法適用処理機能、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理機能、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理機能、及び
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理機能、
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
コンピュータに、
依存文法を格納する文法辞書格納機能、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納機能、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納機能、
前記第１のチャートにおいて一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組に前記依存文法規則を適用して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第１の文法適用処理機能、
前記第２のチャートにおいて一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組を連結して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第２の文法適用処理機能、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理機能、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理機能、及び
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理機能、
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
前記第１のチャート格納機能及び第２のチャート格納機能に代えて、前記第１のチャート及び前記第２のチャートを物理的に１つのチャート構造上に実現したチャートを格納するチャート格納機能を実現させるためのプログラムを記録した請求項７又は８に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自然言語を解析するシステムに係り、特に依存文法を適用して入力文の構造を解析する自然言語解析装置、システム及び記録媒体に関する。
【０００２】
【従来の技術】
依存文法は、２単語間の係り受けとその種類を基本要素として統語構造を記述する文法の枠組みである。依存文法を用いた解析システムとしては、例えば、１９９２年１０月、情報処理学会論文誌第３３巻１０号、１２１１〜１２２３ページに記載された「係り受けの強度に基づく依存文法−制限依存文法−」（以下、「文献１」と称する）がある。この文献１に示されたシステムでは、２文節間の可能性のある依存関係を解析表、すなわちチャート、に書き込みながら、ボトムアップ縦形の解析を行って可能性のあるすべての解を求める。
【０００３】
ボトムアップ横形の解析を行って全解を求める手法には、例えば、１９９６年７月、プロシーディングス・オブ・ザ・サーティーフォース・アニュアル・ミーティング・オブ・ジ・アソーシエーション・フォー・コンピューテーショナル・リングイスティックス（Proceedings of the 34th Annual Meeting of the Association for Computational Linguistics, July 1996）に記載された、「ア・ニュー・スタティスティカル・パーサー・ベイスト・オン・バイグラム・レキシカル・ディペンダンシーズ（A New Statistical Parser Based on Bigram Lexical Dependencies）」（以下、「文献２」と称する）がある。この文献２の第３章によれば、解析アルゴリズムとしてはボトムアップチャート法を採用し、２つの部分構造が同じ単語列に対する部分解析結果、すなわちエッジ、であってラベル、ヘッド及びヘッドの位置が同じならば確率の高い構造を優先し、確率の低い構造を捨てるようになっている。チャートに登録する単位としては、ヘッド以外の語に対する文法適用が終了した連結な（すなわち、言語的な意味付けが可能な）依存関係構造を用いている。
【０００４】
また、１９９７年９月、プロシーディングス・オブ・ジ・インターナショナル・ワークショップ・オン・パーシング・テクノロジーズ（Proceedings of the International Workshop on Parsing Technologies, MIT, September 1997）に記載された「バイレキシカル・グラマーズ・アンド・ア・キュービックタイム・プロバビリスティック・パーサー（Bilexical Grammars And A Cubic-Time Probabilistic Parser）」（以下、「文献３」と称する）では、やはりボトムアップチャート法を用いているが、文法適用が完了した部分解析結果を単位としてチャートに登録する代わりに、一般に非連結（すなわち、言語的な意味付けが困難な）であるような部分解析結果の並びを単位とすることにより、その後の文法適用に関わる単語を区間の両端の語に限ることに成功している。
【０００５】
また、その他の自然言語処理に関する従来技術としては、例えば次のようなものがある。
【０００６】
特開平２−３００９７０号公報には、チャート上での構文解析の一つの方式である自然言語構文解析方式が開示されている。この特開平２−３００９７０号公報に示された自然言語構文解析方式は、解析済のすべてのエッジの情報を格納し、任意の時点で任意のエッジからグローバルに参照することができる解析済エッジ情報保持手段を設けたことを特徴としている。すなわち、エッジの解析において、必ずしも近くにないエッジの情報がこの手段により参照可能となるため、日本語の係助詞など、グローバルに影響する語彙の処理が容易になるという利点がある。この特開平２−３００９７０号公報の技術は、チャートの一般的な使用例の一つである。
【０００７】
また、特許第２５４６２４５号公報には、生成すべき文の意味内容が概念間の依存構造で与えられているとして、述語概念に対応する訳語の意味を適切に選択するために、訳語と概念の共起関係を利用する自然言語文生成方法が開示されている。この特許第２５４６２４５号公報の技術は、依存文法によるチャートを利用した構文解析／生成方法の一例である。
【０００８】
さらに、特公平７−８９３５３号公報には、構文木の解析結果であるエッジの優先度をベクトルとして表現する自然言語解析装置が開示されている。このように、エッジの優先度をベクトルとして表現することにより、優先知識を自然に記述することができ、優先知識間の整合性の管理が容易になり、新たな優先知識の導入が容易であり、そして正確で有用性の高い枝刈りを行なうことができる等の利点がある。この特公平７−８９３５３号公報もエッジを用いたチャートの使用例の一つである。
【０００９】
【発明が解決しようとする課題】
自然言語に内在する曖昧性を解消するためには、解析結果に優先度を付与して、優先度の最高のものを出力とするのが一般的である。ところが、文献１に示されたような縦形の解析では、解析結果が時系列的に得られるため、お互いの優先度を比較することが難しい。さらに、部分解析結果を後の解析で再利用することも難しいため、しばしば、文献２や文献３に示されたような横形の解析が採用される。
【００１０】
横形解析を効率的に進める方法の一つにチャート法がある。チャート法のアルゴリズムは，たとえば「自然言語処理の基礎技術」（野村浩郷著、電子情報通信学会、１９８８年）第２章第３節に説明がある。チャート法では、動的計画法に基づき解析順序の制御を行うこと、部分解析結果をチャートに登録し共通に利用すること、内部構造のみが異なり以後の文法適用で同じ振舞いをする部分解析結果をチャート上で同一視、すなわちパック、することにより、例えば任意の文脈自由文法に対して入力文中の単語数の３乗のオーダーの計算量で横形解析を行うことができる。
【００１１】
チャート法における計算量について簡単に解説する。チャート法の基本演算は、隣接する区間の部分解析結果を１つにまとめあげる演算である。文脈自由文法が効率的に解析できるのは、部分解析結果に対する文法適用の可能性が、その解析結果の非終端記号のみに依存するためである。ある区間の単語列が同じ非終端記号にまとまった場合、構造の詳細にはかかわらず、部分解析結果を１つにパックして以後の解析を共通化することができる。こうして、１つの区間に存在する部分解析結果の数の上限が、非終端記号の数という入力単語数によらない定数で抑えられており、したがって基本演算１回あたりの計算量が一様に定数で抑えられている。そのため、全体の計算量のオーダーは、基本演算の回数すなわち隣接２区間の組合わせの数となり、最悪でも計算量が単語数の３乗のオーダーで抑えられることになる。
【００１２】
ところが、チャート法を依存文法に対して単純に適用すると、最悪で入力単語数の５乗のオーダーの計算量が必要になることが知られている。ここでいう単純な適用方法とは、上述した文献２で採用しているような、ヘッドワードを親としてまとまった依存構造であって、ヘッドワード以外の語に対する文法適用がすべて終了している依存構造をエッジの単位とし、これを単位に文法適用とパックを行う方法のことを指している。この方法は、文脈自由文法のチャート法による解析手法の直接的な拡張となっている。
【００１３】
依存文法では、ある依存構造に以後どのような文法適用が可能かは、その構造のヘッドワードの状態で決定される。一般には、ある区間の解析結果の依存構造のヘッドが、その区間のどの語であるかわからない。そのため、その区間に対するパック後の部分解析結果の数が、最悪の場合、その区間の単語数のオーダーとなる可能性がある。すると、上述した基本演算の各々においてそれぞれの区間長の積のオーダーの計算が必要となり、全体として単語数の５乗の計算量が必要になってしまう。
【００１４】
上述した文献３では、この問題を避けるために、チャートに登録する単位、すなわちエッジとして１つのヘッドワードを持つ完成した部分構造を採用するのをやめて、一般に非連結な構造を許すようにしている。その代わり、その構造の文法的振舞いを決める語がその区間の両端の語に限られるようにエッジを構成する。この構成により、ある区間に対する解析結果のその後の文法適用における振る舞い方の数（場合の数）は、両端の語の文法適用に関する状態の積という単語数に依存しない定数で抑えられる。結果として、全解を求めるのに必要な計算量は、文脈自由文法の場合と同様に、入力単語数の３乗のオーダーとなる。
【００１５】
文献３における解析方法について、文献３の第４．３節に基づいて、図３２に示すプログラムリストを参照して説明する。図３２に示したアルゴリズムは文献３の第４．３節から引用した。行番号４、９〜１４及び１８等の各行の最後の「（＊…＊）」の部分はコメントである。
【００１６】
基本的なデータ構造は、単語をノードとするチャートである。エッジは、内部及び両端の単語、つまりノードの間の依存関係の情報の全体を保持している。エッジは、エッジ内部のノードがエッジ外部のノードと依存関係を結ぶことがないように定義され作成されるが、その中のノードの全体が依存関係のもとに連結であるとは限らない。
【００１７】
解析は以下のように進む。最初に隣接するノード（単語）からそれらのノードを結ぶエッジを作成し初期チャートとする（アルゴリズムの行番号１〜４）。具体的には、まず隣接する単語のペアを一つ選択する（アルゴリズムの行番号２）。この単語ペアに対し、まず、リンクタイプ（linktype）を「無し（NONE）」としてアルゴリズムの行番号４を実行することにより、２つのノードを単にグループ化したものをエッジとしてチャートに追加する。次に、リンクタイプを「←×Ｍ」又は「→×Ｍ」としてアルゴリズムの行番号４を実行することにより、隣接２単語の間に依存関係が結べればノードをグループ化して依存関係を結び、これをノード間のエッジとしてチャートに追加する。
【００１８】
このようにして、初期チャートが作成されたら、アルゴリズムの行番号５〜１６により、隣接する２つのエッジをまとめあげる操作をボトムアップに繰り返す。まとめあげ操作は次のように行う。以下、左側のエッジをエッジａ、右側のエッジをエッジｂと呼ぶ。エッジａの右端のノード（単語）とエッジｂの左端のノード（単語）が共有されていることに注意する。
【００１９】
まず、共有ノードにおいて、エッジａとエッジｂで定義された依存関係に矛盾がないことを確認する（行番号１１）。さらに、共有ノードが親を１つだけ持っていることを確認する（行番号１２）。確認できたら、エッジａの左端からエッジｂの右端に至るエッジｃを新規作成し、エッジａの持っていた依存関係とエッジｂの持っていた依存関係の和集合を新しいエッジの持つ依存関係として与える（行番号１３）。次に、エッジｃと同様だが、左端のノード（エッジａの左端のノード）と右端のノード（エッジｂの右端のノード）の間に依存関係が結べれば、その依存関係を加えたエッジをさらに新規作成しチャートに登録する（行番号１６）。
【００２０】
以上の処理をボトムアップに繰り返すことにより、全体に対する解析結果を得て、出力として適切なもののみを出力する（行番号１８及び１９）。
【００２１】
図３３は文献３における「Figure 1」を引用しており、“The plan of the government to raise income tax”という文の解析における主要なステップが模式的に示されている。図３３（ａ）は出力すべき依存構造を示す。矢印は子供から親へと向かう。図３３（ｂ）は、図３３（ａ）の依存構造がチャート上でどのように表現されているかを示している。図３３（ｂ）の下部に「no」、「yes」及び「yes」という評定が付された３つの部分依存構造は、このアルゴリズムでどのような部分依存構造がエッジとして許されるかを示したものである。左端の、planをヘッドに The と of が左右から係っていく構造は、このアルゴリズムではエッジとして許容されないので、「no」と評定されている。これは、エッジの内部の単語が外部と依存関係を持つためである。一方、中央の、“of the government”と“to raise”との２つの連結成分からなるまとまりは、エッジとして許されるので、「yes」と評定されている。右端の構造も「yes」と評定されており、エッジとして許容される。
【００２２】
図３３（ｃ）には、下から上へという順序で解析の過程が示されている。最下部には、“of the government to raise” がまとめられたエッジと、“plan of”がまとめられたエッジが“of” を仲立ちとしてまとめられるステップが図示されている。図で右側のエッジの構成要素のノード（単語）が、依存関係により２つの連結成分に分かれていることに注意してほしい。このまとめあげの際には、planとraiseの間に前者をヘッドとする依存関係を持つものが生成される。これらの間に依存関係がないエッジも生成されるが、最終的に正解となるのは前者なので、以下後者の存在は無視する。
【００２３】
次に、“raiseincome tax” がまとまったエッジと、“tax ROOT”がまとまったエッジががノード（単語）“tax”を中心にまとめられて、“raise income tax ROOT” というエッジをつくる。このまとめあげの際には、“ROOT”と“raise”の間には依存関係は結ばれない。なお、“ROOT”は、最終的に全体のヘッドとなる特別な単語であり、解析システムにより入力の最後に自動的に追加される。次のステップでは、先に生成された“plan of the government to raise” というエッジと、“raise income tax ROOT” というエッジがまとめられる（下から２番目の部分図）。このまとめあげでは、“plan”から“ROOT”に依存関係が伸びる。これと並行して、上述と同様に、依存関係がないエッジが作られる。最後に、“the plan”のエッジとまとめられて（下から３番目の部分図）、最終的な解析結果が得られる（図３３（ｃ）の最上段の部分図）。
【００２４】
この文献３に示された手法における問題点は、部分解析結果の単位として、非連結な部分構造をはじめとする言語的に不自然なまとまりを使わなければならないことである。例えば、隣接する単語から初期エッジを作るステップでは、初期エッジを構成する単語の間には基本的に依存関係がなく、依存構造としては非連結である。これは、構造というよりは、単に隣接する単語をグループ化したものにすぎないので、このまとまりに対し構造解釈を行うことは困難である。これらの初期エッジをまとめることでエッジが成長していくが、一般には左右の単語は別々にまとめられていくので、非連結性はそのまま残り、例えば図３３（ｂ）における“of the government to raise” のような非連結な依存構造からなるエッジが生成される。非連結成分を許容しないと初期エッジを生成することができないので、本質的に非連結成分の存在を許すことになる。
【００２５】
このように、エッジとして、非連結成分をはじめとする言語的直感に反する人工的な単位を用いている。このため、エッジに言語的な解釈を施すことが困難であり、部分解析結果を対象に意味解釈を行ったり、構造に対して優先度を付与するなど、部分解析結果を単位として様々な操作を行うことが困難であるという問題が発生する。例えば、解析途中で枝刈りを行うために、部分解析結果に優先度を付与することを考える。ところが、“of the government to raise”という２つの依存構造からなるまとまりが表れた場合、これが正しい構造解釈なのかどうかは直感的にはわからない。そのため、優先度を付与したり、構造の正当性を調べるルールを定義することが困難である。
【００２６】
本発明は、上述した事情に鑑みてなされたもので、任意の依存文法が与えられたときに、入力単語数の３乗のオーダー程度の少ない計算量で横形の解析が可能で、しかもチャートに登録する部分解析結果を連結な構造に限定することの可能な自然言語解析装置、システム及び記録媒体を提供することを目的とする。
【００２７】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点に係る自然言語解析装置は、
単語列を入力する入力部と、
依存文法を格納する文法辞書部と、
単語間の位置をノードとし単語及び連結な依存構造をエッジとして保持する第１のチャートを格納する第１のチャート格納部と、
単語をノードとし連結な依存構造をエッジとして保持する第２のチャートを格納する第２のチャート格納部と、
前記第１のチャートに登録されたエッジと前記第２のチャートに登録されたエッジの対応関係を保持する対応管理部と、
前記第１のチャート及び前記第２のチャートそれぞれのチャート上で隣接するエッジの組に対して、それぞれ依存文法規則を適用し、これらのエッジを依存関係で結んだ連結な依存構造を作成する文法適用部と、
連結な依存構造をエッジとして前記第１のチャート及び前記第２のチャートに追加して登録するエッジ登録部と、前記依存文法規則の適用順序を制御する解析制御部と、
前記解析制御部で得られる解析結果を出力する出力部とを具備する。
【００２８】
また、本発明の第２の観点に係る自然言語解析装置は、
単語列を入力する入力部と、
依存文法を格納する文法辞書部と、
単語間の位置をノードとし単語及び連結な依存構造をエッジとして保持する第１のチャートを格納する第１のチャート格納部と、
単語をノードとし連結な依存構造をエッジとして保持する第２のチャートを格納する第２のチャート格納部と、
前記第１のチャートに登録されたエッジと前記第２のチャートに登録されたエッジの対応関係を保持する対応管理部と、
前記第１のチャート上で隣接するエッジの組に対し前記依存文法規則を適用して、両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第１の文法適用部と、
前記第２のチャート上で隣接するエッジの組に対し前記依存文法規則を適用し、対応する依存構造を連結して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第２の文法適用部と、
連結な依存構造をエッジとして前記第１のチャート及び前記第２のチャートに追加して登録するエッジ登録部と、
前記依存文法規則の適用順序を制御する解析制御部と、
前記解析制御部で得られる解析結果を出力する出力部と
を具備する。
【００２９】
前記第１のチャート格納部及び第２のチャート格納部に代えて、前記第１のチャート及び前記第２のチャートを物理的に１つのチャート構造上に実現したチャートを格納するチャート格納部を設けてもよい。
【００３０】
本発明の第３の観点に係る自然言語解析システムは、
依存文法を格納する文法辞書格納手段と、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納手段と、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納手段と、
前記第１のチャートにおいて一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組、及び前記第２のチャートにおいて一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組をそれぞれ入力とし、これらに前記依存文法規則を適用して新たな連結な依存構造を作成する文法適用処理手段と、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理手段と、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理手段と、
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理手段と、
を具備する。
【００３１】
本発明の第４の観点に係る自然言語解析システムは、
依存文法を格納する文法辞書格納手段と、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納手段と、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納手段と、
前記第１のチャートにおいて一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組に前記依存文法規則を適用して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第１の文法適用処理手段と、
前記第２のチャートにおいて一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組を連結して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第２の文法適用処理手段と、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理手段と、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理手段と、
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理手段と、
を具備する。
【００３２】
前記第１のチャート格納手段及び第２のチャート格納手段に代えて、前記第１のチャート及び前記第２のチャートを物理的に１つのチャート構造上に実現したチャートを格納するチャート格納手段を設けてもよい。
【００３３】
本発明の第５の観点に係るコンピュータ読み取り可能な記録媒体は、
コンピュータに、
依存文法を格納する文法辞書格納機能、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納機能、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納機能、
前記第１のチャート格納機能において一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組、及び前記第２のチャート格納機能において一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組をそれぞれ入力とし、これらに前記依存文法規則を適用して新たな連結な依存構造を作成する文法適用処理機能、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理機能、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理機能、及び
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理機能、
を実現させるためのプログラムを記録する。
【００３４】
本発明の第６の観点に係るコンピュータ読み取り可能な記録媒体は、
コンピュータに、
依存文法を格納する文法辞書格納機能、
入力単語及び依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第１のチャートとして記憶する第１のチャート格納機能、
複数の単語が依存関係で結ばれた連結な依存構造をその左端の位置及び右端の位置と共に第２のチャートとして記憶する第２のチャート格納機能、
前記第１のチャートにおいて一方の右端の単語のすぐ右隣に他方の左端の単語が位置する意味で隣接する２つの依存構造の組に前記依存文法規則を適用して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第１の文法適用処理機能、
前記第２のチャートにおいて一方の右端の単語が他方の左端の単語と一致する意味で隣接する２つの依存構造の組を連結して両端の単語以外への前記依存文法規則の適用が完了した連結な依存構造を作成する第２の文法適用処理機能、
単語又は連結な依存構造を前記第１のチャート及び前記第２のチャートに追加して格納する依存構造登録処理機能、
第１のチャート中の依存構造から、該依存構造と同一の第２のチャート中の依存構造を同定する対応管理処理機能、及び
チャート法に基づいて前記第１のチャート上で前記依存文法規則の適用を行う区間を定め、この区間に対して前記依存文法の適用の処理を行い、得られた新たな連結な依存構造に対して前記依存構造登録処理及び前記対応管理処理を行うことを繰り返して、入力単語列全体に対する連結な依存構造を作成する解析処理を実行する解析処理機能、
を実現させるためのプログラムを記録する。
【００３５】
前記第１のチャート格納機能及び第２のチャート格納機能に代えて、前記第１のチャート及び前記第２のチャートを物理的に１つのチャート構造上に実現したチャートを格納するチャート格納機能を実現させるためのプログラムを記録してもよい。
【００３６】
この構成においては、チャート法に基づいて、第１のチャートの上でエッジのまとめあげ処理を進めていく。ただし、文法適用により作成する依存構造は、両端の単語以外、すべての文法適用が終了しているようなものに限り、そうでない依存構造は不適格な部分解析結果として作成しない。このように、エッジの文法的振舞いを決める単語を両端の単語に限ることにより、パック後にある区間に存在する解析結果の数を、入力単語数によらない定数で抑えることができ、最悪時の計算量を入力単語数の３乗のオーダーに抑えることができる。
【００３７】
しかしながら、適格な部分解析結果をこのようなものに限ると、第１のチャートを使うだけでは、ある種の依存構造が解析できなくなってしまう。具体的には、中央にヘッドの単語があり、左右から複数の単語が子供としてこのヘッドの単語に係っている構造が解析できなくなってしまう。例えば、５つの単語の列Ｗ１、Ｗ２、Ｗ３、Ｗ４、及びＷ５に対する正解の依存構造が、単語Ｗ１、Ｗ２、Ｗ４、及びＷ５がすべて単語Ｗ３の子供となっている構造である時に問題がおきる。このケースでは、正解の部分依存構造のうち適格な依存構造として許されるのは、各単語１語からなる構造と、［Ｗ２，Ｗ３］、［Ｗ３，Ｗ４］、［Ｗ１，Ｗ２，Ｗ３］、［Ｗ３，Ｗ４，Ｗ５］のみである。ここで、例えば［Ｗ１，Ｗ２，Ｗ３］は、正解の依存構造のうち単語Ｗ１、Ｗ２、及びＷ３だけからなる部分依存構造のことを指すものとする。これら適格な依存構造の集合から隣接するものを２つとってどのように組み合わせても、正解の依存構造へとまとめあげることはできない。
【００３８】
本発明では、隣接の定義が少し異なる第２のチャートを設け、その上でも解析を進めることによりこの問題を解決する。第２のチャートは、単語をノードとし、依存構造をエッジとしている。エッジのまとめあげ処理は、第１のチャート上で隣接する依存構造だけでなく、第２のチャートの上で隣接する依存構造をも対象にして行う。
【００３９】
上述した部分依存構造では、例えば［Ｗ１，Ｗ２，Ｗ３］と［Ｗ３，Ｗ４，Ｗ５］が第２のチャートの上で隣接しているので、これら２つのまとめあげ処理が起動される。これら２つの依存構造は単語Ｗ３を端点に共有しており、この語を仲立ちとして依存構造として矛盾なく連結することができる。その結果、正解の依存構造が得られる。
【００４０】
該第２のチャートを用いることにより、最悪で計算量が２倍になるが、入力単語数に依存するファクタは導入されないので、計算量のオーダーはやはり入力単語数の３乗のままである。さらに、適格な依存構造として連結なものだけが許されるにもかかわらず、上述したように本来得られるべき依存構造をすべて得ることができるのである。
【００４１】
したがって、任意の依存文法が与えられたときに、入力単語数の３乗のオーダー程度の少ない計算量で横形の解析が可能で、しかもチャートに登録する部分解析結果を連結な構造に限定することが可能である。
【００４２】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳しく説明する。
【００４３】
図１は、本発明の第１の実施の形態に係る自然言語解析システムの構成を示している。
【００４４】
図１に示す自然言語解析システムは、入力部１、文法辞書部２、第１のチャート格納部３、第２のチャート格納部４、対応管理部５、文法適用部６、エッジ登録部７、解析制御部８及び出力部９を備えている。
【００４５】
入力部１には、解析対象の単語列が入力される。文法辞書部２は、依存文法を格納する。第１のチャート格納部３は、文頭、文末及び単語間の位置をノードとし、単語及び連結な部分解析結果をエッジとして保持する第１のチャートを格納する。第２のチャート格納部４は、単語をノードとし、連結な部分解析結果をエッジとして保持する第２のチャートを格納する。
【００４６】
対応管理部５は、第１のチャートに登録されたエッジと第２のチャートに登録されたエッジの対応関係を管理する。文法適用部６は、第１のチャート又は第２のチャート上で隣接するエッジの組を入力とし、依存文法規則を適用してこれらのエッジを依存関係で結んだ連結な部分解析結果を作成する。
【００４７】
エッジ登録部７は、新たに作成された部分解析結果をエッジとして第１のチャート及び第２のチャートに必要に応じてパックして登録し、対応管理部５の内容を更新する。解析制御部８は、文法適用の順序を制御する。出力部９は、解析結果を出力する。以上の各構成要素間は、適宜なる通信線等を介して結合されている。
【００４８】
次に、図１のように構成された第１の実施の形態による自然言語解析システムの動作について、図２及び図３に示すフローチャートを参照して説明する。
【００４９】
まず、入力部１に入力文の単語列が入力される（ステップＳ１）。入力部１に入力された単語列はエッジ登録部７に送られる。エッジ登録部７は、第１のチャート格納部３に単語列を送り、これらの単語をエッジとして第１のチャートに登録する（ステップＳ２）。次に、エッジ登録部７は、第２のチャート格納部４に単語列を送り、単語をノードとする第２のチャートの初期チャートを作成し、さらに、対応管理部５を初期化する（ステップＳ３）。
【００５０】
こうして初期チャートが作成されると、解析制御部８が起動される。解析制御部８は、動的計画法に基づいて、注目エッジを１つ決めては隣接エッジとまとめあげることを繰り返して解析を進める。すなわち、まず、第１のチャート格納部３の第１のチャートに登録されたエッジから注目エッジを１つ決めて、これをエッジＥｒとする（ステップＳ４）。次に、第１のチャート格納部３の第１のチャートに格納されたエッジのうちの注目エッジＥｒの左に隣接するエッジを順次取得してエッジＥｌとし、以下（ステップＳ６〜Ｓ８）のようなエッジＥｒとエッジＥｌの間で文法適用が可能かどうかのチェックを繰り返す（ステップＳ５）。
【００５１】
すなわち、まず、エッジＥｌ及びエッジＥｒを文法適用部６に送る（ステップＳ６）。文法適用部６は、文法辞書部２の文法辞書を参照して、これら２つのエッジの端点の単語を依存関係で結べるかどうかをチェックし、可能な場合は新しい依存構造を作成して、エッジ登録部７に送る（ステップＳ７）。エッジ登録部７は送られてきた依存構造を第１のチャート格納部３の第１のチャート及び第２のチャート格納部４の第２のチャートにエッジとして登録すると同時に、エッジの対応関係を対応管理部５に登録する（ステップＳ８）。登録の際に、同様の文法的振舞いを有するエッジが、既に同じ区間に登録されている場合には、後の解析処理が１回ですむようにエッジをパックして登録する。
【００５２】
第１のチャート格納部３の第１のチャート上でエッジＥｒを注目エッジとした処理が終わると、解析制御部８は、注目エッジＥｒに対応するエッジが第２のチャート４の中に存在するかどうかを対応管理部５に問い合わせる（ステップＳ９）。エッジＥｒに対応する第２のチャート格納部４の第２のチャートのエッジＥｒ（２）の存在を判定し（ステップＳ１０）、該当するエッジＥｒ（２）が存在する場合、該第２のチャートのエッジＥｒ（２）に対して文法適用を行う。まず、第２のチャート格納部４の第２のチャートにおいて、エッジＥｒ（２）の左に隣接するエッジを順次取得してエッジＥｌ（２）とし、エッジＥｌ（２）とエッジＥｒ（２）の間で文法適用が可能かどうかのチェックを繰り返す（ステップＳ１１）。
【００５３】
そのために、解析制御部８は、エッジＥｌ（２）とエッジＥｒ（２）を文法適用部６に送る（ステップＳ１２）。文法適用部６は、必要に応じて文法辞書部２の文法辞書を参照して、これらのエッジを１つの連結依存構造にまとめることができるかどうかをチェックし、可能ならば新しい依存構造を作成して、エッジ登録部７に送る（ステップＳ１３）。エッジ登録部７は、送られてきた依存構造を第１のチャート格納部３の第１のチャート及び第２のチャート格納部４の第２のチャートにエッジとして登録すると同時に、エッジの対応関係を対応管理部５に登録する（ステップＳ１４）。第１のチャート上の解析の場合と同様に、登録の際に、同様の文法的振舞いを有するエッジが、既に同じ区間に登録されている場合には、後の解析処理が１回ですむようにエッジをパックして登録する。
【００５４】
一方、ステップＳ１０の判定において、第２のチャート格納部４第２のチャート上に注目エッジＥｒに対応するエッジが存在しない場合、上述したステップＳ１１〜ステップＳ１４の処理はスキップする。最後に、解析制御部８は、第１のチャート上のすべてのエッジを注目エッジとして処理したか否かをチェックし（（ステップＳ１５）、注目エッジとすべきエッジが残っているならば、ステップＳ４に戻り、再度注目エッジを選ぶ。一方、ステップＳ１５において、すべてのエッジを注目エッジとして処理を終えたと判定した場合には、出力部９から解析結果を出力し、処理を終了する（ステップＳ１６）。
【００５５】
このように構成した本発明の自然言語解析システムは、任意の依存文法に対し、チャート法に基づいて、最悪の場合でも入力単語数の３乗のオーダーの計算量で効率的な横形解析を行うことができる。しかも、入力単語数の３乗のオーダーの計算量で解析が行える従来技術と比較して、チャートに登録されるのは、単語どうしが依存関係で結ばれた連結な依存構造に限るという利点がある。従来技術では一般に非連結で特に言語的意味を持たない構造を単位として登録するため、これらの構造を対象に様々な知識を記述したりアルゴリズムを適用することが難しかったのに比べて、本発明の自然言語解析システムによれば、部分解析結果を単位とした言語的処理が記述し易いという利点がある。このような言語処理の例としては、例えば部分解析結果への優先度の付与などがある。
【００５６】
次に、本発明の第２の実施の形態について説明する。本発明の第２の実施の形態は、図１に示した第１の実施の形態の自然言語解析システムをコンピュータ等のデータ処理装置を用いて具体的に構成している。図４は、本発明の第２の実施の形態に係る自然言語解析システムの構成を示している。
【００５７】
図４に示す自然言語解析システムは、入力装置Ａ１、データ処理装置Ａ２、出力装置Ａ３、記憶装置Ａ４、及び自然言語解析プログラムを記録した記録媒体Ａ５を備えている。
【００５８】
データ処理装置Ａ２は、例えばコンピュータにより構成され、記録媒体Ａ５には、データ処理装置Ａ２によって読み取り且つ実行することができる自然言語解析プログラムを記録している。記録媒体Ａ５は、磁気ディスク、磁気テープ、光ディスク、半導体メモリ又はその他のコンピュータ等による読取りが可能な記録媒体である。
【００５９】
自然言語解析プログラムは、記録媒体Ａ５からデータ処理装置Ａ２に読み込まれ、その一部が必要に応じて記憶装置Ａ４に配置されて、データ処理装置Ａ２の動作を制御する。データ処理装置Ａ２は、自然言語解析プログラムの制御により次のような自然言語解析処理を実行する。
【００６０】
入力装置Ａ１から読み込まれた単語列は、第１のチャート格納部３の第１のチャート及び第２のチャート格納部４の第２のチャートに格納される。第１のチャートは単語及び連結な依存構造をエッジとするチャートであり、第２のチャートは単語をノードとして連結な依存構造をエッジとするチャートである。単語列が格納されたら、文法適用部６は第１のチャートの上で動的計画法によるエッジの順序付けに基づいて１つの注目エッジを決める。
【００６１】
次に、注目エッジの左に隣接するエッジの各々について、このエッジと注目エッジの組を順次文法適用部６に送る。文法適用部６は文法辞書部２の文法辞書を必要に応じて参照し、可能ならば２つのエッジをまとめあげて新規に依存構造を作成する。新規依存構造が作成されたら、エッジ登録部７は、それを第１のチャート及び第２のチャートに格納すると同時に、対応管理部５を更新する。対応管理部５は、１つのエッジが第１のチャートと第２のチャートとの２個所に登録されているときに、これらエッジ間の対応関係を格納する。
【００６２】
次に、注目エッジに対応するエッジが第２のチャートの中に存在するかどうかを対応管理部５でチェックし、存在すれば、第２のチャート上で文法を適用する。そのため、第２のチャート内の注目エッジの左に隣接するエッジの各々について、それと注目エッジとの組を文法適用部６に送り、新規依存構造の作成を試みる。新規依存構造の作成が成功すれば、新規依存構造はエッジ登録部７により第１のチャート及び第２のチャートに格納され、さらに対応管理部５が更新される。
【００６３】
注目エッジを逐次変更しながら上述の処理を繰り返して解析処理を行ない、該解析処理が終了すると、第１のチャートに登録されたエッジのうち全体の解析結果となっている依存構造が解析結果として出力装置Ａ３から出力される。
【００６４】
次に、本発明の第３の実施の形態について説明する。本発明の第３の実施の形態は、図１に示した第１の実施の形態の自然言語解析システムを用いて構成した英語の構文解析システムである。すなわち、図５は、本発明の第３の実施の形態に係る構文解析システムの構成を示している。
【００６５】
図５に示す構文解析システムは、入力部１、英語辞書部２′、第１のチャート格納部３、第２のチャート格納部４、対応管理部５、文法適用部６′、エッジ登録部７、解析制御部８、出力部９、形態素解析部１０及び解析結果選択部１１を備えている。図５の構文解析システムは、文法辞書部２が英語辞書部２′であり、文法適用部６が第１の文法適用部６１及び第２の文法適用部６２を有する文法適用部６′であり、さらに入力部１とエッジ登録部７との間に形態素解析部１０が、解析制御部８と出力部９との間に解析結果選択部１１がそれぞれ設けられている点で図１の自然言語解析システムと異なっている。
【００６６】
入力部１は、英文入力を受け付ける。英語辞書部２′は、単語の統語情報及びその単語に関わる依存文法を格納している。形態素解析部１０は、英語辞書部２′を参照して入力文を英単語列に分割する。
【００６７】
第１のチャート格納部３は、単語間の位置をノードとし、英単語及び連結依存構造をエッジとする第１のチャートを格納する。第２のチャート格納部４は、英単語をノードとし、複数単語を含む連結依存構造をエッジとする第２のチャートを格納する。対応管理部５は、同じ依存構造が第１のチャートと第２のチャートの双方に登録されているときに、それらの対応関係を保持する。
【００６８】
文法適用部６′は、２つのエッジの組に文法を適用して新たな依存構造を作成する。エッジ登録部７は、単語又は依存構造を第１のチャート及び第２のチャートに必要に応じてパックして登録し、さらに対応管理部５を更新する。解析制御部８は、チャート法に基づいて解析順序を制御する。
【００６９】
解析結果選択部１１は、第１のチャート中のエッジから入力全体に対する解析結果を保持するものを選択する。出力部９は、解析結果選択部１１が選択した解析結果を出力する。以上の各構成要素間は、適宜なる通信線等を介して結合されている。
【００７０】
さらに、文法適用部６′は、第１の文法適用部６１及び第２の文法適用部６２を有している。第１の文法適用部６１は、第１のチャートの２つのエッジに対し、英語辞書部２′を必要に応じて参照して、依存文法を適用し、可能ならば該２つの依存構造を依存関係で結んで新たな依存構造を作成する。第２の文法適用部６２は、第２のチャートの２つのエッジに対し、英語辞書部２′を必要に応じて参照して、可能ならば該２つの依存構造を１つの依存構造にまとめあげる。
【００７１】
次に、図５のように構成された第３の実施の形態による構文解析システムの動作について、図６及び図７に示すフローチャートを参照して説明する。
【００７２】
まず、入力部１に英文が入力される（ステップＳ２１）。具体的には、英文が入力部１に入力され、該英文が形態素解析部１０に送られる（ステップＳ２１ａ）。形態素解析部１０は、英語辞書部２′を参照して、入力英文を単語に分割する（ステップＳ２１ｂ）。
【００７３】
入力部１に入力され、形態素解析部１０により単語に分割された入力英文は、エッジ登録部７に送られる。エッジ登録部７は、与えられた単語列をまず第１のチャート格納部３に送り、第１のチャートにエッジとして登録し、第１のチャートを初期化する（ステップＳ２２）。さらに、入力単語をノードとして第２のチャート４の初期チャートを作成し、そして対応管理部５を初期化する（ステップＳ２３）。以上の処理により、第１のチャートと第２のチャートの初期化処理が終了する。
【００７４】
第１及び第２のチャートの初期化処理が終了すると、解析制御部８が構文解析を開始する。解析は、ボトムアップ、左から右のチャート法によって行う。まず、第１のチャート格納部３の第１のチャート上で注目エッジＥｒを１つ定める（ステップＳ２４）。次に、第１のチャート上でエッジＥｒの左に隣接するエッジを順次選定し、これをエッジＥｌとして、以下（ステップＳ２６〜Ｓ２８）のまとめあげ処理を繰り返す（ステップＳ２５）。
【００７５】
まず、エッジＥｌとエッジＥｒを第１の文法適用部６１に送る（ステップＳ２６）。第１の文法適用部６１は、２つのエッジを新たな依存関係で結んで、全体を１つの連結な依存構造にまとめあげる処理を行う（ステップＳ２７）。
【００７６】
第１の文法適用部６１では依存構造を生成する際に、新しく生成される構造の両端の単語以外の単語に対しては文法適用がすべて終了した状態にあるか、又は依存関係で結ばれることによりそのような状態になるか否かをチェックし、この条件を満たすことができない依存構造は生成しない。この条件により、生成された依存構造の文法的振舞いが両端の単語だけで決まることが保証されるため、パックすることにより横形解析が単語数の３乗のオーダーの計算量で終了することが保証される。
【００７７】
さて、このようにして新規作成された依存構造は、エッジ登録部７に送られる。エッジ登録部７は、該依存構造を第１のチャート格納部３の第１のチャート及び第２のチャート格納部４の第２のチャートにエッジとして登録する（ステップＳ２８）。ただし、同一の区間に同一の文法適用の可能性を持ったエッジが既に登録されている場合には、既登録のエッジを代表エッジとしてパックし、以後の文法適用が代表エッジのみを対象として行われるようにする。さらに新規エッジ間の対応関係を対応管理部５に追加する。
【００７８】
エッジＥｒの左側にあるエッジのすべてに対して上述の処理を行ったら、解析制御部８は、対応管理部５を参照して、注目エッジＥｒに対応する第２のチャート上のエッジＥｒ（２）を検索する（ステップＳ２９）。解析制御部８は、エッジＥｒ（２）が第２のチャートに登録されているかどうかをチェックし（ステップＳ３０）、第２のチャートにエッジＥｒ（２）が登録されていなければ、後述するステップＳ３５を経てステップＳ２４に戻り、次の注目エッジの処理に移る。
【００７９】
一方、ステップＳ３０において、第２のチャートにエッジＥｒ（２）が登録されていると判定されれば、第２のチャート上で、エッジＥｒ（２）の左に隣接するエッジＥｌ（２）の各々に対してエッジまとめあげ処理（ステップＳ３２〜Ｓ３４）を行う（ステップＳ３１）。
【００８０】
第１のチャートにおけるまとめあげ処理と同様、まずエッジＥｌ（２）とＥｒ（２）を第２の文法適用部６２に送る（ステップＳ３２）。第２の文法適用部６２は必要に応じて文法適用を行い、２つのエッジを１つのエッジにまとめあげる（ステップＳ３３）。
【００８１】
この第２の文法適用部６２におけるまとめあげに際しては、第１の文法適用部６１と同様に、両端の単語を除いては文法適用がすべて終了した状態にあるか、又は依存関係で結ぶことによりそのような状態にできるか否かをチェックし、この条件を満たすことができない依存構造は生成しない。ただし、第２のチャートでは隣接するエッジは中間の単語を共有しているので、依存関係を新たに導入しなくても連結な依存構造を作ることができる点が第１の文法適用部６１の場合とは相違する。
【００８２】
さて、第２の文法適用部６２で新規に生成された連結依存構造はエッジ登録部７に送られる。エッジ登録部７は、第１のチャート及び第２のチャートに依存構造をエッジとして登録し、対応管理部５の内容を更新する（ステップＳ３４）。さらに、必要に応じてパックして登録することも第１のチャートの場合と同様である。
【００８３】
こうして、可能性のある全てのエッジＥｌ（２）に対して処理を終了したら、再び第１のチャートに視点を戻し、注目エッジとすべきエッジが第１のチャート上に残っているかどうかをチェックする（ステップＳ３５）。ステップＳ３５において、そのようなエッジが残っていると判定されたならば、ステップＳ２４に戻り、次の注目エッジをＥｒにセットしてステップＳ２４以後の処理を繰り返す。
【００８４】
一方、ステップＳ３５において、そのようなエッジが残っていないと判定されたならば、解析結果選択部１１が起動される。解析結果選択部１１は、解析制御部８を介して第１のチャート格納部３の第１のチャートにアクセスし、解析結果として第１のチャート全体を張るエッジを得て、適正な解析結果を選択出力する（ステップＳ３６）。すなわち、解析結果として得たエッジの中から、出力としてふさわしいものを選択して、出力部９に送る（ステップＳ３６ａ）。該出力部９は、送られてきた解析結果を出力する（ステップＳ３６ｂ）。
【００８５】
次に、上述における第１の文法適用部６１の詳細な構成及び動作について図８〜図１２を参照して説明する。
【００８６】
図８に示すように、第１の文法適用部６１は、エッジ格納部６１ａ、単語格納部６１ｂ、依存関係チェック部６１ｃ、文法適用制約格納部６１ｄ、及び依存構造作成部６１ｅを有している。
【００８７】
エッジ格納部６１ａは、第１のチャート格納部３から送られてきた第１のチャートにおけるエッジの組を格納する。単語格納部６１ｂは、エッジ格納部６１ａに格納されたエッジのうち文法適用に関係する両端の単語を格納する。依存関係チェック部６１ｃは、単語格納部６１ｂに格納された単語の間で依存関係を結ぶことの可否をチェックする。文法適用制約格納部６１ｄは、依存関係チェック部６１ｃで使用する制約条件を格納する。依存構造作成部６１ｅは、依存関係チェック部６１ｃでのチェック結果を受けて新規に依存構造を生成する。依存関係チェック部６１ｃは、英語辞書部２′における英語文法情報を参照し、依存構造作成部６１ｅで新規に生成された依存構造は、エッジ登録部７へ送られる。
【００８８】
図９は第１の文法適用部６１の動作を説明するフローチャートである。まず、第１のチャート格納部３から与えられる第１のチャートにおける隣接エッジの組を、エッジ格納部６１ａに格納する（ステップＳ７−１）。左側のエッジはエッジＥｌに、右側のエッジはエッジＥｒにそれぞれ格納して、以後、これらエッジＥｌ及びＥｒという表現で参照する。エッジＥｌ及びＥｒを格納したら、依存文法適用に関わる４つの単語を抽出し、単語格納部６１ｂに格納する（ステップＳ７−２）。依存文法適用に関わる４つの単語とは、エッジＥｌの左端の単語Ｗ１、エッジＥｌの右端の単語Ｗ２、エッジＥｒの左端の単語Ｗ３、そしてエッジＥｒの右端の単語Ｗ４である。ただし、エッジＥｌが１単語からなるエッジの場合は、その単語を単語Ｗ１に格納し、単語Ｗ２は空のままとする。また、エッジＥｒが１単語からなるエッジである場合は、その単語を単語Ｗ４に格納し、単語Ｗ３は空のままとする。エッジＥｌとエッジＥｒとの間の依存関係を考える際に、各エッジの両端以外の単語を考慮する必要がないのは、これらエッジの中間の語はエッジの外側の語との間に依存関係を持たないことが保証されているからである。これは、第１の文法適用部６１及び第２の文法適用部６２でそのような性質を持つ依存構造しか作成しないようにしているためである。
【００８９】
次に、単語どうしを新しい依存関係で結べるか否かをチェックするために、これらの単語を依存関係チェック部６１ｃに与える。依存関係チェック部６１ｃは、英語辞書部２′を参照してこれらの単語の間にどのような依存関係が存在し得るかを判断し、さらに文法適用制約格納部６１ｄを参照して単語の相互位置関係による依存関係への制約をチェックすることにより最終的に可能な依存関係の集合を得る（ステップＳ７−３）。文法適用制約格納部６１ｄには、新しく生成される依存構造において両端の単語以外の語が外部の語との間に依存関係を持たないようにするための制約が記述されている。依存関係チェック部６１ｃでチェックを通った依存関係は依存構造作成部６１ｅに送られて、新しい依存構造が作成される（ステップＳ７−４）。新しい依存構造は、連結な２つの依存構造を依存関係で結んだものなので、全体として連結な依存構造になっていることに注意すべきである。作成された依存構造はエッジ登録部７に供給されて、第１及び第２のチャートに登録される。
【００９０】
図１０は、第１の文法適用部６１中の依存関係チェック部６１ｃにおける動作を説明するフローチャートである。依存関係チェック部６１ｃでは、（単語Ｗ１，単語Ｗ３）、（単語Ｗ１，単語Ｗ４）、（単語Ｗ２，単語Ｗ３）、（単語Ｗ２，単語Ｗ４）の４通りの組合わせに対して、これらの単語の間に依存関係を結んでよいか否かの判断を繰り返す（ステップＳ７−３−１及びＳ７−３−２）。
【００９１】
図１２に、エッジＥｌとエッジＥｒを結ぶ依存関係の可能性を列挙している。左側がエッジＥｌであり、該エッジＥｌの左端に単語Ｗ１を有し、エッジＥｌの右端に単語Ｗ２を有する。右側がエッジＥｒであり、該エッジＥｒの左端に単語Ｗ３を有し、エッジＥｒの右端に単語Ｗ４を有する。エッジＥｌ及びＥｒは、それぞれ連結な依存構造をなしている。各エッジの内部の単語は外部の単語との間に係り受け関係を持たない。また、依存関係のループや親が複数ある構造を許容しないことを考えると、これら２つのエッジＥｌ及びＥｒの依存構造の間に存在することが可能な依存関係としては、図１２に挙げた８通りを考えればよいことがわかる。
【００９２】
すなわち、
（ａ）エッジＥｌの左端の単語Ｗ１がエッジＥｒの左端の単語Ｗ３に係る場合、
（ｂ）エッジＥｒの左端の単語Ｗ３がエッジＥｌの左端の単語Ｗ１に係る場合、
（ｃ）エッジＥｌの左端の単語Ｗ１がエッジＥｒの右端の単語Ｗ４に係る場合、
（ｄ）エッジＥｒの右端の単語Ｗ４がエッジＥｌの左端の単語Ｗ１に係る場合、
（ｅ）エッジＥｌの右端の単語Ｗ２がエッジＥｒの左端の単語Ｗ３に係る場合、
（ｆ）エッジＥｒの左端の単語Ｗ３がエッジＥｌの右端の単語Ｗ２に係る場合、
（ｇ）エッジＥｌの右端の単語Ｗ２がエッジＥｒの右端の単語Ｗ４に係る場合、そして
（ｈ）エッジＥｒの右端の単語Ｗ４がエッジＥｌの右端の単語Ｗ２に係る場合
の８通りである。
【００９３】
依存関係チェック部６１ｃでは、これら８通りの可能性について、成立の可否をチェックし、成立するものを出力する。
【００９４】
依存関係成立のチェックは、文法的なチェックと、構造的なチェックに分けることができる。前者の文法的なチェックでは、単語の性質と文法に基づき、単語どうしをある依存関係で結べるかどうかを判断するステップであり、文法の適用可能性を判断する一般的なチェックである。後者の構造的なチェックは、本発明に特有のチェックであり、２つの依存構造を新たな依存関係で結んでできる依存構造において、両端の単語を除き、外部の単語と依存関係を持たないことを保証するために行う。このための知識は文法適用制約格納部６１ｄに記述格納されており、依存関係チェック部６１ｃはこれを参照しながら動作する。
【００９５】
図１０のフローチャートの説明に戻る。以下、単語Ｗｌは、エッジＥｌの左端の単語Ｗ１及び右端の単語Ｗ２のいずれか一方を、単語Ｗｒは、エッジＥｒの左端の単語Ｗ３及び右端の単語Ｗ４のいずれか一方をあらわす。まず、単語Ｗｌを子供、単語Ｗｒを親とする依存関係が結べるかどうかを、単語の性質と文法を参照して判断する（ステップＳ７−３−３）。このステップＳ７−３−３は、上述した文法的なチェックに相当するステップであり、単語Ｗｌと単語Ｗｒに共通の未だ満たされていない依存関係であって、単語Ｗｌ側が子供、単語Ｗｒが親となることができるものがある場合に成立すると判断する。
【００９６】
ステップＳ７−３−３において、ある依存関係が成立すると判断した場合、文法適用制約格納部６１ｄ中の制約をチェックする（ステップＳ７−３−４）。このステップＳ７−３−４が上述した構造的チェックに相当するステップである。このステップＳ７−３−４のチェックに成功したら、その依存関係を出力し依存構造作成部６１ｅに送る（ステップＳ７−３−５）。
【００９７】
一方、ステップＳ７−３−３及びステップＳ７−３−４のどちらかのチェックで不成功となった場合には、出力処理は行わずに、次のステップＳ７−３−６にスキップする。ステップＳ−７−３−６〜Ｓ−７−３−８では、上述と逆に、単語Ｗｌが親となって単語Ｗｒが子供となるケースについて、上述したステップＳ−７−３−３〜Ｓ−７−３−５と同様の処理を行う。
【００９８】
図１１は文法適用制約格納部６１ｄに格納される文法適用制約の内容の一例を示している。図１１に示すように、文法適用制約格納部６１ｄには、左の単語Ｗｌ、右の単語Ｗｒ、係り受けの方向の３組に対し、その係り受けが許容されるための制約が記述してある。文法適用制約格納部６１ｄの目的は、単語Ｗｌと単語Ｗｒを指定した方向の依存関係で結んでできる依存構造において、両端以外の単語に対する文法適用が完了していることを保証することである。
【００９９】
例えば、最初のエントリは、単語Ｗ１を子供、単語Ｗ３を親とする依存関係が許容されるためには、単語Ｗ２への文法適用がすでに終了していることと、Ｗ３への文法適用も、この新しい依存関係の適用が最後であることの２つを要求している。これは、図１２（ａ）に示す依存関係を結ぶことができるための条件として、単語Ｗ２と単語Ｗ３が必須で要求する依存関係が、すべてこの図の状態で満たされている、ことを意味する。なお、ある単語に対する文法適用が終わっているとは、その語が既に持っている依存関係によって、その語が必須としている依存関係がすべて満たされていることをいう。
【０１００】
具体的には、例えば、他動詞定型のeat は、右側に直接目的語の子供を、左側に主語の子供を必須関係として要求する。また、この語は、右側に副詞的修飾要素を子供としてとることができるが、この依存関係は任意であるとする。この仮定のもとで、他動詞定型のeat に対する文法適用が終わっていることは、この単語がすでに右側に直接目的語に対する依存関係を持っており、左側には主語への依存関係を持っていることで判断する。どちらか一方でも欠けていれば、文法適用が終了しているとは見なされない。一方、副詞的修飾要素はあってもなくても、文法適用終了の判定には影響を及ぼさない。
【０１０１】
文法適用制約格納部６１ｄの制約が基本的に求めているのは、依存関係を結んだ後に、単語Ｗ２と単語Ｗ３への文法適用が終わっていることである。もしも、単語Ｗ２又はＷ３が満たされていない必須依存関係を持っていれば、後でこれらの語と他の語をその依存関係で結んでその関係を充足してやらなければならない。ところが、単語Ｗ２も単語Ｗ３も新しい依存構造の内部にあるため、解析処理が進んでも、後に他の語と依存関係で結ばれる可能性がない。そのため、これらの制約を満たさないことが明らかな構造は、不適格な構造として最初から排除してチャートに登録しないようにしている。
【０１０２】
次に、上述における第２の文法適用部６２の詳細な構成及び動作について図１３〜図１５を参照して説明する。
【０１０３】
図１３に示すように、第２の文法適用部６２は、エッジ格納部６２ａ、単語格納部６２ｂ、整合性チェック部６２ｃ、及び依存構造作成部６２ｄを有している。
【０１０４】
エッジ格納部６２ａは、第２のチャート格納部４から送られてきた第２のチャートにおけるエッジの組を格納する。単語格納部６２ｂは、エッジ格納部６２ａに格納されたエッジのうち文法適用に関係する両端の単語を格納する。整合性チェック部６２ｃは、左側のエッジの右端の単語と右側のエッジの左端の単語の間で整合性をチェックする。依存構造作成部６２ｄは、整合性のチェック結果を受けて新規に依存構造を生成する。整合性チェック部６２ｃは、英語辞書部２′における英語文法情報を参照し、依存構造作成部６２ｄで新規に生成された依存構造は、エッジ登録部７へ送られる。
【０１０５】
図１４は第２の文法適用部６２の動作を説明するフローチャートである。まず、第２のチャート格納部４から与えられる第２のチャートにおける隣接するエッジの組を、エッジ格納部６２ａに格納する（ステップＳ１１−１）。左側のエッジはエッジＥｌに、右側のエッジはエッジＥｒにそれぞれ格納して、以後、これらエッジＥｌ及びＥｒという表現で参照する。エッジＥｌ及びＥｒを格納したら、依存文法適用に関わる４つの単語を抽出し、単語格納部６２ｂに格納する（ステップＳ１１−２）。依存文法適用に関わる４つの単語とは、エッジＥｌの左端の単語Ｗ１、エッジＥｌの右端の単語Ｗ２、エッジＥｒの左端の単語Ｗ３、そしてエッジＥｒの右端の単語Ｗ４である。既に述べたように、エッジの両端以外の単語がエッジの外側の語との間に依存関係を持たないのは、第１の文法適用部６１及び第２の文法適用部６２ではそのような性質を持つ依存構造しか作成しないためである。エッジＥｌとエッジＥｒは、第２のチャートの上で隣接しているので、単語Ｗ２と単語Ｗ３は実は同じ単語（以下、「単語Ｗｃ」と称する）であることに注意すべきである。単語Ｗ２は、単語ＷｃからエッジＥｌ内に伸びる依存関係の集合を持ち、単語Ｗ３は、単語ＷｃからエッジＥｒ内に伸びる依存関係の集合を持つ。ステップＳ１１−３において、単語Ｗ２とＷ３を整合性チェック部６２ｃに供給し、これら２種類の依存関係の全体が、１単語Ｗｃが持つ依存関係として整合性があるか否か、さらには、これらを合わせると単語Ｗｃに対する文法適用が終了しているか否かをチェックする。この整合性チェックの結果を判別し（ステップＳ１１−４）、整合性チェックに成功すると、依存構造作成部６２ｄが起動される。依存構造作成部６２ｄは、エッジＥｌとエッジＥｒを単語Ｗｃを仲立ちとして結合した依存構造を作成する（ステップＳ１１−５）。新規作成された依存構造は、単語Ｗ１を左端、単語Ｗ４を右端とし、それぞれの単語は、エッジＥｌ又はエッジＥｒ内で持っていた依存関係をそのまま引き継いでいる。ただし、単語Ｗｃだけは、エッジＥｌで単語Ｗ２として持っていた依存関係とエッジＥｒ内で単語Ｗ３として持っていた依存関係を合わせ持つ。単語Ｗｃは、左方に伸びる依存関係も、右方に伸びる依存関係も持っているので、この単語Ｗｃを媒介として、２つの連結依存構造であるエッジＥｌとエッジＥｒが結合し、１つの大きな連結依存構造となる。依存構造としての正しさは整合性チェック部６２ｃが保証している。こうして依存構造が作成されると、作成された依存構造はエッジ登録部７に供給されて、第１及び第２のチャートに登録される。一方、ステップＳ１１−４において、整合性チェックに失敗したと判定された場合には、そのまま、何もせずに処理を終了する。
【０１０６】
図１５は、第２の文法適用部６２の整合性チェック部６２ｃの動作を説明するフローチャートである。整合性チェック部６２ｃは、依存関係の集合を格納する領域を、集合Ｄｌ、Ｄｒ、及びＤｏｂｌの３つ持っており、さらに、依存関係の集合の間で共通集合や和集合を求めたり、包含関係を比較する集合比較部を有している。
【０１０７】
整合性チェック処理（図１４のステップＳ１１−３及びＳ１１−４）が開始されると、整合性チェック部６２ｃは、まず集合Ｄｌに単語Ｗ２が持つ依存関係の全体を格納し、集合Ｄｒに単語Ｗ３が持つ依存関係の全体を格納する。また、集合Ｄｏｂｌに、単語Ｗ２（単語Ｗ３と同じ単語、すなわち上述した単語Ｗｃ）が持たなければならない必須の依存関係の全体を格納する（図１５のステップＳ１１−４−１）。なお、集合Ｄｏｂｌは、単語への文法適用がまったく行われていない状態を想定して計算する。すなわち、集合Ｄｏｂｌは、ある単語が自身の能力として持ちうる必須依存関係の全体のことである。次に、集合Ｄｌと集合Ｄｒとの間に矛盾がないことを、２つの集合の共通集合が空集合であることにより確認する（ステップＳ１１−４−２）。もしも、２つの集合の共通集合が空集合でなければ、同じ依存関係が２度使われているので、整合性がないとして整合性チェック処理を抜けて、図１４の処理にリターンする（ステップＳ１１−４−５）。ただし、複数回適用可能な依存関係は、それぞれを別々の集合要素と見なし、２度使われていても失敗としない。
【０１０８】
次に、集合Ｄｌと集合Ｄｒをあわせると単語Ｗｃに対する文法適用が終了したと見なせるかどうかをチェックする（ステップＳ１１−４−３）。もしも、単語Ｗｃに対する文法適用が終了したと見なせないならば、やはりステップＳ１１−４−５に移行し、整合性がないとして図１４の処理にリターンする。もしも、ステップＳ１１−４−３において、単語Ｗｃに対する文法適用が終了したと見なせるならば、整合性チェックに成功したとして、図１４の処理にリターンする（ステップＳ１１−４−４）。
【０１０９】
ステップＳ１１−４−２は、単語Ｗ２と単語Ｗ３をマージすることの正当性をチェックしている。ステップＳ１１−４−３は、単語Ｗ２と単語Ｗ３をマージした結果が、依存構造の内部から外部への依存構造を許さないという制約を満たすかどうかをチェックしている。前者のステップＳ１１−４−２は、第１の文法適用部６１の依存関係チェック部６１ｃにおける文法的チェックに相当し、後者のステップＳ１１−４−３は、依存関係チェック部６１ｃにおける構造的チェックに相当する。
【０１１０】
図１６は、文法辞書部２の文法辞書の内容の例を模式的に示している。（ａ）は名詞“speech”に対する依存関係規則である。図において、矢印は子供から親の方向に向かって伸び、依存関係をあらわす線の近傍にはその関係の種類をあらわす文字列つまり名称を付している。また、実線は必須の依存関係、破線は任意の依存関係をあらわす。また、関係の種類をあらわす名称の末尾の＊は、その関係が複数回適用可能であることをあらわす。例えば、（ａ）に示す名詞“speech”は、左方にcomplの関係で子供となることができ、左方にdet、及びpremodの関係で親になることができる。どの関係も必須ではなく任意の関係である。なお、関係premodは複数回適用可能である。右方に対してのpostmodも同様に、自分を親とする任意の依存関係である。
【０１１１】
（ｂ）に示す名詞“park”も“speech”と同様の依存関係のセットを持つ。（ｃ）に示す前置詞“at”は、右側にcomplの関係で親となり、この関係は必須である。一方、左方には、postmodの関係で子供になる。この関係は任意である。（ｄ）に示す前置詞“by”の依存関係のセットは“at”と同一である。（ｅ）に示す形容詞“long”  は、右方に必須関係  postmod  で子供となる。（ｆ）に示す冠詞  “the”  は、右方に必須依存関係det  で子供となる。（ｇ）に示す副詞的名詞  “yesterday”  は、左方に自分が子供としてpostmodの関係をとることが必須である。
【０１１２】
次に、図１７に示す前置詞句  “by the long speech yesterday at the park”が入力されてから図１８に示す依存関係が最終的な解析結果として得られ出力されるまでを具体的に追いながら、この第３の実施の形態における動作を説明する。
【０１１３】
図１７の文字列が入力されると、形態素解析部１０が英語辞書部２′にアクセスして入力を単語列に分割して、エッジ登録部７に供給する。エッジ登録部７は、第１のチャート格納部３及び第２のチャート格納部４に単語列を供給して第１及び第２のチャートを初期化すると同時に、対応管理部５の内容を初期化する。
【０１１４】
図１９は、この時点で第１のチャート格納部３の第１のチャートに格納される内容を模式的に示している。単語“by”から単語“park”に至る各単語がエッジとして並んでいる。この第１のチャートのノードは単語の中間点の位置に相当する。
【０１１５】
図２０は、同じ時点での、第２のチャート格納部４の第２のチャートに格納される内容を模式的に示している。各単語は、チャートのノードとして黒丸（「●」）であらわされている。ノードを端点とするエッジが存在しないのに注意すべきである。これは、この時点では、複数単語をまとめあげた依存構造がまだ作られていないためである。
【０１１６】
次に、解析制御部８が左から右のボトムアップチャート法に基づいて解析を開始する。まず、第１のチャート格納部３の第１のチャート上で注目エッジを先頭単語の“by”とし、その左に隣接するエッジと組み合わせて依存構造作成を試みる（図６におけるステップＳ２５）。ところが、左に隣接するエッジは存在しないので、この繰り返しはすぐに終了する。次に、対応管理部５にアクセスし、“by”に対応する第２のチャート上のエッジを取得しようとするが、この時点では第２のチャートの上にはエッジはまったく存在しないので取得に失敗し（図７のステップＳ３０で“No”）、単語“by”を注目エッジとした処理は終了する。
【０１１７】
次に、解析制御部８は、単語“the”を注目エッジとする。第１のチャート上でこのエッジの左に隣接する唯一のエッジは単語“by”のエッジなので、エッジＥｌを単語“by”のエッジ、エッジＥｒを“the”のエッジとして第１の文法適用部６１を起動する。文法適用部６１では、単語Ｗ１に単語“by”が入り、単語Ｗ２が空、単語Ｗ３が空、単語Ｗ４に単語“the”が入った状態で依存関係チェック部６１ｃが起動される。依存関係チェック部６１ｃは、これら２つの単語を結ぶ依存関係があるかどうかをチェックする（図１０のステップＳ７−３−１）。図１６を見ると、単語“by”は自分を親として右方にcomplの関係を結ぶことができ、単語“the”は自分を子供として右方にdetの関係を結ぶことができるが、左に単語“by”、右に単語“the”が並んだときに２つを依存関係で結ぶことはできないことがわかる。そこで、依存関係チェック部は何も出力せず、したがって依存構造作成部６１ｅは何も作成せずに第１の文法適用部６１の処理が終わる。第２のチャート上にはまだエッジが存在しないので、単語“the”を注目エッジとした処理もそのまま終了する。
【０１１８】
同様に、単語“long”を注目エッジとした処理も、新たな依存構造を作ることなく終了する。
【０１１９】
次に、解析制御部８は、注目エッジを単語“speech”として処理を始める。解析制御部８は、第１のノードで左に隣接する単語“long”のエッジと組にして第１の文法適用部６１に送り、文法適用処理を起動する。第１の文法適用部６１は、単語Ｗ１を単語“long”、単語Ｗ４を単語“speech”として依存関係チェック部６１ｃに送り、依存関係チェック処理を起動する。依存関係チェック部６１ｃでは、図１０のステップＳ７−３−３において、単語Ｗ１の単語“long”を子供、単語Ｗ４の単語“speech”を親とする依存関係が文法的に可能かどうかをチェックする。図１６の（ａ）及び（ｅ）を参照すると、単語“long”は自分を子供として右方にpremodの依存関係を結ぶことができる一方、単語“speech”は自分を親として左方にpremodの依存関係を結ぶことができることがわかるので、依存関係チェック部６１ｃは、依存関係premodにより単語Ｗｌと単語Ｗｒとの間に依存関係が結べると判断し、ステップＳ７−３−３では“Yes”に進む。
【０１２０】
次に、単語Ｗ２と単語Ｗ３に対して文法適用制約格納部６１ｄに記述された制約を満たすかどうかをチェックする（ステップＳ７−３−４）。しかしながら、この場合、エッジＥｌ、及びＥｒは、共に１単語からなるエッジなので、単語Ｗ２、及びＷ３が共に空であり、チェックは無条件に成功する。こうして、ステップＳ７−３−６において、依存構造作成部６１ｄが、単語“long”を子供、単語“speech”を親、関係をpremodとする依存関係で２つの単語を結んだ依存構造を作成し、エッジ登録部７に送る。
【０１２１】
エッジ登録部７は、送られてきた依存構造を第１のチャート及び第２のチャートの対応する区間に登録する。図２１はこの時点での第１のチャートの内容である。エッジＥ１が新規に作成されたエッジである。図２２は同じ時点での第２のチャートの内容であり、やはりエッジＥ１が新規に作成されたエッジである。
【０１２２】
次に、解析制御部８は、図２１に示された、第１のチャート内のエッジＥ１を注目エッジとする。第１の文法適用部６１は、エッジＥ１の左に隣接する単語“the”のエッジとエッジＥ１との間に依存関係が結べるかどうかをチェックする。依存関係チェック部６１ｃでは、単語“the”と単語“speech”の間に種類detの依存関係を、前者を子供、後者を親として結べることを見出す（図１０のステップＳ７−３−３）。また、単語Ｗ３の単語“long”の文法適用は終了しているので、ステップＳ７−３−４における文法適用制約のチェックも成功する。単語“the”と単語“long”の間には依存関係が存在しないので、これがエッジＥｌとエッジＥｒとの間に結ぶことが可能な唯一の依存関係である。
【０１２３】
こうして、依存構造作成部６１ｅが、エッジＥｌとエッジＥｒとをdetの関係で結んで新たな連結依存構造を作成する。作成された依存構造はエッジ登録部７により第１のチャート及び第２のチャートに登録される。図２３はこのエッジが登録された時点での第１のチャートの内容であり、エッジＥ２が新規に作成され登録されたエッジである。図２４は同じ時点での第２のチャートの内容であり、やはりエッジＥ２が新規に作成され登録されたエッジである。
【０１２４】
図２５は、さらに解析が進んだ時点での第１のチャートの内容の一部である。例えば、エッジＥ３は、第１のチャートの上でチャートＥ２が注目エッジとなっているときに、左隣の“by”エッジとまとまってできたエッジである。これは、単語“by”と単語“speech”との間にcomplの依存関係を、前者を親、後者を子供として結んで作られた依存構造である。文法適用制約をチェックする際に、単語Ｗ３に相当する単語“the”に対する文法適用が終了しているかどうかがチェックされるが、これは満足していることに注意すべきである。
【０１２５】
図２５のエッジＥ６は、エッジＥ４とエッジＥ５から第１の文法適用部６１により作成された依存構造である。また、エッジＥ６が注目エッジとなっているとき、エッジ“long”と結合してエッジＥ７ができる。しかしながら、これ以後エッジＥ７が、例えば左隣の“the”のエッジと結合して成長することはない。エッジＥ７の両端の単語は既に適用可能な依存構造をすべて持っており、これ以上他の単語の結びつく可能性がないためである。エッジ中途の単語“speech”は、単語としてはまだ定冠詞と関係detで結合する能力を残しているが、図９に示した第１の文法適用部６１の処理ではエッジの内部の単語と外部の単語との間に依存関係を結ぶことはあり得ないため、第１のチャート上でエッジＥ７がこれ以上成長することはあり得ないのである。したがって、エッジＥ６からは、図１８に示した正解の構造は成長しない。一般に、第１のチャートの上で第１の文法適用部６１によるエッジ作成を進めていっても、図１８の正解構造にまで成長しないことが容易に理解できるはずである。
【０１２６】
エッジＥ６を注目エッジとした第１のチャート上の解析を終えたら、解析制御部８は、第２のチャートに処理の場を移す。図２６は、図２５と同じ時点での第２のチャート４の内容の一部である。対応するエッジは、図２５と図２６とに同じ符号を付して示している。注目エッジはやはりエッジＥ６である。エッジＥ６と、エッジＥ６の左に隣接するエッジとの組が順次第２の文法適用部６２に送られる。第２の文法適用部６２では、２つの依存構造をマージして連結な依存構造を作成できるかどうかをチェックする。
【０１２７】
エッジＥ６の左に隣接するエッジとして、エッジＥ１、Ｅ２、及びＥ３が順次選ばれて第２の文法適用部６２に送られる。第２の文法適用部６２では、両者のエッジに共通する単語“speech”に対して、それぞれのエッジで与えられた依存関係を無理なく１つにまとめて、単語“speech”に対する文法適用が終了した状態にできるかどうかをチェックする。例えば、エッジＥ１では、単語“speech”はpremod関係の親となっており、エッジＥ６では２つのpostmod関係の親となっている。postmod関係は複数個許されるので、これらを合わせた「右へpremod関係、左へ２つのpostmod関係、すべての関係において親となっている」という依存関係の総体は、単語“speech”の持つ依存関係として整合性があり、かつ必須関係をすべて満足しているので、第２の文法適用部６２における整合性関係チェックは成功する。したがって、エッジＥ１とエッジＥ６とを連結した依存構造が作成され、登録される。ただし、この構造は、エッジＥ７とまったく同じ区間を張り、両端の単語“long”と単語“park”における文法適用の状況もまったく同じなので、第１のチャート、及び第２のチャートのいずれにおいても登録時にエッジＥ７にパックされる。
【０１２８】
正解に至るのは、エッジＥ３とエッジＥ６の組合わせである。これらを第２の文法適用部６２に送ると、エッジＥ１の場合とまったく同様にチェックが進み、新しい依存構造が作成される。こうして作成された依存構造が登録された時点の第１のチャートの内容を図２７に示す。また、同じ時点の第２のチャートの内容を図２８に示す。正解エッジＥ８が得られている。
【０１２９】
以後も解析が進められるが、全体を張るエッジはこのエッジＥ８だけなので、解析処理の終了後に解析結果選択部１１によりこれが選択され、依存構造が出力部９より出力される。
【０１３０】
以上説明したようなステップを踏んで、入力“by the long speech yesterdayat the park”から図１８に示す解析結果を得ることができる。チャートを２つ使うことによる計算量の増加は、単一のチャートを使う場合の計算量の２倍にとどまる。エッジの統語的振舞いは両端の単語だけで決まるため、文献３と同じ理由により解析が単語数の３乗のオーダーで終了する。また、エッジがすべて連結な依存構造であるという大きな利点がある。このため、この連結な依存構造であるエッジに言語的解釈を施して、例えば構造に対する優先度を容易に付与することができるという利点がある。
【０１３１】
次に、本発明の第４の実施の形態について説明する。本発明の第４の実施の形態も、図１に示した第１の実施の形態の自然言語解析システムを用いて構成した英語の構文解析システムである。すなわち、図２９は、本発明の第４の実施の形態に係る構文解析システムの構成を示している。図２９に示した本発明の第４の実施の形態に係る構文解析システムの図５の第３の実施の形態の構文解析システムとの相違は、第１のチャートと第２のチャートを物理的に１つのチャートとしてまとめチャート格納部３４に格納した点、及び対応管理部５を削除した点である。チャート格納部３４に格納されるチャートの物理構造は、第３の実施の形態における第１のチャートと同様であり、単語及び連結な依存構造をエッジとし単語間の位置をノードとする。
【０１３２】
第３の実施の形態に関連して示したように、第１のチャートの内容と第２のチャートの内容は本質的に同じである。正確には、単語をあらわす長さ１のエッジを除き、第１のチャートと第２のチャートには同じエッジが同じ位置に登録されている。第１のチャートと第２のチャートの本質的な違いは、エッジの隣接関係にある。例えば、図２５を参照すると、エッジＥ４とエッジＥ５は第１のチャートの上でお互いに隣接していることがわかる。一方、同じ時点での第２のチャートの内容を表す図２６を参照すると、エッジＥ４とエッジＥ５は第２のチャート上では隣接していないことがわかる。逆に、Ｅ３とＥ６は第１のチャートの上では隣接していないにも関わらず、第２のチャート上では隣接している。一般に、第２のチャートで隣接する２つのエッジは、第１のチャートでは端の１単語を共有している。一方、第１のチャートで１単語を共有する２つのエッジは、第２のチャートで隣接する。例えば、前述のエッジＥ３とエッジＥ６は、第１のチャート上では端の単語“speech”を共有する関係にあり、第２のチャート上では隣接する関係にある。したがって、２つのエッジが第２のチャート上で隣接していることと、第１のチャート上で端の単語を共有していることは同値である。
【０１３３】
このように、第１のチャートと第２のチャートの間には規則的な対応関係があるため、２つを物理的に共通化して１つのチャートとして実現しながら、隣接関係の解釈を状況に応じて変えることにより論理的に２つのチャートとして使用することができる。共通化されたチャート上のエッジの隣接関係を物理的な隣接で判断すれば第１のチャートとみなしていることになり、端の一単語が共有されているかどうかで隣接関係を判断すれば第２のチャートとみなしていることになる。なお、長さ１のエッジは第２のチャートの解釈をとるときは存在しないものとする。
【０１３４】
第４の実施の形態においては、このような考察に基づき、論理的に２つのチャートを物理的に１つのチャート構造上に実現して構文解析システムを構成する。
【０１３５】
すなわち、図２９に示す構文解析システムは、入力部１、英語辞書部２′、文法適用部６′、エッジ登録部７、解析制御部８、出力部９、形態素解析部１０、解析結果選択部１１、及びチャート格納部３４を備えている。文法適用部６′は、第１の文法適用部６１及び第２の文法適用部６２を有している。
【０１３６】
チャート格納部３４に格納されるチャートは、上述したように論理的に２つのチャートである第１及び第２のチャートを物理的に１つのチャート構造上に実現したものである。
【０１３７】
図３０及び図３１は、第４の実施の形態による構文解析システムの動作を説明するフローチャートである。図６及び図７に示した第３の実施の形態の動作との相違は、チャートの物理的な共通化と対応管理部の廃止に伴い、第２のチャートと対応管理部を初期化するステップ（図６のステップＳ２３）を廃止したこと、第１のチャート上の注目エッジに対応する第２のチャート上のエッジを取得するステップ（図７のステップＳ２９及びＳ３０）を廃止したこと、第１のチャート上で隣接するエッジを取得する操作を、共通のチャート上で第１のチャートの意味で隣接するエッジを取得する操作、すなわち物理的に隣接するエッジを取得する操作に置き換えたこと、第２のチャート上で隣接するエッジを取得する操作を、共通のチャート上で第２のチャートの意味で隣接するエッジを取得する操作、すなわち端の一単語を共有する長さ２以上のエッジを取得する操作に置き換えたこと、さらに、第１のチャートへの格納操作と第２のチャートへの格納操作に分かれていた依存構造格納操作を単一のチャートへの格納操作に共通化したことである。
【０１３８】
それ以外の点では、第４の実施の形態の動作は第３の実施の形態の動作とまったく同じである。
【０１３９】
まず、入力部１に英文が入力される（ステップＳ４１）。具体的には、英文が入力部１に入力され、該英文が形態素解析部１０に送られる（ステップＳ４１ａ）。形態素解析部１０は、英語辞書部２′を参照して、入力英文を単語に分割する（ステップＳ４１ｂ）。
【０１４０】
入力部１に入力され、形態素解析部１０により単語に分割された入力英文は、エッジ登録部７に送られる。エッジ登録部７は、与えられた単語列をチャート格納部３４に送り、チャートに登録し、チャートを初期化する（ステップＳ４２）。
【０１４１】
チャートの初期化処理が終了すると、解析制御部８が構文解析を開始する。解析は、ボトムアップ、左から右のチャート法によって行う。まず、チャート格納部３４のチャート上で注目エッジＥｒを１つ定める（ステップＳ４４）。次に、チャート上でエッジＥｒの左に第１のチャートの意味で隣接するエッジを順次選定し、これをエッジＥｌとして、以下（ステップＳ４６〜Ｓ４８）のまとめあげ処理を繰り返す（ステップＳ４５）。
【０１４２】
まず、エッジＥｌとエッジＥｒを第１の文法適用部６１に送る（ステップＳ４６）。第１の文法適用部６１は、２つのエッジを新たな依存関係で結んで、全体を１つの連結な依存構造にまとめあげる処理を行う（ステップＳ４７）。
【０１４３】
第１の文法適用部６１では依存構造を生成する際に、新しく生成される構造の両端の単語以外の単語に対しては文法適用がすべて終了した状態にあるか、又は依存関係で結ばれることによりそのような状態になるか否かをチェックし、この条件を満たすことができない依存構造は生成しない。この条件により、生成された依存構造の文法的振舞いが両端の単語だけで決まることが保証されるため、パックすることにより横形解析が単語数の３乗のオーダーの計算量で終了することが保証される。
【０１４４】
さて、このようにして新規作成された依存構造は、エッジ登録部７に送られる。エッジ登録部７は、該依存構造をチャート格納部３４のチャートにエッジとして登録する（ステップＳ４８）。ただし、同一の区間に同一の文法適用の可能性を持ったエッジが既に登録されている場合には、既登録のエッジを代表エッジとしてパックし、以後の文法適用が代表エッジのみを対象として行われるようにする。
【０１４５】
エッジＥｒの左側にあるエッジのすべてに対して上述の処理を行ったら、解析制御部８は、チャート上で、エッジＥｒ（２）の左に第２のチャートの意味で隣接するエッジＥｌ（２）の各々に対してエッジまとめあげ処理（ステップＳ５２〜Ｓ５４）を行う（ステップＳ５１）。
【０１４６】
ステップＳ４５（Ｓ４６〜Ｓ４８）におけるまとめあげ処理と同様、まずエッジＥｌ（２）とＥｒ（２）を第２の文法適用部６２に送る（ステップＳ５２）。第２の文法適用部６２は必要に応じて文法適用を行い、２つのエッジを１つのエッジにまとめあげる（ステップＳ５３）。
【０１４７】
この第２の文法適用部６２におけるまとめあげに際しては、第１の文法適用部６１と同様に、両端の単語を除いては文法適用がすべて終了した状態にあるか、又は依存関係で結ぶことによりそのような状態にできるか否かをチェックし、この条件を満たすことができない依存構造は生成しない。ただし、第２のチャートの意味では隣接するエッジは中間の単語を共有しているので、依存関係を新たに導入しなくても連結な依存構造を作ることができる点が第１の文法適用部６１の場合とは相違する。
【０１４８】
さて、第２の文法適用部６２で新規に生成された連結依存構造はエッジ登録部７に送られる。エッジ登録部７は、依存構造をエッジとしてチャートに登録する（ステップＳ５４）。さらに、必要に応じてパックして登録することも上述の場合と同様である。
【０１４９】
こうして、可能性のある全てのエッジＥｌ（２）に対して処理を終了したら、再びチャートに視点を戻し、注目エッジとすべきエッジがチャート上に残っているかどうかをチェックする（ステップＳ５５）。ステップＳ５５において、そのようなエッジが残っていると判定されたならば、ステップＳ４４に戻り、次の注目エッジをＥｒにセットしてステップＳ４４以後の処理を繰り返す。
【０１５０】
一方、ステップＳ５５において、そのようなエッジが残っていないと判定されたならば、解析結果選択部１１が起動される。解析結果選択部１１は、解析制御部８を介してチャート格納部３４のチャートにアクセスし、解析結果としてチャート全体を張るエッジを得て、適正な解析結果を選択出力する（ステップＳ５６）。すなわち、全体に対する解析結果として得たエッジの中から、出力としてふさわしいものを選択して、出力部９に送る（ステップＳ５６ａ）。該出力部９は、送られてきた解析結果を出力する（ステップＳ５６ｂ）。
【０１５１】
例えば、図２５のエッジＥ６が注目エッジとなっているとき、第１のチャートの意味で隣接するエッジの単語“long”とのまとめあげを行ってエッジＥ７を作成した後、このチャートの上で、第２のチャートの意味で隣接するエッジＥ１、Ｅ２、及びＥ３とのまとめあげに移り、正解となる図２７のエッジＥ８を得ることができる。
【０１５２】
第４の実施の形態によれば、２つのチャートを物理的に共有できるので、処理に必要なメモリを削減できるという利点がある。
【０１５３】
本発明は、上述した以外にも種々に変形して実施することができる。例えば、エッジのまとめあげの順序による曖昧性が発生するのを防ぐために、エッジのまとめあげ処理にさらに制約を加えて実施することができる。例えば、隣接する３つの単語が次々右側に係っていく場合を考える。構造化の手順としては、左の２単語をまとめ、次に一番右側の単語とまとめあげる手順と、右の２単語が構造化されたものに一番左の単語が係っていく手順の２つがあるが、上述の実施例ではすべての手順が実行される。どちらの手順で構造化しても、最終的にはまったく同じ依存構造が得られるのは明らかであり、２つの手順からまとめあげが行われるのは冗長である。この問題に対処するために、例えばこのようなまとめあげの際には左又は右のエッジが内部構造を持たない単純なエッジでなければならないという制約を追加して、このような冗長性を削減することができる。本発明をこのような制約を考慮するように変形して実施することは容易である。
【０１５４】
また、実施例では解析の全体制御にボトムアップ、左から右のチャート法を用いたが、トップダウンの解析方法を用いたり、解析方向を右から左にする、島駆動にする、あるいはそれらを混合して解析をすすめるように本発明を変形して実施することも容易である。その他、本発明は種々変形して実施することができる。
【０１５５】
【発明の効果】
以上説明したように、本発明によれば、任意の依存文法が与えられたときに、入力単語数の３乗のオーダー程度の少ない計算量で横形の解析が可能で、しかもチャートに登録する部分解析結果を連結な構造に限定することの可能な自然言語解析装置、システム及び記録媒体を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る自然言語処理システムの構成を示すブロック図である。
【図２】図１の自然言語処理システムの処理動作の一部を説明するためのフローチャートである。
【図３】図１の自然言語処理システムの処理動作の残部を説明するためのフローチャートである。
【図４】本発明の第２の実施の形態に係る自然言語処理システムの構成を示すブロック図である。
【図５】本発明の第３の実施の形態に係る構文解析システムの構成を示すブロック図である。
【図６】図５の構文解析システムの処理動作の一部を説明するためのフローチャートである。
【図７】図５の構文解析システムの処理動作の残部を説明するためのフローチャートである。
【図８】図５の構文解析システムにおける第１の文法適用部の構成の一例を示すブロック図である。
【図９】図８の第１の文法適用部の処理動作の一例を説明するためのフローチャートである。
【図１０】図８の第１の文法適用部における依存関係チェック部の処理動作の一例を説明するためのフローチャートである。
【図１１】図８の第１の文法適用部における文法適用制約格納部の格納内容の一例を説明するための模式図である。
【図１２】図５の構文解析システムにおける第１の文法適用部の処理対象となる２つのエッジの位置関係を説明するための模式図である。
【図１３】図５の構文解析システムにおける第２の文法適用部の構成の一例を示すブロック図である。
【図１４】図１３の第２の文法適用部の処理動作の一例を説明するためのフローチャートである。
【図１５】図１３の第２の文法適用部における整合性チェック部の処理動作の一例を説明するためのフローチャートである。
【図１６】図５の構文解析システムにおける英語辞書部２′の英語辞書の内容の例を示す模式図である。
【図１７】図５の構文解析システムへの入力文の一例を示す模式図である。
【図１８】図５の構文解析システムからの出力結果の一例を示す模式図である。
【図１９】図５の構文解析システムにおける第１のチャートの内容の一例を示す模式図である。
【図２０】図５の構文解析システムにおける第２のチャートの内容の一例を示す模式図である。
【図２１】図５の構文解析システムにおける第１のチャートの内容の他の一例を示す模式図である。
【図２２】図５の構文解析システムにおける第２のチャートの内容の他の一例を示す模式図である。
【図２３】図５の構文解析システムにおける第１のチャートの内容のその他の一例を示す模式図である。
【図２４】図５の構文解析システムにおける第２のチャートの内容のその他の一例を示す模式図である。
【図２５】図５の構文解析システムにおける第１のチャートの内容のさらにその他の一例を示す模式図である。
【図２６】図５の構文解析システムにおける第２のチャートの内容のさらにその他の一例を示す模式図である。
【図２７】図５の構文解析システムにおける第１のチャートの内容のさらなる他の一例を示す模式図である。
【図２８】図５の構文解析システムにおける第２のチャートの内容のさらなる他の一例を示す模式図である。
【図２９】本発明の第４の実施の形態に係る構文解析システムの構成を示すブロック図である。
【図３０】図２９の構文解析システムの処理動作の一部を説明するためのフローチャートである。
【図３１】図２９の構文解析システムの処理動作の残部を説明するためのフローチャートである。
【図３２】従来の自然言語処理システムの処理アルゴリズムの一例を示す図である。
【図３３】従来の自然言語処理システムの処理の一例を模式的に示す図である。
【符号の説明】
１    入力部
２    文法辞書部
２′    英語辞書部
３    第１のチャート
４    第２のチャート
５    対応管理部
６    文法適用部
６′    文法適用部
７    エッジ登録部
８    解析制御部
９    出力部
１０    形態素解析部
１１    解析結果選択部
６１    第１の文法適用部
６２    第２の文法適用部
６１ａ    エッジ格納部
６１ｂ    単語格納部
６１ｃ    依存関係チェック部
６１ｄ    文法適用制約格納部
６１ｅ    依存構造作成部
６２ａ    エッジ格納部
６２ｂ    単語格納部
６２ｃ    整合性チェック部
６２ｄ    依存構造作成部
Ａ１  …  入力装置
Ａ２  …  データ処理装置
Ａ３  …  出力装置
Ａ４  …  記憶装置
Ａ５  …  記録媒体
【図１】
0003781561.tif 000002
【図２】
0003781561.tif 000003
【図３】
0003781561.tif 000004
【図４】
0003781561.tif 000005
【図５】
0003781561.tif 000006
【図６】
0003781561.tif 000007
【図７】
0003781561.tif 000008
【図８】
0003781561.tif 000009
【図９】
0003781561.tif 000010
【図１０】
0003781561.tif 000011
【図１１】
0003781561.tif 000012
【図１２】
0003781561.tif 000013
【図１３】
0003781561.tif 000014
【図１４】
0003781561.tif 000015
【図１５】
0003781561.tif 000016
【図１６】
0003781561.tif 000017
【図１７】
0003781561.tif 000018
【図１８】
0003781561.tif 000019
【図１９】
0003781561.tif 000020
【図２０】
0003781561.tif 000021
【図２１】
0003781561.tif 000022
【図２２】
0003781561.tif 000023
【図２３】
0003781561.tif 000024
【図２４】
0003781561.tif 000025
【図２５】
0003781561.tif 000026
【図２６】
0003781561.tif 000027
【図２７】
0003781561.tif 000028
【図２８】
0003781561.tif 000029
【図２９】
0003781561.tif 000030
【図３０】
0003781561.tif 000031
【図３１】
0003781561.tif 000032
【図３２】
0003781561.tif 000033
【図３３】
0003781561.tif 000034