(57)【要約】  【課題】  言語解析処理を大幅に短縮でき、その迅速化及び効率化を図ることができる言語解析装置を提供する。  【解決手段】  文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析装置であって、ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断し、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断手段と、第１判断手段により、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合において、それらがｎ＋１番目の文節に係るか否かを判断する第２判断手段とを備える。  【選択図】  図１
2006031333.tif 000002
【特許請求の範囲】
【請求項１】
文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析装置であって、
ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断し、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断手段と、
第１判断手段により、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合において、それらがｎ＋１番目の文節に係るか否かを判断する第２判断手段と、
を備えてなる言語解析装置。
【請求項２】
文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析装置であって、
文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルと、該ルールテーブルを用いて文節の係り関係の有無を判断する判断部とを備え、
前記スタックは、ｎ番目の文節ＩＤをプッシュし、ｎ＋１番目の文節に対してポップし、前記判断部が前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断し、
前記判断部により、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックは、ｎ＋１番目の文節ＩＤをプッシュし、ｎ＋２番目の文節に対してポップし、前記判断部が前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断し、
前記判断部により、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックは、既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップすると共に、前記判断部が前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する言語解析装置。
【請求項３】
文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルとを備え、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法であって、
前記スタックに、ｎ番目の文節ＩＤをプッシュさせて、ｎ＋１番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックに、ｎ＋１番目の文節ＩＤをプッシュさせて、ｎ＋２番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断ステップと、
前記第１判断ステップにおいて、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックに既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップさせて前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する第２判断ステップと、
を備えてなる言語解析方法。
【請求項４】
文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法をコンピュータに実行させる言語解析プログラムであって、
ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合は、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否か判断する第１判断ステップと、
ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合は、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合はそれらの文節がｎ＋１番目の文節に係るか否か判断する第２判断ステップと、
をコンピュータに実行させる言語解析プログラム。
【請求項５】
文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルとを備え、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法をコンピュータに実行させる言語解析プログラムであって、
前記スタックに、ｎ番目の文節ＩＤをプッシュさせて、ｎ＋１番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックに、ｎ＋１番目の文節ＩＤをプッシュさせて、ｎ＋２番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断ステップと、
前記第１判断ステップにおいて、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックに既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップさせて前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する第２判断ステップと、
をコンピュータに実行させる言語解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文を構成する複数の文節の係り関係を判断する言語解析装置、言語解析方法及び言語解析プログラムに関し、特に日本語や韓国語やモンゴル語等、構文構造が類似する所定の言語についての言語解析装置、言語解析方法及び言語解析プログラムに関する。
【背景技術】
【０００２】
近年の急速なＩＴの進歩に伴い、言語の文節の係り関係を判断する言語解析技術は重要性を高めている。典型的な従来の言語解析技術は、一文中に存在するＮ個の文節が他の全ての文節に係るか否かを判断するため、一文中の文節の数Ｎの２乗に比例する処理時間を要する。すなわち、一般に、ある文節の係り先を決定するには、その文節よりも右にある文節について考慮する必要があり、この処理が１文節あたりＯ（Ｎ）の計算時間がかかる。それを従来の技術では文全体で繰り返すため、Ｏ（Ｎ2）の処理時間がかかっている（例えば、特許文献１参照。）。
【特許文献１】特開昭６３−２１９０７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、文節数Ｎの２乗に比例する処理時間がかかると、文が長くなる（すなわち、文節の数が多くなる）と、処理が非常に遅くなるという問題が有り、また、係り先として、後方全ての文節を考慮するのでは、言語解析のために文末まで全ての文節が入力されないと、解析の処理が開始できず、処理の効率化が図れないという問題もある。
【０００４】
一方、日本語や韓国語やモンゴル語等は類似する構文構造を有し、この構文構造による特性（ルール）を利用すれば、必ずしもある文節が他の全ての文節に係るか否かを判断する必要は無く、このようなルールを効果的に用いることにより、言語解析処理を大幅に短縮でき、その迅速化及び効率化を図ることが可能であり、そのような技術が要望されている。
【０００５】
本発明は、上述した従来の問題点を解決するためになされたものであり、上述した言語の構文構造によるルールを効果的に利用することにより、言語解析処理を大幅に短縮でき、その迅速化及び効率化を図ることができる言語解析装置、言語解析方法及び言語解析プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明は、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析装置であって、ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断し、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断手段と、第１判断手段により、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合において、それらがｎ＋１番目の文節に係るか否かを判断する第２判断手段とを備えてなるものである。
【０００７】
ここで、前記第２判断手段は、番号の大きい文節から小さい文節にかけて順次ｎ＋１番目の文節に係るか否かを判断することができる。また、ｎがＮ−１となった場合には、前記第１判断手段は、ｎ番目の文節がＮ番目の文節に係ると判断すると共に、前記第２判断手段は、未だ係り先の文節が見出せていない文節を全てＮ番目の文節に係るものと判断することもできる。さらに、前記第１、第２判断手段は二つの文節間の係り関係の有無を規定するルールテーブルを有し、該ルールテーブルの規定に従って、係り関係の有無を判断することができる。また、文節の係り関係が判断された場合は、その関係を保存する保存部を備えることができる。
【０００８】
また、本発明は、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析装置であって、文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルと、該ルールテーブルを用いて文節の係り関係の有無を判断する判断部とを備え、前記スタックは、ｎ番目の文節ＩＤをプッシュし、ｎ＋１番目の文節に対してポップし、前記判断部が前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断し、前記判断部により、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックは、ｎ＋１番目の文節ＩＤをプッシュし、ｎ＋２番目の文節に対してポップし、前記判断部が前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断し、前記判断部により、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックは、既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップすると共に、前記判断部が前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断するものである。
【０００９】
なお、実施の形態においては、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法であって、ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合は、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否か判断する第１判断ステップと、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合は、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合はそれらの文節がｎ＋１番目の文節に係るか否か判断する第２判断ステップとを備えてなる言語解析方法が提供され得る。
【００１０】
また、本発明は、文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルとを備え、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法であって、前記スタックに、ｎ番目の文節ＩＤをプッシュさせて、ｎ＋１番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックに、ｎ＋１番目の文節ＩＤをプッシュさせて、ｎ＋２番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断ステップと、前記第１判断ステップにおいて、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックに既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップさせて前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する第２判断ステップとを備えてなるものである。
【００１１】
また、本発明は、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法をコンピュータに実行させる言語解析プログラムであって、ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合は、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否か判断する第１判断ステップと、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合は、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合はそれらの文節がｎ＋１番目の文節に係るか否か判断する第２判断ステップとをコンピュータに実行させるものである。
【００１２】
また、本発明は、文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルとを備え、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法をコンピュータに実行させる言語解析プログラムであって、前記スタックに、ｎ番目の文節ＩＤをプッシュさせて、ｎ＋１番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックに、ｎ＋１番目の文節ＩＤをプッシュさせて、ｎ＋２番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断ステップと、前記第１判断ステップにおいて、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックに既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップさせて前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する第２判断ステップとをコンピュータに実行させるものである。
【発明の効果】
【００１３】
以上に詳述したように本発明によれば、言語解析処理を大幅に短縮できて処理の迅速化を図ることができるとともに、文頭から文末に向かって処理を進めることができることで、文の入力が完了していなくても処理を進めることができ、処理の効率化を図ることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について日本語の言語解析装置を例として、図面を参照しつつ説明する。
【００１５】
図１は本実施の形態におけるよる言語解析装置の構成を示す機能ブロック図、図２は同装置の動作を示すフローチャートである。この言語解析装置は、入力文を構成する複数の文節（文節列）の係り関係の有無を判断する判断部（係り関係決定部）１と、判断部１による複数の文節のハンドリングを容易にするスタック２と、判断部１が判断に際して参照する２文節間の係り関係を規定するルールテーブル（２文節間係り関係推定器）３と、判断部１による判断結果を解析結果として格納する解析結果格納メモリ４とを備える。
【００１６】
入力文を構成する各文節には、文頭から文末にかけての各文節に０番からＮ−１番までの番号（ＩＤ）が付されており（１番目からＮ番目の文節に対応している）、ここでは、ｍ番（ｎ：ｍ＋１番目）の文節のＩＤをＩＤ（ｍ）と表す。また説明の便宜上、各文節の番号ｍをＩＤ（ｍ）とも表すこととする。
【００１７】
スタック（stack）２は、最後に入力したデータが先に出力されるという動作特性を有するデータ構造を提供するメモリである。
【００１８】
ルールテーブル３は、図３に示すように、日本語の係り関係を規定するルールテーブルである。図３に示すルールテーブルは、一例に過ぎず、図３に規定されているルールと異なるルールテーブルも適用できることは言うまでも無い。
【００１９】
ただし、日本語の係り受け関係として、上記ルールテーブルに規定されているルール以外に、下記に示すように、日本語の構文構造に基づく基本的なルールがあることが知られており、本実施の形態においては、かかる構文構造上の基本的ルールを用いることを基本としている。そして、この基本的ルールを用いることにより、本発明は、言語解析処理を大幅に短縮でき、その迅速化及び効率化を図ることができるのである。
【００２０】
Ｃ１：ある文節の係り先は、その文節（ＩＤ（ｐ））より文末側の文節（ＩＤ（ｑ）：ｑ＞ｐ）に係る。すなわち、文頭の文節である０番（１番目）の文節から文末の文節であるＮ−１番（Ｎ番目）の文節までにより構成される文において、ある文節の係り先は、その文節の番号より大きな番号の文節に係る。
【００２１】
Ｃ２：文節の係り先は必ず一つである。
【００２２】
Ｃ３：係り関係は交差しない。
【００２３】
解析結果格納メモリ４は、図４、図５に示されるように、係り元文節がある係り先文節に係る場合に、その係り元文節番号に対応する場所に係り先文節番号を保存するようにしている。
【００２４】
なお、図１に示した機能ブロック図において、判断部１と、ルールテーブル３は、係り関係を推定するための所謂、分類器により構成されることができる。この分類器は、調べようとする２つの文節が、ルールに規定された複数の条件（Rule1〜Rule4）について、上から順に一致するかどうかを調べ、一致すればその判断（係るｏｒ係らない）を返し、一方、条件に一致するものが無ければ、デフォルトルール（Rule5）である「係る」が返されるようにしたものである。
【００２５】
このような２つの文節の係り関係を推定する分類器には、さまざまなものが使える。人間が記述するルールの例は、長尾真編「岩波ソフトウェア科学１５自然言語処理」１８５ページ、表４．９にある。この表にある依存文法をルールとして記述する方法がある。機械学習で二つの文節が係る確率を推定する方法がいくつか提案されている。例えば、内元他「最大エントロピー法を用いた日本語係り受け解析」、情報処理学会論文誌，Ｖｏｌ．４０，Ｎｏ．９，ｐｐ．３３９７‐３４０７，１９９９がある。文節ｊが文節ｉに係る確率をｐ、係り得ない確率をｑとするとき、ｐ＞＝ｑなら係ると判断し、ｐ＜ｑなら係らないと判断する分類器の実装があり得る。二つの文節間の係り関係を推定するには、２文節それぞれに含まれる形態素の文法属性（品詞や、原形、活用形、活用型、表記など）などを利用する。なお、ここで例示したルールテーブル以外に、決定木などのさまざまな機械学習を利用した分類器も利用可能である。機械学習を利用した分類器に、２文節の属性を入力とし、「係る」「係らない」のどちらかを答えさせる（＝分類をさせる）のもある。
【００２６】
以下、本発明の実施の形態における動作を図２のフローチャートを用いて説明する。動作の概要は、文頭の文節である０番（１番目）の文節から文末の文節であるＮ−１番（Ｎ番目）の文節までの複数の文節により構成される文における各文節の係り関係を０番の文節（１番目の文節）より順次判断するようにしている。この動作説明において、入力される文節情報（文節列又は形態素列）の一例を図６に示す。また以下の説明で、ＩＤ（ｍ）は上述したように文節番号に対応しているものとする。
【００２７】
まず、パラメータｉ，ｊ（文節番号ｍに対応）が初期化されてｉ＝０、ｊ＝０とされ、スタックにｊ（ＩＤ（ｊ））（「山田氏は」）がプッシュされる（ステップＳ１）。
（１ループ目）
次に、ｉを１加算する処理が行われて、ｉ（＝１）をパラメータとするＩＤ（ｉ）の文節（係り先文節候補）が設定される（ステップＳ２：１ループ目）。係り元文節候補となるＩＤ（ｊ）をスタックからポップする（ステップＳ３）。このときｊ＝０であり、判断部１は、文節ＩＤ（０）の係り元文節候補がＩＤ（１）の係り先文節候補に係るべきかどうかについて、ルールテーブル３を参照して判断処理を行う（ステップＳ４）。この場合、ルールテーブルのRule1によれば「係らない」と判断される（ステップＳ４，ｎｏ）。
【００２８】
ステップＳ４において、ＩＤ（ｊ）の係り元文節候補がＩＤ（ｉ）の係り先文節候補に係らないと判断されると、次にステップＳ７に進み、スタックがエンプティであるか否か判断され、エンプティでない場合（ステップＳ７，ｎｏ）は、再度スタックにｊ（ＩＤ（ｊ））をプッシュする（ステップＳ８）。ここでは、ｊ＝０である。次に、ｉ、すなわち係り先文節候補とされた文節のＩＤ（ｉ）をスタックにプッシュする（ステップＳ９）。ここでｉ＝１である。
（２ループ目）
ステップＳ９の処理の後は、ステップＳ２の処理に戻る。ここでは、再度ｉを加算する処理が行われてｉは２とされ、ＩＤ（２）が係り先文節候補として設定される。次に、スタックから値をポップし、ＩＤ（ｊ）の係り元文節候補を設定する。ここでｊ＝１である（ステップＳ３）。続いて判断部１は、ＩＤ（１）の係り元文節候補がＩＤ（２）の係り先文節候補に係るべきかどうか、ルールテーブル３を参照する（ステップＳ４）。この場合、Rule3により「係る」と判断される。「係る」と判断されると（ステップＳ４，ｙｅｓ）、解析結果格納メモリ４の１番（係り元文節のＩＤ（１）に対応する）に２（係り先文節のＩＤ（２）に対応する）を書き込む（ステップＳ５）。
【００２９】
格納が終わると、次にスタックから値をポップし、ＩＤ（ｊ）を設定する。このときｊ＝０である（ステップＳ６）。続いて判断部１は、ＩＤ（０）の係り元文節候補がＩＤ（２）の係り先文節候補に係るべきかどうか、ルールテーブル３を参照する（ステップＳ４）。この場合は、Rule2により「係らない」と判断され（ステップＳ４，ｎｏ）、ステップＳ７に進む。この場合、スタック２はエンプティでないので（ステップＳ７，ｎｏ）、ｊすなわち（ＩＤ（ｊ））をスタックにプッシュする（ステップＳ８）。このとき、ｊ＝０である。次にｉをスタックにプッシュする（ステップＳ９）。このとき、ｉ＝２である。
（３ループ目）
ステップＳ２において、ｉを加算してｉ＝３とし、ＩＤ（ｉ）の文節を係り先文節候補として設定する。スタックから値（＝２）をポップし、ｊ＝２に設定する。ＩＤ（ｊ）の文節を係り元文節候補として設定する（ステップＳ３）。続いて判断部１は、ＩＤ（２）の係り元文節候補がＩＤ（３）の係り先文節候補に係るかどうか、ルールテーブル３を参照する（ステップＳ４）。この場合、Rule4により「係らない」と判断され（ステップＳ４，ｎｏ）、ステップＳ７に進む。
【００３０】
以下同様に、ステップＳ７において、スタック２はエンプティでないので（ステップＳ７，ｎｏ）、ｊ（＝２）をスタックにプッシュする（ステップＳ８）。ｉ（＝３）をスタックにプッシュする（ステップＳ９）。
（４ループ目）
ステップＳ２において、ｉを加算してｉ＝４とし、ＩＤ（ｉ）の係り元文節候補を設定する（ステップＳ２）。スタックから値（＝３）をポップし、ｊ＝３に設定する。ＩＤ（ｊ）の係り元文節候補を設定する（ステップＳ３）。ｉ＝４は文末の文節（ｉ＝Ｎ−１）なので（ステップＳ４，ｙｅｓ）、解析結果格納メモリの３番に４を書き込む。同様にして、ステップＳ４〜ステップＳ６を繰り返し、解析結果格納メモリの２番に４を、０番に４を書き込む。
【００３１】
スタックが空になり、処理を終える（（ステップＳ４，ｎｏ）及び（ステップＳ７，ｙｅｓ））。以上により係り受け解析は終了し、解析結果格納メモリ４に解析結果が得られる。図５に解析終了後の解析格納メモリ４を示す。
【００３２】
図２のフローチャートのステップＳ４が何回処理されるか説明することにより、処理時間がＯ（Ｎ）であることを説明する。ステップＳ４でｎｏと判断される回数はＮ−２である。外側のループ回数が１からＮ−１であるためである。一方、ステップＳ４でｙｅｓとなる回数は、文節ＩＤ（ｊ）が文節ＩＤ（ｉ）に係ると決定する回数と等しくＮ−１である（高々Ｎなのは明白であり、また末尾の文節は係り先を決定する必要がないことも明白である）。従って、ステップＳ４の処理回数はＮ−２＋Ｎ−１＝２Ｎ−３回となり、これはすなわち時間がＯ（Ｎ）となることを示している。
【００３３】
なお、以上の構成において、判断部１、スタック２、ルールテーブル３及びそれらの処理を示すステップＳ１〜ステップＳ４、ステップＳ７〜ステップＳ９は本発明の第１判断手段を構成し、また、上記各ステップは本発明の第１判断ステップを構成している。また、判断部１、スタック２、ルールテーブル３及びそれらの処理を示すステップＳ４〜ステップＳ６は本発明の第２判断手段を構成し、また、上記各ステップは本発明の第２判断ステップを構成している。
【００３４】
更に、上述した各ステップを言語解析装置を構成するコンピュータに実行させるプログラムを言語解析プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、言語解析装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００３５】
以上に詳述したように、本発明の実施の形態は、文節単位に区切られた日本語文を入力し、スタックと２文節間の係り関係を推定する（＝係けるべきか否かを判断する）ための分類器（＝係り関係推定器）を持ち、スタックに係り先が未定の文節のＩＤを保持させつつ、文の左（先頭）から右（末尾）に向かって各文節の係り先を決定していく係り関係決定部を持つ日本語係り受け解析装置、方法及びプログラムを提供している。
【００３６】
なお、本発明の実施の形態は、日本語に例をとって説明したが、本発明は日本語と同様の構文構造を有する韓国語やモンゴル語にも適用可能である。ここでいう文節は、概ね自立語にゼロ個以上の付属語が連なったものを示す。韓国語にも、文節と同様の概念としてｅｏｊｅｏｌがある（例えば、次の論文にｅｏｊｅｏｌの記述がある：J. Yoon, K. choi, and M. Song. 1999. Three types of chunking in Korean and dependency analysis based on lexical association. In Proc. of the 18th Int. Conf. on Computer Processing of Oriental Languages, pages 56-65.）。
【００３７】
また、本発明の実施の形態における処理では、スタック上にまだ係り先が決まっていない文節が保持されている。ステップＳ４で、「ｉがＮ−１に等しい」という条件を取り除くと、計算機が係り先を決められない文節は、全てスタック上に保留される。このようにすれば、文末まで入力されていない文でも係り受け解析を行なうことができる。このとき、入力された文節のみで係り受け関係が決まる部分は決め、それ以外はスタック上に保留されることとなる。
（付記１）文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析装置であって、
ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断し、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断手段と、
第１判断手段により、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合において、それらがｎ＋１番目の文節に係るか否かを判断する第２判断手段と、
を備えてなる言語解析装置。
（付記２）
文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析装置であって、
文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルと、該ルールテーブルを用いて文節の係り関係の有無を判断する判断部とを備え、
前記スタックは、ｎ番目の文節ＩＤをプッシュし、ｎ＋１番目の文節に対してポップし、前記判断部が前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断し、
前記判断部により、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックは、ｎ＋１番目の文節ＩＤをプッシュし、ｎ＋２番目の文節に対してポップし、前記判断部が前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断し、
前記判断部により、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックは、既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップすると共に、前記判断部が前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する言語解析装置。
（付記３）
文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法であって、
ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合は、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否か判断する第１判断ステップと、
ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合は、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合はそれらの文節がｎ＋１番目の文節に係るか否か判断する第２判断ステップと、
を備えてなる言語解析方法。
（付記４）
文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルとを備え、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法であって、
前記スタックに、ｎ番目の文節ＩＤをプッシュさせて、ｎ＋１番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックに、ｎ＋１番目の文節ＩＤをプッシュさせて、ｎ＋２番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断ステップと、
前記第１判断ステップにおいて、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックに既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップさせて前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する第２判断ステップと、
を備えてなる言語解析方法。
（付記５）
文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法をコンピュータに実行させる言語解析プログラムであって、
ｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合は、ｎ＋１番目の文節がｎ＋２番目の文節に係るか否か判断する第１判断ステップと、
ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合は、文頭の文節からｎ−１番目までの文節で、未だ係り先の文節が見出せていない文節がある場合はそれらの文節がｎ＋１番目の文節に係るか否か判断する第２判断ステップと、
をコンピュータに実行させる言語解析プログラム。
（付記６）
付記５に記載の言語解析プログラムにおいて、
前記第２判断ステップで、未だ係り先の文節が見出せていない文節がある場合は、番号の大きい文節から小さい文節にかけて順次ｎ＋１番目の文節に係るか否かを判断することをコンピュータに実行させることを特徴とする言語解析プログラム。
（付記７）
付記５又は付記６に記載の言語解析プログラムにおいて、
ｎがＮ−１となった場合には、未だ係り先の文節が見出せていない文節は全てＮ番目の文節に係るものと判断することをコンピュータに実行させることを特徴とする言語解析プログラム。
（付記８）
付記５乃至付記７のいずれかに記載の言語解析プログラムにおいて、
前記第１、第２判断ステップでは、係り関係を規定するルールテーブルを用いて、係り関係の有無を判断することをコンピュータに実行させることを特徴とする言語解析プログラム。
（付記９）
付記５乃至付記８のいずれかに記載の言語解析プログラムにおいて、
文節の係り関係が判断された場合は、その関係を保存していく保存ステップを備えてコンピュータに実行させることを特徴とする言語解析プログラム。
（付記１０）
文節ＩＤを記憶するスタックと、文節の係り関係を規定するルールテーブルとを備え、文頭から文末にかけての複数（Ｎ）の文節から構成される文における各文節の係り関係を文頭側から判断する言語解析方法をコンピュータに実行させる言語解析プログラムであって、
前記スタックに、ｎ番目の文節ＩＤをプッシュさせて、ｎ＋１番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ番目の文節がｎ＋１番目の文節に係るか否かを判断すると共に、ｎ番目の文節がｎ＋１番目の文節に係らないと判断された場合、前記スタックに、ｎ＋１番目の文節ＩＤをプッシュさせて、ｎ＋２番目の文節に対してポップさせ、前記ルールテーブルを用いてｎ＋１番目の文節がｎ＋２番目の文節に係るか否かを判断する第１判断ステップと、
前記第１判断ステップにおいて、ｎ番目の文節がｎ＋１番目の文節に係ると判断された場合、前記スタックに既にプッシュされている文節ＩＤがある場合はｎ＋１番目の文節に対して順次ポップさせて前記ルールテーブルを用いてポップされた文節ＩＤを有する文節がｎ＋１番目の文節に係るか否かを判断する第２判断ステップと、
をコンピュータに実行させる言語解析プログラム。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施の形態による構成を示す機能ブロック図である。
【図２】本発明の実施の形態の動作を示すフローチャートである。
【図３】ルールテーブルを示す図である。
【図４】解析結果格納メモリの係り関係保存前の状態を示す図である。
【図５】解析結果格納メモリの係り関係保存後の状態を示す図である。
【図６】入力文情報としての文節情報を示す図である。
【符号の説明】
【００３９】
１  判断部（係り関係決定部）、２  スタック、３  ルールテーブル（２文節間係り関係推定器）、４  解析結果格納メモリ。
【図１】
2006031333.tif 000003
【図２】
2006031333.tif 000004
【図３】
2006031333.tif 000005
【図４】
2006031333.tif 000006
【図５】
2006031333.tif 000007
【図６】
2006031333.tif 000008