説明

機械翻訳装置、および機械翻訳方法

【課題】従来、精度の高い機械翻訳ができなかった。
【解決手段】係り受け森を構成する各頂点に対して、1以上の各翻訳規則を適用し、頂点ごとに、合致する1以上の翻訳規則を取得する翻訳規則取得部と、係り受け森を構成する各頂点をヘッドとした1以上の超辺であり、各頂点に対応する1以上の翻訳規則の左辺における変数部分に対応する頂点をテイルとした1以上の超辺を取得する超辺取得部と、係り受け森を構成する全頂点と、超辺取得部が取得した1以上の超辺とを有する翻訳森を取得する翻訳森取得部と、翻訳森の各頂点に対応する1以上の各超辺が有する翻訳規則の右辺と単語辞書とを用いて、1以上の翻訳候補を取得する翻訳候補取得部と、1以上の翻訳候補のうちいずれか1以上の翻訳候補である翻訳結果を出力する出力部とを具備する機械翻訳装置により、精度の高い機械翻訳が可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、係り受け森を入力とする機械翻訳装置等に関するものである。
【背景技術】
【0002】
従来、統計的機械翻訳では、構文情報を利用することによる翻訳精度の向上が図られてきた。例えば、非特許文献1では、入力を文字列、出力を構文木にするのに対し、非特許文献2は構文木を入力として文字列を出力している。さらに、非特許文献2では構文解析の間違いや曖昧性を解消するため、複数の解析結果をコンパクトに表現できる圧縮統語森を入力としている。このように、木あるいは森を入出力とした手法では句構造解析が用いられてきた。しかし、句構造では、例えば日本語など自由な語順をとる言語の解析は困難であり、また解析の曖昧性が生じやすい。これに対し、係り受けと呼ばれる依存構造を用いる手法が提案され、例えば、非特許文献3では入出力ともに依存構造であるのに対し、非特許文献4は入力を文字列、出力に依存構造を使用、非特許文献5や6では、入力を句構造、出力に依存構造を使用している。この係り受けでは単語間の依存構造によって文の構造が表現され、句構造での問題が生じにくい。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Michel Galley, Mark Hopkins, Kevin Knight, and Daniel Marcu. 2004. What's in a translation rule? In Proceedings of HLT-NAACL, pages 273-280.
【非特許文献2】Haitao Mi, Liang Huang, and Qun Liu. 2008. Forest- based translation. In Proceedings of ACL: HLT, Columbus, OH.
【非特許文献3】Yuan Ding and Martha Palmer. 2005. Machine translation using probablisitic synchronous dependency insertion grammars. In Proceedings of the 43rd ACL, Ann Arbor, MI.
【非特許文献4】A New String-to-Dependency Machine Translation Algorithm with a Target Dependency Language Model . 2008. Libin Shen, Jinxi Xu and Ralph Weischedelin Proceedings of the 46th Annual Meeting of the Association for Computational Linguistics (ACL).
【非特許文献5】Haitao Mi and Qun Liu. 2010. Constituency to Dependency Translation with Forests. In Proceedings of ACL.
【非特許文献6】Zhaopeng Tu, Yang Liu, Young-Sook Hwang, Qun Liu and Shouxun Lin. 2010. Dependency Forest for Statistical Machine Translation. In Proceedings COLING.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば、非特許文献3に係る技術は、入出力ともに依存構造をとり、モデルがスパースになる問題があり、精度の高い機械翻訳ができなかった。また、非特許文献4から6では、出力に依存構造を使用しているが、これは単に制約として用いており、依存構造解析の利点である曖昧性の少なさを生かしていないために、精度の高い機械翻訳ができなかった。
【課題を解決するための手段】
【0005】
本第一の発明の機械翻訳装置は、原言語の文を係り受け解析して取得された2以上の係り受けであり、原言語の文を構成する単語とスパンとを含む2以上の頂点を有する2以上の係り受けのうち、同一である内部頂点を共通化し、構成された係り受け森を格納し得る係り受け森格納部と、原言語の係り受けの部分木であり、部分木の内部頂点は単語であり、内部頂点以外の頂点は単語か変数をとる部分木である左辺と、左辺に対応する目的言語の文字列であり、単語と変数を有する文字列である右辺とを対応付けて有し、かつスコアを有する1以上の翻訳規則を格納し得る翻訳規則格納部と、原言語の単語と目的言語の単語とを対応付けた情報である1以上の単語対を格納し得る単語辞書と、係り受け森を構成する各頂点に対して、翻訳規則格納部の1以上の各翻訳規則を適用し、頂点ごとに、合致する1以上の翻訳規則を取得する翻訳規則取得部と、係り受け森を構成する各頂点をヘッドとした1以上の超辺であり、各頂点に対応する1以上の翻訳規則の左辺における変数部分に対応する頂点をテイルとした1以上の超辺を取得する超辺取得部と、係り受け森を構成する全頂点と、超辺取得部が取得した1以上の超辺とを有する翻訳森を取得する翻訳森取得部と、翻訳森の各頂点に対応する1以上の各超辺が有する翻訳規則の右辺と、単語辞書とを用いて、1以上の翻訳候補を取得する翻訳候補取得部と、翻訳候補取得部が取得した1以上の翻訳候補のうち、いずれか1以上の翻訳候補である翻訳結果を出力する出力部とを具備する機械翻訳装置である。
【0006】
かかる構成により、係り受け森を入力とすることにより、精度の高い機械翻訳が可能となる。
【0007】
また、本第二の発明の機械翻訳装置は、第一の発明に対して、原言語の文と目的言語の文とを有する1以上の対訳文を有する対訳コーパスと、対訳コーパスにおいて、1以上の各翻訳規則の出現頻度を取得する出現頻度取得部と、各翻訳規則の出現頻度を用いて、スコアを算出するスコア算出部とをさらに具備し、翻訳規則が有するスコアは、スコア算出部が算出したスコアである機械翻訳装置である。
【0008】
かかる構成により、係り受け森を入力とすることにより、精度の高い機械翻訳が可能となる。
【0009】
また、本第三の発明の機械翻訳装置は、第一または第二の発明に対して、翻訳規則取得部が、係り受け森を構成する頂点に対する翻訳規則を取得できなかった場合、翻訳規則を取得できなかった頂点が有する原言語の単語に対応する目的言語の単語を単語辞書から取得し、頂点を内部頂点とし、頂点のテイルを有する左辺と、左辺に対応する目的言語の文字列であり、目的言語の単語と、頂点のテイルに対応する変数とを有する1以上の翻訳規則を生成する翻訳規則生成部をさらに具備し、翻訳規則取得部は、係り受け森を構成する各頂点に対して、翻訳規則生成部が生成した1以上の翻訳規則を適用し、頂点ごとに、合致する1以上の翻訳規則を取得する機械翻訳装置である。
【0010】
かかる構成により、さらに精度の高い機械翻訳が可能となる。
【0011】
また、本第四の発明の機械翻訳装置は、第一から第三いずれかの発明に対して、係り受け森が有する各超辺のテイルの数が3以上である場合に、超辺のテイルの数が2以下となるように、超辺の一のテイルと超辺の他の一のテイルの擬似的なヘッドであり、一のテイルと他の一のテイルの元のヘッドのテイルとなるヘッドを生成し、新たな超辺を構成する超辺構成部をさらに具備し、係り受け森格納部の係り受け森は、超辺構成部が構成した新たな超辺を含む係り受け森である機械翻訳装置である。
【0012】
かかる構成により、さらに精度の高い機械翻訳が可能となる。
【発明の効果】
【0013】
本発明による機械翻訳装置によれば、係り受け森を入力とすることにより、精度の高い機械翻訳が可能となる。
【図面の簡単な説明】
【0014】
【図1】実施の形態1における機械翻訳装置のブロック図
【図2】実施の形態1における機械翻訳装置の動作について説明するフローチャート
【図3】実施の形態1における係り受け森構成処理の動作について説明するフローチャート
【図4】実施の形態1における翻訳森構成処理の動作について説明するフローチャート
【図5】実施の形態1における翻訳候補取得処理の動作について説明するフローチャート
【図6】実施の形態1における変数代入処理の動作について説明するフローチャート
【図7】実施の形態1における翻訳規則格納部に格納されている翻訳規則の例を示す図
【図8】実施の形態1における係り受けの例を示す図
【図9】実施の形態1における係り受けの例を示す図
【図10】実施の形態1における係り受け森の例を示す図
【図11】実施の形態1におけるバイナリゼーションを説明する図
【図12】実施の形態1における係り受けの例を示す図
【図13】実施の形態1における一時的な翻訳森の例を示す図
【図14】実施の形態1における一時的な翻訳森の例を示す図
【図15】実施の形態1における一時的な翻訳森の例を示す図
【図16】実施の形態1における一時的な翻訳森の例を示す図
【図17】実施の形態1における最終的な翻訳森の例を示す図
【図18】実施の形態1における係り受け解析の精度を示す図
【図19】実施の形態1における係り受け森のK−best数と翻訳規則数の関係を示す図
【図20】実施の形態1におけるBLEUによる翻訳精度の差を示す図
【図21】実施の形態1におけるコンピュータシステムの概観図
【図22】実施の形態1におけるコンピュータシステムのブロック図
【発明を実施するための形態】
【0015】
以下、機械翻訳装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0016】
(実施の形態1)
本実施の形態において、係り受け森を入力とする統計的機械翻訳を行う機械翻訳装置について説明する。機械翻訳装置は、2以上の係り受けから係り受け森を自動取得できる。また、機械翻訳装置は、翻訳規則に関する確率値を素性として取得し、当該素性をパラメータとする算出式により、翻訳規則のスコアを算出する。さらに、機械翻訳装置は、係り受け森の頂点に適用できる翻訳規則が無い場合、擬似的な超辺を生成する。
【0017】
図1は、本実施の形態における機械翻訳装置1のブロック図である。機械翻訳装置1は、対訳コーパス101、単語辞書102、係り受け森格納部104、翻訳規則格納部105、係り受け解析部106、翻訳規則抽出部107、超辺構成部108、出現頻度取得部109、スコア算出部110、翻訳規則取得部111、翻訳規則生成部112、超辺取得部113、翻訳森取得部114、翻訳候補取得部115、翻訳結果取得部116、および出力部117を備える。
【0018】
対訳コーパス101は、1以上の対訳文を有する。対訳文は、原言語の文と目的言語の文とを有する。
【0019】
単語辞書102は、1以上の単語対を格納し得る。単語対とは、原言語の単語と目的言語の単語とを対応付けた情報である。
【0020】
係り受け森格納部104は、係り受け森を格納し得る。係り受け森とは、2以上の係り受けのうち、同一である内部頂点を共通化し、構成された情報である。さらに、簡単に説明すれば、係り受け森は、複数の係り受け木のうち共通する解析部分を共有させて森として表しているものである。なお、係り受け森格納部104に格納された係り受け森は、後述する係り受け解析部106が取得した係り受け森である。なお、頂点を共通化する処理とは、例えば、リンク先を共通にする処理等であり、その処理方法は問わない。
【0021】
また、形式的に圧縮された(内部頂点を共通化した)係り受け森Fは、頂点の集合Vと超辺の集合Eを持った<V,E>と表現できる。そして、文をw1:l=w・・・wとした場合、各頂点v(∈V)は単語wと単語wが支配する文内のスパンi,jからwi,jと表現できる。超辺eは<tails(e),head(e)>と定義でき、head(e)∈V,tails(e)∈Vである。なお、Vは、超辺の集合の列である。超辺e1が、例えば、「e1:<(i0,1,girl2,4,with4,7),saw0,7>とすると、かかる超辺e1は、sawをヘッド(head)に持ち、i,girl,withをテイル(tail)に持つ。
【0022】
また、係り受けは、原言語の文を構成する単語とスパンとを含む2以上の頂点を有する。また、係り受けは、単語(または文節)間の依存関係によって、文の構文構造を表したものである。
【0023】
また、係り受けの構造は、例えば、以下のような構造である。係り受けは、頂点をスパンが付与された単語とし、一つの単語と複数の単語を結ぶ超辺で定義した超グラフで表現される。なお、超辺とは、一の頂点(ヘッドという。)、および当該ヘッドとリンク関係にある1以上の頂点(テイルという。)を有する情報である。
【0024】
また、係り受けでは、超グラフ上の超辺に、確率を重みをとして割り当てていても良い。例えば、Tu10(Z. Tu, Y. Liu, Y. S. Hwang, Q. Liu, and S. Lin. Depen-dency forest for statistical machine translation. In Pro-ceedings of Coling, pages 1092-1100, August 2010.参照)に従って,各超辺に確率を付与しても良い。Tu10の手法では、まず、各超辺の出現回数c(e)に、数式1に示すような正の値を割り当てる。数式1において、s(v1,v2)は、v2をヘッド(head)、v1をテイル(tail)としたときの係り受け解析モデルのスコアを返す公知の関数である。また、数式1において、|tails(e)|は、超辺eをテイルに有する数である。
【数1】

