説明

機械翻訳装置、機械翻訳方法、およびそのプログラム

【課題】高い翻訳精度の機械翻訳技術を提供する。
【解決手段】本発明は、部分仮説を拡張する手法によって、翻訳元言語の単語列から翻訳先言語の単語列を生成する機械翻訳装置2であって、(a)翻訳候補となる翻訳先言語の単語列だけでなく、少なくとも、(b)翻訳元言語の文を翻訳先言語の語順に並び替えた単語列、および、(c)翻訳先言語の文を翻訳元言語の語順に並び替えた単語列、のいずれかを考慮して部分仮説の評価値を示す部分仮説スコアを算出することで、翻訳精度を向上させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械翻訳装置、機械翻訳方法、およびそのプログラムに関する。
【背景技術】
【0002】
従来、統計モデルを用いて機械翻訳を実現する技術(統計的機械翻訳)が知られている(例えば、非特許文献1〜4)。
統計的機械翻訳では、翻訳元言語の単語列(文)が与えられたとき、翻訳確率を最大化するような翻訳先言語の単語列(文)を探索する問題として定式化される。ここで、翻訳確率を対数線形モデルで表現すると、最終的に統計的機械翻訳は式(1)で定式化される。
【0003】
【数1】

【0004】
ここで、翻訳元言語の単語列には、各単語位置に整数「1」〜「J」の識別符号が付与されている。すなわち、翻訳元言語の単語列は、「J」個の単語から構成される。なお、翻訳元言語が日本語の場合には、翻訳元言語の単語列は、「J」個の自立語、付属語、句読点(「。」「、」)から構成されることとなる。また、翻訳先言語の単語列には、各単語位置に整数「1」〜「I」の識別符号が付与されている。すなわち、翻訳先言語の単語列は、「I」個の単語から構成される。また、m(1≦m≦M)は、素性関数を識別するための整数を示し、Mは、素性関数の個数を示す。また、各素性関数は、翻訳としての確からしさを表すものや、翻訳先言語としての確からしさを表すもの等である。単語列集合Eは、翻訳先言語の単語のあらゆる組合せで生成可能なすべての単語列集合を表す。各素性重みλmは、誤り最小化学習法等を用いて素性重み学習用対訳コーパスにおける翻訳精度の値が最大になるように設定される(例えば、非特許文献1参照)。
【0005】
翻訳元言語の文から翻訳先言語の文への翻訳に対して、重み付き同期文脈自由文法(weighted synchronous context-free grammar)を利用して、翻訳元言語の文と翻訳先言語の文との対応付けをモデル化する方法が知られている(例えば、非特許文献2参照)。
重み付き同期文脈自由文法は、式(2)に示すルールに、重みが付いたものの集合からなるものである。
【0006】
【数2】

【0007】
ここで、矢印の左辺のXは、非終端記号を示す。矢印の右辺のγは、終端記号または非終端記号から構成された記号列であって翻訳元言語に対応している。また、αは、終端記号または非終端記号から構成された記号列であって翻訳先言語に対応している。また、「〜」は、記号列γに含まれる非終端記号と、記号列αに含まれる非終端記号との一対一の対応関係を表している。ここでは、記号列γに含まれる非終端記号の個数と、記号列αに含まれる非終端記号の個数とは同じものとする。
【0008】
式(2)に示したルールの具体例を表1に示す。ここで、X(k)は、非終端記号であり、k(k=1,2,…)は、翻訳元言語の非終端記号の配置と、翻訳先言語の非終端記号の配置との対応関係を示している。
【0009】
【表1】

【0010】
非特許文献2に記載された方法の特殊な形として、式(3)に示す形式のルールだけを用いた方法も知られている(非特許文献3参照)。非特許文献3に記載された方法は、句単位で統計的機械翻訳を行うものであり、フレーズペアに基づく翻訳方法である。この方法では、抽出されたフレーズペアの集合から同期文脈自由文法を生成する際に、式(3)に示す形式のルールだけ用いる。このルールの形式に依存して解探索を行う場合には、効率的なビームサーチの手法が利用可能である(非特許文献4参照)。非特許文献4に記載の方法では、解探索において、翻訳された単語範囲を、翻訳済みの単語の位置をマークしたビット列で表現してメモリに保持している。
【0011】
【数3】

【0012】
重み付き同期文脈自由文法を利用した従来のモデル化では、重み付き同期文脈自由文法の導出Dを用いて、翻訳元言語の単語列と翻訳先言語の単語列とをそれぞれf(D)、e(D)と記述する。ここで、例えば、翻訳元言語の単語列f(D)の「i」番目の単語から「j」番目の単語を被うルールをrとすると、導出Dは、三つ組<r,i,j>の集合で表される。
【0013】
そして、非特許文献2のモデル化では、統計的機械翻訳を定式化した式(1)を導出ベースに修正した式(4)を用いる。この定式化では、翻訳元言語の単語列が与えられたとき、素性関数と素性重みとの積の線形和が最大となるような導出D^を求めたときに、それに対応するe(D^)が翻訳結果となる。ここで、記号「^(ハット)」は、文字「D」の上に付される記号を示し、本明細書では、以下、記号「^(ハット)」を同様な意味で使用する。
【0014】
【数4】

【0015】
式(4)に示す各素性関数の値hm(D)に何を用いるかについては、様々なバリエーションが考えられる。例えば、以下の6つの関数の値の自然対数loge(以下、lnと表記する)を用いる場合がある(例えば、非特許文献3参照)。これら6つの関数の値とは、式(5)に示す翻訳確率Pe|f(D),Pf|e(D)と、式(6)に示すレキシカル重みLexe|f(D),Lexf|e(D)と、n-gram言語モデルの確率PLM(e(D))と、フレーズペナルテイexp(length(e(D)))である。ここで、length(・)は、単語数を返す関数を示す。
【0016】
【数5】

【数6】

