(57)【特許請求の範囲】
【請求項１】
統語上の主辞に関して、非主辞後置型言語である原言語の文の単語を、主辞後置型言語である目的言語の語順に並び替える語順変換装置であって、
前記原言語の文について、予め行った構文解析により作成した、前記文を構成する単語に対応するノードの階層構造を示す構文木情報と、各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報と、各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報と、を記憶する記憶部と、
前記文について、前記構文木情報、前記主辞ノード情報、前記語順不変ノード情報を参照して、前記構文木情報に示される構造木のルートノードから始めてその構造木のすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを当該子ノードの最後の位置に移動する処理を繰り返すことで、前記原言語の文の単語を前記目的言語の語順に並び替える処理部と、
を備えることを特徴とする語順変換装置。
【請求項２】
統語上の主辞に関して、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳するために使用する統計的機械翻訳用の統計モデルを作成する機械翻訳用統計モデル作成装置であって、
前記原言語の文と前記目的言語の文との対訳コーパス、および、前記目的言語の文の単言語コーパスを記憶する記憶部と、
前記対訳コーパスのうち、前記原言語の文を構文解析する構文解析部と、
請求項１に記載の語順変換装置と、
前記構文解析部による構文解析の後に前記語順変換装置によって語順変換された前記原言語の文と、前記目的言語の文と、からなる対訳コーパスである主辞後置対訳コーパスを作成する主辞後置対訳コーパス作成部と、
前記主辞後置対訳コーパス、および、前記目的言語の単言語コーパスを用いて、前記統計モデルを作成する統計モデル作成部と、
を備えることを特徴とする機械翻訳用統計モデル作成装置。
【請求項３】
統語上の主辞に関して、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳する機械翻訳装置であって、
請求項２に記載の前記統計モデルを記憶する記憶部と、
翻訳対象の前記原言語の文を構文解析する構文解析部と、
前記構文解析した原言語の文の単語の語順を変換する請求項１に記載の語順変換装置と、
当該変換した原言語の文に対して前記記憶部に記憶した統計モデルを適用することで、前記目的言語の文への翻訳を行う統計的機械翻訳部と、
を備えることを特徴とする機械翻訳装置。
【請求項４】
統語上の主辞に関して、非主辞後置型言語である原言語の文の単語を、主辞後置型言語である目的言語の語順に並び替える語順変換装置による語順変換方法であって、
前記語順変換装置は、
前記原言語の文について、予め行った構文解析により作成した、前記文を構成する単語に対応するノードの階層構造を示す構文木情報と、各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報と、各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報と、を記憶する記憶部と、処理部と、を備えており、
前記処理部は、
前記文について、前記構文木情報、前記主辞ノード情報、前記語順不変ノード情報を参照して、前記構文木情報に示される構造木のルートノードから始めてその構造木のすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを当該子ノードの最後の位置に移動する処理を繰り返すことで、前記原言語の文の単語を前記目的言語の語順に並び替える
ことを特徴とする語順変換方法。
【請求項５】
統語上の主辞に関して、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳するために使用する統計的機械翻訳用の統計モデルを作成する機械翻訳用統計モデル作成装置による機械翻訳用統計モデル作成方法であって、
前記機械翻訳用統計モデル作成装置は、
前記原言語の文と前記目的言語の文との対訳コーパス、および、前記目的言語の文の単言語コーパスを記憶する記憶部と、請求項４に記載の語順変換装置と、構文解析部と、主辞後置対訳コーパス作成部と、統計モデル作成部と、を備えており、
前記構文解析部は、前記対訳コーパスのうち、前記原言語の文を構文解析し、
前記主辞後置対訳コーパス作成部は、前記構文解析部による構文解析の後に前記語順変換装置によって語順変換された前記原言語の文と、前記目的言語の文と、からなる対訳コーパスである主辞後置対訳コーパスを作成し、
前記統計モデル作成部は、前記主辞後置対訳コーパス、および、前記目的言語の単言語コーパスを用いて、前記統計モデルを作成する
ことを特徴とする機械翻訳用統計モデル作成方法。
【請求項６】
統語上の主辞に関して、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳する機械翻訳装置による機械翻訳方法であって、
前記機械翻訳装置は、
請求項５に記載の前記統計モデルを記憶する記憶部と、構文解析部と、請求項４に記載の語順変換装置と、統計的機械翻訳部と、を備えており、
前記構文解析部は、翻訳対象の前記原言語の文を構文解析し、
前記語順変換装置は、前記構文解析した原言語の文の単語の語順を変換し、
前記統計的機械翻訳部は、当該変換した原言語の文に対して前記記憶部に記憶した統計モデルを適用することで、前記目的言語の文への翻訳を行う
ことを特徴とする機械翻訳方法。
【請求項７】
請求項４から請求項６のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、英語などの非主辞後置型言語（主辞を後置することが多くない言語）（原言語）で書かれた文を、日本語に代表される主辞後置型言語（主辞を後置することが多い言語）（目的言語）に翻訳する言語翻訳技術に関する。
【背景技術】
【０００２】
日本語などの多くのアジア圏の言語は、主辞（被修飾語）が修飾語の後に位置することが多いという性質があり、主辞後置型言語と呼ばれている。例えば、“I respect you.”という英語を日本語に翻訳すると、「私はあなたを尊敬している。」となる。ここで、「respect（尊敬している）」は、「you（あなた）」の主辞である。語順を見ると、英語では「respect」が「you」の前に位置しているのに対し、日本語では「尊敬している」が「あなた」の後に位置しているのがわかる。
【０００３】
近年、インターネットが発達し、インターネットユーザは、外国語の文書を見る機会が増えてきている。これにつれて翻訳の需要も高まっており、機械翻訳サービスが、インターネット上で無料あるいは有料で利用可能となっている。これらの翻訳サービスは、その技術により大きく分けると、ルールベース型機械翻訳（ＲＢＭＴ：Rule-based Machine Translation）と統計的機械翻訳（ＳＭＴ：Statistical Machine Translation）に分けられる。翻訳サービスの中には、数十言語間の翻訳を行うことが可能なものも存在する。
【０００４】
ＲＢＭＴは、人間が翻訳辞書や翻訳ルールをプログラムすることで実現するものである。その際、プログラマは、原言語と目的言語の両方の文法に精通し、語順を入れ替えたり、対応する語句で置き換えたりするための規則を考え、プログラムとして実行可能な形式でルールを書き下していく。
【０００５】
しかし、ＲＢＭＴでは、ルールの数が増えるにつれ、プログラムの保守が困難になる。また、目的言語が日本語の場合を考えても、英語と日本語の両方の文法に精通するプログラマの数は多いとしても、英語以外の原言語と日本語の両方の文法に精通するプログラマの数は少ない。そのため、最近は、実際に翻訳された大量の文書データ（対訳コーパス）から翻訳ルールを統計処理によって自動獲得するＳＭＴがさかんに研究されている。
【０００６】
ＳＭＴでは、人間が翻訳ルールを直接管理しなくてよいが、実際に翻訳された例（対訳コーパス）を大量に準備しなければ、質のよい翻訳ルールを得ることができない。また、対訳コーパスが大量に準備できたとしても、膨大な計算量が必要となる。
【０００７】
このように、各翻訳技術には一長一短がある。そこで、単純に単語を翻訳の単位として扱うＳＭＴの枠組みを拡張して、複数の単語の並び（フレーズ）を扱えるようにしたり（フレーズベースＳＭＴ）、さらにそのフレーズを階層化したり（階層的フレーズベースＳＭＴ）といった改良が提案されている。
【０００８】
例えば、特許文献１には、フレーズベースＳＭＴにおける翻訳ルールの自動獲得法に関する改良技術が開示されている。また、特許文献２には、階層的フレーズベースＳＭＴにおける計算量に関する改良技術が開示されている。特に、特許文献２に開示された技術では、階層的フレーズベースＳＭＴにおいて生成される翻訳ルールの形に制約を加えることで、解探索の効率を改善している。
【０００９】
一方、原言語または目的言語を構文解析してから統計処理するという試みも行われており、非特許文献１，２には、この分野の動向について開示されている。特に、非特許文献２では、ＳＭＴのかかえる解探索空間の広さを削減するため、ＩＴＧ（Inversion Transduction Grammar）と呼ばれる解探索空間の削減技術や、その拡張であるＩＳＴ（Imposing Source Tree）−ＩＴＧなどの技術について開示されている。
【００１０】
また、語順をどう並べ替えるかについては、これまでに多くの人々が様々な経験則を示している。例えば、非特許文献３，４では、英韓翻訳において、語順を変更する指標となる経験則がいくつか示されており、その中には、動詞句や形容詞句において主辞を最後に移動する、という具体的なルールも含まれている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−３２８４８３号公報
【特許文献２】特開２００８−１５８４４号公報
【非特許文献】
【００１２】
【非特許文献１】潮田明、「ルールベース翻訳と統計翻訳の融合におけるsyntaxの役割」、Japio 2009 YEARBOOK、日本特許情報機構、２００９年、pp.286-289
【非特許文献２】隅田英一郎、「統計翻訳に構造制約を導入する新しいアプローチ」、Japio 2008 YEARBOOK、日本特許情報機構、２００８年、pp.266-271
【非特許文献３】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
【非特許文献４】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.
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、前記した従来技術のいずれによっても、充分な品質の翻訳を実現できていない。その理由として、例えば、英語から日本語への翻訳においては、語順を大幅に入れ替えなければならないという問題がある。ＲＢＭＴでは、英語と日本語の語順を比べて、語順が入れ替わる場合を見つけ、どのようなときにどう入れ替えるか、という規則を人間が考えて規定しなければならず、高精度の実現は困難である。
【００１４】
一方、ＳＭＴでは、どの単語とどの単語を入れ替えるべきかが統計的に判断される。しかし、例えば、１文中に単語が３０個あるとすれば、その単語の並び替え方は、理論的には３０！≒１０３２．４にも上る。わずか１文の翻訳にこのような膨大な解探索を行うことは、時間がかかりすぎて非現実的である。
【００１５】
また、非特許文献１，２や特許文献１，２などに開示された技術により、解探索空間は少しずつ削減されてきているが、どの語順がよいかの判断は、目的言語（英日翻訳ならば日本語）の統計的な言語モデル（単言語モデル）により判断されている。つまり、ある単語の次にどの単語が来るかの確率値を求め、できるだけ確率が高い語順を優先するが、この言語モデルによる語順決定では、新語が含まれている場合に、よい語順を捨ててしまう可能性がある。
【００１６】
また、非特許文献３に開示された経験則はあくまで英韓翻訳に対するものであり、例えば、英日翻訳や独韓翻訳等の他の翻訳にそのまま適用することはできない。また、非特許文献４に開示された技術では、例えば、英日翻訳に適用した場合に、複数の節を含む複雑な文を日本語の語順にできないことがあるなどの問題がある。
【００１７】
そこで、本発明は、このような機械翻訳の現状に鑑みてなされたもので、非主辞後置型言語である原言語（例えば英語）の文の単語について、構文解析結果を用いて、主辞後置型言語の目的言語（例えば日本語）の語順に並び替えることを課題とする。
【課題を解決するための手段】
【００１８】
前記課題を解決するために、請求項１に係る本発明は、統語上の主辞に関して、非主辞後置型言語である原言語の文の単語を、主辞後置型言語である目的言語の語順に並び替える語順変換装置であって、前記原言語の文について、予め行った構文解析により作成した、前記文を構成する単語に対応するノードの階層構造を示す構文木情報と、各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報と、各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報と、を記憶する記憶部と、前記文について、前記構文木情報、前記主辞ノード情報、前記語順不変ノード情報を参照して、前記構文木情報に示される構造木のルートノードから始めてその構造木のすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを当該子ノードの最後の位置に移動する処理を繰り返すことで、前記原言語の文の単語を前記目的言語の語順に並び替える処理部と、を備えることを特徴とする。
【００１９】
かかる発明によれば、統語上の主辞に関して、非主辞後置型言語である原言語の文の単語について、その構造木のルートノードから始めてすべてのノードについて、その子ノードのうち、語順を変えるべきでないノード以外のノードに対して、主辞ノードを当該子ノードの最後の位置に移動する処理を繰り返すことで、主辞後置型言語の目的言語の語順に並び替えることができる。
【００２０】
また、請求項２に係る本発明は、統語上の主辞に関して、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳するために使用する統計的機械翻訳用の統計モデルを作成する機械翻訳用統計モデル作成装置であって、前記原言語の文と前記目的言語の文との対訳コーパス、および、前記目的言語の文の単言語コーパスを記憶する記憶部と、前記対訳コーパスのうち、前記原言語の文を構文解析する構文解析部と、請求項１に記載の語順変換装置と、前記構文解析部による構文解析の後に前記語順変換装置によって語順変換された前記原言語の文と、前記目的言語の文と、からなる対訳コーパスである主辞後置対訳コーパスを作成する主辞後置対訳コーパス作成部と、前記主辞後置対訳コーパス、および、前記目的言語の単言語コーパスを用いて、前記統計モデルを作成する統計モデル作成部と、を備えることを特徴とする。
【００２１】
かかる発明によれば、非主辞後置型言語である原言語の文の単語を請求項１に記載の語順変換装置で語順変換する以外は、周知の統計的機械翻訳技術を用いて、統計モデルを作成することができる。
【００２２】
また、請求項３に係る本発明は、統語上の主辞に関して、非主辞後置型言語である原言語の文を、主辞後置型言語である目的言語の文に翻訳する機械翻訳装置であって、請求項２に記載の前記統計モデルを記憶する記憶部と、翻訳対象の前記原言語の文を構文解析する構文解析部と、前記構文解析した原言語の文の単語の語順を変換する請求項１に記載の語順変換装置と、当該変換した原言語の文に対して前記記憶部に記憶した統計モデルを適用することで、前記目的言語の文への翻訳を行う統計的機械翻訳部と、を備えることを特徴とする。
【００２３】
かかる発明によれば、統計的機械翻訳部によって、請求項１に記載の語順変換装置が語順変換した原言語の文について、請求項２に記載の統計モデルを参照することで、膨大な語順の探索等を行うことなく、目的言語の文への翻訳を行うことができる。
【００２４】
また、本発明は、前記した各装置による方法をコンピュータに実行させるためのプログラムである。かかる発明によれば、このプログラムをコンピュータにインストールすることで、前記した各装置による方法をコンピュータに実行させることができる。
【発明の効果】
【００２５】
本発明によれば、非主辞後置型言語である原言語の文の単語について、構文解析結果を用いて、主辞後置型言語の目的言語の語順に並び替えることができる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態の語順変換装置の構成図である。
【図２】英文を主辞後置英文に変換する例を示す図である。
【図３】独文を主辞後置独文に変換する例を示す図である。
【図４】語順変換装置の処理の流れを示すフローチャートである。
【図５Ａ】語順変換の例を示す図である。
【図５Ｂ】語順変換の例を示す図である。
【図６】本実施形態の機械翻訳用統計モデル作成装置の構成図である。
【図７】本実施形態の機械翻訳装置の構成図である。
【図８】英文の解析結果の出力例を示す図である。
【図９】英文の解析結果の出力例を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するための形態（以下、「実施形態」と称する。）に関し、第１実施形態、第２実施形態および第３実施形態について、図面を参照（言及図以外の図面も適宜参照）して詳細に説明する。
【００２８】
＜第１実施形態＞
図１に示すように、第１実施形態における語順変換装置１００は、コンピュータ装置であり、処理部１０１と、記憶部１９５とを備えて構成される。なお、語順変換装置１００は、図示していないが、入出力インタフェースも備えている。
【００２９】
処理部１０１は、例えば、ＣＰＵ（Central Processing Unit）とメモリによって実現され、初期設定部１１０、終端ノード判定部１２０、子ノード列挙部１３０、語順交換部１４０、動詞判定部１５０、引数ラベル付与部１６０、単語置換部１７０、ノード選択部１８０、助詞記号追加部１９０とを備えている。それらの動作については後記する。
【００３０】
記憶部１９５は、例えば、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）などによって実現され、処理対象の原文、処理部１０１の動作プログラム、各種設定値、処理対象となる原言語の文について予め行った構文解析により作成した構文木情報、構文木における各ノードに関する子ノードのうち主辞ノードがどれかを示す主辞ノード情報、構文木における各ノードのうち並列構造であるときと数式であるときを含み語順を変えるべきでないノードを示す語順不変ノード情報、語順変換後の文などが記憶される。
【００３１】
以下では、原言語が英語である場合を例にとって、説明する。語順変換装置１００の動作概要を説明すると、語順変換装置１００は、入力された英文を、日本語や韓国語などの主辞後置型言語の語順に並び替えた主辞後置英文にして出力する。
【００３２】
なお、入力文は、予め構文解析されているものとし、その結果を構文木（構文木情報）で表現したものを入力とする。入力文が構文解析されていない場合には、構文解析部（図１に破線で記載）によって構文を解析して構文木とする必要があるが、その構文解析部は、語順変換装置１００が備えていてもよいし、他の装置が備えていてもよい。
【００３３】
英語の構文解析は、例えば、文献“Feature forest models for probabilistic HPSG parsing,”（Y. Miyao and J. Tsujii: Computational Linguistics, vol. 34, no. 1, pp. 35-80, 2008）”（以下、「英語構文解析文献」と称する。）で提案され、ウェブで一般公開されているｅｎｊｕなどの技術を利用することができる。
【００３４】
例えば、“John saw a beautiful girl yesterday.”という英文を入力としたとき、構文解析部が出力する英語の構文木は、図２（ａ）に示す通りである。そして、本実施形態の語順変換装置１００がその構文木を語順変換して出力する主辞後置英文は、図２（ｂ）に示す通りである。
【００３５】
構文木の各ノードにはノードＩＤ（IDentifier）が付与されている。図２のノード（丸で表記）の中に書かれている番号がノードＩＤである。灰色で表されているノードは、すぐ上側に接続しているノードにとっての主辞ノードである。白色で表されているノードは、主辞以外のノードである。例えば、ノードＩＤが３のノード（以下、ノード３と称する。他のノードも同様）に注目すると、このノード３はノード４とノード１１を子ノードとして持っており、主辞はノード４である。
【００３６】
なお、図示しないが、構文解析の結果得られる構文木の各ノードには、次の意味を示すラベルが付与されているものとする。
・主辞となるノードのＩＤ
・主語となるノードのＩＤ(動詞に対応するノードの場合のみ)
・目的語となるノードのＩＤ(他動詞に対応するノードの場合のみ)
【００３７】
前記した“John saw a beautiful girl yesterday.”という英文をｅｎｊｕで解析した結果をＸＭＬ（eXtensible Markup Language）形式で出力したものを図８に示す。図２の構文木のノードＩＤは、図８の<cons>タグ(２〜４，８〜１０，１４，１５，１８，１９，２２，２８，２９行目）中のid属性に記載されている。なお、図８ではidはc0~c12となっているが、図２ではcを省略して数字のみを記している。ｅｎｊｕの解析結果では、各ノードに、以下のような情報が付与されているので、これを用いて、各ノードにラベルを与える。
【００３８】
（１）子ノードの中の主辞ノードのＩＤ(head)
情報“head”は、<cons>タグ中に記載され、head属性を示す。つまり、例えば、図２（ａ）のノード３の場合、図８の８行目にはhead=“c4”と記載されていることから、ノード４がノード３に対する主辞ノードになる。同様に、図８の１４行目から、ノード８がノード６に対する主辞ノードになる。
【００３９】
（２）そのノードの第一引数となるノードのＩＤ(arg1)
情報“arg1”は、動詞の場合、その主語を指す。例えば、図２（ａ）において、ノード５(c5)に接続しているsawのＸＭＬタグ(図８の１１，１２行目)を見ると、arg1にはc1が記されている。そこで、ノード１(c1)のheadをたどっていくと（図８の３行目参照）ノード２(John)に至るので、ノード２に「主語」というラベルを付与する。
【００４０】
（３）そのノードの第二引数となるノードのＩＤ(arg2)
情報“arg2”は、他動詞の場合、その目的語を指し、be動詞の場合、補語を指す。例えば、図２（ａ）において、ノード５(c5)に接続しているsawのＸＭＬタグ(図８の１１，１２行目)を見ると、arg2にはc6が記されている。そこで、ノード６(c6)のheadをたどっていくと（図８の１４，１８行目参照）ノード１０(girl)に至るので、ノード１０に「目的語」というラベルを付与する。
【００４１】
本実施形態の語順変換装置１００では、入力された構文木の最上位のノード（ルートノード）から処理を開始して、処理対象のノード（以下、「処理対象ノード」と称する。）に接続している子ノードの中から主辞となるノードを探し出し、そのノードを子ノードの最後に移動させる。なお、記憶部１９５の語順不変ノード情報を参照し、子ノードが並列構造や数式の場合には、主辞ノードの移動を行わない。これを全ての子ノードについて繰り返すことにより、語順変換を行う。
【００４２】
以下、図１、図４、図８を参照して、語順変換の処理について説明する。なお、その後、図５Ａ、図５Ｂを参照して、語順変換の具体例について説明する。
【００４３】
＜初期設定部１１０＞
初期設定部１１０は、構文解析部から構文解析済みの英文（構文木）を受け取り（読み込み）（ステップＳ１００）、その英文の構文木のルートノードを処理対象ノードとして選択するとともに、ノードリストにその処理対象ノードを記録する（ステップＳ１１０）。
【００４４】
＜終端ノード判定部１２０＞
終端ノード判定部１２０は、処理対象ノードが終端ノード（子ノードのないノード）か否かを判定し（ステップＳ１２０）、ＹｅｓであればステップＳ１５０に進み、ＮｏであればステップＳ１３０に進む。なお、ｅｎｊｕでＸＭＬ形式での出力を選んだ場合は、<tok>タグが付いているものが終端ノードであり（図８の５，１１，１６，２０，２３，３０行目）、<cons>タグが付いているものは終端ノードでない。
【００４５】
＜子ノード列挙部１３０＞
子ノード列挙部１３０は、処理対象ノードが持つ子ノードのリストである「子ノードリスト」を作成する（ステップＳ１３０）。例えば、ｅｎｊｕのＸＭＬ出力をpythonのxml.dom.minidomライブラリで読んでいる場合は、childNodesで子ノードを列挙できる。
【００４６】
＜語順交換部１４０＞
語順交換部１４０は、処理対象ノードが並列構造や数式でない場合、「子ノードリスト」中の主辞ノードに対応するノードＩＤを、「子ノードリスト」の最後に移動させる（ステップＳ１４０）。ｅｎｊｕのＸＭＬ出力では、主辞ノードのＩＤは、処理対象ノードのhead属性に記録されている。並列構造の場合、処理対象ノードに対応する<cons>タグのcatまたはxcatという属性が“COOD”となる。例えば、“Mary saw John and Bob.”という英文では、“John and Bob”の部分が並列構造となる。
【００４７】
図９は、“Mary saw John and Bob.”という英文をｅｎｊｕで解析した結果であり、２０行目にxcat=“COOD”という記載がある。このノード(id=“c19”)のheadをたどっていくと“John”に到達する（図９の２０〜２３行目参照）。なお、数式かどうかは、等号や不等号が含まれているか、などの基準によって判定できる。そして、ノードリスト中の処理対象ノードのノードＩＤの部分を、書き換えた「子ノードリスト」で置き換える（ステップＳ１４１）。
【００４８】
ここで、子ノードの構造を考える理由は以下の通りである。周知の構文解析器の中には、A and BやA or Bなどの並列構造（コーディネーション）の場合に、Aを主辞と判定するものがある。このとき並列構造を考慮することなく単に主辞ノードに対応するノードを子ノードリストの最後に移動させてしまうと、B and AやB or Aに語順を変換することになってしまう。AとBが対等とはいえ、このような入れ替えは忠実な翻訳とは言えない。そこで、子ノードが並列構造の場合には語順の入れ替えを行わないことにより、このような構文解析器に起因する問題を解決することができる。また、m<n+1のような数式も、語順を入れ替えると意味が変わってしまうので、語順を入れ替えない。
【００４９】
＜動詞判定部１５０＞
動詞判定部１５０は、引数ラベル付与部１６０を適用するために、処理対象ノードが動詞であるか否かを判定し（ステップＳ１５０）、ＹｅｓであればステップＳ１６０に進み、ＮｏであればステップＳ１７０に進む。
【００５０】
＜引数ラベル付与部１６０＞
引数ラベル付与部１６０は、英語に存在しない助詞を生成するための前処理を行う。引数ラベル付与部１６０は、処理対象ノードが動詞であるときに、その主語・目的語となっている単語に、ラベル付けをする。ｅｎｊｕの場合は、動詞に付与されているarg1、arg2属性に対応するノードＩＤが記載されている。ただし、これらのノードＩＤは、単語に直接対応していないので、headをたどるという処理を加える必要がある。
【００５１】
つまり、次のようにして、終端ノード（単語）に到達することができる。
・処理対象ノード（動詞）のarg1のノードからスタートして、headをたどれば、主語である終端ノード（単語）に到達できる。
・処理対象ノードのarg2のノードからスタートして、headをたどり、目的語である終端ノード（単語）に到達できる。
【００５２】
そして、これらの終端ノードＩＤに主語、目的語であることを示すラベルva1, va2を付ける（ステップＳ１６０）。例えば、図２のノード５(saw)であれば、arg1=c1, arg2=c6なので（図８の１２行目参照）、ノード１のheadであるJohnにva1、ノード６のhead（ノード８）のhead（ノード１０）であるgirlにva2というラベルが付与される。
【００５３】
なお、ラベルを付ける際に、入力文が受動態であるか否かを判別して、受動態である場合には、構文解析器の結果を修正して主格及び目的格のラベルを割り当ててもよい。例えば、“A was stolen by B”のような文では、構文解析器によっては、Aが目的語、Bが主語と判定されることがあるが、これを、単純に構文情報に合わせてAを主語、Bを目的語としてラベルを割り当てるほうが、原文に忠実な翻訳を得ることができる。
【００５４】
また、入力文が“John bought a toy that was popular in Japan”の場合、toyは、boughtの目的語であり、かつ、wasの主語である。このような場合、連体修飾されている名詞(toy)は、連体修飾節の外の格によってのみラベル付けする。つまり、このtoyは、連体修飾節の外側の動詞boughtの目的語なので、目的語としてラベル付けする。
【００５５】
＜単語置換部１７０＞
単語置換部１７０は、ノードリスト中の処理対象ノードを、対応する単語で置き換える（ステップＳ１７０）。なお、その際、ノードリスト中にva1,va2のラベルがある場合、それらのラベルは、すでに置き換えられている単語に対応付けたまま残す（図５Ｂの（１４）参照）。
【００５６】
＜ノード選択部１８０＞
ノード選択部１８０は、ノードリストにノードＩＤが含まれているか否かを判定し（ステップＳ１８０）、Ｙｅｓであれば、ノードリストの先頭から最も近いノードＩＤを処理対象ノードとして選択し（ステップＳ１８１）、ステップＳ１２０に進む。ステップＳ１８０でＮｏであれば、ステップＳ１９０に進む。
【００５７】
＜助詞記号追加部１９０＞
助詞記号追加部１９０は、ノードリスト中のva1,va2のラベルのある単語の直後に、助詞に相当する語が入る可能性を示す助詞相当語“_va1”,“_va2”を追加して（ステップＳ１９０）、ノードリスト中の単語を前から順に出力する（ステップＳ２００）。なお、日本語における主節の主語は、「が」よりも「は」のほうが自然な場合が多いので、主節の“_va1”を“_va0”のような別の語に置き換えてもよい（例については後記）。ただし、「が」と「は」、「を」と「に」などの使い分けは難しいので、これらの助詞相当語を実際に日本語の単語で固定的に置き換えることはせず、どのような状況でどの助詞に置き換えるかは統計的機械翻訳の処理にゆだねる。
以上の処理により、主辞後置に単語が並び替えられた英文が出力される。
【００５８】
次に、構文解析部で得られた構文木が図２（ａ）に示すものであるとして、上記の語順変換装置１００の動作を具体的に説明する。ここで、ノードリストの更新される様子を図５Ａ及び図５Ｂに示す。なお、以下の（）内の番号（（１）、（２）、・・・）は、図５Ａ及び図５Ｂにおける（）内の番号（（１）、（２）、・・・）と対応している。また、図５Ａ及び図５Ｂにおいては、ノードリスト中で、１つ前のステップと比較して内容が更新された部分に下線を施している。
【００５９】
（１）まず、ノード０を処理対象ノードとして選択する（図４のステップＳ１１０）。ノードリストは、[ノードID:0]となる。
【００６０】
（２）ノード０には子ノードが存在するので（終端ノードではないので）、終端ノード判定部１２０（図４のステップＳ１２０）から子ノード列挙部１３０（図４のステップＳ１３０）に処理を移行する。子ノード列挙部１３０において、ノード０の子ノードのリスト[ノードID:1，ノードID:3]を、子ノードリストとして設定する（図４のステップＳ１３０）。語順交換部１４０では、子ノードの構造は並列構造や数式でないので、子ノードリスト中の主辞ノード（ノード３）を、子ノードリストの最後に移動させる（図４のステップＳ１４０）。ただし、この場合は既に主辞ノードが最後になっているため移動の必要はない。よって、ノードリストを[ノードID:1,ノードID:3]に置き換える（図４のステップＳ１４１）。
【００６１】
（３）次に、ノード選択部１８０は、ノード１を処理対象ノードとして選択し（図４のステップＳ１８１）、同様の処理を繰り返す。ノード１の子ノードはノード２のみである。よって、語順交換部１４０で語順を交換する必要はなく、ノードリストは[ノードID:2,ノードID:3]となる。
【００６２】
（４）次に、ノード２を処理対象ノードとして選択する。ノード２には子ノードが存在しないので動詞判定部１５０（図４のステップＳ１５０）に処理が移行される。また、ノード２は動詞ではないので（図４のステップＳ１５０でＮｏ）、単語置換部１７０（図４のステップＳ１７０）に処理が移行される。ノード２に対応する単語はJohnなので、ノードリストが[単語:“John”,ノードID:3]となる（図４のステップＳ１７０）。
【００６３】
（５）次に、ノード３を処理対象ノードとして選択する。子ノードリストは[ノードID:4,ノードID:11]となる。語順交換部１４０は、主辞ノード（ノード４）を、子ノードリストの最後に移動させる。よって、その子ノードリストを反映したノードリストは[単語:“John”,ノードID:11,ノードID:4]となる。
【００６４】
（６）続いて、ノード１１を処理対象ノードとして選択する。子ノードはノード１２しかないので、ノード１１がノード１２で置き換えられ、ノードリストが[単語:“John”,ノードID:12,ノードID:4]となる。
【００６５】
（７）次に、ノード１２を処理対象ノードとして選択する。ノード１２には子ノードが存在しないので、単語に置き換えられ、ノードリストは[単語:“John”,単語:”yesterday”,ノードID:4]となる。
【００６６】
（８）ノード４を処理対象ノードとして選択して同様の処理を繰り返すと、ノードリストは[単語:“John”,単語:”yesterday”,ノードID:6,ノードID:5]となる。
【００６７】
（９）ノード６を処理対象ノードとして選択する。結果、ノードリストは[単語:“John”,単語:”yesterday”,ノードID:7,ノードID:8,ノードID:5]となる。
【００６８】
（１０）ノード７を処理対象ノードとして選択する。ノード７には子ノードが存在しないので、単語に置き換えられ、ノードリストが[単語:“John”,単語:”yesterday”,単語:“a”,ノードID:8,ノードID:5]となる。
【００６９】
（１１）ノード８を処理対象ノードとして選択し、ノードリストが[単語:“John”,単語”yesterday”,単語:“a”,ノードID:9,ノードID:10,ノードID:5]となる。
【００７０】
（１２）同様に、ノード９を処理対象ノードとして選択し、単語に置き換えるので、ノードリストは[単語:“John”,単語:”yesterday”,単語:“a”,単語:“beautiful”,ノードID:10,ノードID:5]となる。
【００７１】
（１３）ノード１０を処理対象ノードとして選択し、単語に置き換えるので、ノードリストは[単語:“John”,単語:”yesterday”,単語:“a”,単語:“beautiful”,単語:“girl”,ノードID:5]となる。
【００７２】
（１４）次に、ノード５を処理対象ノードとして選択する。ノード５は動詞なので（図４のステップＳ１５０でＹｅｓ）、引数ラベル付与部１６０においてその属性を調べると、arg1=c1,arg2=c6と書かれている（図８の１０〜１２行目参照）。そこで、ノード１の属性を調べるとhead=c2なので（図８の３行目参照）、ノード２の“John”にたどりつく（図８の４，５行目参照）。そこで、“John”に“va1”のラベルが付与される（図４のステップＳ１６０）。また、ノード６はhead=c8（図８の１４行目参照）、ノード８はhead=c10なので（図８の１８行目参照）、“girl”にたどりつき（図８の２２，２３行目参照）、ラベル“va2”が“girl”に付与される（図４のステップＳ１６０）。したがって、ノードリストは[単語:“John”:va1,単語:”yesterday”,単語:“a”,単語:“beautiful”,単語:“girl”:va2,単語:“saw”]となる。なお、ここではva1は主語、va2は目的語を示すラベルとして使用している。
【００７３】
（１５）最後に、助詞記号追加部１９０によって、ラベルva1,va2が付与された単語の直後に助詞相当語“_va1(が)”,“_va2(を)”が追加され、ノードリストは[“John”,“_va1”,”yesterday”,“a”,“beautiful”,“girl”,“_va2”,“saw”]となる（図４のステップＳ１９０）。さらに、“_va1（が）”を“_va0（は）”で置き換えると、ノードリストは[“John”,“_va0”,”yesterday”,“a”,“beautiful”,“girl”,“_va2”,“saw”]となる（図４のステップＳ１９０）。
【００７４】
以上の処理により、“John saw a beautiful girl yesterday.” という英文が、“John _va0 yesterday a beautiful girl _va2 saw.”という主辞後置英文に変換される。これにより、「ジョン  は  昨日  美しい  少女  を  見た。」と逐次的に日本語に翻訳することが可能となる。
【００７５】
なお、もっと複雑な英文を入力とした場合でも、日本語に近い語順に変換することができる。例えば、“John went to the police because Mary lost his wallet.”という英文は、“John _va0 Mary _va1 his wallet _va2 lost because the police to went.”と変換される。これを逐次的に日本語に翻訳すると、“ジョン  は  メアリ  が  彼の  財布  を  なくした  ので  警察  に  行った。”となり、語順変換の精度が高いことがわかる。
【００７６】
同様に、多くの英文を日本語に近い語順にすることができる。これは、日本語が「主辞を最後に置く」という、規則的な性質を持つ言語（主辞後置型言語）であるために可能なことである。
【００７７】
このように、本実施形態の語順変換装置１００によれば、原言語（英語など）の文についての構文木を調べ、主辞ノード（被修飾語）を主辞以外のノード（修飾語）の後ろに移動することで、原言語の文の各単語を、主辞後置型言語である目的言語の語順に並べ替えることができる。なお、その際、並列構造や数式など、語順を変えるべきでないノードの語順を入れ替えないようにしたことで、より精度の高い語順変換を行うことができる。
【００７８】
なお、語順変換装置１００は、英語だけでなく、他の言語にも適用できる。例えば、独語（ドイツ語）の場合について説明する。図３は、図２と同様の説明図である。つまり、図３（ａ）は、原言語を独語、目的言語を日本語とした場合の入力の構文木を示す図である。図３（ｂ）は、その構文木を主辞後置に変換した結果を示す図である。
【００７９】
独語では、助動詞があるとき、動詞が文末に移動する。図３（ａ）に示す“Albert muste jeden Tag Arbeiten.”について語順変換を行うと、図３（ｂ）に示す“Albert （_va0） jeden Tag Arbeiten muste.”となる。これを逐次的に日本語に翻訳すると、「アルバートは毎日働かなければならなかった。」となり、語順変換の精度が高いことがわかる。
【００８０】
＜第２実施形態＞
次に、第１実施形態の語順変換装置１００を用いた機械翻訳用統計モデル作成装置について説明する。なお、この第２実施形態では、原言語を英語、目的言語を日本語とした場合を例に説明をするが、日本語の代わりに目的言語を主辞後置の文法を持つ韓国語などの言語としてもよい。また、原言語も英語の代わりに独語などの言語としてもよい。
【００８１】
図６に示すように、第２実施形態の機械翻訳用統計モデル作成装置２００は、コンピュータ装置であり、英語と日本語の対訳コーパス２１０、日本語の単言語コーパス２２０、構文解析部２３０、語順変換部１００ａ（第１実施形態の語順変換装置１００に相当。特許請求の範囲における「主辞後置対訳コーパス作成部」も兼ねる。）、主辞後置対訳コーパス２４０、統計モデル作成部２５０を備えている。
【００８２】
機械翻訳用統計モデル作成装置２００では、従来の統計的機械翻訳（ＳＭＴ）技術において翻訳用の統計モデル（翻訳ルール）を作成する際に使用する学習データのうち、英語と日本語の対訳コーパス２１０の英語の部分に対して、構文解析部２３０で各文を前記した英語構文解析文献などの手法により構文解析し、語順変換部１００ａで語順変換を行うことにより、主辞後置に変換した主辞後置対訳コーパス２４０を作成する。
【００８３】
そして、統計モデル作成部２５０で、主辞後置対訳コーパス２４０と日本語の単言語コーパス２２０を学習データとして、周知の統計的機械翻訳の技術であるＳＭＴ（特許文献１，２等参照）により統計モデル２６０を作成（学習）することができる。
【００８４】
＜第３実施形態＞
次に、第１実施形態の語順変換装置１００と第２実施形態の統計モデル２６０を用いた機械翻訳装置について説明する。図７に示すように、第３実施形態の機械翻訳装置３００は、コンピュータ装置であり、構文解析部２３０、語順変換部１００ａ（第１実施形態の語順変換装置１００に相当）、統計的機械翻訳部３２０、統計モデル２６０（第２実施形態で作成）を備えている。
【００８５】
機械翻訳装置３００では、入力された英文を、構文解析部２３０により構文解析した後、語順変換部１００ａで語順変換を行うことにより、主辞後置英文を作成する。そして、第２実施形態の機械翻訳用統計モデル作成装置２００によって作成（学習）した統計モデル２６０を用いて、統計的機械翻訳部３２０において、主辞後置英文を日本語に翻訳する。なお、統計的機械翻訳部３２０では、周知のルールベース型機械翻訳（ＲＢＭＴ）や統計的機械翻訳（ＳＭＴ）の手法をそのまま用いることができる。
【００８６】
このように、機械翻訳装置３００によれば、英日翻訳などの語順が大きく異なる言語間の翻訳で、目的言語が主辞後置型言語の場合に、あらかじめ各文を目的言語の語順に近づけておくことができるので、膨大な語順の探索を行うことなく、ほぼ逐語的に訳すことが可能になり、高速に自然な語順の翻訳結果を得ることができる。
【００８７】
また、本手法では、原言語の構文解析部の作成者は、原言語の文法の知識があればよく、目的言語の文法を知っている必要はない。構文解析ができれば、その構文解析済みの文（構文木）を語順変換部１００ａに適用するだけで、目的言語の語順に近づけることができる。
【００８８】
また、非特許文献３，４に開示された技術では、基本的には動詞や形容詞といった用言を後置することだけを行っており、そのために、because節などを含む複雑な文を日本語の語順にすることができない。例えば、非特許文献４では、becauseが文頭に来てしまうことが示されている。このため、日本語や韓国語の語順とは大きくかけ離れてしまう。一方、本実施形態によれば、品詞を限定せずに後置処理を行うことにより、because節ではbecauseが最後に来ることになり、becauseが日本語の「ので」と同じ位置に配置される。
【００８９】
以上で本実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。
例えば、語順不変ノード情報としては、並列構造、数式以外に、語順変換装置１００等の管理者が自由に設定してよい。
その他、各装置の構成や処理の具体的な内容について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００９０】
１００  語順変換装置
１００ａ  語順変換部
１０１  処理部
１１０  初期設定部
１２０  終端ノード判定部
１３０  子ノード列挙部
１４０  語順交換部
１５０  動詞判定部
１６０  引数ラベル付与部
１７０  単語置換部
１８０  ノード選択部
１９０  助詞記号追加部
１９５  記憶部
２００  機械翻訳用統計モデル作成装置
２１０  英語と日本語の対訳コーパス
２２０  日本語の単言語コーパス
２３０  構文解析部
２４０  主辞後置対訳コーパス
２５０  翻訳用統計モデル作成部
２６０  統計モデル
３００  機械翻訳装置
３２０  統計的機械翻訳部
【図１】
0005410334.tif 000002
【図２】
0005410334.tif 000003
【図３】
0005410334.tif 000004
【図４】
0005410334.tif 000005
【図５Ａ】
0005410334.tif 000006
【図５Ｂ】
0005410334.tif 000007
【図６】
0005410334.tif 000008
【図７】
0005410334.tif 000009
【図８】
0005410334.tif 000010
【図９】
0005410334.tif 000011