以下、本発明の実施形態について図面を参照して説明する。
まず、本実施形態に係る自然言語解析装置の概要を説明する。すなわち、本実施形態に係る自然言語解析装置は、入力された自然言語文から得られる複数の統語構造木(構文木構造)それぞれについて構造変換を行うのではなく、複数の統語構造木を含む圧縮統語森構造(統語森)に対し、適用可能な変換規則を用いて構造変換(トランスファ処理)を行うことによって、最適解の統語構造木の構造変換結果を効率よく得るというものである。
例えば自然言語文から図44に示すような5つの統語構造木を含む統語森が得られたとする。尚、統語構造木の数え方については、後で図6を用いて説明する。
図44は統語構造木を模式的に示したもので、当該自然言語文の形態素列の各形態素(表層)はa〜fで示し、これら複数の形態素間の文法規則に基づく意味的な階層構造に含まれる各ノードをI〜L、X、Y、Sで示している。各ノードは、当該ノードの支配下にある1または複数の形態素からなる語に相当する。
また自然言語文の構造を変換するための変換規則の例を図45に示す。一般に変換規則は、変換対象構造が記述されたマッチングパターンと、当該変換対象構造とは異なる構造から記述されたターゲットパターンを含む。図45は、変換規則を模式的に示したもので、例えば、1番目の変換規則は、図44の「ノードKと表層fを子ノードとしてもつノードY」という変換対象構造を、「ノードKと表層uを子ノードとしてもつノードY」という構造に変換するための変換規則を示している。同様に、2番目の変換規則は、図44の「表層d、e、fを子ノードとしてもつノードL」という変換対象構造を、「表層v、f、dを子ノードとしてもつノードL」という構造に変換するための変換規則を示している。また、3番目の変換規則は、図44の「表層aとノードJを子ノードとしてもつノードX」という変換対象構造を、「表層tとノードJを子ノードとしてもつノードX」という構造に変換するための変換規則を示している。
ここでは、図44の統語森に、図45の3つの変換規則のいずれかを適用する場合を例にとり、本実施形態の自然言語解析装置の処理動作の概要を説明する。すなわち、まず、統語森に1つまたは複数の変換規則を適用すると仮定した場合に、統語森に含まれる複数の統語構造木のうちのどの統語構造木が構造変換されるのかを調べる。
図46は、図44の統語森に1番目の変換規則を適用すると仮定した場合を示している。この場合、統語森中の5つの統語構造木のうち、変換対象構造「ノードKと表層fを子ノードとしてもつノードY」を含む2つの統語構造木が構造変換される。
図47は、図44の統語森に2番目の変換規則を適用すると仮定した場合を示している。この場合、統語森中の5つの統語構造木のうち、変換対象構造「表層d、e、fを子ノードとしてもつノードL」を含む4つの統語構造木が構造変換される。
図48は、図44の統語森に3番目の変換規則を適用すると仮定した場合を示している。この場合、統語森中の5つの統語構造木のうち、変換対象構造「表層aとノードJを子ノードとしてもつノードX」を含む1つの統語構造木のみが構造変換される。
図49は、図44の統語森に2番目と3番目の変換規則を適用すると仮定した場合を示している。この場合、統語森中の5つの統語構造木のうち、2番目の変換規則の変換対象構造と3番目の変換対象構造とを含む1つの統語構造木のみが構造変換される。
図46〜図49に示す4つの構造は、図44に示した統語森に、変換規則を適用すると仮定した場合に構造変換される(1つまたは複数の)統語構造木を含む当該統語森の部分構造である。各部分構造には、上記3つの変換規則群の3つの変換対象構造のうちの少なくとも1つの変換対象構造を含む統語構造木が少なくとも1つ含まれている。
次に、図46〜図49に示す4つの部分構造のなかから、最適解の統語構造木を含む最適解の部分構造を選択する。ここで、最適解の部分構造とは、上記4つの部分構造のうち、次の3つの条件のうちの少なくとも1つを満たす部分構造である。
(条件1)部分構造内の変換対象構造に含まれる形態素(表層)の数が最も多いこと。(条件2)構造変換後の統語森に含まれる統語構造木の数が最も少ないこと。(条件3)適用された変換規則の数が最も多いこと。
ここでは、例えば、条件1を満たす部分構造が1つのみであるときには、これを最適解の部分構造として選択する。条件1を満たす部分構造が複数ある場合には、この中で条件2を満たす部分構造が1つのみであるときに、これを最適解として選択する。条件1及び条件2を満たす部分構造が複数ある場合には、これらの中で条件3を満たす部分構造を最適解として選択する。
図46に示す部分構造では、当該部分構造内で変換対象構造に含まれる形態素(表層)の数は4つであり(図46では丸で囲まれた表層)、構造変換後の統語森に含まれる統語構造木の数は2つであり、適用された変換規則の数は1つである。
図47に示す部分構造では、当該部分構造内で変換対象構造に含まれる形態素(表層)の数は3つであり(図47では丸で囲まれた表層)、構造変換後の統語森に含まれる統語構造木の数は4つであり、適用された変換規則の数は1つである。
図48に示す部分構造では、当該部分構造内で変換対象構造に含まれる形態素(表層)の数は3つであり(図48では丸で囲まれた表層)、変換後の統語構造に含まれる統語構造木の数は1つであり、適用された変換規則の数は1つである。
図49に示す部分構造では、当該部分構造内で変換対象構造に含まれる形態素(表層)の数は6つであり(図49では丸で囲まれた表層)、構造変換後の統語森に含まれる統語構造木の数は1つであり、適用された変換規則の数は2つである。
部分構造内で変換対象構造に含まれる形態素(表層)の数が最も多いのは、図49の部分構造であるから、当該部分構造が最適解である。なお、当該部分構造に含まれる統語構造木の数は1つのみであるから、当該統語構造木が図44の統語森から得られる最適解の統語構造木であると云える。
このようにして選択された最適解の部分構造(最適割当)に含まれる変換対象構造を変換するための変換規則(ここでは、図45の2番目と3番目の変換規則)を用いて、当該最適解の部分構造の構造を変換する。すなわち、図49の部分構造中の変換対象構造「表層d、e、fを子ノードとしてもつノードL」は、図50に示すように、「表層v、f、dを子ノードとしてもつノードL」という構造に変換する。さらに、図49の部分構造中の変換対象構造「表層aとノードJを子ノードとしてもつノードX」は、図50に示すように、「表層tとノードJを子ノードとしてもつノードX」という構造に変換する。
このように、本実施形態によれば、自然言語の構造を変換する際には、まず、自然言語文から得られる統語森から、変換対象構造を少なくとも1つもつ統語構造木を少なくとも1つ含む複数の部分構造を求め、そのなかから実際に変換規則を適用して構造変換する部分構造を1つ選択する。そして、選択された部分構造に含まれる各変換対象構造を変換するための変換規則を用いて、当該部分構造の構造を変換する。
以下、本実施形態に係る自然言語解析装置について、詳細に説明する。
(自然言語解析装置の構成)
図1は、本発明の一実施形態にかかる自然言語解析装置100の構成例と、自然言語解析装置100を用いた機械翻訳装置101の構成例を示したものである。機械翻訳装置101では、第1の言語を第2の言語へ翻訳するが、ここでは、一例として、第1の言語が日本語、第2の言語が英語の場合を例にとり説明する。
図1において、自然言語解析装置100は、構文解析部2、変換規則記憶部3、割当候補抽出部4、割当候補評価部5、構造絞込部6、構造変換部7を含む。更に、機械翻訳装置101は、形態素解析部1、訳文生成部8を含む。
形態素解析部1は、日本語の入力文字列Sを受け取り、形態素解析を行なって、形態素列Mを出力する。ここで行なわれる形態素解析処理は、公知公用の自然言語解析処理を用いればよく、また、本願発明の要旨ではないので、その詳細な説明は省略する。
例えば、入力文字列Sとして図5(a)に示すような「リムジンって空港バスのことですか」が入力された場合は、形態素解析部1で形態素解析を行った結果、図5(b)に示すような「リムジン・って・空港・バス・の・こと・ですか」という形態素列Mが出力される。
構文解析部2は、形態素解析部1から出力された形態素列Mを受け取り、(例えば構文解析部2に)予め記憶された文法規則、語彙辞書を参照して構文解析処理を行なう。
語彙辞書は、第1の言語の各単語について、その品詞などを示したものである。
図2は、文法規則の一例を示したもので、図3は、語彙辞書の一例であって、上記形態素列M「リムジン・って・空港・バス・の・こと・ですか」に含まれる各形態素に対する品詞名を示している。
図2の文法規則では、文(S)は前置詞句(PP)と文(S)からなり、文(S)は名詞句(NP)と動詞句(VP)からなり、前置詞句(PP)は名詞句(NP)と付属語(F)からなることを示している。同様に、名詞句(NP)は名詞句(NP)、付属語(F)、名詞句(NP)からなる場合と、名詞(N)と名詞句(NP)からなる場合と、名詞(N)のみからなる場合があることを示している。さらに、動詞句(VP)は動詞(V)からなることも示している。
構文解析部2における構文解析処理は、図2に示すような文法規則に基づいて行なわれる。構文解析部2では、形態素列Mの統語的な内部構造を表現する少なくとも1つの統語構造木が得られる。1つの統語構造木は、形態素列に含まれる各形態素間の関係を表した意味的な階層構造である。構文解析処理の結果、例えば、各形態素間であり得る係り受け関係の違いなどの曖昧性から複数の統語構造木が得られる。少なくとも1つの統語構造木が存在する場合に、これらを包含して表現された解析済圧縮統語構造Fを出力する。ここで行なわれる構文解析処理は、例えば、前述のGeneralized LR Parsing(一般化LRアルゴリズム)などを用いて行なうことができ、またその解析結果として得られる圧縮共有統語森構造(Packed Shared Syntax Forest)が、そのまま本装置での解析済圧縮統語構造の表現手段として利用可能である。従って、以下の説明では、この圧縮共有統語森構造を、構文解析部2の出力である解析済圧縮統語構造Fとする。解析済圧縮統語構造Fは、形態素列を構文解析した結果得られる1つまたは複数の統語構造木を1つの階層構造により表したものであると云える。
図6は、構文解析部2から出力される解析済圧縮統語構造(簡単に統語森とも呼ぶ)Fの一例を示したもので、上記形態素列M「リムジン・って・空港・バス・の・こと・ですか」に対し構文解析処理を行った結果得られる解析済圧縮統語構造(以下、図6に示す解析済み圧縮統語構造を統語森Aと呼ぶ)である。図6に示すように、統語森構造の葉(葉ノード)は、形態素列Mに含まれる形態素(トークンとも呼ぶ)であり、この上位に、文法規則に基づく構文解析処理によって得られた複数の統語構造木を圧縮して表現した圧縮共有統語森構造が示されている。
統語森上の各ノードは、当該ノードの支配下にある語の品詞を示す記号(文(S)、前置詞句(PP)、名詞句(NP)、動詞句(VP)、名詞(N)、付属語(F)、動詞(V)など)と当該統語森上での当該ノードの識別子(ここでは番号)とを有し、ここでは、各ノードのもつ品詞を示す記号及び番号とをラベルと呼ぶ。
例えば、統語森上の葉ノードとして表される「リムジン」という形態素は名詞(N)であるから、この唯一の親ノードのラベルは「N1」であり、「って」という形態素は付属語(F)であるから、この唯一の親ノードのラベルは「F2」であり、「ですか」という形態素は動詞(V)であるから、この唯一の親ノードのラベルは「V7」となっている。
文法上、名詞句(NP)と付属語(F)とで前置詞句(PP)となるから、ラベル「NP8」のノードとラベル「F2」のノードを子ノードとしてもつノードは前置詞句(PP)であり、そのラベルは、「PP14」となっている。
また、ラベル「NP15」のノード(以下、簡単にノード「NP15」と呼ぶ)は、ノード「NP8」とノード「F2」とノード「NP12」を支配する。ノード「NP12」は、同時にノード「NP16」からも支配されており、ノード「NP15」とノード「NP16」に共有されていることが表現されている。
ノード「NP17」は「c17a」と「c17b」というラベルのノードを持ち、図6ではこれら2つのノードは四角で囲まれた黒丸にそれぞれ対応している。これは、統語森A上のノード「NP17」以下に2つの部分構造(ノード「c17a」以下の部分構造とノード「c17b」以下の部分構造)があることを示している。ノード「NP15」のように、当該ノード以下に1つのみの部分構造がある場合には、四角を省略して、唯1つの黒丸で示している。
ノード「NP15」の黒丸、ノード「NP17」がもつ2つのノードにそれぞれ対応する黒丸などを候補ノードと呼ぶ。そして、1または複数の候補ノードをもつノードを通常ノードと呼ぶ。通常ノードは図6では、ラベルが内部に付された円で示している。通常ノードは、1つまたは複数の候補ノードをもっていると云える。
統語森Aのノード「NP17」以下の構造には、候補ノード「c17a」以下で表現される統語森Aの部分的な構造、すなわち、部分森構造(1つ又は複数の(部分的な)統語構造木を含む構造)と、候補ノード「c17b」以下で表現される部分森構造を含み、両者を圧縮して表現したものとなっている。なお、図6では、候補ノード「c17a」、「c17b」以下の部分森構造には、それぞれ1つの部分統語構造木のみが含まれている。
ここでは、1つの通常ノードに対して候補ノードが1つしかない場合には、図6の四角は省略して記載する。つまり、例えばノード「NP8」はノード「N1」に接続する1つの候補ノードのみをもつから、候補ノード「NP8」を表す黒丸の周りの四角は記載されない。また、全てのノードは、後に説明する処理に利用する為に、属性情報として必須フラグと不要フラグをもつ。
構文解析部2では、出力される統語森F(のルートノード以下の構造)に含まれる統語構造木の数や、複数の候補ノードをもつ通常ノード以下の構造に含まれる統語構造木の数も合わせて出力する。例えば、統語森F上の任意のノードについて、このノード以下の構造に複数の統語構造木が含まれている場合には、当該ノードは当該ノード以下の構造に含まれる統語構造木の数を示す属性情報Pを有するものとする。
統語森Aのルートノードであるノード「S21」は3つの候補ノードをもつから、各候補ノード以下の構造に含まれる統語構造木の数の合計が、当該ルートノードに含まれる統語構造木の数となる。
すなわち、図6の統語森Aのノード「NP17」以下は、2つの(部分的な)統語構造木を含むことから、ノード「NP17」は「P=2」という属性情報をもつ。また、ノード「S20」以下は、2つの(部分的な)統語構造木を含むことから、ノード「S20」は「P=2」という属性情報をもつ。
さらに、統語森Aのルートノードであるノード「S21」のもつ3つの候補ノードのうちの1つである候補ノード「c21a」以下の構造には、ノード「NP17」が含まれているから、候補ノード「c21a」以下の構造には、2つの統語構造木が含まれている。また、ルートノード「S21」の候補ノード「c21b」以下の構造には、ノード「NP17」が含まれているから、候補ノード「c21a」以下の構造には1つの統語構造木が含まれている。ルートノード「S21」の候補ノード「c21c」以下の構造には、ノード「S20」が含まれているから、候補ノード「c21c」以下の構造には、2つの統語構造木が含まれている。従って、統語森Aに含まれる統語構造木の数は全部で5(=2+1+2)であり、ルートノード「S21」は「P=5」という属性情報をもつ。
図7〜図11は、それぞれ、統語森Aに含まれる5つの統語構造の候補、すなわち統語構造木A1〜A5を示したものである。
図7に示す統語構造木A1は、ルートノード「S21」のもつ候補ノード「c21a」以下の構造であり、「こと」と「ですか」の間で、名詞句と動詞句とに区切られ、当該名詞句は名詞句「リムジン」と付属語「って」と名詞句「エアポート・バス・の・こと」とからなる構造をもつことがわかる。
図8に示す統語構造木A2は、ルートノード「S21」のもつ候補ノード「c21a」以下の構造であり、「こと」と「ですか」の間で、名詞句と動詞句とに区切られ、当該名詞句は名詞句「リムジン・って・エアポート・バス」と付属語「の」と名詞句「こと」とからなる構造をもつことがわかる。
図9に示す統語構造木A3は、ルートノード「S21」のもつ候補ノード「c21b」以下の構造であり、「の」と「こと」の間で、前置詞句と文とに区切られ、当該前置詞句は名詞句「リムジン・って・エアポート・バス」と付属語「の」とからなる構造をもち、当該文は名詞句「こと」と動詞句「ですか」とからなる構造をもつことがわかる。
図10に示す統語構造木A4は、ルートノード「S21」のもつ候補ノード「c21c」以下の構造であり、「って」と「エアポート」の間で、前置詞句と文とに区切られ、当該前置詞句は名詞句「リムジン」と付属語「って」とからなる構造をもち、当該文は前置詞句「エアポート・バス・の」と文「こと・ですか」とからなる構造をもつことがわかる。
図11に示す統語構造木A5は、ルートノード「S21」のもつ候補ノード「c21c」以下の構造であり、「って」と「エアポート」の間で、前置詞句と文とに区切られ、当該前置詞句は名詞句「リムジン」と付属語「って」とからなる構造をもち、当該文は名詞句「エアポート・バス・の・こと」と動詞句「ですか」とからなる構造をもつことがわかる。
図1の説明に戻り、変換規則記憶部3は、構文解析部2から出力される図6に示したような統語森Fの構造を変換する為の規則が記憶されている。ここでは、第1の言語(例えば日本語)から第2の言語(英語)への機械翻訳を行う場合を例にとり説明しているので、変換規則記憶部3には、日本語(の統語森F)の構造を英語の構造に変換するための変換規則が予め記憶されている。
図4は、変換規則記憶部3に記憶されている変換規則の例(#1〜#3)を示したものである。変換規則は、「MP=」に続くマッチングパターン部と、「TP=」に続くターゲットパターン部とから構成される。マッチングパターン部には、その変換規則を適用する(統語森上の)部分構造(すなわち、変換対象構造)が記述されている。例えば、図4の変換規則#1では、マッチングパターン部が「[S_a[NP_b,“って”,S_c[NP_d,“の”,“こと”,“ですか”]]]」であることから、この規則を適用する為には、統語森Fの中に、まず、1つの名詞句ノードNP_dと、表層が“の”と、“こと”と、“ですか”である3つの葉ノードによって構成される文ノードS_cがあることと、さらに、別の名詞句ノードNP_bと、表層が“って”である葉ノードと、上記文ノードS_cから構成される別の文ノードS_aが、部分構造として含まれていることが、この変換規則を適用可能な条件として表現されていることになる。
本実施形態で用いる変換規則は、マッチングパターンが指定しているのが、あくまで統語森の部分的な構造である点と、指定されている部分構造についても、部分構造の構成要素の並びと、このならび全体を支配する部分構造のルートなどを指定しているのみで、部分構造の内部構造の詳細を指定していないことに特徴がある。なお、マッチングパターン中の大文字で表現された記号は変数部を表し、ある変換規則をある統語森に適用した際に、対応する部分を変数に代入して後に利用できるようにしている。以降、この変数を、変数トリガーと呼ぶこととする。
マッチングパターン中のダブルクオーテーションマークで囲まれた文字列は、変換規則を適用する統語森に含まれるべき葉ノードの表層文字列を表現し指定するようにしている。以後この表層ノードに対応する文字列を表層トリガーと呼ぶこととする。また、以降、前述の変数トリガーと、この表層トリガーを総称して、MPトリガーと呼ぶこととする。
一方、変換規則のターゲットパターン部には、構造変換方法が記述されている。例えば、図4の変換規則#1のターゲットパターン部を例にとり説明する。変換規則#1のターゲットパターン部は、「[DENOTE(type=question)[sbjNP_b,obj/NP_d]]」であることから、マッチングパターン部で指定された部分構造は、“DENOTE(type=question)”で表現されるノードで置換し、かつマッチングパターン中の変数NP_bおよび変数NP_dに割り当てられた変換対象の部分構造を、それぞれ“sbj(主語)”および“obj(目的語)”という関係で、この順に“DENOTE(type=question)”で表現されるノードの子ノードとして接続してなる構造に変換することが表現されている。
図1の割当候補抽出部4は、構文解析部2から出力される統語森Fを受け取る。そして、変換規則記憶部3で記憶されている変換規則のなかから、当該統語森に対し適用可能な変換規則を収集し、この収集された各変換規則中の変数を割り当てることが可能な割当候補を全て洗い出し、割当候補セットQとして出力する。この割当候補抽出部4の処理動作の詳細は後述する。
図12は、図6の統語森Aに対して、図4の変換規則#1を適用する際の1つの割当候補である割当候補A1を示したものである。ここでは、変換規則#1のマッチングパターン中の変数S_aが統語森Aのノード「S21」に割り当てられ、変数NP_bがノード「NP8」に割り当てられ、変数S_cがノード「S20」に割り当てられ、変数NP_dがノード「NP12」に割り当てられる。なお、図12において、上記各変数が割り当てられたノード、マッチングパターン中の表層トリガーである、“って”、“の”、“こと”、および“ですか”に対応する葉ノードには、斜線を入れて表している。
割当候補抽出部4では、変換規則#1のマッチングパターン中の括弧付きの入れ子構造に従った形で、入れ子内の全ての変数トリガーならびに表層トリガーがその出現順に(かつ隙間無く)並ぶ構造を統語森から探索するようになっている。すなわち、図12に示すように、ノード「S21」以下の内部構造中のノード「NP8」と、葉ノード「って」と、ノード「S20」とが、その内部構造の詳細を問わずに、ノード「S21」の支配する、スパン全体を隙間無く、出現順に被覆していることがわかる。また、ノード「S20」以下の内部構造である、ノード「NP12」と、葉ノード「の」と、「こと」と、「ですか」も、その内部構造の詳細を問わずにノード「S20」の支配するスパン全体を、隙間無く、出現順に被覆していることがわかる。
図13は、図6の統語森Aに対して、図4の変換規則#2を適用する際の1つ目の割当候補である割当候補A2aを示したものである。ここでは、変換規則#2のマッチングパターン中の変数NP_eが統語森Aのノード「NP16」に割り当てられ、変数NP_fがノード「NP12」に割り当てられ、表層トリガーである“の”、および“こと”も図13に示したとおりに割り当てられている。すなわち、図13では、変換規則#2が、統語森Aの部分的な構造、すなわち、ノード「NP16」以下の当該ノード「NP16」が支配する部分森構造に対して適用されている。図13において、上記各変数が割り当てられたノード、マッチングパターン中の表層トリガーに対応する葉ノードには、斜線を入れて表している。
図14は、図6の統語森Aに対して、図4の変換規則#2を適用する際の、もう1つの割当候補である割当候補A2bを示したものである。ここでは、変換規則#2のマッチングパターン中の変数NP_eが統語森Aのノード「NP17」に割り当てられ、変数NP_fがノード「NP15」に割り当てられ、また表層トリガーである“の”、および“こと”も図14に示したとおりに割り当てられている。すなわち、図14では、変換規則#2が統語森Aのノード「NP17」以下の部分森構造に対して適用されている。図14において、上記各変数が割り当てられたノード、マッチングパターン中の表層トリガーに対応する葉ノードには、斜線を入れて表している。
図1の割当候補評価部5は、割当候補抽出部4で得られる割当候補セットQの各要素(各割当候補)を評価し、割当候補セットQの要素のうちの1つであって、実際に適用すべき最適な割当候補である最適割当qを選択し、出力する。この割当候補評価部5の処理動作の詳細は後述する。
図1の構造絞込み部6は、割当候補評価部5によって選定された最適割当qに基づいて、統語森Fから不要な部分構造を削除した絞込済圧縮統語構造Gを出力する。なお、この構造絞込み部6の処理動作の詳細は後述する。
図1の構造変換部7は、絞込済圧縮統語構造Gを受け取り、変換規則記憶部3に記憶されている変換規則を参照して、実際の圧縮統語構造の構造変換処理を行なうことによって、変換済統語意味構造Hを出力する。
なお、ここで行なわれる構造変換処理は、従来の、1つの統語構造木に対する構造変換処理であるトランスファ処理を、複数の統語構造木を内包する統語森に対して適用するものであるが、前述の構造絞込部6の働きによって、構造変換部7では、変換規則を通常のトランスファ処理と同様の方法で適用するだけで、統語森をトランスファできるようになっている。
構造変換部7で構造変換処理を行った後、複数の候補(複数の統語構造木)が残っている場合には、例えば確率情報や、共起頻度情報などの従来技術を併用するなどして、候補を1つに絞込む。このための手法は、複数候補を扱う従来の自然言語解析処理と同様の処理であり、また、本願発明の要旨ではないので説明は省略する。
図1の訳文生成部8は、変換済統語意味構造Hを受け取り、翻訳対象言語(第2の言語であって、ここでは例えば英語)の語彙辞書や生成文法規則などを参照して第2の言語による翻訳結果文字列Tを生成し、出力する。ここでの処理も従来の機械翻訳システムにおける対象言語の生成処理と同様の処理であり、本願発明の要旨ではないので説明は省略する。
(自然言語解析装置の処理動作)
次に、図1の自然言語解析装置100を含む機械翻訳装置101の処理動作について説明する。
図15は、機械翻訳装置101の全体の処理動作を示す処理Aのフローチャートであり、まず、図15を参照して機械翻訳装置101の処理の流れを説明した後に、割当候補抽出部4、割当候補評価部5、構造絞込部6の動作について詳しく説明する。
まず、図15を参照して、機械翻訳装置101の処理動作について説明する。
機械翻訳装置101には文字列Sが入力される。形態素解析部1は、入力文字列Sを受け取ると(ステップS1)、形態素解析を行って形態素列Mを得る(ステップS2)。
形態素解析部1で得られた形態素列Mは構文解析部2に入力する。構文解析部2は、形態素列Mに対し構文解析を行い、解析済圧縮統語構造F(統語森F)を出力する(ステップS3)。
なお、構文解析部2で形態素列Mが受理されなかった場合(ステップS4のYes)には、ここで処理を終了し、ステップS1へ戻り、新たな文字列の入力を待つ。また、構文解析部2で形態素列Mが受理された場合(ステップS4のNo)には、ステップS5へ進む。 割当候補抽出部4は、構文解析部2で出力された統語森Fを基に、後述する処理Bを行い、割当候補セットQを得る(ステップS5)。割当候補セットQが空の場合には、ステップS12へ進み、空でない場合にはステップS7へ進む(ステップS6)。
ステップS7では、割当候補評価部5において、割当候補セットQを基に、後述する処理Dを行って、最適割当qを出力する。
構造絞込部6は、最適割当qを基に後述する処理Gを行い、統語森Fから不要な部分構造を排除して得られる絞込済圧縮統語構造Gを出力する(ステップS8)。そして、構造変換部7は、最適割当qに従って、絞込済圧縮統語構造Gに対して、少なくとも1つの変換規則を適用して、変換済統語意味構造Hを出力する(ステップS9)。
訳文生成部8において、変換済統語意味構造Hに基づいて、翻訳結果である第2の言語の文字列Tを生成する(ステップS10)。
一方、ステップS12では、構造変換部7において、統語森Fから1つの統語構造木が選択された後、従来と同様のトランスファ処理を行い、この結果得られる変換済統語意味構造Hに基づいて、訳文生成部8において第2の言語の文字列Tを生成する。ステップS12の翻訳処理動作は、従来と同様である。
ステップS10あるいはステップS12で生成された第2の言語の文字列Tが出力される(ステップS11)。
なお、入力文字列Sから得られた形態素列Mが構文解析部2に受理されない場合もあり得るので、この場合を考慮しステップS4を設けたが、ステップS4はなくてもよい。また、ステップS6、ステップS12は、構文解析の結果得られた統語森Fに対して適用可能な変換規則の割当候補が見つからなかった場合の処理であるが、本発明の要旨ではないので説明は省略する。
次に、割当候補抽出部4の処理動作(図15のステップS5の処理動作)について、図16、図17に示すフローチャートを参照して説明する。割当候補抽出部4は、図16の処理Bを行う。なお、処理Bは図17の処理Cを含む。
まず、処理Bについて、図16に示すフローチャートを参照して説明する。割当候補抽出部4は、解析済圧縮統語構造F(統語森F)を受け取ると(ステップS21)、変換規則記憶部3に記憶されている変換規則の中から、統語森Fの葉ノードと一致する表層トリガーを持つ全ての変換規則の集合Rを得る(ステップS22)。また、初期設定として、割当候補セットQを空に設定する(ステップS23)。
変換規則の集合Rが空である場合には、ステップS29へ進み、空でない場合には、ステップS25へ進む(ステップS24)。
ステップS25では、変換規則の集合Rの要素である変換規則を1つずつ取出し、これを変換規則rとする。ステップS26では、変換規則rを用いて処理Cを行う。ステップS27では、変換規則rが集合Rの最後の要素でないときには、ステップS28へ進み、集合Rから次の変換規則rを取り出し、ステップS26へ進む。このように、変換規則の集合Rの全要素について処理Cを行うまで、ステップS26〜ステップS28を繰り返す。
ステップS27で変換規則の集合Rの全要素について処理Cを行った後はステップS29へ進み、割当候補セットQを出力する。
ステップS26の処理Cについて、図17に示すフローチャートを参照して説明する。
まず、変換規則rのマッチングパターンMPを得る(ステップS31)。そして、MP中の全ての表層トリガーの集合Tsを得る(ステップS32)。また、MP中の全ての変数トリガーの集合Tvを得る(ステップS33)。
表層トリガーの集合Tsの各要素(各表層トリガー)tsについて、当該表層トリガーtsに一致する統語森F中の葉ノードのラベルの集合N(ts)を求める(ステップS34)。また、変数トリガーの集合Tvの各要素(各変数トリガー)tvについて、当該変数トリガーtvを割り当てる統語森F中のノードのラベルの集合N(tv)を求める(ステップS35)。
変換規則rのマッチングパターンMP中のMPトリガーの集合Tを求める(ステップS36)。なお、集合Tは、集合Tsと集合Tvの和集合である。
MPトリガーの集合Tの要素である各表層トリガー及び各変数トリガーに対応する、各表層トリガーに一致する葉ノードのラベルの集合N(ts)の要素と、各変数トリガーを割り当てるノードのラベルの集合N(tv)の要素の組合せのうち、可能な組合せの集合Xを求める(ステップS37)。
集合Xが空である場合(ステップS38のYes)、すなわち、統語森Fに変換規則rを適用した場合に、各MPトリガーを割り当てることの可能なノードの組合せが存在しない場合には、処理Cを終了する。集合Xが空でない場合(ステップS38のNo)にはステップS39へ進み、集合Xから要素(ノードの組合せ)を1つ取り出し、それをxとする(ステップS39)。
次に、ノードの組合せxが次の条件を満足するかを検査する(ステップS40)。
(条件)ノードの組合せxに含まれる各ノードが、統語森Fの中で、MP中で指定されている表層トリガー及び変数トリガーの順序と同じ順序で隙間無く出現し、しかも、ノードの組合せxに含まれる各ノードが、MP中で指定されている表層トリガー及び変数トリガー間の階層関係と同じ階層関係をもつ。
ノードの組合せxが上記条件を満足するものでないときには(ステップS41のNo)、ステップS43へ進む。ノードの組合せxが上記条件を満足する場合には(ステップS41のYes)、ステップS42へ進み、xを割当候補セットQの要素に追加する。上記ステップS40〜ステップS41を集合Xの全要素について行う(ステップS43、ステップS44)。
次に、割当候補評価部5の処理動作(図15のステップS7の処理動作)について、図18〜図22に示すフローチャートを参照して説明する。割当候補評価部5は、処理Dを行う。なお、図18の処理Dには、図19〜図20の処理Eを含み、処理Eは、図21〜図22の処理Fを含む。
まず、処理Dについて、図18に示すフローチャートを参照して説明する。割当候補評価部5は、割当候補セットQを受け取ると(ステップS51)、割当候補セットQの要素(割当候補)を1つ取り出し、これをpとする(ステップS52)。割当候補pに対し、処理Eを行って、割当候補pの評価値を求める(ステップS53)。後述するように、処理Eにより、割当候補pに対し、評価値として評価値CR1〜CR4が得られる。
割当候補セットQから要素を1つずつ取出して、割当候補セットQの全ての要素に対し評価値を求める(ステップS53〜ステップS55)。割当候補セットQの全ての要素に対し評価値を求めたら(ステップS54のYes)、割当候補セットQの要素のうち最も評価値の高い要素を最適割当qとして選択する(ステップS56)。
すなわち、後述する処理Eにより求めた評価値CR1が「Yes」である割当候補のなかから、評価値CR2、評価値PCR3、評価値CR4のうちの少なくとも1つを用いて、最適割当qを選択する。
ステップS53の処理Eについて、図19、図20に示すフローチャートを参照して説明する。図18のステップS52で得られた割当候補pを受け取ると(ステップS61)、まず、統語森F中の各ノードのもつ必須フラグ及び不要フラグをクリアする(ステップS62)。ここでは、説明の簡単のため、必須フラグ/不要フラグ(例えば必須フラグビット/不要フラグビット)が「1」のときの状態を「ON」と呼び、「0」のときの状態を「OFF」と呼ぶ。フラグをクリアするとは、フラグを「OFF」にするということである。
さて、割当候補pを受け取ると、当該割当候補pで各MPトリガーtを割り当てた統語森F中のノードの必須フラグをONにする(ステップS63)。そして、後述する処理Fを行って、統語森Fの各ノードの必須フラグ、不要フラグを更新する(ステップS64)。
処理Fは、統語森Fの各ノードについて、必須フラグおよび不要フラグの値をチェックするための処理である。割当候補pの割当方法に従って、統語森Fに変換規則を適用した場合に、統語森F中で必須となるノードは必須フラグがONとなり、不要となるノードは不要フラグがONとなる。割当候補pが統語森Fに適用可能な場合には、統語森Fの各ノードの必須フラグと不要フラグは、多くてもいずれか一方のみがONである。統語森Fには、必須フラグと不要フラグがともにONであるノードが存在する場合には、割当候補pは統語森Fに適用不可能となる。必須フラグと不要フラグがともにONであるノードをここでは矛盾ノードと呼ぶ。
統語森Fに変換規則を適用した場合に、当該変換規則に含まれる変数トリガーや表層トリガー(これらをまとめてMPトリガーと呼ぶ)の1つの割当方法を示したものが割当候補である。この割当方法が統語森Fに適しているか否かを判定するために、本実施形態では矛盾ノードの有無を調べている。
統語森Fに、ある変換規則を適用可能な場合に、当該変換規則の各MPトリガーの(統語森中のノードへの)割当方法を示す割当候補にとって、当該変換規則の各MPトリガーが割当られている各ノードと、当該ノードからみた親ノードや子ノードは必須のノード(必須フラグがONであるノード)であり、さらに、必須フラグがONであるノードの親ノードや子ノードも必須のノード(必須フラグがONであるノード)である。
従って、例えば、統語森Fに複数(例えば2つ)の変換規則を適用可能な場合に、各変換規則の各MPトリガーの(統語森中のノードへの)割当方法を示す割当候補において、一方の変換規則を適用した場合に不要となるノードが、他方の変換規則を適用した場合に必須となるようなノードが上記矛盾ノードである。
ステップS64で処理Fを行った後、統語森F中のノードの中に、必須フラグと不要フラグがともにONであるような矛盾ノードが存在する場合には(ステップS65のYes)、ステップS71へ進む。矛盾ノードがない場合(ステップS65のNo)にはステップS66へ進む。
ステップS66では、統語森F中のノードにフラグが変更されたノードがある場合(ステップS66のYes)には、ステップS64へ戻る。統語森F中のノードにフラグが変更されたノードがない場合(ステップS66のNo)には、ステップS67へ進む。
ステップS67では、割当候補pの適用可否を示す評価値CR1を「YES」とし、ステップS68へ進む。また、ステップS65において、統語森F中に矛盾ノードがある場合にはステップS71において、割当候補pの適用可否を示す評価値CR1を「NO」とする。
ステップS68では、統語森Fにもともとある葉ノードの数をL0とする。ステップS69では、割当候補pで各MPトリガーを割り当てた統語森F中のノードが被覆する部分森構造の葉ノードの数をLtとする。そして、ステップS70では、LtをL0で除して、評価値CR2(=Lt/L0)を求める。すなわち、評価値CR2は、割当候補pの被覆範囲の広さに対する評価値である。
次に、図20のステップS72へ進み、統語森Fに含まれる統語構造木の数をP0とすし、ステップS73へ進む。ステップS73では、統語森Fから不要フラグがONであるノードを削除した場合に、残存する統語構造木の数をPtとする。そして、ステップS74では、P0をPtで除して、評価値CR3(=P0/Pt)を求める。すなわち、評価値CR3は、割当候補pによる構造絞込の程度に対する評価値である。
次に、ステップS75では、割当候補pで適用されている変換規則の数を評価値CR4とする。
以上で、割当候補pの適用可否を示す評価値CR1が「YES」の場合には、割当候補pに対しては、さらに評価値CR2〜CR4が求まり、ステップS76では、これら評価値CR2〜CR4を出力する。なお、割当候補pの適用可否を示す評価値CR1が「NO」の場合には、割当候補pに対し評価値CR2〜CR4は求めない。
最後に、ステップS77では、割当候補pの評価値CR1を出力する。
次に、図19のステップS64の処理Fについて、図21〜図22に示すフローチャートを参照して説明する。まず、統語森Fのノードnを受け取る(ステップS81)。当該ノードnが、通常ノードの場合には(ステップS82のYes)、ステップS83へ進む。
ステップS83において、ノードnの必須フラグがOFFである場合には、ステップS84へ進む。ノードnの全ての親ノードの必須フラグがONである場合(ステップS84のYes)、あるいは、ノードnの全ての親ノードの必須フラグがONではないが、ノードnの子ノードのなかに、必須フラグがONである子ノードがある場合には(ステップS85のYes)、ステップS86へ進み、当該ノードnの必須フラグをONに変更する。
一方、ステップS83でノードnの必須フラグがONである場合には、さらに、不要フラグを調べ、不要フラグがONである場合には(ステップS87のYes)、当該ノードnは矛盾ノードあるから(従って、前述の評価値CR1は「NO」となる)、ここで、当該ノードnに対する処理Fを終了する。
ノードnの必須フラグはONであり(ステップS83のYes)、不要フラグがOFFである場合には(ステップS87のNo)、ステップS88へ進み、当該ノードnの不要フラグをONにする必要があるか否かを調べる。すなわち、ノードnの全ての親候補ノードの不要フラグがONである場合(ステップS88のYes)、あるいは、ノードnの全ての子候補ノードの不要フラグがONである場合(ステップS89のYes)には、共にステップS90へ進み、ノードnの不要フラグをONにする。ノードnが、不要フラグがOFFである親候補ノードをもち(ステップS88のNo)、更に、ノードnが、不要フラグがOFFである子候補ノードをもつ場合(ステップS89のNo)には、不要フラグをOFFのままにして、当該ノードnに対する処理Fを終了する。
ノードnが、複数の候補ノードをもつ通常ノードの1候補ノードである場合には(ステップS82のNo)、図22のステップS91へ進む。
ステップS91において、ノードnの必須フラグがONである場合(ステップS91のYes)には、ステップS97へ進む。
ステップS91において、ノードnの必須フラグがOFFである場合(ステップS91のNo)にはステップS92へ進み、まず、ノードnの必須フラグをONにする必要があるか否かを調べる。すなわち、ノードnが、必須フラグがONである通常ノードの唯一の親候補ノードである場合(ステップS92のYes)、あるいは、ノードnが、必須フラグがONである通常ノードの唯一の子候補ノードである場合(ステップS93のYes)には、ノードnの必須フラグをONにする(ステップS94)。
一方、ノードnが、必須フラグがONである通常ノードの唯一の親候補ノードでもなく(ステップS92のNo)、更に、必須フラグがONである通常ノードの唯一の子候補ノードでもない場合には(ステップS93のNo)、当該ノードnの不要フラグをONにするか否かを調べる。すなわち、ノードnの子ノードのうち、必須フラグがONである子候補ノードに、ノードn以外の親候補ノードがあり、かつ当該親候補ノードの必須フラグがONである場合には(ステップS95のYes)、ノードnの不要フラグをONにする(ステップS96)。そうでない場合(ステップS95のNo)には、ステップS95からステップS97へ進む。
ステップS97において、ノードnの不要フラグが既にONとなっている場合(ステップS97のYes)には、ここで、ノードnに対する処理Fを終了する。一方、ノードnの不要フラグがOFFである場合(ステップS97のNo)には、更に、ノードnの不要フラグをONにする必要があるか否かを調べる。すなわち、ノードnの親ノード(通常ノード)の不要フラグがONである場合(ステップS98のYes)、あるいは、ノードnの子ノード(通常ノード)に不要フラグがONの子ノードがある場合(ステップS99のYes)、あるいは、ノードnの兄弟ノードに必須フラグがONのノードがある場合(ステップS100のYes)、ステップS96へ進み、ノードnの不要フラグをONに変更する。一方、ノードnの親ノード(通常ノード)の不要フラグがOFFであり(ステップS98のNo)、かつ、ノードnの子ノード(通常ノード)に不要フラグがONであるような子ノードがなく(ステップS99のNo)、かつ、ノードnの全ての兄弟ノードの必須フラグはOFFである(ステップS100のNo)場合には、ノードnの不要フラグはOFFのままにして、当該ノードnに対する処理Fを終了する。
図19のステップS64では、統語森Fの各ノードnについて、上記図21、図22に示した処理Fを行って、各ノードnの必須フラグ及び不要フラグの更新を行う。そして、この結果、統語森Fに矛盾ノード(必須フラグと不要フラグがともにONであるようなノード)が存在しない場合(ステップS65のYes)には、統語森F上の各ノードnの必須フラグ及び不要フラグがステップS64の処理Fにより変更されなくなるまで、処理Fを繰り返す(ステップS65、ステップS66)。
そして、矛盾ノードが存在する場合(ステップS65のYes)には、ステップS61で受け取った割当候補pに対する適用可否を示す評価値CR1の値をステップS71で「NO」とすることにより、図18のステップS56において選択候補から除外するものの、矛盾ノードが存在しない場合(ステップS65のNo)には、評価着度CR1の値を「YES」として(ステップS67)、さらに、割当候補pの統語森F上の被覆範囲の広さに対する評価値CR2(ステップS70)、割当候補pによる構造絞込の程度に対する評価値CR3(ステップS74)、割当候補pで利用された変換規則の数に対する評価値CR4(ステップS75)を求めて、図18のステップS56において選択候補とする。これらステップS65での選択については、後で詳しく述べる。
なお、ここでは、評価値CR2は、割当候補pで統語森上に割当てられた各変換規則の(マッチングパターン部に記述されている)変換対象構造に含まれる形態素の数が多いほど高い値を示すような評価値である。評価値CR3は、割当候補pで統語森上に割当照られた変換規則で構造変換される当該統語森中の統語構造木の数が多いほど高い値を示すようになっている。また、評価値CR4は、割当候補pで統語森上に割当てられている(変換規則のマッチングパターン部に記述されている)変換対象構造の数を示している。
ステップS56で割当候補セットQから最適割当qを選択する方法について説明する。割当候補セットQに含まれる割当候補のなかから、評価値CR1が「NO」である割当候補は取り除く。そして、評価値CR1が「YES」である割当候補群の中で評価値CR2の値が最も高い割当候補を選択する。評価値CR2の値が最も高い割当候補が複数ある場合には、これら中で、評価値CR3の値が最も高い割当候補を選択する。この選択した中に評価値CR3の値が最も高い割当候補が複数ある場合には、更に、これらの中で、評価値CR4の値が最も高い割当候補を選択する。もし、評価値CR4の値が最も高い割当候補が複数ある場合には、各割当候補に対して異なる評価基準を用いたり、あるいは重み付け評価等を行う。このようにして、割当候補セットQのなかから1つの割当候補を選択して、これを最適割当qとする。
次に、構造絞込部6の処理動作(図15のステップS8の処理動作)について、図23に示すフローチャートを参照して説明する。構造絞込部6は、処理Gを行う。なお、処理Gは処理Fを含む。
図18のステップS56でられた最適割当qと、統語森Fとを受け取ると(ステップS111,ステップS112)、まず、統語森F中の各ノードのもつ必須フラグ及び不要フラグをクリアする(OFFにする)(ステップS113)。そして、割当候補qで各MPトリガーtを割り当てた統語森F中のノードの必須フラグをONにする(ステップS114)。この後、前述の処理F(図21、22参照)を行って、統語森Fの各ノードの必須フラグ、不要フラグを更新する(ステップS115)。統語森F中のノードにフラグが変更されたノードがなくなるまで、処理Fを行う(ステップS116、ステップS115)。処理Fを行った結果、統語森F中のノードにフラグが変更されたノードがない場合には(ステップS116のNo)、ステップS117へ進む。
ステップS117〜ステップS119では、統語森Fから、不要部分を削除して、絞込済圧縮統語構造Gを求める処理を行う。すなわち、まず、統語森F中から、不要フラグがONであるノードの集合Dを求める(ステップS117)。そして、統語森Fから、集合Dの各要素(不要フラグがONであるノード)に接続された全アーク(アークは、統語森Fのノード間を結ぶ線に対応する)を削除する(ステップS118)。さらに、統語森Fから、集合Dの各要素を削除する(ステップS119)。この結果、絞込済圧縮統語構造Gが求まる。
絞込済圧縮統語構造Gは、統語森にもともと含まれていた全統語構造木のうち、最適割当qで用いた各変換規則の変換対象構造をそれぞれ有する統語構造木のみが含まれている統語森Fの部分構造である。
(具体的な説明)
次に、機械翻訳装置101の処理動作について、より具体的に説明する。
(第1の具体的例)
ここでは、図24を参照して、入力文字列Sとして、「リムジンって空港バスのことですか」が入力された場合について、図15のフローチャートに従って説明する。
なお、ここでは、図2に示した文法規則や、図4に示した変換規則を用いる場合について説明する。
(ステップS1)機械翻訳装置101に、図24(a)に示すような文字列S「リムジンって空港バスのことですか」が入力されて、機械翻訳装置101の動作が開始する。
(ステップS2)形態素解析部1は、入力文字列Sに対し形態素解析を行って、図24(b)に示すような形態素列M「リムジン・って・空港・バス・の・こと・ですか」を得る。
(ステップS3)構文解析部2は形態素列Mを解析して、図6に示したような統語森Aを得る(図24(c))。
(ステップS4、ステップS5)上記入力文字列Sは構文解析部2によって受理されるため(ステップS4)、ステップS5へ進み、割当候補抽出部4において、統語森Aを基に図16の処理Bを行う。ステップS5では、次の(st1)〜(st2)に示す処理を行う。
(st1)処理BのステップS22では、統語森Aの葉ノードと一致する表層トリガーを持つ全ての変換規則の集合Rを求める。ここでは、図4の変換規則#1〜#3のうち、表層がマッチする、変換規則#1と変換規則#2が集合Rの要素である。
(st2)次に、処理BのステップS23〜ステップS29の処理により、割当候補セットQの要素を求める。ここでは、統語森Aに変換規則#1を適用した場合に得られる図12の割当候補A1と、統語森Aに変換規則#2の規則を適用した場合に得られる図13の割当候補A2a及び図14の割当候補A2bが、割当候補セットQの要素として得られる。
(ステップS6、ステップS7)得られた割当候補セットQには、上記3つの要素が含まれているため(ステップS6)、ステップS7へ進む。ステップS7では、割当候補評価部5にて、処理D(及び処理Dに含まれる処理E、処理F)を行うことにより、割当候補セットQの各要素について評価値を求めて、割当候補セットQの要素のなかから最適割当qを選択する。
ステップS7では、次の(st11)〜(st20)に示す処理を行う。
(st11)図25は、図12の割当候補A1に対する評価処理手順を示している。処理Dから呼び出される図19の処理EのステップS63では、統語森F中のノードのうち、割当候補A1上で各MPトリガーtが割り当てられているノードについてこのノードの必須フラグをONにする。図25では、ステップS63で必須フラグがONとなるノードには、二重丸を付して示している。すなわち、割当候補A1でMPトリガーに割り当てられているノードは、ノード「S21」、ノード「NP12」、葉ノード「の」、葉ノード「こと」、および葉ノード「ですか」)であり、これらの必須フラグがステップS63でONとなる。
(st12)図19の処理EのステップS64では、統語森Aの各ノードについて図21〜図22に示した処理Fを行うことにより、統語森Fの各ノードの必須フラグ、不要フラグを更新する。図25では、処理Fを実施した場合の必須フラグおよび不要フラグの伝播の様子を示している。図25では、ステップS64で必須フラグがONとなるノードには○印を付し、不要フラグがONとなるノードには×印を付して表している。また、点線矢印により、ONである各フラグが処理Fによって伝播する様子を示している。なお、図25に示したフラグの伝播処理の順序は一例であって、必ずしもこの順序に限定されるものではなく、統語森F中の各ノードの評価順序により異なるものである。
(st13)処理Fを行った結果、割当候補A1では図25に示したように、必須フラグと不要フラグがともにONであるような矛盾ノードは存在しない(図19のステップS65)。従って、割当候補A1は統語森Aに対し適用可能であるから、図19のステップS67において、割当候補A1の適用可否を示す評価値CR1は「YES」となる。
(st14)統語森Aにもともとある葉ノードの数L0は「7」である(図19のステップS68)。また、この適応割当A1はノード「S21」をルートとする構造に適応されているが、これは統語森Aの構造全体にかかるものであるため、割当候補A1で各MPトリガーを割り当てた統語森A中のノードが被覆する部分森構造の葉ノードの数Ltは、統語森Aのもつ全はノードの数「7」である(図19のステップS69)。従って、割当候補A1の被覆範囲の広さに対する評価値CR2は、「7/7=1.0」と算出される(図19のステップS70)。
(st15)統語森Aが本来内包している統語木構造の数P0は、前述したように「5」である(図20のステップS72)。統語森Aから、不要フラグがONであるノード及びそれに付随するアーク(図25では細い実線で示した部分)を削除する。すると残存したノードのうち、ノード「S20」が2つの候補ノード「c20a」、「c20b」をもち、ノード「S20」以下に2つの構造が存在するから、残存する統語構造木の数Ptは「2」である(図20のステップS73)。よって、割当候補A1の構造絞込の程度を表す評価値CR3は「5/2=2.5」と算出される(図20のステップS74)。
(st16)割当候補A1で適用されている変換規則は、変換規則#1のみであるため、評価値CR4は「1」となる(図20のステップS75)。
(st17)以上の処理によって、1つ目の割当候補A1に対して、評価値A1(CR1=YES、CR2=1.0、CR3=2.5、CR4=1)が得られる。
(st18)次に、割当候補セットQの2つ目の要素である割当候補A2aについて、評価値CR1〜CR4を算出する。図26は、図13の割当候補A2aに対する評価処理手順を示している。割当候補A2aについても上記(st11)〜(st17)と同様にして、評価値A2a(CR1=YES、CR2=.0.57=4/7、CR3=2.5=5/2、CR4=1)が得られる。
(st19)さらに、割当候補セットQの3つ目の要素である割当候補A2bについて、評価値CR1〜CR4を算出する。図27は、図14の割当候補A2bに対する評価処理手順を示している。割当候補A2bについても上記(st11)〜(st17)と同様にして、評価値A2b(CR1=YES、CR2=0.86=6/7、CR3=5.0=5/1、CR4=1)が得られる。
(st20)以上で、3つの割当候補に対する評価が完了し、図18の処理DのステップS56で、各割当候補に対し求めた評価値を比較する。3つの割当候補の評価値CR1はどれも「YES」であるから、これら3つの割当候補の評価値CR2を比較して、最も高い評価値の割当候補を選択する。ここでは、割当候補A1が最も評価値が高いので、割当候補A1が最適割当として選択される。なお、最適割当A1は、変換規則#1を適用したものである(図24(d))。
(ステップS8)次に、構造絞込部6は、処理Gを行って、割当候補A1を適用した統語森Aから、不要フラグがONである不要ノード、すなわち、図25において、通常ノード「NP17」、「NP15」、「PP18」、候補ノード「c17a」、「c17b」、「c21a」、「c21b」と、これらに関連する全てのアークを削除し、図28に示すような絞込済圧縮統語構造A1を求める。
(ステップS9)構造変換部7は、図23に示した絞込済圧縮統語構造A1に対して、変換規則#1を最適割当A1に従って適用し、図29に示すように、変換済統語意味構造A1を求める(図24(e))。
(ステップS10)訳文生成部8は、図19に示したような変換後統語意味構造A1に基づいて、第2の言語の文字列を生成する。すなわち、図24(f)に示すような、翻訳結果文字列T=“Does a limousine denote an airport bus?”が得られる。
第1の具体例では、複数の統語構造木を内包する統語森に対して、適切に構造変換処理がなされることを示した。さらに、図29にも示したように、構造変換前の絞込済圧縮統語構造には、ノード「S20」の部分で未解決の曖昧性が残っているにもかかわらず(2通りの部分構造が含まれている)、適切な構造変換処理がなされているのである。
(第2の具体例)
次に、統語森Fに対し複数の変換規則を同時に適応する場合について、図30を参照して、図15のフローチャートに従って具体的に説明する。なお、ここでは、図2に示した文法規則や、図4に示した変換規則を用いる場合について説明する。
(ステップS1)機械翻訳装置101に、図30(a)に示すような文字列S「リムジンとは空港バスのことです」が入力されて、機械翻訳装置101の動作が開始する。
(ステップS2)形態素解析部1は、入力文字列Sに対し形態素解析を行って、図30(b)に示すような形態素列M「リムジン・とは・空港・バス・の・こと・です」を得る。
(ステップS3)構文解析部2は図30(b)に示す形態素列Mを解析して、図31に示すような統語森Bを得る(図30(c))。なお、図30(b)に示す形態素列は、前述の第1の具体例で用いた形態素列と同一であるため、得られる統語森Bも、葉ノードの表層を除いて、図6の統語森Aと同一の構造をもっている。よって、統語森Bには5つの統語構造木が含まれている。
(ステップS4、ステップS5)上記入力文字列Sは構文解析部2によって受理されるため(ステップS4)、ステップS5へ進み、割当候補抽出部4において、統語森Bを基に図16の処理Bを行う。
ステップS5では、次の(st101)〜(st102)に示す処理を行う。
(st101)処理BのステップS22では、統語森Bの葉ノードと一致する表層トリガーを持つ全ての変換規則の集合Rを求める。ここでは、図4の変換規則#1〜#3のうち、表層がマッチする、変換規則#2と変換規則#3が集合Rの要素である。
(st102)次に、処理BのステップS23〜ステップS29の処理により、割当候補セットQの要素を求める。ここでは、統語森Bに変換規則#2を適用した場合に得られる図32の割当候補B2a及び図33の割当候補B2bと、統語森Bに変換規則#3の規則を適用した場合に得られる図34の割当候補B3と、統語森Bに変換規則#2及び#3の規則を適用した場合に得られる図35の割当候補B2b&B3及び図36の割当候補B2b&B3との5つが、割当候補セットQの要素として得られる。
(ステップS6、ステップS7)得られた割当候補セットQには、上記5つの要素が含まれているため(ステップS6)、ステップS7へ進む。ステップS7では、割当候補評価部5にて、処理D(及び処理Dに含まれる処理E、処理F)を行うことにより、割当候補セットQの各要素について評価値を求めて、割当候補セットQの要素のなかから最適割当qを選択する。ステップS7では、次の(st111)〜(st130)に示す処理を行う。
(st111)図32、図33に示した割当候補B2a、割当候補B2bは、それぞれ、前述の図13、図14の割当候補A2a、割当候補A2bと構造的に同一である為、それぞれ図26、図27を用いて説明した割当候補A2aおよび割当候補A2bの評価処理と同様の処理がなされて、図37、図38にそれぞれ示したとおり、割当候補B2aからは評価値B2a(CR1=YES、CR2=0.57、CR3=2.5、CR4=1)、割当候補B2bからは評価値B2b(CR1=YES、CR2=0.86、CR3=5.0、CR4=1)が得られる。
(st112)図39は、図34に示した割当候補B3に対する評価処理手順を説明するためのものである。処理Dから呼び出される図19の処理EのステップS63では、統語森B中のノードのうち、割当候補B3上で変換規則#3の各MPトリガーtが割り当てられているノードについて、このノードの必須フラグをONにする。図39では、ステップS63で必須フラグがONとなるノードには、二重丸を付して示している。すなわち、割当候補B3でMPトリガーに割り当てられているノードは、ノード「S42」、ノード「S41」、「NP35」、「NP29」、葉ノード「とは」及び葉ノード「です」であり、これらの必須フラグがステップS63でONとなる。
(st113)図19の処理EのステップS64では、統語森Bの各ノードについて図21〜図22に示した処理Fを行うことにより、統語森Bの各ノードの必須フラグ、不要フラグを更新する。図39では、処理Fを実施した場合の必須フラグおよび不要フラグの伝播の様子を示している。図39では、ステップS64で必須フラグがONとなるノードには○印を付し、不要フラグがONとなるノードには×印を付して表している。また、点線矢印により、ONである各フラグが処理Fによって伝播する様子を示している。なお、図39に示したフラグの伝播処理の順序は、一例であって、必ずしもこの順序に限定されるものではなく、統語森B中の各ノードの評価順序による異なるものである。
(st114)処理Fを行った結果、割当候補B3では図39に示したように、必須フラグと不要フラグがともにONである矛盾ノードは存在しない(図19のステップS65)。従って、割当候補B3は統語森Bに対し適用可能であるから、図19のステップS67において、割当候補B3の適用可否を示す評価値CR1は「YES」となる。
(st115)統語森Bにもともとある葉ノードの数L0は「7」である(図19のステップS68)。また、この適応割当B3はノード「S42」をルートとする構造に適応されているが、これは統語森Bの構造全体にかかるものであるため、割当候補B3で各MPトリガーを割り当てた統語森B中のノードが被覆する部分森構造の葉ノードの数Ltは、統語森Bのもつ全はノードの数「7」である(図19のステップS69)。従って、割当候補B3の被覆範囲の広さに対する評価値CR2は、「7/7=1.0」と算出される(図19のステップS70)。
(st116)統語森Bが本来内包している統語木構造の数P0は、前述したように「5」である(図20のステップS72)。統語森Bから、不要フラグがONであるノード及びこのノードに付随するアーク(図39では細い実線で示した部分)を削除する。すると残存する統語構造木の数Ptは「1」である(図20のステップS73)。よって、割当候補A1の構造絞込の程度を表す評価値CR3は「5/1=5.0」と算出される(図20のステップS74)。
(st117)割当候補B3で適用されている変換規則は、変換規則#3のみであるため、評価値CR4は「1」となる(図20のステップS75)。
(st118)以上の処理によって、割当候補B3に対して、評価値B3(CR1=YES、CR2=1.0、CR3=5.0、CR4=1)が得られる。
(st119)図40は、図35に示した割当候補B2a&B3に対する評価処理手順を説明するためのものである。処理Dから呼び出される図19の処理EのステップS63では、統語森B中のノードのうち、割当候補B2a&B3上で変換規則#2及び#3の各MPトリガーtが割り当てられているノードについて必須フラグをONにする。図40では、ステップS63で必須フラグがONとなるノードには、二重丸を付して示している。すなわち、割当候補B2a&B3でMPトリガーに割り当てられているノードは、ノード「NP35」、「NP33」、「S42」、「NP29」、「S41」、「NP35」、葉ノード「とは」、「の」、「こと」及び「です」であり、これらの必須フラグがステップS63でONとなる。
(st120)図19の処理EのステップS64では、統語森Bの各ノードについて図21〜図22に示した処理Fを行うことにより、統語森Bの各ノードの必須フラグ、不要フラグを更新する。図40では、処理Fを実施した場合の必須フラグおよび不要フラグの伝播の様子を示している。図40では、ステップS64で必須フラグがONとなるノードには○印を付し、不要フラグがONとなるノードには×印を付して表している。また、点線矢印により、ONである各フラグが処理Fによって伝播する様子を示している。なお、図40に示したフラグの伝播処理の順序は一例であって、必ずしもこの順序に限定されるものではなく、統語森B中の各ノードの評価順序により異なるものである。
(st121)処理Fを行った結果、割当候補B2a&B3では図40に示したように、必須フラグと不要フラグがともにONである矛盾ノードは存在しない(図19のステップS65)。従って、割当候補B2a&B3は統語森Bに対し適用可能であるから、図19のステップS67において、割当候補B2a&B3の適用可否を示す評価値CR1は「YES」となる。
(st122)統語森Bにもともとある葉ノードの数L0は「7」である(図19のステップS68)。また、この適応割当B2a&B3はノード「S42」をルートとする構造に適応されているが、これは統語森Bの構造全体にかかるものであるため、割当候補B2a&B3で各MPトリガーを割り当てた統語森B中のノードが被覆する部分森構造の葉ノードの数Ltは、統語森Bのもつ全はノードの数「7」である(図19のステップS69)。従って、割当候補B2a&B3の被覆範囲の広さに対する評価値CR2は、「7/7=1.0」と算出される(図19のステップS70)。
(st123)統語森Bが本来内包している統語木構造の数P0は、前述したように「5」である(図20のステップS72)。統語森Bから、不要フラグがONであるノード及びそれに付随するアーク(図40では細い実線で示した部分)を削除する。すると、候補ノードは存在しないので、残存する統語構造木の数Ptは「1」である(図20のステップS73)。よって、割当候補B2a&B3の構造絞込の程度を表す評価値CR3は「5/1=5.0」と算出される(図20のステップS74)。
(st124)割当候補B2a&B3で適用されている変換規則は、変換規則#2及び#3の2つであるため、評価値CR4は「2」となる(図20のステップS75)。
(st125)以上の処理によって、割当候補B2a&B3に対して、評価値B2a&B3(CR1=YES、CR2=1.0、CR3=5.0、CR4=2)が得られる。
(st126)図41は、図36に示した割当候補B2b&B3に対する評価処理手順を説明するためのものである。処理Dから呼び出される図19の処理EのステップS63では、統語森B中のノードのうち、割当候補B2b&B3上で変換規則#2及び#3の各MPトリガーtが割り当てられているノードについて必須フラグをONにする。図41では、ステップS63で必須フラグがONとなるノードには、二重丸を付して示している。すなわち、割当候補B2b&B3でMPトリガーに割り当てられているノードは、ノード「NP38」、「NP34」、「S42」、「NP29」、「S41」、「NP35」、葉ノード「とは」、「の」、「こと」及び「です」であり、これらの必須フラグがステップS63でONとなる。
(st127)図19の処理EのステップS64では、統語森Bの各ノードについて図21〜図22に示した処理Fを行うことにより、統語森Bの各ノードの必須フラグ、不要フラグを更新する。図41では、処理Fを実施した場合の必須フラグおよび不要フラグの伝播の様子を示している。図41では、ステップS64で必須フラグがONとなるノードには○印を付し、不要フラグがONとなるノードには×印を付して表している。また、点線矢印により、ONである各フラグが処理Fによって伝播する様子を示している。なお、図41に示したフラグの伝播処理の順序は一例であって、必ずしもこの順序に限定されるものではなく、統語森B中の各ノードの評価順序により異なるものである。
(st128)処理Fを行った結果、割当候補B2b&B3では図41に示したように、ノード「NP34」、あるいはノード「NP35」、あるいはノード「S42」の候補ノードが矛盾ノードとなる(図19のステップS65)。従って、割当候補B2b&B3は統語森Bに対し実際には適用不可能な変換規則の割当方法であることが判明する。従って、図19のステップS67において、割当候補B2b&B3の適用可否を示す評価値CR1は「NO」となる。
ここで、圧縮された候補ノード「c42a」が、矛盾ノードとなる過程について説明する。まず、処理EのステップS62で統語森Bの各ノードの必須フラグ及び不要フラグがクリアされる。そして、ステップS63で当該割当候補B2b&B3での必須ノード(NP29、NP34、NP35、NP38、NP41、S42「とは」、「の」、「こと」、「です」)の必須フラグをONとする。
ステップS64では、統語森B中の各ノードに対して、図21〜図22の処理Fが施されるが、この処理の中で、候補ノード「c42a」については、図21のステップS81、ステップS82、図22のステップS91、ステップS92と進む。ステップS92では、候補ノード「c42a」が、既に必須フラグがONとなっている通常ノード「NP38」の唯一の親候補ノードであることから、ステップS92へ進み、候補ノード「c42a」の必須フラグをONにする。
同様に、候補ノード「c42c」についても、図21のステップS81、ステップS82、図22のステップS91、ステップS92と進む。ステップS92では、候補ノード「c42c」が、既に必須フラグがONとなっている通常ノード「S41」の唯一の親候補ノードであることから、ステップS94へ進み、候補ノード「c42c」の必須フラグをONにする。
次に、必須フラグがONとなった候補ノード「c42a」についての処理において、図21のステップS81、ステップS82、図22のステップS91と進む。ステップS91で、候補ノード「c42a」の必須フラグがONであることからステップS97へ進む。ステップS97では、候補ノード「c42a」の不要フラグがOFFであることから、ステップS98へ進み、さらに、ステップS99、ステップS100へと進む。ステップS100において、候補ノード「c42a」の兄弟ノードである候補ノード「c42c」の必須フラグがONであることから、ステップS96へ進み、候補ノード「c42a」の不要フラグがONとなる。
以上の処理によって、候補ノード「c42a」は、必須フラグと不要フラグの両方がONとなる矛盾ノードとなることがわかる。同様の処理によって、候補ノード「c42c」も矛盾ノードとなる。
(st129)以上の処理によって、割当候補B2b&B3に対して、評価値B2b&B3(CR1=NO、CR2=null、CR3=null、CR4=2)が得られる。なお、図41では、複数のノードに矛盾ノードが発生する様子を示したが、実際の処理では矛盾ノードが1つ発見された時点で評価処理を終了する。
(st130)以上で、5つの割当候補に対する評価が完了し、図18の処理DのステップS56で、各割当候補に対し求めた評価値を比較する。5つの割当候補のうち評価値CR1が「YES」である割当候補B2a、B3b、B3、B2b&B3のうち、評価値CR2が最も高い「1.0」である割当候補はB3、B2a&B3であり、これら2つの割当候補の評価値CR3はともに「5.0」である。そこで、これら2つの割当候補のうち、評価値CR4の値が高い方、すなわち、割当候補B2a&B3が最適割当として選択される。なお、最適割当B2a&B3A1は、変換規則#2及び#3を適用したものである(図30(d))。
(ステップS8)次に、構造絞込部6は、処理Gを行って、割当候補B2a&B3を適用した統語森Bから、図40の不要フラグがONである不要ノードと、これらに関連する全てのアークを削除し、図42に示すような絞込済圧縮統語構造B2a&B3を求める。
(ステップS9)構造変換部7は、図42に示した絞込済圧縮統語構造B2a&B3に対して、変換規則#2及び#3を最適割当B2a&B3に従って適用し、図43に示すように、変換済統語意味構造B2a&B3を求める(図30(e))。
(ステップS10)訳文生成部8は、図43に示したような変換後統語意味構造B2a&B3に基づいて、第2の言語の文字列を生成する。すなわち、図30(f)に示すような、翻訳結果文字列T=”A limousine denote an airport bus.”が得られる。
以上説明したように、上記実施形態によれば、自然言語の構造を変換する際には、まず、自然言語文から得られる統語森から、変換規則による変換対象構造を少なくとも1つもつ統語構造木を少なくとも1つ含む複数の部分構造を求め、このなかから実際に変換規則を適用して構造変換する部分構造を1つ選択する。このようにして統語森中の曖昧性のある複数の候補のなかから最適解となり得る統語構造木を絞り込む。この後、選択された部分構造に含まれる各変換対象構造を変換するための変換規則を用いて、当該部分構造の構造を変換することにより、自然言語文の構造を容易に変換することができる。
複数の解釈候補(統語構造木)を含む統語森構造に対するトランスファ処理が可能となる。また、入力文に対する複数の解釈候補をまとめて取り扱うことで、従来のように、後戻りの必要が無く、しかも過度の仮定を設定すること無しに、解釈候補の絞込が行えるので、容易に最適解(唯一の統語構造木)を得ることが可能となる。
また、上記実施形態に記載した手法は、コンピュータに実行させることの出来るプログラムとして、磁気ディスク(フロッピーディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体を用いてコンピュータにプログラムを読み込み、CPU部で実行させれば、本発明の音声インタフェース装置を実現することが出来ることになる。
すなわち、コンピュータのハードディスク、半導体メモリなどの所定の記憶手段に、自然言語の構造に含まれる任意の変換対象構造を当該変換対象構造とは異なる構造に変換するための変換規則群を記憶させ、CPU等の演算手段に、入力文字列の形態素列から、複数の統語構造木を含む統語森を求めるステップと、統語森から、(各変換規則の)変換対象構造を少なくとも1つ含む統語構造木を含む複数の部分構造を求めるステップ、各部分構造内の変換対象構造に含まれる形態素の数、各部分構造に含まれる統語構造木の数、及び各部分構造に含まれる変換対象構造の数のうちの少なくとも1つに基づいて、上記複数の部分構造のなかから、上記記憶手段に記憶された変換規則群を適用して構造変換するための第1の部分構造を選択するステップと、前記変換規則群のうち、上記第1の部分構造に含まれる各変換対象構造を変換するための各変換規則を用いて、当該第1の部分構造の構造を変換するステップとを含むプログラムを実行させることにより、当該コンピュータは上記実施形態に係る自然言語解析装置として機能する。
さらに、本発明を実施する際の記憶媒体は、コンピュータと独立した媒体に限らず、LAN(ローカルエリアネットワーク)や、インターネット等により伝送されたプログラムやデータをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の記憶媒体から本発明を実施することも可能であり、媒体の構成は何れの構成であっても良い。
なお、上記構文解析部2で行なわれる解析処理は、例えばチャートパージングなど別の方法を用いても良い。自然言語解析装置100には、文字列が入力されるのではなく、直接形態素列を受け取ったり、あるいはラティスなど構造をもつデータを受け付けるようにしても良い。第1の言語及び第2の言語は、上記実施形態の場合に限定されるものではない。また、変換規則に、優先度や適応順序に関する制御を追加しても良い。自然言語解析装置100は、例えば、音声認識結果や手書き文字認識結果や画像文字認識結果として得られる文字列が入力される場合も上記実施形態の説明と全く同様である。
各割当候補に対する評価処理において、各割当候補について異なる評価基準を用いたり、あるいは重み付け評価を行なったり、異なる順序での評価を行なったりしても良い。また、確率文法併用や、単語や単語クラスの共起情報などの頻度情報や、意味情報を併用しても良い。また、音声や文字認識結果が自然言語解析装置100に入力される場合には、認識スコアを利用してもよい。
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1…形態素解析部、2…構文解析部、3…変換規則記憶部、4…割当候補抽出部、5…割当候補評価部、6…構造絞込部、7…構造変換部、8…訳文生成部、100…自然言語解析装置、101…機械翻訳装置。