説明

語順変換装置、機械翻訳用統計モデル作成装置、機械翻訳装置、語順変換方法、機械翻訳用統計モデル作成方法、機械翻訳方法、プログラム

【課題】非主辞後置型言語である原言語(例えば英語)の文の単語について、構文解析結果を用いて、主辞後置型言語の目的言語(例えば日本語)の語順に並び替えることを課題とする。
【解決手段】非主辞後置型言語である原言語の文の単語を、主辞後置型言語である目的言語の語順に並び替える語順変換装置100である。処理部101は、原言語の文について、その構造木のルートノードから始めてすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを最後の位置に移動する処理を繰り返すことで、原言語の文の単語を目的言語の語順に並び替える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、英語などの非主辞後置型言語(主辞を後置することが多くない言語)(原言語)で書かれた文を、日本語に代表される主辞後置型言語(主辞を後置することが多い言語)(目的言語)に翻訳する言語翻訳技術に関する。
【背景技術】
【0002】
日本語などの多くのアジア圏の言語は、主辞(被修飾語)が修飾語の後に位置することが多いという性質があり、主辞後置型言語と呼ばれている。例えば、“I respect you.”という英語を日本語に翻訳すると、「私はあなたを尊敬している。」となる。ここで、「respect(尊敬している)」は、「you(あなた)」の主辞である。語順を見ると、英語では「respect」が「you」の前に位置しているのに対し、日本語では「尊敬している」が「あなた」の後に位置しているのがわかる。
【0003】
近年、インターネットが発達し、インターネットユーザは、外国語の文書を見る機会が増えてきている。これにつれて翻訳の需要も高まっており、機械翻訳サービスが、インターネット上で無料あるいは有料で利用可能となっている。これらの翻訳サービスは、その技術により大きく分けると、ルールベース型機械翻訳(RBMT:Rule-based Machine Translation)と統計的機械翻訳(SMT:Statistical Machine Translation)に分けられる。翻訳サービスの中には、数十言語間の翻訳を行うことが可能なものも存在する。
【0004】
RBMTは、人間が翻訳辞書や翻訳ルールをプログラムすることで実現するものである。その際、プログラマは、原言語と目的言語の両方の文法に精通し、語順を入れ替えたり、対応する語句で置き換えたりするための規則を考え、プログラムとして実行可能な形式でルールを書き下していく。
【0005】
しかし、RBMTでは、ルールの数が増えるにつれ、プログラムの保守が困難になる。また、目的言語が日本語の場合を考えても、英語と日本語の両方の文法に精通するプログラマの数は多いとしても、英語以外の原言語と日本語の両方の文法に精通するプログラマの数は少ない。そのため、最近は、実際に翻訳された大量の文書データ(対訳コーパス)から翻訳ルールを統計処理によって自動獲得するSMTがさかんに研究されている。
【0006】
SMTでは、人間が翻訳ルールを直接管理しなくてよいが、実際に翻訳された例(対訳コーパス)を大量に準備しなければ、質のよい翻訳ルールを得ることができない。また、対訳コーパスが大量に準備できたとしても、膨大な計算量が必要となる。
【0007】
このように、各翻訳技術には一長一短がある。そこで、単純に単語を翻訳の単位として扱うSMTの枠組みを拡張して、複数の単語の並び(フレーズ)を扱えるようにしたり(フレーズベースSMT)、さらにそのフレーズを階層化したり(階層的フレーズベースSMT)といった改良が提案されている。
【0008】
例えば、特許文献1には、フレーズベースSMTにおける翻訳ルールの自動獲得法に関する改良技術が開示されている。また、特許文献2には、階層的フレーズベースSMTにおける計算量に関する改良技術が開示されている。特に、特許文献2に開示された技術では、階層的フレーズベースSMTにおいて生成される翻訳ルールの形に制約を加えることで、解探索の効率を改善している。
【0009】
一方、原言語または目的言語を構文解析してから統計処理するという試みも行われており、非特許文献1,2には、この分野の動向について開示されている。特に、非特許文献2では、SMTのかかえる解探索空間の広さを削減するため、ITG(Inversion Transduction Grammar)と呼ばれる解探索空間の削減技術や、その拡張であるIST(Imposing Source Tree)−ITGなどの技術について開示されている。
【0010】
また、語順をどう並べ替えるかについては、これまでに多くの人々が様々な経験則を示している。例えば、非特許文献3,4では、英韓翻訳において、語順を変更する指標となる経験則がいくつか示されており、その中には、動詞句や形容詞句において主辞を最後に移動する、という具体的なルールも含まれている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2007−328483号公報
【特許文献2】特開2008−15844号公報
【非特許文献】
【0012】
【非特許文献1】潮田明、「ルールベース翻訳と統計翻訳の融合におけるsyntaxの役割」、Japio 2009 YEARBOOK、日本特許情報機構、2009年、pp.286-289
【非特許文献2】隅田英一郎、「統計翻訳に構造制約を導入する新しいアプローチ」、Japio 2008 YEARBOOK、日本特許情報機構、2008年、pp.266-271
【非特許文献3】Gumwon Hong, Seung-Wook Lee and Hae-Chang Rim, “Bridging Morpho-Syntactic Gap between Source and Target Sentences for English-Korean Statistical Machine Translation”, Proceedings of the ACL-IJCNLP-2009, Singapore, pp. 233-236, 2009
【非特許文献4】Peng Xu, Jaeho Kang, Michael Ringgaard, and Franz Och: “Using a Dependency Parser to Improve SMT for Subject-Object-Verb Languages”, Proceedings of the NAACL-HLT-2009, pp. 245-253, 2009.
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、前記した従来技術のいずれによっても、充分な品質の翻訳を実現できていない。その理由として、例えば、英語から日本語への翻訳においては、語順を大幅に入れ替えなければならないという問題がある。RBMTでは、英語と日本語の語順を比べて、語順が入れ替わる場合を見つけ、どのようなときにどう入れ替えるか、という規則を人間が考えて規定しなければならず、高精度の実現は困難である。
【0014】
一方、SMTでは、どの単語とどの単語を入れ替えるべきかが統計的に判断される。しかし、例えば、1文中に単語が30個あるとすれば、その単語の並び替え方は、理論的には30!≒1032.4にも上る。わずか1文の翻訳にこのような膨大な解探索を行うことは、時間がかかりすぎて非現実的である。
【0015】
また、非特許文献1,2や特許文献1,2などに開示された技術により、解探索空間は少しずつ削減されてきているが、どの語順がよいかの判断は、目的言語(英日翻訳ならば日本語)の統計的な言語モデル(単言語モデル)により判断されている。つまり、ある単語の次にどの単語が来るかの確率値を求め、できるだけ確率が高い語順を優先するが、この言語モデルによる語順決定では、新語が含まれている場合に、よい語順を捨ててしまう可能性がある。
【0016】
また、非特許文献3に開示された経験則はあくまで英韓翻訳に対するものであり、例えば、英日翻訳や独韓翻訳等の他の翻訳にそのまま適用することはできない。また、非特許文献4に開示された技術では、例えば、英日翻訳に適用した場合に、複数の節を含む複雑な文を日本語の語順にできないことがあるなどの問題がある。
【0017】
そこで、本発明は、このような機械翻訳の現状に鑑みてなされたもので、非主辞後置型言語である原言語(例えば英語)の文の単語について、構文解析結果を用いて、主辞後置型言語の目的言語(例えば日本語)の語順に並び替えることを課題とする。
【課題を解決するための手段】
【0018】
前記課題を解決するために、請求項1に係る本発明は、非主辞後置型言語である原言語の文の単語を、主辞後置型言語である目的言語の語順に並び替える語順変換装置であって、前記原言語の文について、予め行った構文解析により作成した、前記文を構成する単語に対応するノードの階層構造を示す構文木情報と、各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報と、各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報と、を記憶する記憶部と、前記文について、前記構文木情報、前記主辞ノード情報、前記語順不変ノード情報を参照して、前記構文木情報に示される構造木のルートノードから始めてその構造木のすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを最後の位置に移動する処理を繰り返すことで、前記原言語の文の単語を前記目的言語の語順に並び替える処理部と、を備えることを特徴とする。
【0019】
かかる発明によれば、非主辞後置型言語である原言語の文の単語について、その構造木のルートノードから始めてすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを最後の位置に移動する処理を繰り返すことで、主辞後置型言語の目的言語の語順に並び替えることができる。
【0020】
また、請求項2に係る本発明は、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳するために使用する統計的機械翻訳用の統計モデルを作成する機械翻訳用統計モデル作成装置であって、前記原言語の文と前記目的言語の文との対訳コーパス、および、前記目的言語の文の単言語コーパスを記憶する記憶部と、前記対訳コーパスのうち、前記原言語の文を構文解析する構文解析部と、請求項1に記載の語順変換装置と、前記構文解析部による構文解析の後に前記語順変換装置によって語順変換された前記原言語の文と、前記目的言語の文と、からなる対訳コーパスである主辞後置対訳コーパスを作成する主辞後置対訳コーパス作成部と、前記主辞後置対訳コーパス、および、前記目的言語の単言語コーパスを用いて、前記統計モデルを作成する統計モデル作成部と、を備えることを特徴とする。
【0021】
かかる発明によれば、非主辞後置型言語である原言語の文の単語を請求項1に記載の語順変換装置で語順変換する以外は、周知の統計的機械翻訳技術を用いて、統計モデルを作成することができる。
【0022】
また、請求項3に係る本発明は、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳する機械翻訳装置であって、請求項2に記載の前記統計モデルを記憶する記憶部と、翻訳対象の前記原言語の文を構文解析する構文解析部と、前記構文解析した原言語の文の単語の語順を変換する請求項1に記載の語順変換装置と、当該変換した原言語の文に対して前記記憶部に記憶した統計モデルを適用することで、前記目的言語の文への翻訳を行う統計的機械翻訳部と、を備えることを特徴とする。
【0023】
かかる発明によれば、統計的機械翻訳部によって、請求項1に記載の語順変換装置が語順変換した原言語の文について、請求項2に記載の統計モデルを参照することで、膨大な語順の探索等を行うことなく、目的言語の文への翻訳を行うことができる。
【0024】
また、本発明は、前記した各装置による方法をコンピュータに実行させるためのプログラムである。かかる発明によれば、このプログラムをコンピュータにインストールすることで、前記した各装置による方法をコンピュータに実行させることができる。
【発明の効果】
【0025】
本発明によれば、非主辞後置型言語である原言語の文の単語について、構文解析結果を用いて、主辞後置型言語の目的言語の語順に並び替えることができる。
【図面の簡単な説明】
【0026】
【図1】本実施形態の語順変換装置の構成図である。
【図2】英文を主辞後置英文に変換する例を示す図である。
【図3】独文を主辞後置独文に変換する例を示す図である。
【図4】語順変換装置の処理の流れを示すフローチャートである。
【図5A】語順変換の例を示す図である。
【図5B】語順変換の例を示す図である。
【図6】本実施形態の機械翻訳用統計モデル作成装置の構成図である。
【図7】本実施形態の機械翻訳装置の構成図である。
【図8】英文の解析結果の出力例を示す図である。
【図9】英文の解析結果の出力例を示す図である。
【発明を実施するための形態】
【0027】
以下、本発明を実施するための形態(以下、「実施形態」と称する。)に関し、第1実施形態、第2実施形態および第3実施形態について、図面を参照(言及図以外の図面も適宜参照)して詳細に説明する。
【0028】
<第1実施形態>
図1に示すように、第1実施形態における語順変換装置100は、コンピュータ装置であり、処理部101と、記憶部195とを備えて構成される。なお、語順変換装置100は、図示していないが、入出力インタフェースも備えている。
【0029】
処理部101は、例えば、CPU(Central Processing Unit)とメモリによって実現され、初期設定部110、終端ノード判定部120、子ノード列挙部130、語順交換部140、動詞判定部150、引数ラベル付与部160、単語置換部170、ノード選択部180、助詞記号追加部190とを備えている。それらの動作については後記する。
【0030】
記憶部195は、例えば、ROM(Read Only Memory)、HDD(Hard Disk Drive)などによって実現され、処理対象の原文、処理部101の動作プログラム、各種設定値、処理対象となる原言語の文について予め行った構文解析により作成した構文木情報、構文木における各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報、構文木における各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報、語順変換後の文などが記憶される。
【0031】
以下では、原言語が英語である場合を例にとって、説明する。語順変換装置100の動作概要を説明すると、語順変換装置100は、入力された英文を、日本語や韓国語などの主辞後置型言語の語順に並び替えた主辞後置英文にして出力する。
【0032】
なお、入力文は、予め構文解析されているものとし、その結果を構文木(構文木情報)で表現したものを入力とする。入力文が構文解析されていない場合には、構文解析部(図1に破線で記載)によって構文を解析して構文木とする必要があるが、その構文解析部は、語順変換装置100が備えていてもよいし、他の装置が備えていてもよい。
【0033】
英語の構文解析は、例えば、文献“Feature forest models for probabilistic HPSG parsing,”(Y. Miyao and J. Tsujii: Computational Linguistics, vol. 34, no. 1, pp. 35-80, 2008)”(以下、「英語構文解析文献」と称する。)で提案され、ウェブで一般公開されているenjuなどの技術を利用することができる。
【0034】
例えば、“John saw a beautiful girl yesterday.”という英文を入力としたとき、構文解析部が出力する英語の構文木は、図2(a)に示す通りである。そして、本実施形態の語順変換装置100がその構文木を語順変換して出力する主辞後置英文は、図2(b)に示す通りである。
【0035】
構文木の各ノードにはノードID(IDentifier)が付与されている。図2のノード(丸で表記)の中に書かれている番号がノードIDである。灰色で表されているノードは、すぐ上側に接続しているノードにとっての主辞ノードである。白色で表されているノードは、主辞以外のノードである。例えば、ノードIDが3のノード(以下、ノード3と称する。他のノードも同様)に注目すると、このノード3はノード4とノード11を子ノードとして持っており、主辞はノード4である。
【0036】
なお、図示しないが、構文解析の結果得られる構文木の各ノードには、次の意味を示すラベルが付与されているものとする。
・主辞となるノードのID
・主語となるノードのID(動詞に対応するノードの場合のみ)
・目的語となるノードのID(他動詞に対応するノードの場合のみ)
【0037】
前記した“John saw a beautiful girl yesterday.”という英文をenjuで解析した結果をXML(eXtensible Markup Language)形式で出力したものを図8に示す。図2の構文木のノードIDは、図8の<cons>タグ(2〜4,8〜10,14,15,18,19,22,28,29行目)中のid属性に記載されている。なお、図8ではidはc0~c12となっているが、図2ではcを省略して数字のみを記している。enjuの解析結果では、各ノードに、以下のような情報が付与されているので、これを用いて、各ノードにラベルを与える。
【0038】
(1)子ノードの中の主辞ノードのID(head)
情報“head”は、<cons>タグ中に記載され、head属性を示す。つまり、例えば、図2(a)のノード3の場合、図8の8行目にはhead=“c4”と記載されていることから、ノード4がノード3に対する主辞ノードになる。同様に、図8の14行目から、ノード8がノード6に対する主辞ノードになる。
【0039】
(2)そのノードの第一引数となるノードのID(arg1)
情報“arg1”は、動詞の場合、その主語を指す。例えば、図2(a)において、ノード5(c5)に接続しているsawのXMLタグ(図8の11,12行目)を見ると、arg1にはc1が記されている。そこで、ノード1(c1)のheadをたどっていくと(図8の3行目参照)ノード2(John)に至るので、ノード2に「主語」というラベルを付与する。
【0040】
(3)そのノードの第二引数となるノードのID(arg2)
情報“arg2”は、他動詞の場合、その目的語を指し、be動詞の場合、補語を指す。例えば、図2(a)において、ノード5(c5)に接続しているsawのXMLタグ(図8の11,12行目)を見ると、arg2にはc6が記されている。そこで、ノード6(c6)のheadをたどっていくと(図8の14,18行目参照)ノード10(girl)に至るので、ノード10に「目的語」というラベルを付与する。
【0041】
本実施形態の語順変換装置100では、入力された構文木の最上位のノード(ルートノード)から処理を開始して、処理対象のノード(以下、「処理対象ノード」と称する。)に接続している子ノードの中から主辞となるノードを探し出し、そのノードを子ノードの最後に移動させる。なお、記憶部195の語順不変ノード情報を参照し、子ノードが並列構造や数式の場合には、主辞ノードの移動を行わない。これを全ての子ノードについて繰り返すことにより、語順変換を行う。
【0042】
以下、図1、図4、図8を参照して、語順変換の処理について説明する。なお、その後、図5A、図5Bを参照して、語順変換の具体例について説明する。
【0043】
<初期設定部110>
初期設定部110は、構文解析部から構文解析済みの英文(構文木)を受け取り(読み込み)(ステップS100)、その英文の構文木のルートノードを処理対象ノードとして選択するとともに、ノードリストにその処理対象ノードを記録する(ステップS110)。
【0044】
<終端ノード判定部120>
終端ノード判定部120は、処理対象ノードが終端ノード(子ノードのないノード)か否かを判定し(ステップS120)、YesであればステップS150に進み、NoであればステップS130に進む。なお、enjuでXML形式での出力を選んだ場合は、<tok>タグが付いているものが終端ノードであり(図8の5,11,16,20,23,30行目)、<cons>タグが付いているものは終端ノードでない。
【0045】
<子ノード列挙部130>
子ノード列挙部130は、処理対象ノードが持つ子ノードのリストである「子ノードリスト」を作成する(ステップS130)。例えば、enjuのXML出力をpythonのxml.dom.minidomライブラリで読んでいる場合は、childNodesで子ノードを列挙できる。
【0046】
<語順交換部140>
語順交換部140は、処理対象ノードが並列構造や数式でない場合、「子ノードリスト」中の主辞ノードに対応するノードIDを、「子ノードリスト」の最後に移動させる(ステップS140)。enjuのXML出力では、主辞ノードのIDは、処理対象ノードのhead属性に記録されている。並列構造の場合、処理対象ノードに対応する<cons>タグのcatまたはxcatという属性が“COOD”となる。例えば、“Mary saw John and Bob.”という英文では、“John and Bob”の部分が並列構造となる。
【0047】
図9は、“Mary saw John and Bob.”という英文をenjuで解析した結果であり、20行目にxcat=“COOD”という記載がある。このノード(id=“c19”)のheadをたどっていくと“John”に到達する(図9の20〜23行目参照)。なお、数式かどうかは、等号や不等号が含まれているか、などの基準によって判定できる。そして、ノードリスト中の処理対象ノードのノードIDの部分を、書き換えた「子ノードリスト」で置き換える(ステップS141)。
【0048】
ここで、子ノードの構造を考える理由は以下の通りである。周知の構文解析器の中には、A and BやA or Bなどの並列構造(コーディネーション)の場合に、Aを主辞と判定するものがある。このとき並列構造を考慮することなく単に主辞ノードに対応するノードを子ノードリストの最後に移動させてしまうと、B and AやB or Aに語順を変換することになってしまう。AとBが対等とはいえ、このような入れ替えは忠実な翻訳とは言えない。そこで、子ノードが並列構造の場合には語順の入れ替えを行わないことにより、このような構文解析器に起因する問題を解決することができる。また、m<n+1のような数式も、語順を入れ替えると意味が変わってしまうので、語順を入れ替えない。
【0049】
<動詞判定部150>
動詞判定部150は、引数ラベル付与部160を適用するために、処理対象ノードが動詞であるか否かを判定し(ステップS150)、YesであればステップS160に進み、NoであればステップS170に進む。
【0050】
<引数ラベル付与部160>
引数ラベル付与部160は、英語に存在しない助詞を生成するための前処理を行う。引数ラベル付与部160は、処理対象ノードが動詞であるときに、その主語・目的語となっている単語に、ラベル付けをする。enjuの場合は、動詞に付与されているarg1、arg2属性に対応するノードIDが記載されている。ただし、これらのノードIDは、単語に直接対応していないので、headをたどるという処理を加える必要がある。
【0051】
つまり、次のようにして、終端ノード(単語)に到達することができる。
・処理対象ノード(動詞)のarg1のノードからスタートして、headをたどれば、主語である終端ノード(単語)に到達できる。
・処理対象ノードのarg2のノードからスタートして、headをたどり、目的語である終端ノード(単語)に到達できる。
【0052】
そして、これらの終端ノードIDに主語、目的語であることを示すラベルva1, va2を付ける(ステップS160)。例えば、図2のノード5(saw)であれば、arg1=c1, arg2=c6なので(図8の12行目参照)、ノード1のheadであるJohnにva1、ノード6のhead(ノード8)のhead(ノード10)であるgirlにva2というラベルが付与される。
【0053】
なお、ラベルを付ける際に、入力文が受動態であるか否かを判別して、受動態である場合には、構文解析器の結果を修正して主格及び目的格のラベルを割り当ててもよい。例えば、“A was stolen by B”のような文では、構文解析器によっては、Aが目的語、Bが主語と判定されることがあるが、これを、単純に構文情報に合わせてAを主語、Bを目的語としてラベルを割り当てるほうが、原文に忠実な翻訳を得ることができる。
【0054】
また、入力文が“John bought a toy that was popular in Japan”の場合、toyは、boughtの目的語であり、かつ、wasの主語である。このような場合、連体修飾されている名詞(toy)は、連体修飾節の外の格によってのみラベル付けする。つまり、このtoyは、連体修飾節の外側の動詞boughtの目的語なので、目的語としてラベル付けする。
【0055】
<単語置換部170>
単語置換部170は、ノードリスト中の処理対象ノードを、対応する単語で置き換える(ステップS170)。なお、その際、ノードリスト中にva1,va2のラベルがある場合、それらのラベルは、すでに置き換えられている単語に対応付けたまま残す(図5Bの(14)参照)。
【0056】
<ノード選択部180>
ノード選択部180は、ノードリストにノードIDが含まれているか否かを判定し(ステップS180)、Yesであれば、ノードリストの先頭から最も近いノードIDを処理対象ノードとして選択し(ステップS181)、ステップS120に進む。ステップS180でNoであれば、ステップS190に進む。
【0057】
<助詞記号追加部190>
助詞記号追加部190は、ノードリスト中のva1,va2のラベルのある単語の直後に、助詞に相当する語が入る可能性を示す助詞相当語“_va1”,“_va2”を追加して(ステップS190)、ノードリスト中の単語を前から順に出力する(ステップS200)。なお、日本語における主節の主語は、「が」よりも「は」のほうが自然な場合が多いので、主節の“_va1”を“_va0”のような別の語に置き換えてもよい(例については後記)。ただし、「が」と「は」、「を」と「に」などの使い分けは難しいので、これらの助詞相当語を実際に日本語の単語で固定的に置き換えることはせず、どのような状況でどの助詞に置き換えるかは統計的機械翻訳の処理にゆだねる。
以上の処理により、主辞後置に単語が並び替えられた英文が出力される。
【0058】
次に、構文解析部で得られた構文木が図2(a)に示すものであるとして、上記の語順変換装置100の動作を具体的に説明する。ここで、ノードリストの更新される様子を図5A及び図5Bに示す。なお、以下の()内の番号((1)、(2)、・・・)は、図5A及び図5Bにおける()内の番号((1)、(2)、・・・)と対応している。また、図5A及び図5Bにおいては、ノードリスト中で、1つ前のステップと比較して内容が更新された部分に下線を施している。
【0059】
(1)まず、ノード0を処理対象ノードとして選択する(図4のステップS110)。ノードリストは、[ノードID:0]となる。
【0060】
(2)ノード0には子ノードが存在するので(終端ノードではないので)、終端ノード判定部120(図4のステップS120)から子ノード列挙部130(図4のステップS130)に処理を移行する。子ノード列挙部130において、ノード0の子ノードのリスト[ノードID:1,ノードID:3]を、子ノードリストとして設定する(図4のステップS130)。語順交換部140では、子ノードの構造は並列構造や数式でないので、子ノードリスト中の主辞ノード(ノード3)を、子ノードリストの最後に移動させる(図4のステップS140)。ただし、この場合は既に主辞ノードが最後になっているため移動の必要はない。よって、ノードリストを[ノードID:1,ノードID:3]に置き換える(図4のステップS141)。
【0061】
(3)次に、ノード選択部180は、ノード1を処理対象ノードとして選択し(図4のステップS181)、同様の処理を繰り返す。ノード1の子ノードはノード2のみである。よって、語順交換部140で語順を交換する必要はなく、ノードリストは[ノードID:2,ノードID:3]となる。
【0062】
(4)次に、ノード2を処理対象ノードとして選択する。ノード2には子ノードが存在しないので動詞判定部150(図4のステップS150)に処理が移行される。また、ノード2は動詞ではないので(図4のステップS150でNo)、単語置換部170(図4のステップS170)に処理が移行される。ノード2に対応する単語はJohnなので、ノードリストが[単語:“John”,ノードID:3]となる(図4のステップS170)。
【0063】
(5)次に、ノード3を処理対象ノードとして選択する。子ノードリストは[ノードID:4,ノードID:11]となる。語順交換部140は、主辞ノード(ノード4)を、子ノードリストの最後に移動させる。よって、その子ノードリストを反映したノードリストは[単語:“John”,ノードID:11,ノードID:4]となる。
【0064】
(6)続いて、ノード11を処理対象ノードとして選択する。子ノードはノード12しかないので、ノード11がノード12で置き換えられ、ノードリストが[単語:“John”,ノードID:12,ノードID:4]となる。
【0065】
(7)次に、ノード12を処理対象ノードとして選択する。ノード12には子ノードが存在しないので、単語に置き換えられ、ノードリストは[単語:“John”,単語:”yesterday”,ノードID:4]となる。
【0066】
(8)ノード4を処理対象ノードとして選択して同様の処理を繰り返すと、ノードリストは[単語:“John”,単語:”yesterday”,ノードID:6,ノードID:5]となる。
【0067】
(9)ノード6を処理対象ノードとして選択する。結果、ノードリストは[単語:“John”,単語:”yesterday”,ノードID:7,ノードID:8,ノードID:5]となる。
【0068】
(10)ノード7を処理対象ノードとして選択する。ノード7には子ノードが存在しないので、単語に置き換えられ、ノードリストが[単語:“John”,単語:”yesterday”,単語:“a”,ノードID:8,ノードID:5]となる。
【0069】
(11)ノード8を処理対象ノードとして選択し、ノードリストが[単語:“John”,単語”yesterday”,単語:“a”,ノードID:9,ノードID:10,ノードID:5]となる。
【0070】
(12)同様に、ノード9を処理対象ノードとして選択し、単語に置き換えるので、ノードリストは[単語:“John”,単語:”yesterday”,単語:“a”,単語:“beautiful”,ノードID:10,ノードID:5]となる。
【0071】
(13)ノード10を処理対象ノードとして選択し、単語に置き換えるので、ノードリストは[単語:“John”,単語:”yesterday”,単語:“a”,単語:“beautiful”,単語:“girl”,ノードID:5]となる。
【0072】
(14)次に、ノード5を処理対象ノードとして選択する。ノード5は動詞なので(図4のステップS150でYes)、引数ラベル付与部160においてその属性を調べると、arg1=c1,arg2=c6と書かれている(図8の10〜12行目参照)。そこで、ノード1の属性を調べるとhead=c2なので(図8の3行目参照)、ノード2の“John”にたどりつく(図8の4,5行目参照)。そこで、“John”に“va1”のラベルが付与される(図4のステップS160)。また、ノード6はhead=c8(図8の14行目参照)、ノード8はhead=c10なので(図8の18行目参照)、“girl”にたどりつき(図8の22,23行目参照)、ラベル“va2”が“girl”に付与される(図4のステップS160)。したがって、ノードリストは[単語:“John”:va1,単語:”yesterday”,単語:“a”,単語:“beautiful”,単語:“girl”:va2,単語:“saw”]となる。なお、ここではva1は主語、va2は目的語を示すラベルとして使用している。
【0073】
(15)最後に、助詞記号追加部190によって、ラベルva1,va2が付与された単語の直後に助詞相当語“_va1(が)”,“_va2(を)”が追加され、ノードリストは[“John”,“_va1”,”yesterday”,“a”,“beautiful”,“girl”,“_va2”,“saw”]となる(図4のステップS190)。さらに、“_va1(が)”を“_va0(は)”で置き換えると、ノードリストは[“John”,“_va0”,”yesterday”,“a”,“beautiful”,“girl”,“_va2”,“saw”]となる(図4のステップS190)。
【0074】
以上の処理により、“John saw a beautiful girl yesterday.” という英文が、“John _va0 yesterday a beautiful girl _va2 saw.”という主辞後置英文に変換される。これにより、「ジョン は 昨日 美しい 少女 を 見た。」と逐次的に日本語に翻訳することが可能となる。
【0075】
なお、もっと複雑な英文を入力とした場合でも、日本語に近い語順に変換することができる。例えば、“John went to the police because Mary lost his wallet.”という英文は、“John _va0 Mary _va1 his wallet _va2 lost because the police to went.”と変換される。これを逐次的に日本語に翻訳すると、“ジョン は メアリ が 彼の 財布 を なくした ので 警察 に 行った。”となり、語順変換の精度が高いことがわかる。
【0076】
同様に、多くの英文を日本語に近い語順にすることができる。これは、日本語が「主辞を最後に置く」という、規則的な性質を持つ言語(主辞後置型言語)であるために可能なことである。
【0077】
このように、本実施形態の語順変換装置100によれば、原言語(英語など)の文についての構文木を調べ、主辞ノード(被修飾語)を主辞以外のノード(修飾語)の後ろに移動することで、原言語の文の各単語を、主辞後置型言語である目的言語の語順に並べ替えることができる。なお、その際、並列構造や数式など、語順を変えるべきでないノードの語順を入れ替えないようにしたことで、より精度の高い語順変換を行うことができる。
【0078】
なお、語順変換装置100は、英語だけでなく、他の言語にも適用できる。例えば、独語(ドイツ語)の場合について説明する。図3は、図2と同様の説明図である。つまり、図3(a)は、原言語を独語、目的言語を日本語とした場合の入力の構文木を示す図である。図3(b)は、その構文木を主辞後置に変換した結果を示す図である。
【0079】
独語では、助動詞があるとき、動詞が文末に移動する。図3(a)に示す“Albert muste jeden Tag Arbeiten.”について語順変換を行うと、図3(b)に示す“Albert (_va0) jeden Tag Arbeiten muste.”となる。これを逐次的に日本語に翻訳すると、「アルバートは毎日働かなければならなかった。」となり、語順変換の精度が高いことがわかる。
【0080】
<第2実施形態>
次に、第1実施形態の語順変換装置100を用いた機械翻訳用統計モデル作成装置について説明する。なお、この第2実施形態では、原言語を英語、目的言語を日本語とした場合を例に説明をするが、日本語の代わりに目的言語を主辞後置の文法を持つ韓国語などの言語としてもよい。また、原言語も英語の代わりに独語などの言語としてもよい。
【0081】
図6に示すように、第2実施形態の機械翻訳用統計モデル作成装置200は、コンピュータ装置であり、英語と日本語の対訳コーパス210、日本語の単言語コーパス220、構文解析部230、語順変換部100a(第1実施形態の語順変換装置100に相当。特許請求の範囲における「主辞後置対訳コーパス作成部」も兼ねる。)、主辞後置対訳コーパス240、統計モデル作成部250を備えている。
【0082】
機械翻訳用統計モデル作成装置200では、従来の統計的機械翻訳(SMT)技術において翻訳用の統計モデル(翻訳ルール)を作成する際に使用する学習データのうち、英語と日本語の対訳コーパス210の英語の部分に対して、構文解析部230で各文を前記した英語構文解析文献などの手法により構文解析し、語順変換部100aで語順変換を行うことにより、主辞後置に変換した主辞後置対訳コーパス240を作成する。
【0083】
そして、統計モデル作成部250で、主辞後置対訳コーパス240と日本語の単言語コーパス220を学習データとして、周知の統計的機械翻訳の技術であるSMT(特許文献1,2等参照)により統計モデル260を作成(学習)することができる。
【0084】
<第3実施形態>
次に、第1実施形態の語順変換装置100と第2実施形態の統計モデル260を用いた機械翻訳装置について説明する。図7に示すように、第3実施形態の機械翻訳装置300は、コンピュータ装置であり、構文解析部230、語順変換部100a(第1実施形態の語順変換装置100に相当)、統計的機械翻訳部320、統計モデル260(第2実施形態で作成)を備えている。
【0085】
機械翻訳装置300では、入力された英文を、構文解析部230により構文解析した後、語順変換部100aで語順変換を行うことにより、主辞後置英文を作成する。そして、第2実施形態の機械翻訳用統計モデル作成装置200によって作成(学習)した統計モデル260を用いて、統計的機械翻訳部320において、主辞後置英文を日本語に翻訳する。なお、統計的機械翻訳部320では、周知のルールベース型機械翻訳(RBMT)や統計的機械翻訳(SMT)の手法をそのまま用いることができる。
【0086】
このように、機械翻訳装置300によれば、英日翻訳などの語順が大きく異なる言語間の翻訳で、目的言語が主辞後置型言語の場合に、あらかじめ各文を目的言語の語順に近づけておくことができるので、膨大な語順の探索を行うことなく、ほぼ逐語的に訳すことが可能になり、高速に自然な語順の翻訳結果を得ることができる。
【0087】
また、本手法では、原言語の構文解析部の作成者は、原言語の文法の知識があればよく、目的言語の文法を知っている必要はない。構文解析ができれば、その構文解析済みの文(構文木)を語順変換部100aに適用するだけで、目的言語の語順に近づけることができる。
【0088】
また、非特許文献3,4に開示された技術では、基本的には動詞や形容詞といった用言を後置することだけを行っており、そのために、because節などを含む複雑な文を日本語の語順にすることができない。例えば、非特許文献4では、becauseが文頭に来てしまうことが示されている。このため、日本語や韓国語の語順とは大きくかけ離れてしまう。一方、本実施形態によれば、品詞を限定せずに後置処理を行うことにより、because節ではbecauseが最後に来ることになり、becauseが日本語の「ので」と同じ位置に配置される。
【0089】
以上で本実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。
例えば、語順不変ノード情報としては、並列構造、数式以外に、語順変換装置100等の管理者が自由に設定してよい。
その他、各装置の構成や処理の具体的な内容について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【0090】
100 語順変換装置
100a 語順変換部
101 処理部
110 初期設定部
120 終端ノード判定部
130 子ノード列挙部
140 語順交換部
150 動詞判定部
160 引数ラベル付与部
170 単語置換部
180 ノード選択部
190 助詞記号追加部
195 記憶部
200 機械翻訳用統計モデル作成装置
210 英語と日本語の対訳コーパス
220 日本語の単言語コーパス
230 構文解析部
240 主辞後置対訳コーパス
250 翻訳用統計モデル作成部
260 統計モデル
300 機械翻訳装置
320 統計的機械翻訳部