【0017】
翻訳確率Pe|f(D),Pf|e(D)と、レキシカル重みLexe|f(D),Lexf|e(D)とは、翻訳としての確からしさを評価するための値であり、翻訳モデルとも呼ばれている。詳細には、例えば、翻訳確率Pe|f(D)は、式(5)に示すように、導出Dに含まれるルールrごとの確率P(α|γ)をルールごとのスコアとして、導出Dに含まれるすべてのルールrについてルールごとのスコアを積算したものである。
【0018】
例えば、非特許文献2に記載された方法では、翻訳における解探索を次の手順で行う。まず、CKY(Cocke-Kasami-Younger)法に基づくボトムアップ構文解析において、同期文脈自由文法の翻訳元言語側のルールを、翻訳元言語の単語列に適用し、翻訳元言語の構文解析木を得る。そして、翻訳元言語の構文解析木に対応する同期文脈自由文法の最適な導出D^を、前記した式(4)に基づいて求め、その最適な導出D^に基づいて翻訳先言語の単語列を生成する。ただし、統計的機械翻訳の解探索において解の候補(以下、仮説と称する。)は膨大であるため、計算量の観点から、全探索をして真の最適解を求めることは事実上不可能となっている。そこで、従来、解探索の過程で部分的に構成された、同期文脈自由文法の部分木の導出Dに対して所定の枝刈りを実行しながら処理をすすめて準最適解を求めることとしている。
【0019】
また、非特許文献5では、CKY法に基づくボトムアップ構文解析のアルゴリズムを基に、cube pruningという手法で効率的に準最適解を求める方法を提案している。
【0020】
また、特許文献1では、解探索において副作用の少ない枝狩りを実現するべく、非特許文献5とは別の方法を提案している。副作用の少ない枝刈りを実現するためには、前記した式(4)に示される導出Dの仮説の尤度を正確に見積もることが必要である。その際に、翻訳精度を向上させるために、素性関数の1つとして、翻訳先言語のn-gram言語モデルを用いることが重要である。そのため、仮説のもととなる部分仮説のスコアとして、n-gram言語モデルのスコアを有効利用するために、特許文献1では、翻訳先言語の文頭から文末にかけて逐次的に生成されることを保障する、解探索方法を提案している。
【先行技術文献】
【特許文献】
【0021】
【特許文献1】特開2008−15844号公報
【非特許文献】
【0022】
【非特許文献1】Franz Josef Och, “Minimum Error Rate Training in Statistical Machine Translation”, In Proc. of ACL 2003, p. 160-167, Sapporo, Japan, July 2003
【非特許文献2】David Chiang, “A Hierarchical Phrase-Based Model for Statistical Machine Translation”, In Proc. of ACL 2005, p. 263-270, Ann Arbor, Michigan, June 2005
【非特許文献3】Philipp Koehn, Franz Josef Och, and Daniel Marcu, “Statistical Phrase-Based Translation” In Proc. of NAACL 2003, p. 48-54、Edmonton, Canada, 2003
【非特許文献4】Philipp Koehn, “Pharaoh: A Beam Search Decoder for Phrase-Based Statistical Machine Translation Models”, In Proc. of the 6th Conference of the Association for Machine Translation in the Americas(AMTA), p. l15-124, September-October 2004
【非特許文献5】David Chiang, “Hierarchical Phrase-Based Translation”, Computational Linguistics, Vol. 33, No. 2, pages 201-228, 2007.
【発明の概要】
【発明が解決しようとする課題】
【0023】
従来技術では、単語の並び替えの尤もらしさと訳語選択の尤もらしさの両方を、式(2)のルールに対する重みという形でモデル化している。しかし、これだけでは単語の並び替えに関するモデル化が弱いため、日本語から英語などのように語順の大きく異なる言語間の翻訳精度が十分でないという問題がある。
【0024】
そこで、本発明では、前記した問題を解決し、高い翻訳精度の機械翻訳技術を提供することを課題とする。
【課題を解決するための手段】
【0025】
前記課題を解決するために、本発明は、同期文脈自由文法を用いて翻訳元言語の単語列から翻訳先言語の単語列を生成するルールが複数格納されたルールテーブルを利用して、入力された翻訳元言語の単語列の翻訳結果である前記入力に対応する翻訳先言語の単語列として、所定の部分仮説からそれよりも長い新たな部分仮説を順次作成して前記所定の部分仮説を拡張することによって最終的に生成された部分仮説である仮説を出力する機械翻訳装置である。前記部分仮説は、(a)翻訳候補となる翻訳先言語の単語列と、少なくとも、(b)翻訳元言語の文を翻訳先言語の語順に並び替えた単語列、および、(c)翻訳先言語の文を翻訳元言語の語順に並び替えた単語列、のいずれかと、を考慮して作成されるものである。機械翻訳装置は、前記所定の部分仮説を拡張するために適用可能なルールを前記ルールテーブルからそれぞれ探索するルール探索手段と、前記探索されたルールの翻訳元言語側に対して、前記入力された翻訳元言語の単語列を構成する単語の単語数と単語位置とに基づいて、前記探索されたルールの非終端記号が被う翻訳元言語の単語列の範囲を示す単語範囲を付加して、適用可能な単語範囲付きルールをそれぞれ生成する単語範囲付きルール生成手段と、前記適用可能なルールを適用し前記新たな部分仮説を拡張し、前記ルールごとにそれぞれ予め求められた、翻訳の確からしさを表す翻訳モデルのスコアと、前記(a)の単語列としての確からしさを表す言語モデルのスコアと、少なくとも、前記(b)の単語列としての確からしさを表す言語モデルのスコア、および、前記(c)の単語列としての確からしさを表す言語モデルのスコア、のいずれかと、に基づいて、前記作成された部分仮説の評価値を示す部分仮説スコアを算出する部分仮説スコア算出手段と、前記入力された翻訳元言語の単語列に対して適用可能な所定の部分仮説を探索し、前記所定の部分仮説を拡張することによって最終的に生成された部分仮説のうちで、前記部分仮説スコアが最大となる部分仮説を、前記仮説として探索する仮説探索手段と、を備える。
【0026】
かかる発明によれば、入力された翻訳元言語の単語列において未翻訳の部分に対して部分仮説を順次拡張する際に、(a)翻訳候補となる翻訳先言語の単語列だけでなく、(b)翻訳元言語の文を翻訳先言語の語順に並び替えた単語列や、(c)翻訳先言語の文を翻訳元言語の語順に並び替えた単語列も用いて部分仮説を評価する。このため、翻訳元言語の翻訳先言語の語順への並び替えの尤もらしさや、翻訳先言語の翻訳元言語の語順への並び替えの尤もらしさを、部分仮説の評価に活用することができ、翻訳の精度や速度を向上させることができる。
【0027】
また、本発明は、前記(a)の単語列、前記(b)の単語列、および、前記(c)の単語のそれぞれについて、所定の評価モデルを用いて、当該単語列とその正解との近さを考慮して、素性の重みを予め生成する重み学習モジュールを、さらに備える。
【0028】
かかる発明によれば、より精度の高い機械翻訳を行うための準備として、素性の重みを予め生成することができる。
【0029】
また、本発明は、前記部分仮説スコア算出手段が、前記重みを用いて前記部分仮説スコアを算出する。
【0030】
かかる発明によれば、部分仮説スコア算出手段は、前記重みを用いることで、部分仮説スコアをより高い精度で算出することができる。
【0031】
また、本発明は、コンピュータを機械翻訳装置として機能させるためのプログラムである。これにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
【発明の効果】
【0032】
本発明によれば、高い翻訳精度の機械翻訳技術を提供することができる。
【図面の簡単な説明】
【0033】
【図1】本発明の実施形態に係るルール作成装置の構成を示す機能ブロック図である。
【図2】日英の対訳の単語対応の例を示す図である。
【図3】図1に示したルールテーブルの例を示す図である。
【図4】図1に示したルール作成装置の動作を示すフローチャートである。
【図5】本発明の実施形態に係る機械翻訳装置の構成を示す機能ブロック図である。
【図6】図5に示した機械翻訳装置の動作を示すフローチャートである。
【図7】部分仮説から仮説への拡張例を示す図である。
【図8】部分仮説から仮説への拡張例を示す図である。
【発明を実施するための形態】
【0034】
以下、図面を参照して本発明の機械翻訳装置および機械翻訳方法、ならびにルール作成装置およびルール作成方法を実施するための形態(以下「実施形態」と称する。)について詳細に説明する。以下では、ルール作成装置およびルール作成方法と、機械翻訳装置および機械翻訳方法とに分けて順次説明を行う。
【0035】
[ルール作成装置の構成]
ルール作成装置は、翻訳元言語の単語列(文)を翻訳先言語の単語列(文)に機械的に翻訳する機械翻訳装置で利用するルールを作成するものである。以下では、翻訳元言語を日本語、翻訳先言語を英語として説明する。
【0036】
図1に示すように、ルール作成装置1は、入出力手段10と、記憶手段11と、単語対応作成モジュール12と、制御手段13と、単語並び替えモデル学習手段14とを備え、これらは、例えば、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、ROM(Read Only Memory)と、HDD(Hard Disk Drive)と、入出力インタフェース等から構成される。
【0037】
入出力手段10は、対訳コーパス150を単語対応作成モジュール12に入力したり、演算処理の結果や記憶手段11に記憶されたデータ等を出力装置Dに出力したりするものである。また、入出力手段10は、入力装置Kから、所定のコマンド(モード選択コマンドや動作コマンド等)を制御手段13に入力する。本実施形態では、モード選択コマンドは、「単語対応作成」モードを選択するコマンドと、「ルールテーブル作成」モード、「並び替えモデル作成」モードを選択するコマンドとを含む。
対訳コーパス150は、互いに同じ意味を有する翻訳元言語の単語列と翻訳先言語の単語列との組合せのデータを複数備える。
【0038】
記憶手段11は、例えば、CPUによる演算処理等に利用されるRAMや、例えば、所定のプログラム、各種データベース、処理結果等を格納するROMやHDDを備えている。例えば、記憶手段11には、処理結果として、単語対応111と、フレーズペア112と、ルール113と、ルールテーブル114と、翻訳元言語並び替えモデル115(所定の評価モデル)とが格納される。なお、翻訳先言語並び替えモデル116(所定の評価モデル)については、本実施形態の変形例の項で説明する。
【0039】
単語対応作成モジュール12は、「単語対応作成」モードを選択するコマンドが入力されたときに、対訳コーパス150から得られる単語共起に関する統計量を活用し、多対多(翻訳元言語または翻訳先言語の単語がどこにも対応付かないことを含む)の単語対応111を自動的に求めるものである。単語対応作成モジュール12は、多対多の単語対応111を求めるために、例えば、単語単位の翻訳モデルを活用して、文全体で最適な1対多対応と多対1対応とを求め、その両者を組合せる。組合せ方の一例としては、1対多対応と多対1対応とのインターセクションを使い、それに隣接する1対多対応と多対1対応とのユニオンの要素を追加する方法がある(非特許文献3参照)。
【0040】
なお、単語単位の翻訳モデルについては、「Peter F. Brown, Stephen A. Della Pietra, Vincent J. Della Pietra, and Robert L. Mercer. “The mathematics of statistical machine translation: Parameter estimation”, Computational Linguistics, 19(2):263-311, 1993」に記載されている。また、対訳コーパス150自体が単語対応111の情報を保持している場合には、単語対応作成モジュール12を省略した構成としてもよい。
【0041】
図2に、日英(日本語と英語)の対訳の単語対応の例を示す。8個の単語および句点(ピリオド)を示す黒丸が単語対応である。日本語は、「違憲 の 問題 について は 、 連邦 憲法 裁判所 が 決定 する 。」である。その対訳である英語は、「The Federal Constitutional Court decides on the question of unconstitutionality .」である。
【0042】
図1に戻って、制御手段13は、モード判定手段131と、フレーズペア抽出手段132と、ルール作成手段133と、翻訳スコア計算手段134とを備えている。
【0043】
モード判定手段131は、入力装置Kから入出力手段10を介して入力したモード選択コマンドの示すモードを判定するものである。モード判定手段131は、モードが「単語対応作成」モードの場合には、単語対応作成モジュール12に対して対訳コーパス150を入力するように指示する。また、モード判定手段131は、モードが「並び替えモデル作成」モードの場合には、単語並び替えモデル学習手段14に対して翻訳元言語並べ替えモデル115を作成するように指示する。また、モード判定手段131は、モードが「ルールテーブル作成」モードの場合には、フレーズペア抽出手段132に対して対訳コーパス150を入力するように指示する。
【0044】
フレーズペア抽出手段132は、翻訳元言語の単語と翻訳先言語の単語との単語対応111に基づき、対訳コーパス150から、翻訳元言語と翻訳先言語において互いに同じ意味を有する単語または句の組合せをフレーズペア112として抽出するものである。抽出されたフレーズペア112は記憶手段11に格納される。フレーズペア抽出手段132は、式(1)に示した翻訳元言語の単語列と翻訳先言語の単語列との対訳文に対して、ある単語対応aが計算されたとき、式(7)に示すフレーズペアを抽出する。ここで、単語対応aは、翻訳先言語の単語位置と翻訳元言語の単語位置の組の集合である。式(7)の「i,m,j,n」は整数を示し、単語対応aとの間で式(8)の関係を満たすものである。
【0045】
【数7】

