(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0026】
以下、本発明に係る学習装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0027】
(実施の形態1)
本実施の形態において、カテゴリを品詞と単語の間に挿入する構文解析装置について説明する。
【0028】
また、本実施の形態において、構文解析装置を用いた語順変換規則の学習装置について説明する。
【0029】
図1は、本実施の形態における構文解析装置11のブロック図である。構文解析装置11は、第二解析結果格納部110、受付部111、構文解析部112、カテゴリ取得部113、カテゴリ挿入部114、および学習部115を備える。
【0030】
図2は、本実施の形態における構文解析装置11を含む学習装置1のブロック図である。学習装置1は、構文解析装置11、対訳コーパス12、要素対格納部13、第三解析結果格納部14、目的言語要素取得部15、判断部16、およびフラグ付加部17を備える。
【0031】
構文解析装置11を構成する第二解析結果格納部110は、構文解析装置11の学習部115が出力した第二解析結果を格納し得る。学習部115の出力とは、通常、蓄積である。ただし、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、外部の装置への送信、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。なお、第二解析結果の詳細については後述する。
【0032】
受付部111は、文を受け付ける。文は、例えば、翻訳対象の原言語文である。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。文の受け付け手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部111は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0033】
構文解析部112は、受付部111が受け付けた文を構文解析し、第一解析結果を取得する。第一解析結果は、文を構成する1以上の各要素と1以上の各要素の品詞を有する解析結果であり、品詞または要素をノードとする1以上の二分木を有する。ここで、要素とは、通常、単語であるが、形態素、句等、文を構成する部分であれば良い。また、第一解析結果は、二分木ではない部分木を有しても良い。また、第一解析結果は、木構造を有する。なお、二分木は、通常、親ノードと2つの子ノードを有する。また、二分木は、子ノードの子孫の孫ノード等を有しても良い。つまり、二分木の階層は、2段とは限らず、3段以上でも良い。
【0034】
構文解析部112の処理は公知技術であるので詳細な説明を省略するが、例えば構文解析部112は、例えば、CaboCha(URL「http://code.google.com/p/cabocha/」参照)、Berkeley Parser(Improved inference for unlexicalized parsing. In NAACL-HLT, pages 404-411, Rochester, New York, April. Association for Computational Linguistics.)等の構文解析器により実現され得る。
【0035】
カテゴリ取得部113は、受付部111が受け付けた文を構成する1以上の各要素のカテゴリを取得する。カテゴリを取得する方法は問わないが例えば、カテゴリ取得部113は、要素とそのカテゴリを対に有する1以上の要素情報を有する要素辞書から、要素をキーにして検索し、カテゴリを取得しても良い。例えば、カテゴリ取得部113は、カテゴリ取得ツール「mkcls」(URL:「http://www.statmt.org/moses/giza/mkcls.html」参照)を使用しても良い。また、カテゴリを取得できない要素に対して、カテゴリ取得部113は、例えば、「不明」を示すカテゴリ(例えば、「CN」)を取得する。また、単語カテゴリの取得方法は、公知技術であるので、詳細な説明を省略する。
なお、カテゴリとは、要素の種類であり、要素の属性と言っても良い。ただし、カテゴリは品詞ではない。カテゴリとは、例えば、要素のクラスを示す情報、2以上の要素の集合に付けられた情報、要素の意味的な集合に付けられた情報等と考えても良い。例えば、要素「羊」のカテゴリは「動物」であるが、カテゴリは記号「C0」「C1」等でも良い。
【0036】
カテゴリ挿入部114は、第一解析結果を構成する要素と品詞との間に、要素のカテゴリが挿入された第二解析結果を取得する。
【0037】
カテゴリ挿入部114は、通常、カテゴリ取得部113が取得した1以上の各カテゴリに対応する要素であり、第一解析結果を構成する要素と、要素の品詞との間に、要素のカテゴリを挿入し、第二解析結果を取得する。ここでの第二解析結果は、第二解析結果を構成する2以上の部分木の集合である、と考えても良い。
【0038】
カテゴリ挿入部114は、通常、構文解析部112の構文解析処理の後にカテゴリを挿入するが、構文解析処理の前の要素にカテゴリを付加しても良い。つまり、カテゴリ挿入部114と処理と構文解析部112の処理の順序は問わない。
【0039】
学習部115は、カテゴリ挿入部114が取得した第二解析結果を出力する。ここで、出力とは、通常、記録媒体に蓄積することである。ただし、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0040】
対訳コーパス12は、1または2以上の対訳文を有する。対訳文は、原言語文と目的言語文との対である。
【0041】
要素対格納部13は、原言語の要素と目的言語の要素との対である1以上の要素対を格納し得る。要素対格納部13は、例えば、原言語の単語と目的言語の単語との対である1以上の単語対を格納している辞書である。
【0042】
第三解析結果格納部14は、1以上の第三解析結果を格納し得る。第三解析結果は、第二解析結果が有する1以上の各二分木に対して、フラグが付加された情報である。フラグがとは、二分木をスワップすることを示す情報、または二分木をスワップしないことを示す情報である。例えば、スワップすることを示すフラグは「SW」、スワップしないことを示すフラグは「ST」である。二分木をスワップすることは、二分木を構成する子ノードの順序(語順)を入れ替えることである。フラグは、通常、二分木の親ノードに対応付けられている。ただし、フラグは、二分木に対応付いていれば良い。
【0043】
目的言語要素取得部15は、原言語文を構成する1以上の各要素に対応する目的言語の要素を要素対格納部13から取得する。目的言語要素取得部15は、通常、第二解析結果を構成する1以上のノードである要素に対応する目的言語の要素を要素対格納部13から取得する。第二解析結果を構成するノードである要素は、原言語の要素である。
【0044】
判断部16は、第二解析結果を構成する1以上の各二分木に対して、スワップするか否かを判断する。具体的には、判断部16は、着目する二分木に対して、原言語の1以上の要素の語順と目的言語の1以上の要素の語順とから、原言語文から目的言語文に翻訳する際に、1以上の各二分木をスワップするか否かを判断する。なお、目的言語の要素は、目的言語要素取得部15が取得した情報である。また、具体的には、判断部16は、前記目的言語要素取得部15が取得した目的言語の1以上の要素と目的言語文を構成する1以上の要素との語順から、原言語文から目的言語文に翻訳する際に、1以上の各二分木をスワップするか否かを判断する。
【0045】
フラグ付加部17は、判断部16の判断結果であるフラグを、1以上の各二分木に対応付けて付加し、第三解析結果を取得する。二分木に対応付けてフラグを付加することは、通常、二分木の親ノードに対応付けてフラグを付加することである。
【0046】
フラグ付加部17は、取得した第三解析結果を第三解析結果格納部14に蓄積しても良いし、第二解析結果格納部110の第二解析結果を構成する1以上の各二分木に対応付けて、フラグを書き込んでも良い。
【0047】
第二解析結果格納部110、対訳コーパス12、要素対格納部13、および第三解析結果格納部14は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0048】
第二解析結果格納部110等に第二解析結果等が記憶される過程は問わない。例えば、記録媒体を介して第二解析結果等が第二解析結果格納部110等で記憶されるようになってもよく、通信回線等を介して送信された第二解析結果等が第二解析結果格納部110等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された第二解析結果等が第二解析結果格納部110等で記憶されるようになってもよい。
【0049】
構文解析部112、カテゴリ取得部113、カテゴリ挿入部114、学習部115、目的言語要素取得部15、判断部16、およびフラグ付加部17は、通常、MPUやメモリ等から実現され得る。構文解析部112の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0050】
次に、構文解析装置11の動作について、
図3のフローチャートを用いて説明する。
【0051】
(ステップS301)受付部111は、文を受け付けたか否かを判断する。文を受け付けた場合はステップS302に行き、文を受け付けない場合はステップS301に戻る。なお、ここで受け付ける文は、通常、翻訳対象の原言語文である。
【0052】
(ステップS302)構文解析部112は、ステップS301で受け付けられた文を構文解析し、第一解析結果を取得する。
【0053】
(ステップS303)カテゴリ取得部113は、カウンタiに1を代入する。
【0054】
(ステップS304)カテゴリ取得部113は、ステップS301で受け付けられた文を構成するi番目の要素が存在するか否かを判断する。i番目の要素が存在する場合はステップS305に行き、i番目の要素が存在しない場合は処理を終了する。なお、ステップS301で受け付けられた文を構成する要素は、第一解析結果を構成する要素であるとも言える。
【0055】
(ステップS305)カテゴリ取得部113は、ステップS301で受け付けられた文を構成するi番目の要素のカテゴリを取得する。
【0056】
(ステップS306)カテゴリ挿入部114は、第一解析結果を構成するi番目の要素と品詞との間に、ステップS305で取得されたカテゴリを挿入する。
【0057】
(ステップS307)カテゴリ取得部113は、カウンタiを1、インクリメントする。ステップS304に戻る。
【0058】
なお、
図3のフローチャートのステップS306の処理により、カテゴリ挿入部114は、第二解析結果を取得する。
【0059】
次に、学習装置1の動作について、
図4のフローチャートを用いて説明する。
【0060】
(ステップS401)目的言語要素取得部15は、カウンタiに1を代入する。
【0061】
(ステップS402)目的言語要素取得部15は、第二解析結果格納部110にi番目の二分木が存在するか否かを判断する。i番目の二分木が存在する場合はステップS403に行き、i番目の二分木が存在しない場合は処理を終了する。
【0062】
(ステップS403)目的言語要素取得部15は、i番目の二分木を構成するノードのうち2以上の各要素(各要素は、原言語の要素である。)に対応する、目的言語の2以上の要素を要素対格納部13から取得する。
【0063】
(ステップS404)判断部16は、i番目の二分木を構成する原言語の2以上の要素の語順と目的言語の2以上の要素の語順とから、二分木をスワップするか否かを判断する。スワップすると判断した場合はステップS405に行き、スワップしないと判断した場合はステップS406に行く。なお、二分木を構成する原言語の2以上の要素の語順は、対訳コーパス12の原言語文から取得できる。また、目的言語の2以上の要素の語順は、対訳コーパス12の目的言語文から取得できる。
【0064】
(ステップS405)フラグ付加部17は、フラグとして、スワップすることを意味するフラグ(ここでは、「SW」)を取得する。
【0065】
(ステップS406)フラグ付加部17は、フラグとして、スワップしないことを意味するフラグ(ここでは、「ST」)を取得する。
【0066】
(ステップS407)フラグ付加部17は、ステップS405またはステップS406で取得したフラグをi番目の二分木に付加する。フラグ付加部17は、通常、i番目の二分木の親ノードに、フラグを付加する。
【0067】
(ステップS408)目的言語要素取得部15は、カウンタiを1、インクリメントする。ステップS402に戻る。
【0068】
なお、
図4のステップS407の処理により、第三解析結果が取得される。第三解析結果は、通常、第三解析結果格納部14に蓄積される。
【0069】
以下、まず、本実施の形態における構文解析装置11の具体的な動作について説明する。
【0070】
今、原言語文「This is a pen.」と目的言語文「これはペンです。」との有する対訳文が対訳コーパス12に格納されている、とする。
【0071】
かかる状況において、構文解析装置11は、原言語文を構文解析し、
図5に示す第一解析結果を取得する。第一解析結果を図的なツリー構造で示した図が
図6である。
【0072】
次に、カテゴリ取得部113は、1番目の要素「This」のカテゴリ「C0」を取得した、とする。次に、カテゴリ挿入部114は、第一解析結果を構成する1番目の要素「This」と品詞「DT」との間にカテゴリ「C0」を挿入する。
【0073】
次に、カテゴリ取得部113は、2番目の要素「is」のカテゴリ「C1」を取得した、とする。次に、カテゴリ挿入部114は、第一解析結果を構成する2番目の要素「is」と品詞「VBZ」との間にカテゴリ「C1」を挿入する。
【0074】
次に、カテゴリ取得部113は、3番目の要素「a」のカテゴリ「C2」を取得した、とする。次に、カテゴリ挿入部114は、第一解析結果を構成する3番目の要素「a」と品詞「DT」との間にカテゴリ「C2」を挿入する。
【0075】
さらに、カテゴリ取得部113は、4番目の要素「pen」のカテゴリ「C3」を取得した、とする。次に、カテゴリ挿入部114は、第一解析結果を構成する4番目の要素「pen」と品詞「NN」との間にカテゴリ「C3」を挿入する。
【0076】
以上の処理により、カテゴリ挿入部114は、
図7に示す第二解析結果を取得する。また、第二解析結果を図的なツリー構造で示した図が
図8である。
【0077】
次に、本実施の形態における学習装置1の具体的な動作について説明する。
【0078】
まず、目的言語要素取得部15は、1番目の二分木(ROOTを親とする二分木)を取得する。そして、判断部16は、対訳コーパス12の原言語文と目的言語文とを用いて、1番目の二分木を構成する原言語の2以上の要素の順序と目的言語の2以上の要素の順序とから、二分木をスワップしないと判断する。次に、フラグ付加部17は、フラグとして、スワップしないことを意味するフラグ(ここでは、「ST」)を取得する。そして、フラグ付加部17は、取得したフラグ「ST」を1番目の二分木の親ノード「ROOT」に付加する。
【0079】
次に、目的言語要素取得部15は、2番目の二分木(Sを親とする二分木)を取得する。そして、判断部16は、対訳コーパス12の原言語文と目的言語文とを用いて、1番目の二分木を構成する原言語の2以上の要素の順序と目的言語の2以上の要素の順序とから、二分木をスワップしないと判断する。次に、フラグ付加部17は、フラグ「ST」を取得する。そして、フラグ付加部17は、取得したフラグ「ST」を2番目の二分木の親ノード「S」に付加する。
【0080】
次に、目的言語要素取得部15は、3番目の二分木(VPを親とする二分木)を取得する。次に、目的言語要素取得部15は、3番目の二分木を構成するノードのうち3つの各要素に対応する目的言語の要素「ペン です」を要素対格納部13から取得する。
【0081】
次に、判断部16は、対訳コーパス12の原言語文を構成する3つの要素「is a pen」の順序と目的言語文を構成する要素「ペン です」の順序とを用いて、二分木をスワップする、と判断する。判断部16は、「is」に対応する「です」、「pen」に対応する「ペン」の語順が、原言語文と目的言語文とで逆であることを認識し、当該二分木をスワップする、と判断する。
【0082】
次に、フラグ付加部17は、フラグとして、スワップすることを意味するフラグ(ここでは、「SW」)を取得する。そして、フラグ付加部17は、取得したフラグ「SW」を3番目の二分木の親ノード「VP」に付加する。
【0083】
次に、目的言語要素取得部15は、4番目の二分木(NPを親とする二分木)を取得する。そして、判断部16は、対訳コーパス12の原言語文と目的言語文とを用いて、1番目の二分木を構成する原言語の2以上の要素の順序と目的言語の2以上の要素の順序とから、二分木をスワップしないと判断する。次に、フラグ付加部17は、フラグ「ST」を取得する。そして、フラグ付加部17は、取得したフラグ「ST」を4番目の二分木の親ノード「NP」に付加する。
【0084】
以上の処理により、
図9に示す第三解析結果が得られた。なお、第三解析結果は、第三解析結果格納部14に蓄積された、とする。
【0085】
以上、本実施の形態によれば、非常に高い精度で、原言語文を目的言語側の語順に語順変換できる二分木を学習等するための構文解析技術を提供できる。
【0086】
また、本実施の形態によれば、非常に高い精度で、原言語文を目的言語側の語順に語順変換できる二分木を学習できる。
【0087】
なお、構文解析装置11における構文解析結果は、機械翻訳以外の処理でも利用可能である。機械翻訳以外の処理とは、例えば、音声翻訳、全文検索等である。
【0088】
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における構文解析装置11を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、文を受け付ける受付部と、前記受付部が受け付けた文を構文解析し、当該文を構成する1以上の各要素と当該1以上の各要素の品詞を有する解析結果であり、品詞または要素をノードとする1以上の二分木を有する第一解析結果を取得する構文解析部と、前記受付部が受け付けた文を構成する1以上の各要素のカテゴリを取得するカテゴリ取得部と、前記カテゴリ取得部が取得した1以上の各カテゴリに対応する要素であり、前記第一解析結果を構成する要素と、当該要素の品詞との間に、当該要素のカテゴリが挿入された、第二解析結果を取得するカテゴリ挿入部として機能させるためのプログラムである。
【0089】
また、学習装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムにおいて、コンピュータがアクセス可能な記録媒体は、原言語文と目的言語文との対である対訳文を有する対訳コーパスと、原言語の要素と目的言語の要素との対である1以上の要素対を格納し得る要素対格納部と、前記原言語文に対する請求項1記載の構文解析装置の処理の結果であり、品詞または要素またはカテゴリをノードとする1以上の二分木を有する第二解析結果であって、請求項1記載の構文解析装置の学習部が出力した第二解析結果を格納し得る第二解析結果格納部とを具備し、コンピュータを、前記第二解析結果を構成する1以上のノードである原言語の1以上の各要素に対応する目的言語の要素を前記要素対格納部から取得する目的言語要素取得部と、前記第二解析結果を構成する1以上の各二分木に対して、前記目的言語要素取得部が取得した目的言語の1以上の要素と前記目的言語文を構成する1以上の要素との語順から、原言語文から目的言語文に翻訳する際に、前記1以上の各二分木をスワップするか否かを判断する判断部と、前記判断部の判断結果であるフラグを、前記1以上の各二分木に対応付けて付加し、第三解析結果を取得するフラグ付加部として機能させるためのプログラムである。
【0090】
(実施の形態2)
本実施の形態において、実施の形態1の学習装置1で学習した二分木を用いて、機械翻訳を行う機械翻訳装置について説明する。
【0091】
図10は、本実施の形態における機械翻訳装置2のブロック図である。この機械翻訳装置2は、要素対格納部13、第三解析結果格納部14、受付部111、第二構文解析部21、判断部22、目的言語要素取得部23、および目的言語文出力部24を備える。なお、第二構文解析部21は、通常、構文解析装置11と同じ構成である。
【0092】
第二構文解析部21は、受付部111が受け付けた原言語文を、構文解析装置11を用いて構文解析し、第二解析結果を取得する。第二構文解析部21は、構文解析装置11と同じ構成でも良い。
【0093】
判断部22は、第三解析結果格納部14に格納されている1以上の第三解析結果が有する二分木に付加されたフラグを用いて、第二構文解析部21が取得した第二解析結果を構成する1以上の各二分木をスワップするか否かを判断する。判断部22は、機械学習のアルゴリズムを用いて、二分木をスワップするか否かを判断しても良い。判断部22は、ニューラルネットワークのアルゴリズムを用いて、二分木をスワップするか否かを判断しても良い。ニューラルネットワークについては、例えば、「URL:http://nlg.isi.edu/software/nplm/」参照のこと。
【0094】
目的言語要素取得部23は、原言語文を構成する1以上の各要素に対応する目的言語の要素を要素対格納部13から取得する。目的言語要素取得部23は、判断部22における判断結果に応じた語順を有する原言語文を構成する1以上の各要素に対応する目的言語の要素を要素対格納部13から取得する。
【0095】
目的言語文出力部24は、目的言語要素取得部23が取得した目的言語の1以上の要素を語順に従って連結し、目的言語文を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0096】
第二構文解析部21、判断部22、目的言語要素取得部23は、通常、MPUやメモリ等から実現され得る。第二構文解析部21の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0097】
目的言語文出力部24は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。目的言語文出力部24は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0098】
次に、機械翻訳装置2の動作について、
図11のフローチャートを用いて説明する。
図11のフローチャートにおいて、
図3のフローチャートと同一のステップについて説明を省略する。
【0099】
(ステップS1101)判断部22は、カウンタiに1を代入する。
【0100】
(ステップS1102)判断部22は、第二構文解析部21が取得した第二解析結果の中にi番目の二分木が存在するか否かを判断する。i番目の二分木が存在すればステップS1103に行き、i番目の二分木が存在しなければステップS1107に行く。
【0101】
(ステップS1103)判断部22は、i番目の二分木をスワップするか否かを判断する。判断部22は、第三解析結果格納部14に格納されている1以上の第三解析結果が有する二分木に付加されたフラグを用いて、i番目の二分木をスワップするか否かを判断する。スワップすると判断された場合はステップS1104に行き、スワップしないと判断された場合はステップS1106に行く。
【0102】
(ステップS1104)判断部22は、i番目の二分木の順序を入れ替える。二分木の順序を入れ替える(スワップする)ことは、二分木の2つの子ノードの順序を入れ替えることである。
【0103】
(ステップS1105)判断部22は、カウンタiを1、インクリメントする。ステップS1102に戻る。
【0104】
(ステップS1106)目的言語要素取得部23は、判断部22における判断結果に応じた語順を有する原言語文を構成する1以上の各要素に対応する目的言語の要素を要素対格納部13から取得する。
【0105】
(ステップS1107)目的言語文出力部24は、目的言語要素取得部23が取得した目的言語の1以上の要素を語順に従って連結し、目的言語文を構成する
【0106】
(ステップS1108)目的言語文出力部24は、ステップS1107で構成された目的言語文を出力する。ステップS301に戻る。
【0107】
なお、
図11のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0108】
以上、本実施の形態によれば、非常に高い精度で、原言語文を目的言語側の語順に語順変換できるために、精度の高い機械翻訳が可能となる。
【0109】
なお、本実施の形態における機械翻訳装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータがアクセス可能な記録媒体は、原言語の要素と目的言語の要素との対である1以上の要素対を格納し得る要素対格納部と、1以上の第三解析結果を格納し得る第三解析結果格納部とを具備し、コンピュータを、原言語文を受け付ける受付部と、前記受付部が受け付けた原言語文を、請求項1記載の構文解析装置を用いて構文解析し、第二解析結果を取得する第二構文解析部と、前記1以上の第三解析結果が有する二分木に付加されたフラグを用いて、前記第二解析結果を構成する1以上の各二分木をスワップするか否かを判断する判断部と、前記判断部における判断結果に応じた語順を有する原言語文を構成する1以上の各要素に対応する目的言語の要素を前記要素対格納部から取得する目的言語要素取得部と、前記目的言語要素取得部が取得した目的言語の1以上の要素を語順に従って連結し、目的言語文を出力する目的言語文出力部として機能させるためのプログラムである。
【0110】
(実施の形態3)
本実施の形態において、品詞の三つ組による語順変換を行い、かつ単語交差最小化を用いた語順変換を行うことにより、語順変換規則を学習する学習装置について説明する。なお、品詞の三つ組とは、二分木を構成する3つの品詞であり、親ノードの品詞と、2つの子ノードの品詞からなる。
【0111】
図12は、本実施の形態における学習装置3のブロック図である。学習装置3は、対訳コーパス31、要素対格納部13、二分木格納部32、構文解析部112、処理対象二分木取得部33、判断部34、目的言語要素取得部35、第二判断部36、およびフラグ変更部37を備える。
【0112】
対訳コーパス31は、原言語文と目的言語文との対である対訳文を有する。対訳コーパス31は、1または2以上の対訳文を有する。なお、原言語文および目的言語文は、完全な文ではなく、文の一部でも良い。
【0113】
二分木格納部32は、原言語文の構文解析結果を構成する二分木であり、親ノードと2つの子ノードのすべてが品詞である二分木であり、原言語文から目的言語文に翻訳する際に、二分木をスワップするか否かを示すフラグを二分木に対応付けて有する1以上の二分木を格納し得る。ここで、各二分木に対応付けられているフラグは、通常、二分木の親ノードに対応付けている。
【0114】
処理対象二分木取得部33は、構文解析部112が取得した第一解析結果を構成する二分木であり、親ノードと2つの子ノードのすべてが品詞である1以上の二分木を取得する。
【0115】
判断部34は、二分木格納部32の1以上の二分木を用いて、処理対象二分木取得部33が取得した1以上の各二分木をスワップするか否かを判断する。判断部34は、例えば、機械学習のアルゴリズムを用いて、二分木をスワップするか否かを判断しても良い。判断部34は、ニューラルネットワークのアルゴリズムを用いて、二分木をスワップするか否かを判断しても良い。
【0116】
目的言語要素取得部35は、原言語の2つの各要素に対応する目的言語の要素を要素対格納部13から取得する。目的言語要素取得部35は、1以上の各二分木の子ノードに対応する原言語の2つの各要素に対応する目的言語の要素を要素対格納部13から取得する。
【0117】
第二判断部36は、判断部34の判断結果を反映させた原言語の2つの要素の語順と、原言語の2つの要素に対応する目的言語の2つの要素の語順とが同じであるか否かを判断する。
【0118】
フラグ変更部37は、第二判断部36の判断結果が、語順が同じではないとの判断である場合、判断に対応する二分木を構成する親ノードのフラグの値を逆の値に変更する。
【0119】
対訳コーパス31、要素対格納部13、および二分木格納部32は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0120】
対訳コーパス31等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が対訳コーパス31等で記憶されるようになってもよく、通信回線等を介して送信された情報が対訳コーパス31等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が対訳コーパス31等で記憶されるようになってもよい。
【0121】
処理対象二分木取得部33、判断部34、目的言語要素取得部35、第二判断部36、およびフラグ変更部37は、通常、MPUやメモリ等から実現され得る。処理対象二分木取得部33等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0122】
次に、
図12に示す学習装置3の動作について
図13のフローチャートを用いて説明する。
【0123】
(ステップS1301)構文解析部112は、対訳コーパス31における原言語文を取得する。なお、ここでは、対訳コーパス31の一の対訳文を処理の対象とする。
【0124】
(ステップS1302)構文解析部112は、ステップS1301で取得した原言語文を構文解析し、第一解析結果を取得する。
【0125】
(ステップS1303)処理対象二分木取得部33は、カウンタiに1を代入する。
【0126】
(ステップS1304)処理対象二分木取得部33は、ステップS1302で取得された第一解析結果の中に、i番目の二分木であり、親ノードと2つの子ノードのすべてが品詞である二分木が存在するか否かを判断する。i番目の処理対象の二分木が存在すればステップS1305に行き、存在しなければ処理を終了する。
【0127】
(ステップS1305)処理対象二分木取得部33は、i番目の処理対象の二分木を、ステップS1302で取得された第一解析結果から取得する。
【0128】
(ステップS1306)判断部34は、二分木格納部32(原言語文の構文解析結果が格納されている)の二分木を用いて、ステップS1305で取得されたi番目の処理対象の二分木をスワップするか否かを判断する。スワップしないと判断された場合はステップS1307に行き、スワップすると判断された場合はステップS1311に行く。
【0129】
(ステップS1307)目的言語要素取得部35は、i番目の処理対象の二分木を構成する1以上の各要素に対応する、目的言語の要素を要素対格納部13から取得する。
【0130】
(ステップS1308)第二判断部36は、判断部34の判断結果を反映させた原言語の2つの要素の語順と、原言語の2つの要素に対応する目的言語の2つの要素の語順とが同じであるか否かを判断する。つまり、第二判断部36は、原言語の要素の並びと、目的言語の要素の並びが交差しているか否かを判断する。
【0131】
(ステップS1309)ステップS1308において、語順が同じである(交差していない)と判断された場合はステップS1310に行き、語順が異なる(交差している)と判断された場合はステップS1311に行く。
【0132】
(ステップS1310)フラグ変更部37は、スワップしないことを意味するフラグ(ここでは、「ST」)を取得し、ステップS1312に行く。
【0133】
(ステップS1311)フラグ変更部37は、スワップすることを意味するフラグ(ここでは、「SW」)を取得する。
【0134】
(ステップS1312)フラグ変更部37は、i番目の処理対象の二分木に対応付けて、取得したフラグを付加する。
【0135】
(ステップS1313)処理対象二分木取得部33は、カウンタiを1、インクリメントする。ステップS1304に戻る。
【0136】
以下、本実施の形態における学習装置3の具体的な動作について説明する。
【0137】
今、対訳コーパス31に、「<原言語文>ate orange,<目的言語文>オレンジを食べた」が格納されている、とする。
【0138】
また、要素対格納部13に、「<原言語>orange,<目的言語>オレンジ」「<原言語>ate,<目的言語>食べた」等の要素対が格納されている、とする。
【0139】
さらに、二分木格納部32には、親ノードと2つの子ノードのすべてが品詞である二分木であり、二分木をスワップするか否かを示すフラグを有する二分木(
図14参照)が格納されている、とする。
【0140】
かかる状況において、構文解析部112は、対訳コーパス31における原言語文を構文解析し、第一解析結果を取得する。第一解析結果は、
図15である。
【0141】
次に、処理対象二分木取得部33は、
図15の処理対象の二分木を取得する。
【0142】
次に、判断部34は、処理対象二分木取得部33が取得した二分木に対して、二分木格納部32の二分木(特に、
図14の二分木)を用いて、二分木をスワップしない、と判断する。
【0143】
次に、目的言語要素取得部35は、
図15の処理対象の二分木を構成する1以上の各要素に対応する、目的言語の要素「オレンジ」「食べた」を要素対格納部13から取得する。
【0144】
次に、第二判断部36は、対訳コーパス31の対訳文「<原言語文>ate orange,<目的言語文>オレンジを食べた」を用いて、判断部34の判断結果を反映させた原言語の2つの要素の語順「ate orange」と、原言語の2つの要素に対応する目的言語の2つの要素の語順「オレンジ」「食べた」とが異なる(交差している)と判断する(
図16参照)。
【0145】
次に、フラグ変更部37は、フラグとして、スワップすることを意味するフラグ(ここでは、「SW」)を取得する。
【0146】
次に、フラグ変更部37は、
図14の処理対象の二分木に対応付けて、フラグ「SW」を付加する。そして、フラグ変更部37は、
図17に示すフラグ付きの二分木を得る。
【0147】
以上、本実施の形態によれば、非常に高い精度で、原言語文を目的言語側の語順に語順変換できる二分木を学習できる。
【0148】
なお、本実施の形態における学習装置3を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータがアクセス可能な記録媒体は、原言語文と目的言語文との対である対訳文を有する対訳コーパスと、原言語の要素と目的言語の要素との対である1以上の要素対を格納し得る要素対格納部と、原言語文の構文解析結果を構成する二分木であり、親ノードと2つの子ノードのすべてが品詞である二分木であり、原言語文から目的言語文に翻訳する際に、二分木をスワップするか否かを示すフラグを前記二分木に対応付けて有する1以上の二分木を格納し得る二分木格納部とを具備し、コンピュータを、前記原言語文を構文解析し、当該文を構成する1以上の各要素と当該1以上の各要素の品詞を有する解析結果であり、品詞または要素をノードとする1以上の二分木を有する第一解析結果を取得する構文解析部と、前記第一解析結果を構成する二分木であり、親ノードと2つの子ノードのすべてが品詞である1以上の二分木を取得する処理対象二分木取得部と、前記処理対象二分木取得部が取得した1以上の各二分木に対して、前記二分木格納部の1以上の二分木を用いて、当該1以上の各二分木をスワップするか否かを判断する判断部と、前記1以上の各二分木の子ノードに対応する原言語の2つの各要素に対応する目的言語の要素を前記要素対格納部から取得する目的言語要素取得部と、前記判断部の判断結果を反映させた原言語の2つの要素の語順と、当該原言語の2つの要素に対応する目的言語の2つの要素の語順とが同じであるか否かを判断する第二判断部と、前記第二判断部の判断結果が、語順が同じではないとの判断である場合、当該判断に対応する二分木を構成する親ノードのフラグの値を逆の値に変更するフラグ変更部として機能させるためのプログラムである。
【0149】
(実施の形態4)
本実施の形態において、後述する15の素性のうち、少なくとも4以上の素性を用いて、スワップするか否かを判定して、語順変換規則を学習する語順変換規則の学習装置について説明する。
【0150】
また、本実施の形態において、要素のカテゴリも含む語順変換規則の学習装置について説明する。
【0151】
図18は、本実施の形態における学習装置4のブロック図である。この学習装置4は、学習二分木格納部41、受付部111、構文解析部112、素性取得部42、判断部43、フラグ付加部44、カテゴリ取得部113、およびカテゴリ挿入部114を備える。
【0152】
学習二分木格納部41は、1または2以上の二分木を格納している。二分木は、1以上の原言語の要素または1以上の各要素の品詞をノードとする二分木である。二分木は、通常、原言語文の構文解析結果である木構造を構成する二分木である。また、二分木は、要素のカテゴリを当該要素と品詞の間に有することは好適である。なお、すべての二分木は要素のカテゴリを有することは好適である。ただし、カテゴリを有しない二分木が存在しても良い。
【0153】
また、二分木を構成する親ノードの素性は、以下の(1)〜(15)の15の素性を有する。
【0154】
(1)祖父、(2)親、(3)自分、(4)自分の直前の兄弟、(5)自分の直後の兄弟、(6)左の子、(7)右の子、(8)左の子の左端の子、(9)左の子の右端の子、(10)右の子の左端の子、(11)右の子の右端の子、(12)左の子が支配する単語列の左端の単語、(13)左の子が支配する単語列の右端の単語、(14)右の子が支配する単語列の左端の単語、(15)右の子が支配する単語列の右端の単語
【0155】
なお、例えば、
図9の木構造を構成する二分木の親ノード(VP)の(1)〜(15)の素性は、以下である。
(1)祖父・・・ROOT
(2)親・・・S
(3)自分・・・VP
(4)自分の直前の兄弟・・・NP
(5)自分の直後の兄弟・・・NULL
(6)左の子・・・VBZ
(7)右の子・・・NP
(8)左の子の左端の子・・・C1
(9)左の子の右端の子・・・NULL
(10)右の子の左端の子・・・DT
(11)右の子の右端の子・・・NN
(12)左の子が支配する単語列の左端の単語・・・is
(13)左の子が支配する単語列の右端の単語・・・NULL
(14)右の子が支配する単語列の左端の単語・・・a
(15)右の子が支配する単語列の右端の単語・・・pen
【0156】
ただし、二分木の親ノードは、15の素性のうち、4以上の素性を有すれば良い。また、二分木は、当該二分木をスワップするか否かを示すフラグを二分木に対応付けて有する。なお、
図9において、本二分木のフラグは「SW」である。ここで、二分木に対応付けられているフラグは、通常、二分木の親ノードに対応付けられている。また、二分木に対応付けられている15以下の素性のうち、一部の素性は、NULL(値が無いことを示す情報)であっても良い。
【0157】
素性取得部42は、第一解析結果が有する1以上の各二分木の親ノードの素性であり、(1)祖父、(2)親、(3)自分、(4)自分の直前の兄弟、(5)自分の直後の兄弟、(6)左の子、(7)右の子、(8)左の子の左端の子、(9)左の子の右端の子、(10)右の子の左端の子、(11)右の子の右端の子、(12)左の子が支配する単語列の左端の単語、(13)左の子が支配する単語列の右端の単語、(14)右の子が支配する単語列の左端の単語、(15)右の子が支配する単語列の右端の単語、の15の素性のうち、4以上の素性を取得する。
【0158】
木構造を構成するノード(二分木の親ノード)に対応する、上記(1)〜(15)の値を取得する処理は公知技術であるので、詳細な説明を省略する。例えば、
図9の二分木のノード(VP)の上記(1)〜(15)の素性を取得する処理は、木構造の情報からノードの値を取得する技術であるので、公知技術である。
【0159】
判断部43は、素性取得部42が取得した4以上の素性を、学習二分木格納部41に格納されている1以上の二分木に適用し、第一解析結果が有する1以上の各二分木がスワップするか否かを判断する。
【0160】
判断部43は、例えば、ニューラルネットワークを利用して、第一解析結果が有する1以上の各二分木がスワップするか否かを判断する。
【0161】
また、判断部43は、例えば、機械学習を利用して、第一解析結果が有する1以上の各二分木がスワップするか否かを判断しても良い。
【0162】
フラグ付加部44は、判断部43の判断結果であるフラグを、1以上の各二分木を構成する二分木に対応付けて付加する。フラグ付加部44は、フラグを付加した二分木を、学習二分木格納部41に蓄積しても良い。ただし、フラグ付加部44は、図示しない第三解析結果格納部14に第三解析結果を蓄積しても良いし、第二解析結果格納部110の第二解析結果を構成する1以上の各二分木に対応付けて、フラグを書き込んでも良い。
【0163】
ここで、二分木に対応付けることは、通常、二分木の親ノードに対応付けることである。フラグの付加の結果、二分木とフラグとが対応付ければ良い。
【0164】
学習二分木格納部41は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0165】
学習二分木格納部41に二分木が記憶される過程は問わない。例えば、記録媒体を介して二分木が学習二分木格納部41で記憶されるようになってもよく、通信回線等を介して送信された二分木が学習二分木格納部41で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された二分木が学習二分木格納部41で記憶されるようになってもよい。なお、二分木は、手作業で作成された情報でも良いし、自動的に獲得された情報でも良い。
【0166】
素性取得部42、判断部43、およびフラグ付加部44は、通常、MPUやメモリ等から実現され得る。素性取得部42等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0167】
次に、
図18に示す学習装置4の動作について、
図19のフローチャートを用いて説明する。
図19のフローチャートにおいて、
図3、
図4のフローチャートと同一のステップについて説明を省略する。
【0168】
(ステップS1901)素性取得部42は、i番目の二分木の親ノードの15の素性(上記の(1)から(15)の素性)を取得する。なお、ここで、素性取得部42は、上記の(1)から(15)の素性のうち、4以上の素性を取得すれば良い。
【0169】
(ステップS1902)判断部43は、ステップS1901で取得された4以上の素性(例えば、15の素性)を、学習二分木格納部41に格納されている1以上の二分木に適用し、i番目の二分木がスワップするか否かを判断する。スワップするとの判断の場合はステップS405に行き、スワップしないとの判断の場合はステップS406に行く。
【0170】
以上、本実施の形態によれば、非常に高い精度で、原言語文を目的言語側の語順に語順変換できる二分木を学習できる。
【0171】
なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、コンピュータがアクセス可能な記録媒体は、1以上の原言語の要素または当該1以上の各要素の品詞をノードとする二分木であり、当該二分木を構成する親ノードの素性であり、(1)祖父、(2)親、(3)自分、(4)自分の直前の兄弟、(5)自分の直後の兄弟、(6)左の子、(7)右の子、(8)左の子の左端の子、(9)左の子の右端の子、(10)右の子の左端の子、(11)右の子の右端の子、(12)左の子が支配する単語列の左端の単語、(13)左の子が支配する単語列の右端の単、(14)右の子が支配する単語列の左端の単語、(15)右の子が支配する単語列の右端の単語、の15の素性のうち、4以上の素性を有し、かつ当該二分木をスワップするか否かのフラグを二分木に対応付けて有する1以上の二分木を格納している学習二分木格納部を具備し、コンピュータを、原言語文を受け付ける受付部と、前記受付部が受け付けた原言語文を構文解析し、当該原言語文を構成する1以上の各要素と当該1以上の各要素の品詞を有する解析結果であり、品詞または要素をノードとする1以上の二分木を有する第一解析結果を取得する構文解析部と、前記第一解析結果が有する1以上の各二分木の親ノードの素性であり、(1)祖父、(2)親、(3)自分、(4)自分の直前の兄弟、(5)自分の直後の兄弟、(6)左の子、(7)右の子、(8)左の子の左端の子、(9)左の子の右端の子、(10)右の子の左端の子、(11)右の子の右端の子、(12)左の子が支配する単語列の左端の単語、(13)左の子が支配する単語列の右端の単語、(14)右の子が支配する単語列の左端の単語、(15)右の子が支配する単語列の右端の単語、の15の素性のうち、4以上の素性を取得する素性取得部と、前記素性取得部が取得した4以上の素性を、前記学習二分木格納部に格納されている1以上の二分木に適用し、前記第一解析結果が有する1以上の各二分木がスワップするか否かを判断する判断部と、前記判断部の判断結果であるフラグを、前記1以上の各二分木を構成する二分木に対応付けて付加するフラグ付加部として機能させるためのプログラムである。
【0172】
また、上記プログラムにおいて、前記学習二分木格納部に格納されている1以上のいずれかの二分木は、要素のカテゴリを当該要素と品詞の間に有し、コンピュータを、前記受付部が受け付けた原言語文を構成する1以上の各要素のカテゴリを取得するカテゴリ取得部と前記構文解析部が取得した第一解析結果を構成する各要素に対して、前記カテゴリ取得部が取得したカテゴリを、前記要素と品詞との間に挿入して、第二解析結果を取得するカテゴリ挿入部としてさらに機能させ、前記判断部は、前記素性取得部が取得した4以上の素性を、前記学習二分木格納部に格納されている1以上の二分木に適用し、前記第二解析結果が有する1以上の各二分木がスワップするか否かを判断するものとして、コンピュータを機能させるプログラムであることは好適である。
【0173】
(実施の形態5)
本実施の形態において、15の素性のうち、少なくとも4以上の素性を用いて、スワップするか否かを判定する精度の高い機械翻訳装置について説明する。
【0174】
図20は、本実施の形態における機械翻訳装置5のブロック図である。この機械翻訳装置5は、要素対格納部13、学習二分木格納部41、受付部111、構文解析部112、カテゴリ取得部113、カテゴリ挿入部114、素性取得部42、判断部43、目的言語文構成部51、および目的言語文出力部52を備える。
【0175】
目的言語文構成部51は、判断部43が判断した結果に基づいた語順で、原言語文を構成する原言語の1以上の各要素に対応する目的言語の1以上の要素を要素対格納部13から取得し、目的言語文を構成する。
【0176】
目的言語文構成部51は、通常、MPUやメモリ等から実現され得る。目的言語文構成部51の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0177】
目的言語文出力部52は、目的言語文構成部51が構成した目的言語文を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0178】
目的言語文出力部52は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。目的言語文出力部52は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0179】
次に、
図20に示す機械翻訳装置5の動作について、
図21のフローチャートを用いて説明する。
図21のフローチャートにおいて、
図3,
図4、
図19のフローチャートと同一のステップについて説明を省略する。
【0180】
(ステップS2101)目的言語文構成部51は、i番目の二分木をスワップする。ステップS408に行く。
【0181】
(ステップS2102)目的言語文構成部51は、原言語文を構成する原言語の1以上の各要素に対応する目的言語の1以上の要素を取得する。そして、目的言語文構成部51は、判断部43が判断した結果に基づいた語順で、取得した目的言語の1以上の要素を繋げて、目的言語文を構成する。なお、判断部43が判断した結果に基づいた語順は、原言語文の語順であり、スワップの判断がなされた後の語順である。
【0182】
(ステップS2103)目的言語文出力部52は、ステップS2102で構成された目的言語文を出力する。処理を終了する。
【0183】
以下、本実施の形態における機械翻訳装置5の具体的な動作について説明する。
【0184】
機械翻訳装置5の受付部111は、例えば、原言語文「This is a pen」を受け付ける。
【0185】
次に、構文解析部112は、当該原言語文を構文解析し、
図6(
図5でも良い)の第一解析結果を取得する。次に、カテゴリ取得部113、およびカテゴリ挿入部114の処理により、
図8(
図7でも良い)の第二解析結果が取得される。
【0186】
次に、素性取得部42は、
図8の第二解析結果を構成する各二分木の15の素性を取得する。例えば、素性取得部42は、親ノードが「VP」の二分木の15の素性を取得する。かかる素性は、以下である。(1)祖父・・・ROOT、(2)親・・・S、(3)自分・・・VP、(4)自分の直前の兄弟・・・NP、(5)自分の直後の兄弟・・・NULL、(6)左の子・・・VBZ、(7)右の子・・・NP、(8)左の子の左端の子・・・C1、(9)左の子の右端の子・・・NULL、(10)右の子の左端の子・・・DT、(11)右の子の右端の子・・・NN、(12)左の子が支配する単語列の左端の単語・・・is、(13)左の子が支配する単語列の右端の単語・・・NULL、(14)右の子が支配する単語列の左端の単語・・・a、(15)右の子が支配する単語列の右端の単語・・・pen。
【0187】
次に、例えば、判断部43は、親ノードが「VP」の二分木の15の素性を学習二分木格納部41の1以上の二分木に適用し、例えば、ニューラルネットワークを利用して、親ノードが「VP」の二分木がスワップする、と判断する。
【0188】
判断部43は、他の二分木に対してもスワップするか否かを判断する。そして、「ROOT」を親ノードとする二分木、「S」を親ノードとする二分木、「NP」を親ノードとする二分木は、スワップしない、と判断した、とする。
【0189】
そして、目的言語文構成部51は、判断部43の判断結果を用いて、「VP」を親ノードとする二分木のみをスワップし、
図22の木構造を得る。
【0190】
次に、目的言語文構成部51は、原言語文を構成する原言語の1以上の各要素に対応する目的言語の1以上の要素を要素対格納部13から取得する。具体的には、目的言語文構成部51は、「This」に対応する「これは」、「a」に対応する「一つの」、「pen」に対応する「ペン」、「is」に対応する「です」を、要素対格納部13から取得する。
【0191】
次に、目的言語文構成部51は、取得した目的言語の4つの要素を順に連結し、目的言語文「これは一つのペンです」を構成する。
【0192】
次に、目的言語文出力部52は、構成された目的言語文「これは一つのペンです」を出力する。
【0193】
以上、本実施の形態によれば、非常に高い精度で、原言語文を目的言語側の語順に語順変換できるために、精度の高い機械翻訳が可能となる。
【0194】
なお、本実施の形態における機械翻訳装置5を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムにおいて、コンピュータがアクセス可能な記録媒体は、1以上の原言語の要素または当該1以上の各要素の品詞をノードとする二分木であり、当該二分木を構成する親ノードの素性であり、(1)祖父、(2)親、(3)自分、(4)自分の直前の兄弟、(5)自分の直後の兄弟、(6)左の子、(7)右の子、(8)左の子の左端の子、(9)左の子の右端の子、(10)右の子の左端の子、(11)右の子の右端の子、(12)左の子が支配する単語列の左端の単語、(13)左の子が支配する単語列の右端の単、(14)右の子が支配する単語列の左端の単語、(15)右の子が支配する単語列の右端の単語、の15の素性のうち、4以上の素性を有し、かつ当該二分木をスワップするか否かのフラグを二分木に対応付けて有する1以上の二分木を格納している学習二分木格納部を格納しており、コンピュータを、原言語文を受け付ける受付部と、前記受付部が受け付けた原言語文を構文解析し、当該原言語文を構成する1以上の各要素と当該1以上の各要素の品詞を有する解析結果であり、品詞または要素をノードとする1以上の二分木を有する第一解析結果を取得する構文解析部と、前記第一解析結果が有する1以上の各二分木の親ノードの素性であり、(1)祖父、(2)親、(3)自分、(4)自分の直前の兄弟、(5)自分の直後の兄弟、(6)左の子、(7)右の子、(8)左の子の左端の子、(9)左の子の右端の子、(10)右の子の左端の子、(11)右の子の右端の子、(12)左の子が支配する単語列の左端の単語、(13)左の子が支配する単語列の右端の単、(14)右の子が支配する単語列の左端の単語、(15)右の子が支配する単語列の右端の単語、の15の素性のうち、4以上の素性を取得する素性取得部と、前記素性取得部が取得した4以上の素性を、前記学習二分木格納部に格納されている1以上の二分木に適用し、前記第一解析結果が有する1以上の各二分木がスワップするか否かを判断する判断部と、前記判断部が判断した結果に基づいた語順で、前記原言語文を構成する原言語の1以上の各要素に対応する目的言語の1以上の要素を取得し、目的言語文を構成する目的言語文構成部と、前記目的言語文を出力する目的言語文出力部として機能させるためのプログラムである。
【0195】
また、上記プログラムにおいて、前記学習二分木格納部に格納されている1以上のいずれかの二分木は、要素のカテゴリを当該要素と品詞の間に有し、コンピュータを、前記受付部が受け付けた原言語文を構成する1以上の各要素のカテゴリを取得するカテゴリ取得部と、前記構文解析部が取得した第一解析結果を構成する各要素に対して、前記カテゴリ取得部が取得したカテゴリを、前記要素と品詞との間に挿入して、第二解析結果を取得するカテゴリ挿入部としてさらに機能させ、前記判断部は、前記素性取得部が取得した4以上の素性を、前記学習二分木格納部に格納されている1以上の二分木に適用し、前記第二解析結果が有する1以上の各二分木がスワップするか否かを判断するものとして、コンピュータを機能させるプログラムであることは好適である。
【0196】
また、
図23は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の学習装置1等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。
図23は、このコンピュータシステム300の概観図であり、
図24は、システム300のブロック図である。
【0197】
図23において、コンピュータシステム300は、CD−ROMドライブ3012を含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
【0198】
図24において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、MPU3013、CD−ROMドライブ3012に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0199】
コンピュータシステム300に、上述した実施の形態の学習装置1等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
【0200】
プログラムは、コンピュータ301に、上述した実施の形態の学習装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
【0201】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
【0202】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0203】
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0204】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。