【特許請求の範囲】
【請求項1】
非主辞後置型言語である原言語の文の単語を、主辞後置型言語である目的言語の語順に並び替える語順変換装置であって、
前記原言語の文について、予め行った構文解析により作成した、前記文を構成する単語に対応するノードの階層構造を示す構文木情報と、各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報と、各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報と、を記憶する記憶部と、
前記文について、前記構文木情報、前記主辞ノード情報、前記語順不変ノード情報を参照して、前記構文木情報に示される構造木のルートノードから始めてその構造木のすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを最後の位置に移動する処理を繰り返すことで、前記原言語の文の単語を前記目的言語の語順に並び替える処理部と、
を備えることを特徴とする語順変換装置。
【請求項2】
非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳するために使用する統計的機械翻訳用の統計モデルを作成する機械翻訳用統計モデル作成装置であって、
前記原言語の文と前記目的言語の文との対訳コーパス、および、前記目的言語の文の単言語コーパスを記憶する記憶部と、
前記対訳コーパスのうち、前記原言語の文を構文解析する構文解析部と、
請求項1に記載の語順変換装置と、
前記構文解析部による構文解析の後に前記語順変換装置によって語順変換された前記原言語の文と、前記目的言語の文と、からなる対訳コーパスである主辞後置対訳コーパスを作成する主辞後置対訳コーパス作成部と、
前記主辞後置対訳コーパス、および、前記目的言語の単言語コーパスを用いて、前記統計モデルを作成する統計モデル作成部と、
を備えることを特徴とする機械翻訳用統計モデル作成装置。
【請求項3】
非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳する機械翻訳装置であって、
請求項2に記載の前記統計モデルを記憶する記憶部と、
翻訳対象の前記原言語の文を構文解析する構文解析部と、
前記構文解析した原言語の文の単語の語順を変換する請求項1に記載の語順変換装置と、
当該変換した原言語の文に対して前記記憶部に記憶した統計モデルを適用することで、前記目的言語の文への翻訳を行う統計的機械翻訳部と、
を備えることを特徴とする機械翻訳装置。
【請求項4】
非主辞後置型言語である原言語の文の単語を、主辞後置型言語である目的言語の語順に並び替える語順変換装置による語順変換方法であって、
前記語順変換装置は、
前記原言語の文について、予め行った構文解析により作成した、前記文を構成する単語に対応するノードの階層構造を示す構文木情報と、各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報と、各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報と、を記憶する記憶部と、処理部と、を備えており、
前記処理部は、
前記文について、前記構文木情報、前記主辞ノード情報、前記語順不変ノード情報を参照して、前記構文木情報に示される構造木のルートノードから始めてその構造木のすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを最後の位置に移動する処理を繰り返すことで、前記原言語の文の単語を前記目的言語の語順に並び替える
ことを特徴とする語順変換方法。
【請求項5】
非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳するために使用する統計的機械翻訳用の統計モデルを作成する機械翻訳用統計モデル作成装置による機械翻訳用統計モデル作成方法であって、
前記機械翻訳用統計モデル作成装置は、
前記原言語の文と前記目的言語の文との対訳コーパス、および、前記目的言語の文の単言語コーパスを記憶する記憶部と、請求項4に記載の語順変換装置と、構文解析部と、主辞後置対訳コーパス作成部と、統計モデル作成部と、を備えており、
前記構文解析部は、前記対訳コーパスのうち、前記原言語の文を構文解析し、
前記主辞後置対訳コーパス作成部は、前記構文解析部による構文解析の後に前記語順変換装置によって語順変換された前記原言語の文と、前記目的言語の文と、からなる対訳コーパスである主辞後置対訳コーパスを作成し、
前記統計モデル作成部は、前記主辞後置対訳コーパス、および、前記目的言語の単言語コーパスを用いて、前記統計モデルを作成する
ことを特徴とする機械翻訳用統計モデル作成方法。
【請求項6】
非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳する機械翻訳装置による機械翻訳方法であって、
前記機械翻訳装置は、
請求項5に記載の前記統計モデルを記憶する記憶部と、構文解析部と、請求項4に記載の語順変換装置と、統計的機械翻訳部と、を備えており、
前記構文解析部は、翻訳対象の前記原言語の文を構文解析し、
前記語順変換装置は、前記構文解析した原言語の文の単語の語順を変換し、
前記統計的機械翻訳部は、当該変換した原言語の文に対して前記記憶部に記憶した統計モデルを適用することで、前記目的言語の文への翻訳を行う
ことを特徴とする機械翻訳方法。
【請求項7】
請求項4から請求項6のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−175500(P2011−175500A)
【公開日】平成23年9月8日(2011.9.8)
【国際特許分類】
【出願番号】特願2010−39656(P2010−39656)
【出願日】平成22年2月25日(2010.2.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】