【0046】
【数8】

【0047】
例えば、図2に示した対訳文の単語対応からは、以下のようなフレーズペアが抽出されることとなる。
【0048】
【表2】

【0049】
ルール作成手段133は、対訳コーパス150の中の対訳文ペア(対訳文の組合せ)ごとに、その対訳文ペアから抽出されフレーズペア112内に格納されたフレーズペアのリストをもとに、同期文脈自由文法のルールを作成し、ルール113に格納するものである。
【0050】
つまり、非特許文献2、非特許文献5、特許文献1などの従来法では、「X→<γ,α,〜>」という形式の同期文脈自由文法のルールを用いていた。
それに対し、本実施形態では、「X→<γ,γ´,α,〜>」という形式のルールを用いる。
【0051】
ここで、γおよびγ´は翻訳元言語の終端記号もしくは非終端記号の列、αは翻訳先言語の終端記号もしくは非終端記号の列を表す。γ、αはそれぞれ翻訳元言語、翻訳先言語の単語列を表現するが、γ´は翻訳元言語の単語列を翻訳先言語の語順に並び替えたものを表す。〜は、記号列γ、γ´、αに含まれる非終端記号の対応を表す。
【0052】
一例として、非特許文献2、非特許文献5、特許文献1などの従来法で「X → <X1 を X2 に つなげる, connect X1 to X2 >」と表されるルールが、本実施形態のルール作成装置1ではどうなるかを説明する。ここで、(connect, つなげる), (to, に)という単語対応(単語対応111)があり、「を」に対応する英単語がないと仮定する。この場合、英単語に対応しない日本語単語の扱いにより、X→<γ,γ´,α,〜>の形のルールとして3つの形態が考えられる。
【0053】
一つ目は、元の語順を保持しつつ先頭に移すという形態である。この場合、ルールは次のようになる。
X→<X1 を X2 に つなげる, に つなげるX1 を X2, connect X1 to X2 >
【0054】
二つ目は、対応しない日本語単語を、左側の終端記号もしくは非終端記号に付随させるという形態である。この場合、ルールは、「を」を「X1」に付随させて次のようになる。
X→<X1 を X2 に つなげる, つなげるX1 を X2 に, connect X1 to X2 >
【0055】
三つ目は、対応しない日本語単語を右側の終端記号もしくは非終端記号に付随させるという形態である。この場合、「を」を「つなげる」に付随させて次のようになる。
X→<X1 を X2 に つなげる, に つなげるX1 を X2, connect X1 to X2 >
この例では結果的に一つ目の形態と同一のルールとなっているが、一般的には、異なったルールがつくられる。
【0056】
通常、機械翻訳は、「翻訳元言語の単語列Sを翻訳先言語の単語列Tに変換する問題」ととらえられている。それに対し、本実施形態では、新たに導入した同期文脈自由文法ルールにより、「翻訳元言語の単語列Sを、『翻訳元言語の文を翻訳先言語の語順に並び替えた単語列S´』および『翻訳先言語の単語列T』に同時に変換する問題」ととらえる。
【0057】
以下では、特許文献1の拡張形態を記す。特許文献1にならい、ルール作成手段133に格納されるルールの翻訳先言語側は、終端記号で始まるものとする。また、ルール113に格納するルールは、重複を許すものとする。
【0058】
ルール作成手段133は、フレーズペア

に対応して、式(9)〜式(9d)のルールを生成する。このうち、式(9a)〜式(9d)のルールは、式(9)のルールから自動的に生成することができる。また、式(9a)〜式(9d)のルールに付与されるスコアについても、式(9)のルールと同一値を用いることができる。このような理由から、実装上は、式(9a)〜式(9d)のルールは明示的にストレージに格納する必要がない。式(9a)〜式(9d)のルールは、非特許文献2で用いられるグルー規則の非終端記号Xを、Xを左辺とする個々の規則で1回書き換えたものに対応している。
【0059】
【数9】

【0060】
ルール作成手段133は、式(9)および式(10)で示すルールが生成され、かつ、式(11)の関係を満たす場合、式(12)で示すルールを生成する。
【0061】
【数10】

【0062】
【数11】

【0063】
【数12】

【0064】
ここで、γ1、γ2およびγ´は翻訳元言語の終端記号もしくは非終端記号の列、αは翻訳先言語の終端記号もしくは非終端記号の列を表す。γ´は、γ1X(k)γ2とα1X(k)α2の単語対応および非終端記号の対応をもとに、γ1X(k)γ2をα1X(k)α2の終端記号・非終端記号の順番に並び替えたものである。
【0065】
ここで、αには終端記号で始まらなければならないという制約を設ける。なお、本実施形態に必須のものではないが、ルール作成手段133は、例えば、以下の制約も採用する。第1に、γとαの両方とも、少なくとも1つの終端記号を含まなければならない。第2に、ルールは、最大2つの非終端記号を有することができる。しかし、翻訳元言語側のγで、非終端記号は隣接してはならない。
【0066】
翻訳スコア計算手段134は、ルール113に重複を許して格納されているルールを数え上げ、各ルールrに対応する翻訳確率Pe|f(r),Pf|e(r)と、レキシカル重みLex e|f(r),Lex f|e(r)とを計算し、それらを各ルールrに対応づけてルールテーブル114に格納する。図3に、ルールテーブル114の一例を示す。また、表3にルールrに対応した各翻訳確率、レキシカル重みの計算式を示す。このスコア計算は非特許文献2に倣ったものである。
【0067】
【表3】

[具体例]
具体的には、ルール作成手段133は、図2に示した対訳文から表4に示すような規則(右辺だけ示す)を生成する。この例では、対応しない日本語単語を、左側の終端記号もしくは非終端記号に付随するものとしている。
【0068】
【表4】