【0025】
次に、この回数c(e)に基づいて、超辺の確率p(e)を、数式2を用いて算出しても良い。なお、数式2において、e'は、eとは異なる超辺である。
【数2】

【0026】
翻訳規則格納部105は、1以上の翻訳規則を格納し得る。翻訳規則は、左辺と右辺とを対応付けて有する。また、翻訳規則はスコアを有する、とする。また、翻訳規則の左辺は、原言語の係り受けの部分木である。そして、部分木の内部頂点は単語であり、内部頂点以外の頂点は単語か変数をとる。また、右辺は、左辺に対応する目的言語の文字列であり、単語と変数を有する文字列である。なお、翻訳規則が有するスコアは、スコア算出部110が算出したスコアである。翻訳規則格納部105の翻訳規則は、例えば、GHKMアルゴリズム(M. Galley, J. Graehl, K. Knight, D. Marcu, S. DeNeefe,W.Wang, and I. Thayer. Scalable inference and training of context-rich syntactic translation models. In Proceedings of Coling-ACL, pages 961-968, July 2006.,M. Galley, M. Hopkins, K. Knight, and D. Marcu. What's in a translation rule? In HLT-NAACL, pages 273-280,May 2004.参照)により実現され得る。つまり、翻訳規則の取得方法は公知技術であり、以下のように行われる。GHKMアルゴリズムでは最小規則と呼ばれる最小単位の取り出し可能な規則を取り出した後、それらを結合することでより大きな単位の規則を作り出す。この操作によって作り出される規則は結合規則と呼ばれる。この結合規則を取り出す際には規則のサイズや規則数の閾値などを設けることで取り出す規則の大きさや数に制限が設けられる。
【0027】
係り受け解析部106は、原言語の文や句などの係り受け解析(依存構造解析)を行い、係り受け森を取得する。係り受け森を取得する技術は公知技術であるので詳細な説明を省略する。なお、係り受け森の取得は、例えば、MST parser(http://www.seas.upenn.edu/~strctlrn/MSTParser/MSTParser.html参照)を利用して、Eisnerのアルゴリズム(http://www.cs.jhu.edu/~jason/papers/eisner.iwptbook00.pdf参照)により行う。ただし、係り受け解析部106は、かかる方法以外の方法により、係り受け森を取得しても良い。また、係り受け解析部106は、例えば、図示しない入力手段により入力された原言語の文や句などから係り受け森を取得する。
【0028】
また、係り受け解析部106は、対訳コーパス101が有する1以上の原言語の文に対して、係り受け解析を行い、1以上の係り受け森を取得する。かかる係り受け森は、翻訳規則の生成に利用される。
【0029】
翻訳規則抽出部107は、係り受け解析部106が対訳コーパス101から取得した係り受け森と、目的言語の文の単語列に対して、単語単位のアライメントを取得し、1以上の翻訳規則を取得する。なお、係り受け森と、目的言語の文の単語列に対して、単語単位の対応関係(アライメント)を取得する処理は、例えば、GIZA++により行われる。GIZA++では、IBM Model1〜5を用いて翻訳する言語と目的言語における単語のアライメントの確率値を計算する。そして、確率値が所定以上、大きいアライメントが採用される。また、1以上の翻訳規則を取得する処理は、通常、既存のルールマッチングの手法を用いる(例えば、http://www.aclweb.org/anthology/P/P08/P08-1023.pdf参照)。例えば、1以上の翻訳規則を取得する処理は、GHKMアルゴリズムを適用することにより行われる。つまり、係り受け森と、目的言語の文の単語列に対して、単語単位のアライメントを取得し、翻訳規則を取得する処理は公知技術であり、いかなる方法を用いて、行われても良い。さらに、翻訳規則抽出部107が利用する係り受け森は、後述する超辺構成部108により、超辺のテイルの数が2以下となるように処理された係り受け森であることは好適である。
【0030】
超辺構成部108は、係り受け森が有する各超辺のテイルの数が3以上である場合に、超辺のテイルの数が2以下となるように、超辺の一のテイルと超辺の他の一のテイルの擬似的なヘッドであり、一のテイルと他の一のテイルの元のヘッドのテイルとなるヘッドを生成し、新たな超辺を構成する。なお、超辺構成部108が行う処理をバイナリゼーション(binarization)という。機械翻訳装置1において、係り受け森から翻訳規則の抽出やデコードを行うことになるが、ある超辺が持つテイルの数が多くなると、翻訳規則の質やデコードの効率に問題が生じる。そこで、係り受け森をバイナリゼーションし、超辺が持つテイルの数に制限を加えることは好適である。ここで、バイナリゼーションとは超辺のテイルのサイズが2以下であるようにすることである。バイナリゼーションは、ある超辺が持つテイルのサイズが3以上である場合、例えば、最も左の要素とその次の要素をヘッドから生成する擬似的な頂点をヘッドとした新たな超辺のテイルとして構成し直すという作業を再帰的に行うことである。
【0031】
出現頻度取得部109は、対訳コーパス101において、1以上の各翻訳規則の出現頻度を取得する。
【0032】
スコア算出部110は、各翻訳規則の出現頻度を用いて、スコアを算出する。スコア算出部110は、翻訳規則の出現頻度をパラメータとする算出式を用いて、スコアを算出する。つまり、スコア算出部110は、翻訳規則の出現の確率値を用いて、スコアを算出する。なお、スコア算出部110は、対数線形モデルを用いて、スコアを算出することが好適である。対数線形モデルは、複数の素性を重みで線形結合した形で表される。素性に対する重みは与えられた訓練データ上で翻訳の評価尺度(BLEUなど)を最大化するように学習される。この学習法は誤り率最小化学習法(MERT)と呼ばれており、公知技術であるので、説明を省略する。また、素性は、両方向からの単語翻訳確率、翻訳規則に関する確率(後述する数式3、数式4、数式5により算出される確率値)、係り受け解析スコア、N-gram言語モデル、単語数、規則数などであることは好適である。ただし、スコアの算出式は問わない。また、スコア算出部110は、算出式を予め保持している。
【0033】
翻訳規則取得部111は、係り受け森を構成する各頂点に対して、翻訳規則格納部105の1以上の各翻訳規則を適用し、頂点ごとに、合致する1以上の翻訳規則を取得する。
【0034】
また、翻訳規則取得部111は、係り受け森を構成する頂点に対する翻訳規則を取得できなかった場合、翻訳規則生成部112に翻訳規則を生成させ、当該翻訳規則生成部112が生成した1以上の翻訳規則を、係り受け森を構成する各頂点に対して、合致する1以上の翻訳規則を取得することは好適である。つまり、翻訳規則取得部111は、係り受け森を構成する各頂点に対して、翻訳規則生成部112が生成した1以上の翻訳規則と翻訳規則格納部105の1以上の各翻訳規則とを適用し、頂点ごとに、合致する1以上の翻訳規則を取得することは好適である。なお、頂点が翻訳規則に合致するとは、翻訳規則の左辺が、頂点または頂点を内部頂点とする超辺と一致することである。または、頂点が翻訳規則に合致するとは、翻訳規則の左辺の変数部分を任意の文字列に合致するとした場合に、頂点または頂点を内部頂点とする超辺に合致することでも良い。
【0035】
翻訳規則生成部112は、翻訳規則取得部111が、係り受け森を構成する頂点に対する翻訳規則を取得できなかった場合、翻訳規則を取得できなかった頂点が有する原言語の単語に対応する目的言語の単語を単語辞書102から取得し、頂点を内部頂点とし、頂点のテイルを有する左辺と、左辺に対応する目的言語の文字列であり、目的言語の単語と、頂点のテイルに対応する変数とを有する1以上の翻訳規則を生成する。なお、翻訳規則の生成方法は、他の方法でも良い。
【0036】
超辺取得部113は、係り受け森を構成する各頂点をヘッドとした1以上の超辺であり、各頂点に対応する1以上の翻訳規則の左辺における変数部分に対応する頂点をテイルとした1以上の超辺を取得する。また、超辺取得部113は、超辺に、1以上の各の右辺を付与する。ここでの翻訳規則とは、翻訳規則取得部111が取得した翻訳規則である。
【0037】
翻訳森取得部114は、翻訳森を取得する。翻訳森とは、係り受け森を構成する全頂点と、超辺取得部113が取得した1以上の超辺とを有する情報である。
【0038】
翻訳候補取得部115は、翻訳森の各頂点に対応する1以上の各超辺が有する翻訳規則の右辺と、単語辞書102とを用いて、1以上の翻訳候補を取得する。
【0039】
翻訳結果取得部116は、翻訳候補取得部115が取得した1以上の翻訳候補のうち、各翻訳候補に対応する翻訳規則のスコアを用いて、一の翻訳結果を取得する。
【0040】
出力部117は、翻訳候補取得部115が取得した1以上の翻訳候補のうち、いずれか1以上の翻訳候補である翻訳結果を出力する。なお、出力部117は、翻訳結果取得部116が取得した一の翻訳結果を出力することは好適である。ただし、出力部117は、翻訳候補取得部115が取得した1以上の翻訳候補をすべて出力しても良いし、1以上の翻訳候補のうちの一部を出力しても良い。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0041】
対訳コーパス101、単語辞書102、係り受け森格納部104、および翻訳規則格納部105は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。対訳コーパス101等に対訳文等が記憶される過程は問わない。例えば、記録媒体を介して対訳文等が対訳コーパス101で記憶されるようになってもよく、通信回線等を介して送信された対訳文等が対訳コーパス101等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された対訳文等が対訳コーパス101等で記憶されるようになってもよい。
【0042】
係り受け解析部106、翻訳規則抽出部107、超辺構成部108、出現頻度取得部109、スコア算出部110、翻訳規則取得部111、翻訳規則生成部112、超辺取得部113、翻訳森取得部114、翻訳候補取得部115、および翻訳結果取得部116は、通常、MPUやメモリ等から実現され得る。係り受け解析部106等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0043】
出力部117は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部117は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0044】
次に、機械翻訳装置1の動作について、図2のフローチャートを用いて説明する。なお、図2のフローチャートにおける処理の前に、翻訳規則格納部105には、上述したGHKMアルゴリズム等により、翻訳規則が蓄積された、とする。
【0045】
(ステップS201)係り受け森取得部107は、係り受け格納部103に格納されている2以上の係り受けを読み出す。
【0046】
(ステップS202)係り受け森取得部107は、ステップS201で読み出した2以上の係り受けを用いて、係り受け森を構成する。この係り受け森構成処理については、図3のフローチャートを用いて説明する。
【0047】
(ステップS203)翻訳規則取得部111は、係り受け森格納部104の係り受け森を読み出す。
【0048】
(ステップS204)翻訳規則取得部111等は、係り受け森から翻訳森を構成する。翻訳森構成処理については、図4のフローチャートを用いて説明する。
【0049】
(ステップS205)翻訳候補取得部115は、ステップS204で構成された翻訳森を用いて、1以上の翻訳候補を取得する。この翻訳候補取得処理については、図5のフローチャートを用いて説明する。
【0050】
(ステップS206)翻訳結果取得部116は、ステップS205で取得された1以上の翻訳候補から、一の翻訳候補を選択する。かかる一の翻訳候補が一の翻訳結果である。なお、翻訳結果取得部116は、通常、各翻訳候補に対応する翻訳規則のスコアを用いて、一の翻訳結果を取得する。翻訳結果取得部116は、例えば、各翻訳候補に対応する1以上の翻訳規則のスコアの合計が最大になるような翻訳候補を選択する。
【0051】
(ステップS207)出力部117は、ステップS206で取得された翻訳結果を出力し、処理を終了する。
【0052】
次に、ステップS202の係り受け森構成処理について、上述したように、係り受け解析部106が、原言語の文や句などの係り受け解析を行い、係り受け森を取得する。つまり、係り受け解析部106は、例えば、MST parserを利用して、Eisnerのアルゴリズムにより行う。しかし、係り受け解析部106は、図3のフローチャートに示す方法により、係り受け森を構成することも可能である。図3のフローチャートの開始前に、係り受け解析部106は、原言語の文や句などの係り受け解析を行い、2以上の係り受け(係り受け木)を取得し、バッファ(例えば、図示しない係り受け格納部)に格納している、とする。
【0053】
(ステップS301)係り受け解析部106は、カウンタiに1を代入する。
【0054】
(ステップS302)係り受け解析部106は、係り受け格納部に、i番目の係り受けが存在するか否かを判断する。i番目の係り受けが存在すればステップS303に行き、存在しなければ上位処理(ステップS203)にリターンする。
【0055】
(ステップS303)係り受け解析部106は、係り受け格納部から、i番目の係り受けを読み出す。
【0056】
(ステップS304)係り受け解析部106は、カウンタjに1を代入する。
【0057】
(ステップS305)係り受け解析部106は、i番目の係り受けにおいて、j番目の頂点が存在するか否かを判断する。j番目の頂点が存在すればステップS306に行き、存在しなければステップS312に行く。
【0058】
(ステップS306)係り受け解析部106は、(i+1)番目以降の係り受けにおいて、j番目の頂点と同一の頂点を検索する。
【0059】
(ステップS307)係り受け解析部106は、カウンタkに1を代入する。
【0060】
(ステップS308)係り受け解析部106は、ステップS306において、j番目の頂点と同一のk番目の頂点が存在するか否かを判断する。k番目の頂点が存在すればステップS309に行き、存在しなければステップS311に行く。
【0061】
(ステップS309)係り受け解析部106は、i番目の係り受けのj番目の頂点と、他の係り受けのk番目の頂点とを共通化する処理を行う。
【0062】
(ステップS310)係り受け解析部106は、カウンタkを1、インクリメントし、ステップS308に戻る。
【0063】
(ステップS311)係り受け解析部106は、カウンタjを1、インクリメントし、ステップS305に戻る。
【0064】
(ステップS312)係り受け解析部106は、カウンタiを1、インクリメントし、ステップS302に戻る。
【0065】
次に、ステップS203の翻訳森構成処理について、図4のフローチャートを用いて説明する。
【0066】
(ステップS401)翻訳規則取得部111は、カウンタiに1を代入する。
【0067】
(ステップS402)翻訳規則取得部111は、係り受け森が有する頂点のうち、i番目の頂点が存在するか否かを判断する。i番目の頂点が存在すればステップS403に行き、存在しなければ上位処理(ステップS205)にリターンする。
【0068】
(ステップS403)翻訳規則取得部111は、カウンタjに1を代入する。
【0069】
(ステップS404)翻訳規則取得部111は、翻訳規則格納部105に、j番目の翻訳規則が存在するか否かを判断する。j番目の翻訳規則が存在すればステップS405に行き、存在しなければステップS411に行く。
【0070】
(ステップS405)翻訳規則取得部111は、係り受け森が有するi番目の頂点が、j番目の翻訳規則に合致するか否かを判断し、判断結果を所定の変数に代入する。
【0071】
(ステップS406)所定の変数の値が"合致"であればステップS406に行き、"合致"でなければステップS410に行く。
【0072】
(ステップS407)超辺取得部113は、j番目の翻訳規則の右辺を有する超辺を構成する。
【0073】
(ステップS408)翻訳森取得部114は、ステップS407で構成された超辺を、予め決められたバッファに追記する。なお、このバッファは、翻訳森を格納するバッファである。
【0074】
(ステップS409)翻訳森取得部114は、j番目の翻訳規則の右辺とテイルとなる頂点とを対応付けて記憶する。
【0075】
(ステップS410)翻訳規則取得部111は、カウンタjを1、インクリメントし、ステップS404に戻る。
【0076】
(ステップS411)翻訳規則生成部112は、係り受け森が有するi番目の頂点に対応する翻訳規則を取得できたか否かを判断する。翻訳規則を取得できていた場合はステップS412に行き、翻訳規則を取得できていない場合はステップS413に行く。なお、翻訳規則を一つでも取得できた場合は、ステップS412に行く。
【0077】
(ステップS412)カウンタiを1、インクリメントし、ステップS402に戻る。
【0078】
(ステップS413)翻訳規則生成部112は、翻訳規則を取得できなかった頂点が有する原言語の単語に対応する目的言語の単語(翻訳語)を単語辞書102から取得する。
【0079】
(ステップS414)翻訳規則生成部112は、頂点を内部頂点とし、頂点のテイルを有する左辺と、左辺に対応する目的言語の文字列であり、目的言語の単語(翻訳語)と、頂点のテイルに対応する変数とを有する1以上の翻訳規則を生成する。
【0080】
(ステップS415)翻訳規則生成部112は、ステップS414で生成した1以上の翻訳規則をj番目以降の翻訳規則とし、ステップS404に戻る。なお、j番目以降の翻訳規則とする、とは、1以上の翻訳規則に対して、j番目以降のIDを付与し、予め決められたバッファに格納することである。なお、バッファに格納された翻訳規則は、ステップS404において、翻訳規則取得部111により用いられる。
【0081】
次に、ステップS204の翻訳候補取得処理について、図5のフローチャートを用いて説明する。
【0082】
(ステップS501)翻訳候補取得部115は、カウンタiに1を代入する。
【0083】
(ステップS502)翻訳候補取得部115は、翻訳森の中に、i番目の頂点が存在するか否かを判断する。i番目の頂点が存在すればステップS503に行き、存在しなければ上位処理(ステップS206)にリターンする。
【0084】
(ステップS503)翻訳候補取得部115は、翻訳森のi番目の頂点に対応する1以上の各超辺が有する1以上の翻訳規則の右辺を取得する。
【0085】
(ステップS504)翻訳候補取得部115は、カウンタjに1を代入する。
【0086】
(ステップS505)翻訳候補取得部115は、ステップS503で取得した1以上の翻訳規則の右辺のうち、j番目の右辺が存在するか否かを判断する。j番目の右辺が存在すればステップS506に行き、存在しなければステップS511に行く。
【0087】
(ステップS506)翻訳候補取得部115は、カウンタkに1を代入する。
【0088】
(ステップS507)翻訳候補取得部115は、j番目の右辺の中に、k番目の変数が存在するか否かを判断する。k番目の変数が存在すればステップS508に行き、存在しなければステップS510に行く。
【0089】
(ステップS508)翻訳候補取得部115は、j番目の右辺のk番目の変数に翻訳語等を代入する処理である変数代入処理を実行する。変数代入処理について、図6のフローチャートを用いて説明する。
【0090】
(ステップS509)翻訳候補取得部115は、カウンタkを1、インクリメントし、ステップS507に戻る。
【0091】
(ステップS510)翻訳候補取得部115は、カウンタjを1、インクリメントし、ステップS505に戻る。
【0092】
(ステップS511)翻訳候補取得部115は、カウンタiを1、インクリメントし、ステップS502に戻る。
【0093】
次に、ステップS508の変数代入処理について、図6のフローチャートを用いて説明する。
【0094】
(ステップS601)翻訳候補取得部115は、変数に対応するすべての翻訳規則の右辺を取得する。
【0095】
(ステップS602)翻訳候補取得部115は、カウンタlに1を代入する。
【0096】
(ステップS603)翻訳候補取得部115は、ステップS601で取得した右辺のうち、l番目の右辺が存在するか否かを判断する。l番目の右辺が存在すれば、存在しなければ上位処理(ステップS509)にリターンする。
【0097】
(ステップS604)翻訳候補取得部115は、l番目の右辺を変数に代入する。
【0098】
(ステップS605)翻訳候補取得部115は、カウンタmに1を代入する。
【0099】
(ステップS606)翻訳候補取得部115は、変数に代入したl番目の右辺に、m番目の変数が存在するか否かを判断する。m番目の変数が存在すればステップS607に行き、存在しなければステップS609に行く。
【0100】
(ステップS607)翻訳候補取得部115は、変数代入処理を行う。つまり、変数代入処理は再帰的に行われる。
【0101】
(ステップS608)翻訳候補取得部115は、カウンタmを1、インクリメントし、ステップ606に戻る。
【0102】
(ステップS609)翻訳候補取得部115は、カウンタlを1、インクリメントし、ステップ603に戻る。
【0103】
以下、本実施の形態における機械翻訳装置1の具体的な動作について説明する。今、機械翻訳装置1は、例えば、英日翻訳を行う装置である、とする。つまり、例えば、原言語は英語、目的言語は日本語である、とする。
【0104】
また、対訳コーパス101には、英語の文と日本語の文とを有する多数の対訳文が格納されている、とする。そして、単語辞書102にも、英語と日本語の多数の単語対が格納されている。
【0105】
そして、上述したように、ルールマッチングの手法(例えば、GHKMアルゴリズム等)により、翻訳規則が生成され、多数の翻訳規則が、翻訳規則格納部105に格納されている。翻訳規則格納部105に格納されている翻訳規則の例を、図7に示す。
【0106】
なお、図7において、翻訳規則が有するスコアは省略している。また、例えば、スコア算出部110は、翻訳規則が有するスコアを、以下のように算出する。スコア算出部110は、例えば、各規則の出現頻度の期待値を算出する。スコア算出部110は、例えば、以下の数式3から数式7を格納しており、かかる数式を用いて、各規則の出現頻度の期待値を算出する。
【0107】
まず、スコア算出部110は、数式3を用いて、翻訳規則の右辺が、着目する翻訳規則の右辺である場合、当該翻訳規則が着目する翻訳規則である確率値を算出する。
【0108】
また、スコア算出部110は、数式4を用いて、翻訳規則の左辺が、着目する翻訳規則の左辺である場合、当該翻訳規則が着目する翻訳規則である確率値を算出する。
【0109】
また、スコア算出部110は、数式5を用いて、翻訳規則の左辺のrootが、着目する翻訳規則の左辺のrootである場合、当該翻訳規則が着目する翻訳規則である確率値を算出する。なお、左辺のrootとは、係り受け森上の左辺のrootである。
【数3】

【数4】

【数5】

【0110】
ここで数式3から5において、rは翻訳規則、c(r)は翻訳規則rの出現頻度である。なお、ここでの出現頻度において、スコア算出部110は、単純に出現を1回と数えるのではなく、内側外側アルゴリズムを用いて、係り受け解析における尤度最大化に基づいた頻度の期待値を計算することは好適である。頂点vに対する外側確率をα(v)、内側確率をβ(v)とすると、スコア算出部110は、ある翻訳規則rに対する内側外側確率αβ(v)を、数式6を用いて計算する。
【数6】

【0111】
そして、スコア算出部110は、翻訳規則rにおける出現頻度の期待値を、数式7を用いて算出する。数式7において、TOPは係り受け森上のrootを示している。また、ここでは、出現頻度の期待値は、翻訳規則のスコアとなる、とする。
【数7】

【0112】
以上により、スコアを有する1以上の翻訳規則が、翻訳規則格納部105に格納された。
【0113】
なお、統計的機械翻訳では、スコアの算出のために、対数線形モデルを用いることが好適である。対数線形モデルは、複数の素性を重みで線形結合した形で表される。素性に対する重みは与えられた訓練データ上で翻訳の評価尺度(BLEUなど)を最大化するように学習される。この学習法は誤り率最小化学習法(MERT)と呼ばれており、公知技術であるので、説明を省略する。なお、素性は、例えば、両方向からの単語翻訳確率、翻訳規則に関する確率(数式3、数式4、数式5により算出される確率値)、係り受け解析スコア、N-gram言語モデル、単語数、規則数などである。
【0114】
かかる状況において、機械翻訳装置1は、原言語文「I saw a girl with a telesscope」を受け付けた、とする。
【0115】
次に、係り受け解析部106は、原言語文「I saw a girl with a telesscope」に対して、MST parserを利用して、Eisnerのアルゴリズムにより、係り受け解析を行い、係り受け森を取得する。なお、取得した係り受け森は、例えば、図10である。図10の係り受け森は、図8に示す係り受け1、および図9に示す係り受け2により構成されている森である。つまり、図10の係り受け森は、係り受け1と係り受け2とで、同一の頂点「I0,1」「a2,3」「a5,6」「telescope5,7」「with4,7」「saw0,7」を共通化した図10の係り受け森である。係り受け解析部106は、かかる係り受け森を取得し、係り受け森格納部104に、少なくとも一時蓄積する。
【0116】
なお、超辺構成部108が、図10の係り受け森に対して、以下に説明するバイナリゼーション(binarization)を行うことは好適である。機械翻訳装置1において、係り受け森から翻訳規則の抽出やデコードを行うことになるが、ある超辺が持つテイルの数が多くなると、翻訳規則の質やデコードの効率に問題が生じる。そこで、係り受け森をバイナリゼーションし、超辺が持つテイルの数に制限を加えることは好適である。ここで、バイナリゼーションとは超辺のテイルのサイズが2以下であるようにすることである。バイナリゼーションは、ある超辺が持つテイルのサイズが3以上である場合、最も左の要素とその次の要素をヘッドから生成する擬似的な頂点をヘッドとした新たな超辺のテイルとして構成し直すという作業を再帰的に行うことである。例として、図10における超辺e1に対してこの操作を行うと、図11のようにsaw#2;7を擬似的なheadとした新たな超辺が再構成されることになる。係り受け森のrootからトップダウンに各頂点を訪れてこの操作を行うことで、係り受け森をバイナリゼーションすることができる。
【0117】
次に、翻訳規則取得部111は、係り受け森格納部104に格納された図10の係り受け森を読み出す。
【0118】
そして、翻訳規則取得部111等は、図7の翻訳規則を用いて、以下のように、翻訳森を構成する。ここで、説明の簡単化のため、図10の係り受け森の一部である、図12の係り受けに対して、図7の翻訳規則を用いて翻訳森を構成する処理を説明する。なお、図10の係り受け森に対しても、以下で説明する同様の処理により、翻訳森を構成できることは言うまでもない。
【0119】
翻訳規則取得部111は、図12の頂点のうち、「I0,1」を読み出す。そして、翻訳規則取得部111は、頂点「I0,1」に合致する翻訳規則を図7から検索する。そして、翻訳規則取得部111は、翻訳規則「I → 私」「I → 私は」を取得する。次に、超辺取得部113は、翻訳規則「I → 私」「I → 私は」の右辺「私」「私は」を有する超辺を構成する。次に、翻訳森取得部114は、構成された超辺を、予め決められたバッファに追記する。そして、翻訳森取得部114は、図13に示す一時的な翻訳森を得る。なお、翻訳森取得部114は、係り受けの頂点「I0,1」のスパンを、そのまま翻訳森の頂点のスパンとして使用する。つまり、翻訳森取得部114は、頂点「I0,1」のスパンを取得し、翻訳森の頂点のスパンとして書き込む。
【0120】
次に、翻訳規則取得部111は、図12の頂点のうち、「a2,3」を読み出す。そして、翻訳規則取得部111は、頂点「a2,3」に合致する翻訳規則を図7から検索する。そして、翻訳規則取得部111は、翻訳規則「a → 一つ」を取得する。次に、超辺取得部113は、翻訳規則「a → 一つ」の右辺「一つ」を有する超辺を構成する。次に、翻訳森取得部114は、構成された超辺を、予め決められたバッファに追記する。
【0121】
次に、翻訳規則取得部111は、図12の頂点のうち、「a5,6」を読み出す。そして、翻訳規則取得部111は、頂点「a5,6」に合致する翻訳規則を図7から検索する。そして、翻訳規則取得部111は、翻訳規則「a → 一つ」を取得する。次に、超辺取得部113は、翻訳規則「a → 一つ」の右辺「一つ」を有する超辺を構成する。次に、翻訳森取得部114は、構成された超辺を、予め決められたバッファに追記する。そして、この段階で、翻訳森取得部114は、図14に示す一時的な翻訳森を得る。
【0122】
次に、翻訳規則取得部111は、図12の頂点のうち、「telescope5,7」を読み出す。そして、翻訳規則取得部111は、頂点「telescope5,7」に合致する翻訳規則を図7から検索する。そして、翻訳規則取得部111は、翻訳規則「a→telescope → 望遠鏡」(図7のID=4の規則)、「x→telescope → 望遠鏡x」(図7のID=5の規則)を取得する。次に、超辺取得部113は、翻訳規則「a→telescope → 望遠鏡」の右辺「望遠鏡」を有する超辺、および翻訳規則「x→telescope → 望遠鏡x」の右辺「望遠鏡x」を有する超辺を構成する。次に、翻訳森取得部114は、構成された2つの超辺を、予め決められたバッファに追記する。そして、この段階で、翻訳森取得部114は、図15に示す一時的な翻訳森を得る。
【0123】
次に、翻訳規則取得部111は、図12の頂点のうち、「with4,7」を読み出す。そして、翻訳規則取得部111は、頂点「with4,7」に合致する翻訳規則を図7から検索する。そして、翻訳規則取得部111は、翻訳規則「x→with → xを持った」(図7のID=6の規則)を取得する。次に、超辺取得部113は、翻訳規則「x→with → xを持った」の右辺「xを持った」を有する超辺を構成する。次に、翻訳森取得部114は、構成された超辺を、予め決められたバッファに追記する。そして、この段階で、翻訳森取得部114は、図16に示す一時的な翻訳森を得る。
【0124】
次に、翻訳規則取得部111は、図12の頂点のうち、「saw0,7」を読み出す。そして、翻訳規則取得部111は、頂点「saw0,7」に合致する翻訳規則を図7から検索する。そして、翻訳規則取得部111は、図7のID=7の翻訳規則を取得する。次に、超辺取得部113は、図7のID=7の翻訳規則の右辺「xはx少女を見た」を有する超辺を構成する。次に、翻訳森取得部114は、構成された超辺を、予め決められたバッファに追記する。そして、翻訳森取得部114は、図17に示す翻訳森を得る。なお、図17の最終的な翻訳森において、頂点「a2,3」を使う森は生成されない。他の頂点と連結しないからである。
【0125】
なお、係り受け森を翻訳森へと変換する際、ある頂点に適用できる翻訳規則がない場合、翻訳規則生成部112は、疑似的な翻訳森の超辺を生成することは好適である。
【0126】
例えば、図10における頂点(saw0,7)の超辺e1に対して、疑似的な翻訳規則を生成することを考える。この場合、翻訳規則生成部112は、sawという単語に対する訳語を単語辞書102から辞書引きし、"見た"という単語を得たとする。なお、単語辞書102は、GIZA++で学習した翻訳table(D. Yuan and P. Martha. Machine translation using prob-abilistic synchronous dependency insertion grammars. In ACL, 2005.参照)であることは好適である。
【0127】
そして、翻訳規則生成部112は、頂点(saw0,7)を内部頂点とし、頂点のテイルを有する左辺と、左辺に対応する目的言語の文字列"見た"であり、目的言語の単語"見た"と、頂点のテイルに対応する変数とを有する1以上の翻訳規則を生成する。つまり、翻訳規則生成部112は、例えば、「<(i0,1,girl2,4,with4,7),saw0,7, x見たx>」という超辺(翻訳規則)を作り出す。
【0128】
なお、この規則では出力側言語の並びが考慮されておらず、翻訳精度の悪化をまねく危険性がある。そのため、binarizationを行った場合にのみ、変数(binarization時は多くても2つ)と訳語の並べ方最大6通りを考慮して翻訳森の超辺を生成することは好適である。なお、デコードは、前述したようにlazyな操作とHuang05(L. Huang and D. Chiang. Better k-best parsing. In Pro-ceedings of IWPT, pages 53-64, October 2005.参照)のalgorithm2における超辺の一括処理を行うことは好適である。最大で6つの翻訳規則を生成したとしても効率良く動作するからである。また、binarizationを行っていない場合、出力言語側のあらゆる並びを考慮することは超辺のtailサイズが大きくなることがあるため現実的に実行が困難である。つまり、binarizationを行うことは極めて好適である。
【0129】
次に、翻訳候補取得部115は、図17の翻訳森を用いて、以下のように翻訳候補を取得する。翻訳候補取得部115は、図17の翻訳森の頂点をボトムアップに訪れながら、超辺に付与した翻訳規則の右辺を使って翻訳候補を作り出す。この際、通常、作り出される仮説は膨大な数に及ぶため、翻訳候補取得部115は、ビームサーチを用いることは好適である。なお、ビームサーチは公知技術なので、説明を省略する。また、翻訳候補取得部115は、部分的な翻訳候補を組み合わせる際にlazyな操作を行うことで探索の効率化を行うことは好適である。ビームサーチとlazyな操作を行いながら探索する手法は、cube pruning と呼ばれており、公知技術である(D. Chiang. Hierachical phrase-based translation. Compu-tational Linguitics, 33:201-228, 2007.参照)。なお、このcube pruningを1-bestの翻訳結果を得るために用いることは好適である。モデルの訓練を行うためのK-best出力ではcube pruningを全頂点で1-bestを見つけるために動作させた後、Huang05(L. Huang and D. Chiang. Better k-best parsing. In Pro-ceedings of IWPT, pages 53-64, October 2005.参照)で提案されているアルゴリズム3によって高速にK-bestの探索を行うことは好適である。
【0130】
さらに具体的には、翻訳候補取得部115は、図17の翻訳森の頂点「I0,1」に対応する超辺が有する1以上の翻訳規則の右辺「私」「私は」を取得する。
【0131】
また、翻訳候補取得部115は、図17の翻訳森の頂点「a5,6」に対応する超辺が有する翻訳規則の右辺「一つ」を取得する。
【0132】
また、翻訳候補取得部115は、図17の翻訳森の頂点「telescope5,7」に対応する超辺が有する翻訳規則の右辺「望遠鏡」「望遠鏡x」を取得する。次に、翻訳候補取得部115は、変数「x」に「一つ」を代入する。そして、翻訳候補取得部115は、「望遠鏡」、「望遠鏡一つ」を得る。
【0133】
次に、翻訳候補取得部115は、図17の翻訳森の頂点「with4,7」に対応する超辺が有する翻訳規則の右辺「telescope5,7を持った」を得る。そして、翻訳候補取得部115は、「telescope5,7」に対応する「望遠鏡」、「望遠鏡一つ」を右辺「telescope5,7を持った」に代入し、「望遠鏡を持った」、「望遠鏡一つを持った」を得る。
【0134】
次に、翻訳候補取得部115は、図17の翻訳森の頂点saw0,7」に対応する超辺が有する翻訳規則の右辺「I0,1はwith4,7少女を見た」を得る。そして、翻訳候補取得部115は、右辺「I0,1はwith4,7少女を見た」の「I0,1」に対して、「私」「私は」を代入し、右辺「I0,1はwith4,7少女を見た」「with4,7」に対して、「望遠鏡を持った」、「望遠鏡一つを持った」を代入する。そして、翻訳候補取得部115は、「私は望遠鏡を持った少女を見た」「私は望遠鏡一つを持った少女を見た」「私はは望遠鏡を持った少女を見た」「私はは望遠鏡一つを持った少女を見た」を得る。
【0135】
次に、翻訳結果取得部116は、取得された4つの翻訳候補から、翻訳規則のスコアを用いて、一の翻訳候補「私は望遠鏡を持った少女を見た」を選択する。この「私は望遠鏡を持った少女を見た」が翻訳結果である。なお、4つの翻訳候補から一の翻訳結果を取得する方法は種々あり、公知技術であるので、詳細な説明は省略する。
【0136】
次に、出力部117は、取得された翻訳結果「私は望遠鏡を持った少女を見た」を出力する。
【0137】
以下、機械翻訳装置1の実験結果について説明する。
(実験)
【0138】
本実験では、中国語から英語への翻訳で実験を行った。対訳コーパスには、新聞データから作成されたFBISコーパスを用いた。中英それぞれ単語数3.5M,4.3Mである。翻訳モデルの学習にはGIZA++を用いた。また、言語モデル学習用のデータとしてenglish giga wordのxinhua部分のデータ(単語数350M)を利用した。N−gramの学習はsrilmを用いて4−gram言語モデルを学習した。この翻訳実験ではNIST2002/2003Open Machine Translation Evaluationの中英翻訳データを用意し、2002をMERT、2003をテストデータとして用いた。中国語の形態素解析にはstanford segmenterとstanford postaggerを利用した。英語のトークナイゼイションには英語ツリーバンクの処理に使われたツールを用いた。中国語の係り受け解析は1−st orderのEisnerアルゴリズムによって行った。
【0139】
また、ここでは中国語ツリーバンクの全18,472文からctv(報道)部分500文とchtb(新聞)部分500文を除いたデータ(all)とchtb部分8981文から共通のchtb部分500文を除いたデータ(news)とを用いて2つの係り受け解析モデルを構築した(係り受けフォーマットへはPenn2Maltを用いて変換)。除いたデータはテストデータとして利用した。
【0140】
図18は、係り受け解析の精度(unlabeled accuracy)を示す。この結果からは、新聞データをドメインとする解析を行う場合,新聞データのみから学習したモデルを用いる方が良いことがわかる。よって、以下の翻訳実験では新聞をドメインとするデータを用いるため、全新聞データ8981文から学習したモデルを用いた。
【0141】
機械翻訳装置1で用いる素性は、両方向からの単語翻訳確率、翻訳規則に関する確率(数式3、数式4、数式5により算出される確率値)、係り受け解析スコア、N-gram言語モデル、単語数、規則数の計9つとした。これらの素性に対する対数線形モデルの重みはMERTでBLEUを最大化するように学習した。図19は、本実験における係り受け森のK-best数と翻訳規則数の関係を示している。また、図19では、1つの翻訳規則が持つ平均の変数の数も示している。翻訳規則が持つ変数の数は少ない方が効率良くデコードを行うことができる。結果からは、バイナリゼーションには変数の数を減らす効果があると言えるが、その一方で規則の数は大きく増加した。以下の翻訳実験では、テストデータや訓練データに対して使われることのない規則は削除した。機械翻訳装置1との比較には、句に基づくデコーダmosesと階層句に基づくデコーダjoshuaを用いた。対数線形モデルの重み訓練時のK-best数は各システム共に2000-best出力した。また、デコード時の翻訳候補K-best数は、各システム共に500-bestとした。図20にBLEUによる翻訳精度の差を示す。ここでは、10-bestの係り受け森を用いて抽出した翻訳規則を使って翻訳実験を行った。実験結果から、機械翻訳装置1は、階層句や句に基づいたシステムとほぼ同等の性能を示すことができたが、翻訳精度の著しい向上は得られなかった。しかし、これは、係り受けは単語で超グラフの頂点が表されるため、翻訳規則の適用を行う際、未知語などの影響を大きく受け易いからである。そして、機械翻訳装置1では、森によるアプローチとバイナリゼーションによってこの問題を緩和させることができる。
【0142】
以上、本実施の形態によれば、係り受け森を入力とすることにより、精度の高い機械翻訳が可能となる。
【0143】
また、本実施の形態によれば、複数の依存構造解析結果を、ノードを共有することによりコンパクトに表現した、係り受け森からの翻訳を実現することにより、解析の曖昧性や誤りによるゆらぎを排除することが可能となった。具体的には、翻訳ルールの抽出時に解析の曖昧性を考慮して網羅的に列挙することが可能となり、さらに、翻訳時には解析誤りに対しても翻訳ルールを適用することが可能となった。
【0144】
なお、本実施の形態における技術は、音声翻訳、文書翻訳などの機械翻訳分野に適用できる。
【0145】
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。
【0146】
また、図21は、本明細書で述べた機械翻訳装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図21は、このコンピュータシステム340の概観図であり、図22は、コンピュータシステム340の内部構成を示す図である。
【0147】
図21において、コンピュータシステム340は、FDドライブ3411、CD−ROMドライブ3412を含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
【0148】
図22において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0149】
コンピュータシステム340に、上述した実施の形態の機械翻訳装置の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
【0150】
プログラムは、コンピュータ341に、上述した実施の形態の機械翻訳装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
【0151】
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0152】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0153】
以上のように、本発明にかかる機械翻訳装置は、係り受け森を入力とすることにより、精度の高い機械翻訳が可能となる、という効果を有し、機械翻訳装置等として有用である。
【符号の説明】
【0154】
1 機械翻訳装置
101 対訳コーパス
102 単語辞書
104 係り受け森格納部
105 翻訳規則格納部
106 係り受け解析部
107 翻訳規則抽出部
108 超辺構成部
109 出現頻度取得部
110 スコア算出部
111 翻訳規則取得部
112 翻訳規則生成部
113 超辺取得部
114 翻訳森取得部
115 翻訳候補取得部
116 翻訳結果取得部
117 出力部

【特許請求の範囲】
【請求項1】
原言語の文を係り受け解析して取得された2以上の係り受けであり、前記原言語の文を構成する単語とスパンとを含む2以上の頂点を有する2以上の係り受けのうち、同一である内部頂点を共通化し、構成された係り受け森を格納し得る係り受け森格納部と、
原言語の係り受けの部分木であり、当該部分木の内部頂点は単語であり、前記内部頂点以外の頂点は単語か変数をとる部分木である左辺と、当該左辺に対応する目的言語の文字列であり、単語と変数を有する文字列である右辺とを対応付けて有し、かつスコアを有する1以上の翻訳規則を格納し得る翻訳規則格納部と、
原言語の単語と目的言語の単語とを対応付けた情報である1以上の単語対を格納し得る単語辞書と、
前記係り受け森を構成する各頂点に対して、前記翻訳規則格納部の1以上の各翻訳規則を適用し、頂点ごとに、合致する1以上の翻訳規則を取得する翻訳規則取得部と、
前記係り受け森を構成する各頂点をヘッドとした1以上の超辺であり、当該各頂点に対応する1以上の翻訳規則の左辺における変数部分に対応する頂点をテイルとした1以上の超辺を取得する超辺取得部と、
前記係り受け森を構成する全頂点と、前記超辺取得部が取得した1以上の超辺とを有する翻訳森を取得する翻訳森取得部と、
前記翻訳森の各頂点に対応する1以上の各超辺が有する翻訳規則の右辺と、前記単語辞書とを用いて、1以上の翻訳候補を取得する翻訳候補取得部と、
前記翻訳候補取得部が取得した1以上の翻訳候補のうち、いずれか1以上の翻訳候補である翻訳結果を出力する出力部とを具備する機械翻訳装置。
【請求項2】
原言語の文と目的言語の文とを有する1以上の対訳文を有する対訳コーパスと、
前記対訳コーパスにおいて、1以上の各翻訳規則の出現頻度を取得する出現頻度取得部と、
前記各翻訳規則の出現頻度を用いて、スコアを算出するスコア算出部とをさらに具備し、
前記翻訳規則が有するスコアは、前記スコア算出部が算出したスコアである請求項1記載の機械翻訳装置。
【請求項3】
前記翻訳規則取得部が、前記係り受け森を構成する頂点に対する翻訳規則を取得できなかった場合、前記翻訳規則を取得できなかった頂点が有する原言語の単語に対応する目的言語の単語を前記単語辞書から取得し、前記頂点を内部頂点とし、前記頂点のテイルを有する左辺と、当該左辺に対応する目的言語の文字列であり、前記目的言語の単語と、前記頂点のテイルに対応する変数とを有する1以上の翻訳規則を生成する翻訳規則生成部をさらに具備し、
前記翻訳規則取得部は、
前記係り受け森を構成する各頂点に対して、前記翻訳規則生成部が生成した1以上の翻訳規則を適用し、頂点ごとに、合致する1以上の翻訳規則を取得する請求項1または請求項2記載の機械翻訳装置。
【請求項4】
前記係り受け森が有する各超辺のテイルの数が3以上である場合に、当該超辺のテイルの数が2以下となるように、当該超辺の一のテイルと当該超辺の他の一のテイルの擬似的なヘッドであり、当該一のテイルと当該他の一のテイルの元のヘッドのテイルとなるヘッドを生成し、新たな超辺を構成する超辺構成部をさらに具備し、
前記係り受け森格納部の係り受け森は、前記超辺構成部が構成した新たな超辺を含む係り受け森である請求項1から請求項3いずれか記載の機械翻訳装置。
【請求項5】
記録媒体に、
原言語の文を係り受け解析して取得された2以上の係り受けであり、前記原言語の文を構成する単語とスパンとを含む2以上の頂点を有する2以上の係り受けのうち、同一である内部頂点を共通化し、構成された係り受け森と、
原言語の係り受けの部分木であり、当該部分木の内部頂点は単語であり、前記内部頂点以外の頂点は単語か変数をとる部分木である左辺と、当該左辺に対応する目的言語の文字列であり、単語と変数を有する文字列である右辺とを対応付けて有し、かつスコアを有する1以上の翻訳規則と、
原言語の単語と目的言語の単語とを対応付けた情報である1以上の単語対とを格納しており、
翻訳規則取得部、超辺取得部、翻訳森取得部、翻訳候補取得部、および出力部により実現され得る機械翻訳方法であって、
前記翻訳規則取得が、前記係り受け森を構成する各頂点に対して、前記記録媒体の1以上の各翻訳規則を適用し、頂点ごとに、合致する1以上の翻訳規則を取得する翻訳規則取得ステップと、
前記超辺取得部が、前記係り受け森を構成する各頂点をヘッドとした1以上の超辺であり、当該各頂点に対応する1以上の翻訳規則の左辺における変数部分に対応する頂点をテイルとした1以上の超辺を取得する超辺取得ステップと、
前記翻訳森取得部が、前記係り受け森を構成する全頂点と、前記超辺取得ステップで取得された1以上の超辺とを有する翻訳森を取得する翻訳森取得ステップと、
前記翻訳候補取得部が、前記翻訳森の各頂点に対応する1以上の各超辺が有する翻訳規則の右辺と、前記単語辞書とを用いて、1以上の翻訳候補を取得する翻訳候補取得ステップと、
前記出力部が、前記翻訳候補取得ステップで取得された1以上の翻訳候補のうち、いずれか1以上の翻訳候補である翻訳結果を出力する出力ステップとを具備する機械翻訳方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−185623(P2012−185623A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−47589(P2011−47589)
【出願日】平成23年3月4日(2011.3.4)
【出願人】(301022471)独立行政法人情報通信研究機構 (1,071)
【Fターム(参考)】