なお、モード判定手段131と、フレーズペア抽出手段132と、ルール作成手段133と、翻訳スコア計算手段134とは、CPUが記憶手段11のHDD等に格納された所定のプログラムをRAMに展開して実行することにより実現されるものである。
【0069】
なお、単語並び替えモデル学習手段14および翻訳元言語並べ替えモデル115の構成については、図4とともに後述する。
【0070】
[ルール作成装置の動作]
次に、図1に示したルール作成装置1の動作について、図4を参照(適宜図1等参照)して説明する。図4に示すように、ルール作成装置1は、モード判定手段131によって、モードを判定する(ステップS1)。判定の結果、モードが「単語対応作成」モードの場合には(ステップS1で「単語対応作成」)、ルール作成装置1は、入出力手段10を介して、対訳コーパス150を単語対応作成モジュール12に入力し(ステップS2)、単語対応作成モジュール12によって、単語対応を作成する(ステップS3)。作成された単語対応111は、記憶手段11に格納される。
【0071】
判定の結果、モードが「並び替えモデル作成」モードの場合には(ステップS1で「並び替えモデル作成」)、ルール作成装置1は、入出力手段10を介して、対訳コーパス150を単語並び替えモデル学習手段14に入力し(ステップS4)、対訳コーパス150と単語対応111を用いて、単語並び替えモデル学習手段14によって、翻訳元言語並び替えモデルを作成する(ステップS5:評価モデル作成ステップ)。作成された翻訳元言語並び替えモデル115は、記憶手段11に格納される。なお、後述する変形例では、さらに翻訳先言語並び替えモデル116も同時に記憶手段11に格納される。
【0072】
翻訳元言語並び替えモデル115としては、例えば、

を用いる。
【0073】
ここでB[fi, fj]は実数値を返す関数で、単語fiがfjに先行するときに値が高くなり、逆のときに値が小さくなるようなもの(単語の並び順によって返す実数値が異なる関数)である。このような関数として、種々のものが考えられるが、例えば、「R. Tromble and J. Eisner, “Learning Linear Ordering Problems for Better Translation”, In Proc. the 47th ACL, p. 1007-1016, 2009.」に記載の手法(以下、「R. Trombleらの手法」と称する。)を用いて、対訳コーパスから自動的に学習することができる。このB[fi, fj]を用いて、翻訳元言語の文を翻訳先言語の語順に並び替えた単語の並びf1...fNを評価することができる。
【0074】
このほかにも、翻訳元言語の文を翻訳先言語の語順に並び替えた単語列を評価するモデルとして、n-gramを用いることもできる。R. Trombleらの手法により、対訳コーパスの翻訳元言語の単語を翻訳先言語の語順にあらかじめ自動的に並び替え、その並び替えたものでn-gramを学習する。これは、R. Trombleらの手法で、B[fi, fj]の学習に用いたものと同じである。このように学習したn-gramで単語列S´の部分単語列fを評価する関数をh7(f)とし、これを式(4)の素性関数の一つとして用いる。
【0075】
一方、判定の結果、モードが「ルールテーブル作成」モードの場合には(ステップS1で「ルールテーブル作成」)、ルール作成装置1は、入出力手段10を介して、対訳コーパス150を制御手段13に入力し(ステップS6)、フレーズペア抽出手段132によって、対訳コーパス150からフレーズペアを抽出する(ステップS7:フレーズペア抽出ステップ)。抽出されたフレーズペア112は、記憶手段11に格納される。
【0076】
続いて、ルール作成装置1は、ルール作成手段133によって、フレーズペア112に基づいて、同期文脈自由文法のルールを作成する(ステップS8:ルール作成ステップ)。作成されたルール113は、記憶手段11に格納される。そして、ルール作成装置1は、翻訳スコア計算手段134によって、ルール113の各ルールから計算した各翻訳スコアを各ルールに対応付ける(ステップS9)。対応付けられたルールと翻訳スコアとは、ルールテーブル114として記憶手段11に格納される。
【0077】
なお、ルール作成装置1は、一般的なコンピュータに、前記した各ステップを実行させるルール作成プログラムを実行することで実現することもできる。このプログラムは、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0078】
本実施形態のルール作成装置1により、翻訳元言語の単語列Sから、翻訳先言語の単語列T、および、それと同時に翻訳元言語の文を翻訳先言語の語順に並び替えた単語列S´の両方の語順を評価するモデル(翻訳元言語並べ替えモデル115)を合わせて導入することにより、翻訳先言語の語順をモデル化することができるようになる。
【0079】
[機械翻訳装置の構成]
次に、機械翻訳装置について説明する。機械翻訳装置2は、ルール作成装置1(図1参照)で作成されたルールテーブル114を利用して、入力された翻訳元言語の単語列を、入力に対応する翻訳先言語の単語列に機械的に翻訳するものである。
【0080】
図5に示すように、機械翻訳装置2は、入出力手段20と、記憶手段21と、素性重み学習モジュール22(重み学習モジュール)と、単語情報抽出モジュール23と、制御手段24とを備え、これらは、例えば、CPUと、RAMと、ROMと、HDDと、入出力インタフェース等から構成される。
【0081】
入出力手段20は、入力装置Kから翻訳元言語の単語列を制御手段24に入力したり、制御手段24から、翻訳結果である翻訳先言語の単語列を出力装置Dに出力したりするものである。また、入出力手段20は、単語対応付き素性重み学習用対訳コーパス250を素性重み学習モジュール22に入力する。
なお、単語対応付き素性重み学習用対訳コーパス250は、ルール作成装置1(図1参照)がルールを作成する際に利用する対訳コーパス150とは別に用意するものである。
【0082】
記憶手段21は、例えば、CPUによる演算処理等に利用されるRAMや、所定のプログラム、各種データベース、処理結果等を格納するROMやHDDを備えている。例えば、記憶手段21には、処理結果として、素性重み211と、単語情報212と、単語範囲付きルール213と、部分仮説214と、部分仮説スコア216とが格納される。
【0083】
また、記憶手段11には、ルール作成装置1(図1参照)で作成されたルールテーブル114と、翻訳元言語並べ替えモデル115と、別に予め作成された言語モデル215とが格納される。言語モデル215は、翻訳先言語としての確からしさを表すn‐gramを格納したものである。このn-gramは別途、膨大な量の翻訳先言語のコーパスから学習される。
【0084】
素性重み学習モジュール22は、単語対応付き素性重み学習用対訳コーパス250と、ルールテーブル114と、翻訳元言語並べ替えモデル115と、言語モデル215とに基づいて、各素性関数の値に対応した重みを学習し、学習結果を素性重み211として記憶手段21に格納するものである。学習法としては、非特許文献1で提案されている方法が利用できる。
【0085】
単語情報抽出モジュール23は、入出力手段20を介して入力装置Kから入力する翻訳元言語の文を単語単位に分割して、翻訳元言語の文を構成する単語についての情報(単語情報)を抽出するものである。単語情報は、例えば、単語列、単語位置、単語数等を含む。抽出された単語情報212は記憶手段21に格納される。なお、入力装置Kから入力する翻訳元言語の文が単語分割済みの場合には、単語情報抽出モジュール23を省略することもできる。
【0086】
制御手段24は、後記する手順で部分仮説を展開しながら文全体を被う仮説を求め、その中で最適(実際は準最適)なものを求めるものであり、ルール探索手段241と、単語範囲付きルール生成手段242と、部分仮説スコア算出手段243と、仮説探索手段244とを備えている。
【0087】
ルール探索手段241は、所定の部分仮説を拡張するために適用可能なルールをルールテーブル114からそれぞれ探索するものである。
【0088】
単語範囲付きルール生成手段242は、ルール探索手段241で探索されたルールに対して、入力された翻訳元言語の単語列を構成する単語の単語数と単語位置とに基づいて、探索されたルールの非終端記号が被う翻訳元言語の単語列の範囲を示す単語範囲を付加して、適用可能な単語範囲付きルールをそれぞれ生成するものである。
【0089】
ここでは、入力された翻訳元言語の単語列の変換対象部分(非終端記号が被う範囲)を、その単語位置の左端(left)と右端(right)で、[l,r]のように表記することとする。初期段階では、例えば、入力が11単語であれば、[l,r]=[1,11]となる。この場合、ルールの翻訳元言語側の各非終端記号の単語範囲(未翻訳の単語範囲)を[l1,r1],[l2,r2],…のように表記する。例えば、[l1,r1]=[1,2]等となる。なお、あるルールの翻訳元言語側の非終端記号が2つあれば、単語範囲も2つ設定される。また、あるルールの翻訳元言語側の非終端記号に対して、「l1」の値や「r1」の値として、複数の可能性がある。
【0090】
部分仮説スコア算出手段243は、単語範囲付きルールに含まれる翻訳先言語側の翻訳済み単語と単語範囲とを、新たな部分仮説として作成すると共に、適用可能なルールをトップダウンに適用し、且つ、適用可能なルールにおいて翻訳先言語側の非終端記号が文頭から文末に亘って並べられた順序で、新たな部分仮説を拡張し、ルールごとにそれぞれ予め求められた、翻訳の確からしさを表す翻訳モデルのスコアと、翻訳先言語の単語列としての確からしさを表す言語モデルのスコアと、翻訳元言語の文を翻訳先言語の語順に並び替えた単語列としての確からしさを表す言語モデルのスコアなどに基づいて、作成された部分仮説H′の評価値を示す部分仮説スコアを算出するものである。
【0091】
具体的には、部分仮説スコア算出手段243は、「(a)翻訳先言語の文頭からの単語列」と「(b)翻訳元言語の文を翻訳先言語の語順に並び替えた単語列」と、「翻訳元言語の単語列のうち未翻訳の単語の範囲を保持するスタック」の三つ組みからなる部分仮説Hをもとに、適用可能な単語範囲付きルールを使って、新たな部分仮説H′を作成することを繰り返す。
【0092】
なお、HをもとにH′を作成することを部分仮説の拡張と呼ぶ。部分仮説が拡張されるのに従い、部分仮説中の翻訳先言語の文頭からの単語列は文頭から文末にかけて逐次的に追加される。また、部分仮説スコア算出手段243は、メモリを節約するため、他の部分仮説との間で単語列の共有を行う。なお、翻訳元言語の単語数がJの場合、初期部分仮説(部分仮説の初期値)は、「空列」と、「[1,J]だけが積まれたスタック」とからなる。
【0093】
部分仮説スコア算出手段243は、部分仮説H′の翻訳元言語の翻訳されている単語数をm(0≦m≦J)とすると、優先度付きキューQ0,Q1,…,QJに部分仮説H′を入れる。つまり、部分仮説スコア算出手段243は、Q0={初期部分仮説}から始めて、翻訳された翻訳元言語の単語数に同期して優先度付きキューQmに格納する部分仮説を拡張していく。
【0094】
部分仮説スコア算出手段243は、ある部分仮説を拡張するとき、そのスタックの先頭から(積まれた上方から)翻訳されていない翻訳元言語の単語範囲[l,r]をポップする。翻訳元言語の入力文に対応するルールはEarley法のチャート構造で管理する。チャート構造を用いることにより、部分仮説に対して適用可能なルールを効率良く見つけることが可能となる。例えば、部分仮説スコア算出手段243は、前記した式(9d)から生成された式(13)に示すような単語範囲つきルールから部分仮説を抽出する場合には、単語範囲[l2,r2],[l1,r1]の順序でスタックにプッシュして、[l1,r1]が先に処理されるようにする。こうして、翻訳先言語側は、常に文頭から翻訳が生成されることが保証されることになる。
【0095】
【数13】

【0096】
部分仮説スコア算出手段243は、もととなった部分仮説HのスコアS(H)に差分スコアを加算することで、式(14)に示すような、拡張された部分仮説H′のスコアS(H′)を算出する。
【0097】
【数14】

ここで、m(1≦m≦M)は素性関数の値の識別番号を示す。本実施形態では、部分仮説スコア算出手段243は、M=7として、表5に示す7つの素性関数の値hm(H′)と、そのhm(H′)に対して対応する素性重みλm(H′)とを用いる。また、仮説を生成する際に、部分仮説の展開により新たに生成された翻訳先言語の単語列を、

と表記する。ここで、生成された翻訳先言語の単語列は、「i」番目の単語から「i+ε」番目の単語で構成されている。また、h(H´)におけるPLM´は、対訳コーパスの翻訳元言語の文を翻訳先言語の語順に並び替えたものから学習するn-gram言語モデルである。
【0098】
ここで、表5において、初期の仮説H0に対するhi(H0)は0であるものとする。
【表5】

【0099】
表5で、h(・)は単語の並び替えモデル(翻訳元言語並べ替えモデル115)となっている。単語の並び替えモデルは、別な方法で表現することも可能である。以下、具体的に説明する。翻訳元言語の単語列Sを翻訳先言語の語順に並び替えた単語列をS´とする。また、fi,fjを単語列SおよびS´の単語であるとする。この仮定のもと、B[fi,fj]は、単語列S´において単語fiがfjに先行するときに大きな実数を、逆のときに小さな実数を返す関数とする。これを利用して翻訳元言語の単語並び替えをモデル化することができる。このような関数として、種々のものが考えられるが、例えば、R. Trombleらの手法を用いて、対訳コーパスから自動的に作成することができる。
【0100】
このB[fi, fj]を用いることにより、表5に示すh(・)と同様の働きをするh(・)を次の式(15)のように定義することができる。
【数15】

ここで、f(i+ε<k)は仮説のS´にまだ生成されていないSの単語のことである。なお、h(H´)は、h(H´)の代わりに利用しても良いし、h(H´)と併用することもできる。
【0101】
また、表5において、ここで、Pe|f(r)、Pf|e(r)、Lexe|f(r)、Lexf|e(r)は、記憶手段21のルールテーブル114に規定されているルールrに対応した素性関数の値である。また、素性重みλmは、記憶手段21に格納された素性重み211に予め規定されているものとする。
【0102】
つまり、本実施形態では、式(14)と表5とから、部分仮説スコア算出手段243は、最終的に、部分仮説H′のスコアS(H′)を、次に示す式(16)で算出する。式(16)はh7(・)を用いた場合の例である。この式(16)の2番目の等号の右辺は、もととなった部分仮説HのスコアS(H)に、差分スコアを加算することを示している。また、部分仮説スコア算出手段243は、優先度付きキューQ0,Q1,…,QJには、最大Y個(例えば、1000個)の部分仮説しか保持しない。また、部分仮説スコア算出手段243は、部分仮説スコアS(H′)が優先度付きキューQ0,Q1,…,QJ内の最大の部分仮説スコアとある定数との積よりも小さい場合、その部分仮説H′を捨てる。これにより、部分仮説スコア算出手段243は、優先度付きキューQ0,Q1,…,QJに格納される各部分仮説に対して効果的な枝刈りを行うことができる。
【0103】
【数16】

仮説探索手段244は、入力された翻訳元言語の単語列に対して適用可能な所定の部分仮説を探索し、所定の部分仮説を拡張することによって最終的に生成された翻訳元言語の文全体に対応する部分仮説(これを仮説と呼ぶ)のうちで、部分仮説スコアが最大となる仮説を探索するものである。具体的には、仮説探索手段244は、翻訳元言語の文全体から得られる所定数の仮説のうちで、仮説スコアが最大となる仮説H^を、次の式(17)の関係から探索する。式(17)に示す仮説Hは、優先度付きキューQJに含まれる部分仮説Hのことなので、式(17)で求める仮説H^は、部分仮説スコアS(H)の値を最大とする部分仮説H(つまり仮説H)として求めることができる。
【0104】
【数17】

【0105】
また、仮説探索手段244は、求めた仮説に対応する翻訳先言語の文頭から文末までの単語列を翻訳結果として、入出力手段20を介して出力装置Dに出力する。
【0106】
なお、ルール探索手段241、単語範囲付きルール生成手段242、部分仮説スコア算出手段243および仮説探索手段244は、CPUが記憶手段21のHDD等に格納された所定のプログラムをRAMに展開して実行することにより実現されるものである。
【0107】
[機械翻訳装置の動作]
図5に示した機械翻訳装置2の動作について、図6を参照(適宜図5参照)して説明する。図6に示すように、予め、機械翻訳装置2は、素性重み学習モジュール22によって、単語対応付き素性重み学習用対訳コーパス250と、言語モデル215と、ルールテーブル114と、翻訳元言語並べ替えモデル115とに基づいて、素性関数の値の重みを学習し、学習結果である素性重み211を記憶手段21に格納しておく。
【0108】
そして、機械翻訳装置2は、入力装置Kから入出力手段20を介して入力された翻訳元言語の文を単語情報抽出モジュール23に入力する(ステップS11)。機械翻訳装置2は、単語情報抽出モジュール23によって、入力された翻訳元言語の文(入力文)を単語に分割し、単語列、単語数Jやそれぞれの単語の単語位置を抽出する(ステップS12)。抽出された単語列、単語数Jや単語位置は、単語情報212として記憶手段21に格納される。
【0109】
機械翻訳装置2は、仮説探索手段244によって、初期部分仮説H0を作成し、入力単語数Jに合わせて、J+1個の優先度付きキューQ0,…,QJを空にして、そのうちの優先度付きキューQ0に初期部分仮説H0を格納する(ステップS13)。そして、機械翻訳装置2は、仮説探索手段244によって、初期部分仮説H0に対する部分仮説スコアS(H0)と、優先度付きキューの識別変数mとを初期化する。すなわち、S(H0)=0,m=0とする(ステップS14)。
【0110】
続いて、機械翻訳装置2は、ルール探索手段241によって、m番目の優先度付きキューQmから、そこに格納されている適用可能なそれぞれの部分仮説Hを順次ポップし、それぞれの部分仮説Hを拡張できるような適用可能なそれぞれのルールrをルールテーブル114から探索する。そして、探索結果であるそれぞれのルールrの翻訳元言語側に記述されている翻訳済単語の個数(翻訳済単語個数)V(r)を取得し、現在の優先度付きキューの識別変数mの値に加算することによって、処理対象の部分仮説Hに対する翻訳済単語数nの値を更新する。すなわち、n=m+V(r)とする(ステップS15:ルール探索ステップ)。
【0111】
そして、機械翻訳装置2は、単語範囲付きルール生成手段242によって、探索したルールに対して適用可能なそれぞれの単語範囲付きルールr′を生成する(ステップS16:単語範囲付きルール生成ステップ)。そして、機械翻訳装置2は、部分仮説スコア算出手段243によって、処理対象の部分仮説Hを、それぞれの単語範囲付きルールr′で展開して部分仮説H′をそれぞれ作成し、作成した部分仮説H′について前記した式(16)に基づいて、式(14)に示す部分仮説スコアS(H′)を算出する。式(14)の右辺にhがあり、表5にh(H′)があることから、この部分仮説スコアには、翻訳元言語の単語列Sを翻訳先言語の語順を並び替えた単語列S´の部分単語列が影響していることがわかる。
【0112】
そして、作成した部分仮説H′を、n番目の優先度付きキューQnに格納し、所定の枝刈りを行う(ステップS17:部分仮説スコア算出ステップ)。ここで、枝刈りによって不要となった部分仮説H′は、優先度付きキューQnから削除される。また、算出された部分仮説スコアS(H′)は記憶手段21の部分仮説スコア216に格納されるが、枝刈りによって削除された部分仮説H′に対する部分仮説スコアS(H′)は削除されることとなる。
【0113】
そして、機械翻訳装置2は、仮説探索手段244によって、適用可能な単語範囲付きルールr′をすべて選択したか否かを判別する(ステップS18)。適用可能なr′がまだ存在する場合(ステップS18:No)、機械翻訳装置2は、ステップS16に戻る。
一方、r′をすべて選択した場合(ステップS18:Yes)、仮説探索手段244は、適用可能なルールrをすべて選択したか否かを判別する(ステップS19)。適用可能なrがまだ存在する場合(ステップS19:No)、機械翻訳装置2は、ステップS15に戻る。
【0114】
一方、rをすべて選択した場合(ステップS19:Yes)、仮説探索手段244は、適用可能な部分仮説Hをすべて選択したか否かを判別する(ステップS20)。適用可能なHがまだ存在する場合(ステップS20:No)、機械翻訳装置2は、ステップS15に戻る。一方、Hをすべて選択した場合(ステップS20:Yes)、仮説探索手段244は、現在の優先度付きキューの識別変数mの値が入力単語数Jと等しい(m=J)か否かを判別する(ステップS21)。m≠Jである場合(ステップS21:No)、機械翻訳装置2は、仮説探索手段244によって、優先度付きキューの識別変数mをインクリメントする。すなわち、m=m+1とする(ステップS22)。続いて、ステップS15に戻る。
【0115】
一方、m=Jである場合(ステップS21:Yes)、J番目の優先度付きキューQJには、翻訳元言語の文全体を被う部分仮説Hが複数格納されている。これら部分仮説Hは、翻訳元言語の文に対する仮説Hとみなすことができる。同様に、優先度付きキューQJに格納された部分仮説Hに対する部分仮説スコアS(H)は、この意味で、仮説スコアS(H)と呼ぶ。そして、この場合、機械翻訳装置2は、仮説探索手段244によって、J番目の優先度付きキューQJから仮説スコアS(H)の値が最大となる仮説Hを探索する(ステップS23:仮説探索ステップ)。そして、機械翻訳装置2は、仮説探索手段244によって、探索された仮説を翻訳先言語の文として出力する(ステップS24)。これにより、探索された仮説に対応する翻訳先言語の文頭から文末までの単語列が出力装置Dに出力される。
【0116】
なお、機械翻訳装置2は、一般的なコンピュータに、前記した各ステップを実行させる機械翻訳プログラムを実行することで実現することもできる。このプログラムは、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0117】
[具体例]
図7と、表6と、表7と、表8とを参照して具体例について説明する。
図7は、図5に示した部分仮説から仮説への拡張例を示す図である。表6は、11単語からなる翻訳元言語文を示し、表7は、表6に示した翻訳元言語文に対応して適用可能なルールを示す。なお、表7中の「ルールの種類」とは、前記した式(9)〜式(9d)のいずれに対応するかを示すものである。表8は、表7に示したルールの適用順とそれに基づく単語範囲付きルールを示すものである。
【0118】

【表6】

【0119】
【表7】

【0120】
【表8】

初期状態において、部分仮説スコア算出手段243は、スタックを空にし、図7に示すように、状態「0」で翻訳元言語の単語列(文)全体を被う単語範囲[1,11]をプッシュする。状態「0」では、部分仮説H′(0)は、初期部分仮説なので、スタックにプッシュした単語範囲[1,11]と空列との組である。部分仮説H′(0)の部分仮説スコアS(H′)は「0」とする。
【0121】
次に、状態「1」で、部分仮説スコア算出手段243は、スタックから範囲[1,11]をポップし、ルール探索手段241は、表7から、ポップされた範囲に適用可能なルールr(3)を選択する。ルールr(3)における翻訳解「The」に対応した「は」の入力文における単語位置は、「3」なので、単語範囲付きルール生成手段242は、表8に示すように、ルールr(3)における非終端記号X(1)および非終端記号X(2)の単語範囲が、それぞれ[1,2]、[4,11]となるような単語範囲付きルールr′(3)を生成する。
【0122】
この単語範囲付きルールr′(3)では、翻訳先言語側において非終端記号X(1)が非終端記号X(2)より先に処理されなければならない。そのため、部分仮説スコア算出手段243は、図7に示すように、単語範囲付きルールr′(3)において、非終端記号X(2)に対応する単語範囲[4,11]をスタックにプッシュしてから、非終端記号X(1)に対応する単語範囲[1,2]をプッシュする。部分仮説スコア算出手段243は、スタックにプッシュした単語範囲[1,2]、[4,11]と、翻訳先言語の文頭からの単語列としての翻訳解「The」とを部分仮説H′(1)とする。部分仮説スコア算出手段243は、部分仮説H′(1)について部分仮説スコアを算出する。
【0123】
次に、状態「2」で、部分仮説スコア算出手段243は、スタックから単語範囲[1,2]をポップし、ルール探索手段241は、表7から、この単語範囲に適用可能なルールr(1)を選択する。ルールr(1)における翻訳解「international」に対応した「国際」の入力文における単語位置は、「1」なので、単語範囲付きルール生成手段242は、表8に示すように、ルールr(1)における非終端記号X(1)の単語範囲が[2,2]となるような単語範囲付きルールr′(1)を生成する。部分仮説スコア算出手段243は、図7に示すように、単語範囲付きルールr′(1)において、単語範囲[2,2]をスタックにプッシュする。部分仮説スコア算出手段243は、スタックにプッシュした単語範囲[2,2]と、以前プッシュした単語範囲[4,11]と、翻訳先言語の文頭からの単語列としての翻訳解「The international」とを部分仮説H′(2)とする。部分仮説スコア算出手段243は、部分仮説H′(2)について部分仮説スコアを算出する。
【0124】
次に、状態「3」で、部分仮説スコア算出手段243は、スタックから単語範囲[2,2]をポップし、ルール探索手段241は、表7から、この単語範囲に適用可能なルールr(2)を選択する。ルールr(2)には「テロ」に対応した翻訳解「terrorism」が記述されているが、非終端記号が無いので、単語範囲付きルール生成手段242は、ルールr(2)をそのまま単語範囲付きルールr′(2)とする。部分仮説スコア算出手段243は、単語範囲付きルールr′(2)において単語範囲が指定されていないのでスタックに対する操作を行わない。部分仮説スコア算出手段243は、図7に示すように、スタックに以前プッシュした単語範囲[4,11]と、翻訳先言語の文頭からの単語列としての翻訳解「The international terrorism」とを部分仮説H′(3)とする。部分仮説スコア算出手段243は、部分仮説H′(3)について部分仮説スコアを算出する。
【0125】
以下、同様にして、表8に記載した適用順に、状態「4」から状態「9」に対応する操作を行うと、スタックが空になるので、部分仮説スコア算出手段243は、部分仮説の展開を終了し、仮説を生成する。このとき、翻訳先言語の文頭からの単語列としての翻訳解は、以下のように、10単語の単語列となる。
「The international terrorism also is a possible threat in Japan」
【0126】
ここで、ルールr(9)は、2つの終端記号(単語)「で ある,is a」を有しているため、部分仮説スコア算出手段243は、9回の状態遷移で10単語を訳出する。図7では、部分仮説展開の過程で、翻訳先言語側が文頭から文末にかけて生成されたことが示されている。
【0127】
本実施形態の機械翻訳装置2によれば、入力された翻訳元言語の単語列において未翻訳の部分に対して部分仮説を順次拡張する際に、翻訳元言語の単語列を翻訳先言語の語順に並び替えたものを同時に生成する。そのため、翻訳元言語の単語列の翻訳先言語の語順への並び替えの尤もらしさを、部分仮説の評価に活用することができて、副作用の少ない仮説の枝狩りが可能となる。その結果、翻訳速度を向上させることや、翻訳先言語の単語列の翻訳精度を向上させることが可能となる。換言すれば、翻訳元言語並べ替えモデル115を考慮してスコアを算出することで、高い翻訳精度を実現することができる。
【0128】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。以下、変形例について説明する。
【0129】
〔変形例〕
次に、ルール作成装置1と機械翻訳装置2の変形例について説明する。例えば、ルール作成装置1の単語並び替えモデル学習手段14において、翻訳元言語並び替えモデル115の代わりに翻訳先言語の語順を並び替えた翻訳先言語並び替えモデル116を作成し、式(10)〜式(12)のr´の代わりにα´(翻訳先言語の単語列を翻訳元言語の語順に並び替えた単語列)に置き換えたルールを利用することができる。
【0130】
この場合、機械翻訳装置2では、翻訳先言語の単語列を翻訳元言語の語順に並び替えた単語列の部分単語列e´に対して表5のh(・)や式(15)のh(・)に相当する素性関数を定義し(h´(・),h´(・)とおく)、これを素性関数として活用することができる。
【0131】
ただし、部分仮説H´に対するh´(H´)の計算は、e´が文頭から文末にかけて単調に生成されないため、やや異なった処理が必要となる。e´の生成例を図8に示す。図8に示すように、スタックからポップされた単語範囲が一部、単語列に置き換わり、新たな単語範囲がスタックにプッシュされるということを繰り返す。状態5の仮説Hが状態6の仮説H´に展開されたときのh´(H´)の計算には、次の式(18)を用いる。
【0132】
【数18】

【0133】
さらに、状態4の仮説Hが状態5の仮説H´に展開されたときのh8´(H´)の計算には、次の式(19)を用いる。
【0134】
【数19】

これらの例のように、仮説展開に伴うh´(H´)の差分は、仮説展開に伴って具体化した単語列内と、その単語列とすでに具体化している単語列の間でB[・,・]を計算することで求めることができる。
【0135】
´(H´)の計算は、e´が左から右に単調に生成されるわけでないため、自明ではないが、非特許文献5にある言語モデル・スコアの計算方法により実現できる。
さらなる変形例として、(b)翻訳元言語の文を翻訳先言語の語順に並び替えた単語並びモデル(翻訳元言語並べ替えモデル115)と、(c)翻訳先言語の文を翻訳元言語の語順に並び替えた単語並びモデル(翻訳先言語並べ替えモデル116)の両方を活用することも可能である。この場合、X→<γ,γ´,α´,α,〜>の形式のルールを用い、h´(H´)とh´(H´)の両方を素性関数として用いる。
【0136】
〔その他の変形例:非特許文献2の拡張形態〕
以上で説明したルール作成装置および機械翻訳装置の代わりに、非特許文献2のアルゴリズムを採用したルール作成装置および機械翻訳装置も可能である。この場合、ルールはボトムアップに適用される。
【0137】
翻訳元言語の文を翻訳先言語の語順に並び替えたものと、翻訳先言語の文を翻訳元言語の語順に並び替えたものの両方を利用するために、ルールは次の形式のものを用いる。
X→<γ,γ´,α´,α,〜>
γは翻訳元言語の終端記号もしくは非終端記号の列を、αは翻訳先言語の終端記号もしくは非終端記号の列を、γ´は翻訳元言語の終端記号もしくは非終端記号の列を翻訳先言語の語順に並び替えたものを、α´は翻訳先言語の終端記号もしくは非終端記号の列を翻訳元言語の語順に並び替えたものを表す。
【0138】
このボトムアップアルゴリズムでは、仮説Hは、
X:[i,j]→<f´,e´,e>
のように表される。Xは非終端記号、[i, j]はそれが覆う翻訳元言語の文の単語範囲、f´は翻訳元言語の単語列を翻訳先言語の語順に並び替えた単語列、e´は翻訳先言語の単語列を翻訳元言語の語順に並び替えた単語列、eは翻訳先言語の単語列を表す。
【0139】
ボトムアップな仮説の展開の様子を例で示す。仮説Hはルール
X→< X1 で ある, で ある X1, X1 is a, is a X1>
によって展開され、より広い範囲をカバーする仮説H´を生成する。例えば、次の通りである。
H: X:[7,9]→<起こり うる 脅威, possible threat, possible threat>
H´: X:[7,11]→<で ある 起こり うる 脅威, possible threat is a, is a possible threat>
f´およびe´を利用して、h, hやh´, h´を展開前の仮説の値からの差分を計算することで、展開後の仮説の値を計算することができる。
【0140】
〔eとe´を用いた素性重み学習の形態〕
非特許文献1は、素性重み学習用対訳コーパス(単語対応付き素性重み学習用対訳コーパス250に対応)中の翻訳元の文と正解翻訳文のペアを利用し、素性重みを学習する「素性重み学習モジュール(素性重み学習モジュール22に対応)」の実現法について記述している。この手法では、目的関数を最適化するように重みが学習される。通常、目的関数としては、翻訳した文章(複数の文の列)eと正解文章reとの近さを表す関数が使われ、具体的には前記したBLEU(e, re)などが広く利用されている。
【0141】
本実施形態の機械翻訳装置2では、翻訳文章eと同時に、翻訳元言語の文を翻訳先言語の語順に並び替えた文からなる文章f´と、翻訳先言語の文を翻訳元言語の語順に並び替えた文からなる文章e´が同時に得られる。f´の正解をrf´、e´の正解をre´とすると、l1BLEU(f´, rf´) + l2BLEU(e´, re´) + l3BLEU(e, re) (l1+l2+l3 = 1)を目的関数として、素性hi(・)の素性重みλiを学習する。
【0142】
パラメータli(i=1,2,3)の求め方は様々な方法が考えられるが、あらかじめ開発用対訳データで翻訳実験を行い、そこでの翻訳精度(BLEU(「K. Papineni, S. Roukos, T. Ward and W-J. Zhu, “BLEU: a Method for Automatic Evaluation of Machine Translation”, In Proc. of the 40thACL, 2002」参照)で測定)が高くなるように設定する。
【0143】
f´の正解であるrf´は、文fとreの対応する文reとの単語対応を求め、それをもとに、文fを文reの言語の語順に並び替えることで求めることができる。もし、文fの単語で文reに対応するものがなければ、語順を保持しつつ文頭に移す、右側の語に付随させる、左側の語に付随させるなどの形態がある。e´の正解であるre´についても、同様に求めることができる。
【0144】
なお、本実施形態では、日英の翻訳を例に説明したが、これに限定されるものではない。ルール作成装置によりルールを作成すれば、任意の多言語間でこの翻訳装置を使用することが可能である。
【実施例】
【0145】
非特許文献2の技術を実装したシステム(baseline)に、式(15)のh(・)を素性として加えた。ルール中の対応のとれない単語について、元の語順を保持しつつ先頭に移した形態のシステムを”Baseline+move-to-front”、左側の終端記号もしくは非終端記号に付随させる形態のシステムを”Baseline+attach”とする。
【0146】
約20万文の対訳コーパス150からルールテーブル114を学習し、約1000文の単語対応付き素性重み学習用対訳コーパス250を用いて、機械翻訳装置2の素性重み学習モジュール22が素性重みを学習した。機械翻訳装置2によって約1000文のテスト用対訳コーパスの翻訳元言語の文を翻訳した結果を、そのテスト用対訳コーパスの翻訳先言語の文を正解としてBLEUで評価した結果を表9に示す。
【0147】
BLEUの値が大きいほど、良い翻訳であることを示す。表9に示したように
【表9】

、素性h(・)の追加は翻訳精度の向上に有効であった。
【符号の説明】
【0148】
1 ルール作成装置
2 機械翻訳装置
10 入出力手段
11 記憶手段
111 単語対応
112 フレーズペア
113 ルール
114 ルールテーブル
12 単語対応作成モジュール
13 制御手段
131 モード判定手段
132 フレーズペア抽出手段
133 ルール作成手段
134 翻訳スコア計算手段
150 対訳コーパス
20 入出力手段
21 記憶手段
211 素性重み
212 単語情報
213 単語範囲付きルール
214 部分仮説
215 言語モデル
216 部分仮説スコア
22 素性重み学習モジュール
23 単語情報抽出モジュール
24 制御手段
241 ルール探索手段
242 単語範囲付きルール生成手段
243 部分仮説スコア算出手段
244 仮説探索手段
250 素性重み学習用対訳コーパス
K 入力装置
D 出力装置

【特許請求の範囲】
【請求項1】
同期文脈自由文法を用いて翻訳元言語の単語列から翻訳先言語の単語列を生成するルールが複数格納されたルールテーブルを利用して、入力された翻訳元言語の単語列の翻訳結果である前記入力に対応する翻訳先言語の単語列として、所定の部分仮説からそれよりも長い新たな部分仮説を順次作成して前記所定の部分仮説を拡張することによって最終的に生成された部分仮説である仮説を出力する機械翻訳装置であって、
前記部分仮説は、(a)翻訳候補となる翻訳先言語の単語列と、少なくとも、(b)翻訳元言語の文を翻訳先言語の語順に並び替えた単語列、および、(c)翻訳先言語の文を翻訳元言語の語順に並び替えた単語列、のいずれかと、を考慮して作成されるものであり、
前記所定の部分仮説を拡張するために適用可能なルールを前記ルールテーブルからそれぞれ探索するルール探索手段と、
前記探索されたルールの翻訳元言語側に対して、前記入力された翻訳元言語の単語列を構成する単語の単語数と単語位置とに基づいて、前記探索されたルールの非終端記号が被う翻訳元言語の単語列の範囲を示す単語範囲を付加して、適用可能な単語範囲付きルールをそれぞれ生成する単語範囲付きルール生成手段と、
前記適用可能なルールを適用し前記新たな部分仮説を拡張し、前記ルールごとにそれぞれ予め求められた、翻訳の確からしさを表す翻訳モデルのスコアと、前記(a)の単語列としての確からしさを表す言語モデルのスコアと、少なくとも、前記(b)の単語列としての確からしさを表す言語モデルのスコア、および、前記(c)の単語列としての確からしさを表す言語モデルのスコア、のいずれかと、に基づいて、前記作成された部分仮説の評価値を示す部分仮説スコアを算出する部分仮説スコア算出手段と、
前記入力された翻訳元言語の単語列に対して適用可能な所定の部分仮説を探索し、前記所定の部分仮説を拡張することによって最終的に生成された部分仮説のうちで、前記部分仮説スコアが最大となる部分仮説を、前記仮説として探索する仮説探索手段と、
を備えることを特徴とする機械翻訳装置。
【請求項2】
前記(a)の単語列、前記(b)の単語列、および、前記(c)の単語列のそれぞれについて、所定の評価モデルを用いて、当該単語列とその正解との近さを考慮して、素性の重みを予め生成する重み学習モジュールを、さらに備える
ことを特徴とする請求項1に記載の機械翻訳装置。
【請求項3】
前記部分仮説スコア算出手段は、前記重みを用いて前記部分仮説スコアを算出する
ことを特徴とする請求項2に記載の機械翻訳装置。
【請求項4】
同期文脈自由文法を用いて翻訳元言語の単語列から翻訳先言語の単語列を生成するルールが複数格納されたルールテーブルを利用して、入力された翻訳元言語の単語列の翻訳結果である前記入力に対応する翻訳先言語の単語列として、所定の部分仮説からそれよりも長い新たな部分仮説を順次作成して前記所定の部分仮説を拡張することによって最終的に生成された部分仮説である仮説を出力する機械翻訳装置による機械翻訳方法であって、
前記部分仮説は、(a)翻訳候補となる翻訳先言語の単語列と、少なくとも、(b)翻訳元言語の文を翻訳先言語の語順に並び替えた単語列、および、(c)翻訳先言語の文を翻訳元言語の語順に並び替えた単語列、のいずれかと、を考慮して作成されるものであり、
前記機械翻訳装置は、
前記所定の部分仮説を拡張するために適用可能なルールを前記ルールテーブルからそれぞれ探索するルール探索ステップと、
前記探索されたルールの翻訳元言語側に対して、前記入力された翻訳元言語の単語列を構成する単語の単語数と単語位置とに基づいて、前記探索されたルールの非終端記号が被う翻訳元言語の単語列の範囲を示す単語範囲を付加して、適用可能な単語範囲付きルールをそれぞれ生成する単語範囲付きルール生成ステップと、
前記適用可能なルールを適用し前記新たな部分仮説を拡張し、前記ルールごとにそれぞれ予め求められた、翻訳の確からしさを表す翻訳モデルのスコアと、前記(a)の単語列としての確からしさを表す言語モデルのスコアと、少なくとも、前記(b)の単語列としての確からしさを表す言語モデルのスコア、および、前記(c)の単語列としての確からしさを表す言語モデルのスコア、のいずれかと、に基づいて、前記作成された部分仮説の評価値を示す部分仮説スコアを算出する部分仮説スコア算出ステップと、
前記入力された翻訳元言語の単語列に対して適用可能な所定の部分仮説を探索し、前記所定の部分仮説を拡張することによって最終的に生成された部分仮説のうちで、前記部分仮説スコアが最大となる部分仮説を、前記仮説として探索する仮説探索ステップと、
を有することを特徴とする機械翻訳方法。
【請求項5】
前記機械翻訳装置は、重み学習モジュールをさらに備えており、
前記重み学習モジュールは、
前記(a)の単語列、前記(b)の単語列、および、前記(c)の単語列のそれぞれについて、所定の評価モデルを用いて、当該単語列とその正解との近さを考慮して、素性の重みを予め生成する
ことを特徴とする請求項4に記載の機械翻訳方法。
【請求項6】
前記部分仮説スコア算出手段は、前記重みを用いて前記部分仮説スコアを算出する
ことを特徴とする請求項5に記載の機械翻訳方法。
【請求項7】
コンピュータを請求項1から請求項3までのいずれか一項に記載の機械翻訳装置として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−242895(P2011−242895A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−112639(P2010−112639)
【出願日】平成22年5月14日(2010.5.14)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】