JP2004110583A - 機械翻訳方法およびそのためのコンピュータプログラム - Google Patents
機械翻訳方法およびそのためのコンピュータプログラム Download PDFInfo
- Publication number
- JP2004110583A JP2004110583A JP2002274076A JP2002274076A JP2004110583A JP 2004110583 A JP2004110583 A JP 2004110583A JP 2002274076 A JP2002274076 A JP 2002274076A JP 2002274076 A JP2002274076 A JP 2002274076A JP 2004110583 A JP2004110583 A JP 2004110583A
- Authority
- JP
- Japan
- Prior art keywords
- translation
- node
- division
- input sentence
- sentence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
【課題】分割した後の各部分の翻訳可能性が高くなるように文を分割して翻訳する機械翻訳装置を提供する。
【解決手段】この方法は、入力文の先頭と最後とを含めて複数個のノードを定義するステップと、複数個のノードが定義された入力文を、予め定められた基準にしたがって複数個のノードのいずれかの組合せで1または複数個の部分に分割するステップ72,74,76,78,80と、1または複数個の部分の各々の翻訳結果を結合して入力文に対する翻訳結果を生成するステップとを含み、予め定められた基準は、翻訳結果の得られない部分に含まれる単語数が小さい分割方法を優先すること、および翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法がある場合には、分割数の小さい分割方法を優先すること、という基準を含む。
【選択図】 図5
【解決手段】この方法は、入力文の先頭と最後とを含めて複数個のノードを定義するステップと、複数個のノードが定義された入力文を、予め定められた基準にしたがって複数個のノードのいずれかの組合せで1または複数個の部分に分割するステップ72,74,76,78,80と、1または複数個の部分の各々の翻訳結果を結合して入力文に対する翻訳結果を生成するステップとを含み、予め定められた基準は、翻訳結果の得られない部分に含まれる単語数が小さい分割方法を優先すること、および翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法がある場合には、分割数の小さい分割方法を優先すること、という基準を含む。
【選択図】 図5
Description
【0001】
【発明の属する技術分野】
この発明は機械翻訳方法に関し、特に、入力文を複数個の部分に分割して部分翻訳を試みることにより翻訳成功率を向上させる機械翻訳方法およびそのためのコンピュータプログラムに関する。
【0002】
【従来の技術】
出願人は、用例ベース翻訳の一つとして単語列編集距離を使った翻訳方式(DP−match Driven transDucer、以下「D3」と呼ぶ)を提案した(後掲の非特許文献1を参照) 。本方式では対訳コーパスを直接利用することにより、人手による翻訳ルール、パターンの記述を不要とする。翻訳システム開発のコスト削減が可能となり、タスク移植性、多言語適用性の向上が期待できる。
【0003】
旅行会話タスクにおける日英翻訳へ当方式の適用実験を行ない高い翻訳品質を得た。翻訳一対比較法(後掲の非特許文献2を参照)によるとTOEIC 750点の日本人と同等の翻訳品質のレベルである。
【0004】
D3は、対訳コーパス、対訳辞書、類語辞書を用いて翻訳を行なう。入力文と類似する用例を基に次の手順により訳文を生成する。
(1) 用例検索
入力文と距離が最小の原文を持つ用例を対訳コーパスから検索する。与えられたしきい値未満の距離の用例が存在しなければ検索および翻訳処理は失敗(FAIL)となる。文同士の距離は次の式で定義している。
距離=(2Σ置換単語間距離+削除挿入単語数)/(入力文長+用例原文長)
ここで単語間距離は類語辞書に基づき0と1との間の値をとる。文長は文の単語数を意味する。
(2) 翻訳パターン生成
用例原文の入力文と異なる箇所を変項とし、変項と用例訳文中の単語、変項と入力文中の単語の対応をとり翻訳パターンを生成する。対応を決める際に対訳辞書、類語辞書を参照する。
(3) 翻訳パターン選択
同じ距離のパターンが複数ある場合は一つ選択する。選択基準には変項の対応率、用例数、変項中の単語の出現頻度を用いる。
(4) 訳文生成
用例訳文中の変項対応箇所を対応する入力文中の単語の訳語で置き換える。この際対訳辞書を利用する。
【0005】
【特許文献1】
特開平10−312382号公報(第9欄段落0038第4行目〜11行目、図6)
【非特許文献1】
スミタ、E.(Sumita, E.)「単語シーケンス間のDPマッチングを用いた用例ベースの機械翻訳(Example−Based machine translation using DP−matching between word sequences)」第39回ACLのDDMTワークショップ予稿集(Proc. of DDMT workshop of 39th ACL)、2001年
【非特許文献2】
菅谷文明ら「音声翻訳システムと人間との比較による音声翻訳能力評価手法の提案と比較実験」電子情報通信学会論文誌D−II、Vol. J84−D−II, No. 11、2001年
【非特許文献3】
スミタ、E(Sumita, E.)「話し言葉の翻訳に固有の問題に対する解決:ATR−MATRIXのアプローチ(Solutions to Problems Inherent in Spoken−language Translation: The ATR−MATRIX Approach)」MTサミットVII予稿集(Proc. of MT Summit VII)、1999年
【非特許文献4】
タケザワ、Tら(Takezawa T. et al.)「実世界における旅行会話の言語翻訳のための、広範囲のバイリンガルコーパスに向けて(Toward a Broad−coverage Bilingual Corpus for Speech Translation of Travel Conversations in the Real World)」LREC−2002予稿集、2002年
【非特許文献5】
大野晋、浜西正人、「類語新辞典」角川書店、1984年
【非特許文献6】
バーガー A.Lら(Berger A.L. et al)「自然言語処理への最大エントロピーアプローチ(A Maximum Entropy Approach to Natural Language Processing)」計算言語学協会、1996年
【非特許文献7】
竹沢寿幸ら「発話単位の分割または接合による言語処理単位への変換手法」自然言語処理 Vol. 6 No. 2, 1999年
【非特許文献8】
中嶋秀治ら「音声認識過程での発話分割のための統計的言語モデル」情報処理学会論文誌 Vol. 42 No. 11、2001年
【非特許文献9】
金淵培ら「日英機械翻訳のための日本語長文自動短文分割と主語の補完」情報処理学会論文誌 Vol. 35 No. 6、1994年
【発明が解決しようとする課題】
旅行会話に関する基本文集(前掲の非特許文献4を参照)をテスト文と学習文とに分けて使用し実験を行なった。学習文つまり用例に使用した文数は152,172、テスト文は1,254文である。テスト文の平均文長は6.5語である。対訳辞書には旅行会話用に作成した辞書(前掲の非特許文献3を参照)、類語辞書には角川類語辞書(前掲の非特許文献5)を用いる。翻訳結果に対して日本語のできる英語ネイティブにより4段階の評価を与える(前掲の非特許文献3)。評価レベルを次に示す。
【0006】
A:問題なし
B:主要な情報が容易に復元できる
C:主要な情報がなんとか復元できる
D:主要な情報が復元できない
また用例検索に失敗し翻訳結果の得られない場合はFAILと表記する。用例検索の距離のしきい値は1/3とする。
【0007】
図11に実験結果を示す。横軸は文長、縦軸は評価レベル別の文数である。文が長くなると翻訳品質が悪くなることが分かる。文長が10以上になると特に劣化が大きい。
【0008】
D3において翻訳結果が得られないのは、入力文との距離がしきい値未満の類似用例が見つからない場合である。特に入力文が長くなれば類似用例の存在しない可能性が大きくなる。距離と翻訳品質の間には明確な相関関係が存在する(非特許文献1)ため、むやみにしきい値を大きくするのは適当ではない。一方、入力文から部分を切り出せば類似用例が見つかり翻訳が成功する可能性がある。翻訳結果の得られない入力文への対策として、入力文を分割して翻訳することができれば、より多くの翻訳において正しい翻訳結果が得られると思われる。
【0009】
翻訳の入力文を分割する従来技術の例として、特許文献1が存在する。この文献では、文をカンマ、特定の語などに基づく分割ルールにしたがって分割する。
【0010】
しかしこの従来技術では、分割ルールが特定の言語に依存して定められるため、言語にあわせて文分割ルールを記述しなければならない。また、この分割ルールにしたがって文を分割した場合、確かに文が短くなるので翻訳ができる可能性は高くなる。しかし、単に文を短くするだけでは、分割した後の各部分が翻訳可能となるとは限らない。
【0011】
それゆえに本発明の目的は、分割した後の各部分の翻訳可能性が高くなるように文を分割して翻訳する機械翻訳装置、方法、およびそのためのプログラムを提供することである。
【0012】
本発明の他の目的は、特定の言語に制限されず、分割した後の各部分の翻訳可能性が高くなるように文を分割して翻訳する機械翻訳装置、方法、およびそのためのプログラムを提供することである。
【0013】
【課題を解決するための手段】
本発明のある局面にかかる機械翻訳方法は、データ処理システムにおける機械翻訳方法であって、入力文中に、入力文の先頭と最後とを含めて複数個のノードを定義するステップと、複数個のノードが定義された入力文を、予め定められた基準にしたがって複数個のノードのいずれかの組合せで1または複数個の部分に分割するステップと、1または複数個の部分の各々の翻訳結果を結合して入力文に対する翻訳結果を生成するステップとを含み、予め定められた基準は、翻訳結果の得られない部分に含まれる単語数が小さい分割方法を優先すること、および翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法がある場合には、分割数の小さい分割方法を優先すること、という基準を含む。
【0014】
好ましくは、この機械翻訳方法は、用例ベースの機械翻訳を用いる方法であって、予め定められた基準はさらに、翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法があり、かつそれらの分割数が同じ場合には、1または複数個の部分の各々と、当該1または複数個の部分の各々の翻訳の基礎となる類似用例との間に定義される距離の合計の小さいものを優先すること、という基準を含む。
【0015】
さらに好ましくは、分割するステップは、予め定められた基準に適合するように定められる所定のコスト関数を最小とするような、入力文の先頭のノードと入力文の最後のノードとの間でのノードの経路を探索するステップを含む。
【0016】
所定のコスト関数は、入力文のうち、分割によっても翻訳できない単語数と所定のコスト定数との積と、分割により翻訳可能となった部分の数との和により定義されるものであってもよい。
【0017】
この方法は、所定のコスト定数を、複数個のノードの数以上となるように予め定義するステップをさらに含んでもよい。
【0018】
複数個のノードは、入力文の単語の境界において定義されてもよい。
【0019】
分割するステップは、入力文の先頭のノードと最後のノードとの間で翻訳処理を試みるステップと、先行するステップで試みられた翻訳処理が成功したか否かを判定し、翻訳処理が成功するまで、または隣接するノード間での翻訳処理が失敗したと判定されるまで、翻訳処理の対象の末尾を一ノードずつ前に移動して繰返し翻訳処理を試みるステップと、翻訳処理が成功した、または隣接するノード間での翻訳処理が失敗したと判定されたことに応答して、それぞれ所定の値をコスト関数に加算して更新し、さらに次の翻訳処理の対象の先頭ノードを翻訳処理における対象の末尾のノードの次のノードに進めるステップと、繰返し翻訳処理を試みるステップと加算するステップとを所定の終了条件が成立するまで実行するステップとを含んでもよい。
【0020】
所定の終了条件が成立するまで実行するステップは、次のノードが最後のノードか否かを判定するステップと、次のノードが最後のノードではないと判定されたことに応答して繰返し翻訳処理を試みるステップと加算するステップとを再び実行するステップと、次のノードが最後のノードと判定されたことに応答して処理を終了するステップとを含んでもよい。
【0021】
この方法は、さらに、進めるステップで更新されたコスト関数の値が所定のしきい値より大きい場合には、当該分割方法を分割方法の候補から除外するステップを含んでもよい。
【0022】
本発明の他の局面にかかるコンピュータプログラムは、コンピュータ上で実行されることにより、上に述べたいずれかの方法のすべてのステップをコンピュータが実行するように適合されたコンピュータプログラムコード手段を含む。
【0023】
本発明の他の局面にかかるコンピュータプログラムは、コンピュータ可読な媒体上に記録されたものであってもよい。
【0024】
【発明の実施の形態】
―分割翻訳―
入力文を複数の部分に分割する、各々の部分の翻訳結果を連結して入力文全体の翻訳結果とする。分割の判定には次の基準を使う。
▲1▼ 翻訳結果の得られない部分の単語数が小さい方が良い。
▲2▼ ▲1▼が同じならば、分割数が小さい方が良い。
▲3▼ ▲2▼が同じならば、部分_類似用例間距離の合計が小さい方が良い。
【0025】
このように分割方法は、分割部分の翻訳可能性に注目し、単語の連接情報や文法的知識は仮定していない。この基準による最良の分割翻訳を如何に見つけ出すかは探索問題となる。
【0026】
―分割翻訳の例―
分割翻訳の例を示す。この例では入力文は2分割され、各部分の翻訳結果を連結した結果が出力される。
[入力文]
「はい合計百九十五ドルになりますカードでお支払いですね」
[分割結果]
「はい合計百九十五ドルになります/カードでお支払いですね」
[翻訳結果]
“it’s one hundred ninety five dollars in total, will you be paying with your credit card”
―ハードウェア構成―
以下に述べる本発明の各実施の形態は、コンピュータおよびコンピュータ上で動作するソフトウェアにより実現される。もちろん、以下に述べる機能の一部又は全部を、ソフトウェアでなくハードウェアで実現することも可能である。
【0027】
図1に、本実施の形態で利用されるコンピュータシステム20の外観図を、図2にコンピュータシステム20のブロック図を、それぞれ示す。なおここに示すコンピュータシステム20はあくまで一例であり、この他にも種々の構成が可能である。
【0028】
図1を参照して、コンピュータシステム20は、コンピュータ40と、いずれもこのコンピュータ40に接続されたモニタ42、キーボード46、およびマウス48を含む。コンピュータ40にはさらに、CD―ROM(Compact Disc Read−Only Memory)ドライブ50と、FD(Flexible Disk)ドライブ52とが内蔵されている。
【0029】
図2を参照して、コンピュータシステム20はさらに、コンピュータ40に接続されるプリンタ44を含むが、これは図1には示していない。またコンピュータ40はさらに、CD―ROMドライブ50およびFDドライブ52に接続されたバス66と、いずれもバス66に接続された中央演算装置(Central Processing Unit:CPU)56、コンピュータ40のブートアッププログラムなどを記憶したROM(Read−Only Memory)58、CPU56が使用する作業エリアおよびCPU56により実行されるプログラムの格納エリアを提供するRAM(Random Access Memory)60、および翻訳のための用例データベース、翻訳結果などを格納するハードディスク54を含む。
【0030】
以下に述べる実施の形態のシステムを実現するソフトウェアは、たとえば、CD―ROM62またはフレキシブルディスク64のような記録媒体上に記録されて流通し、CD―ROMドライブ50またはFDドライブ52のような読取装置を介してコンピュータ40に読込まれ、ハードディスク54に格納される。CPU56がこのプログラムを実行する際には、ハードディスク54からこのプログラムを読み出してRAM60に格納し、図示しないプログラムカウンタによって指定されるアドレスから命令を読出して実行する。CPU56は、処理対象のデータをハードディスク54から読出し、処理結果を同じくハードディスク54に格納する。
【0031】
コンピュータシステム20の動作自体は周知であるので、ここではその詳細については繰り返さない。
【0032】
なお、ソフトウェアの流通形態は上記したように記憶媒体に固定された形には限定されない。たとえば、ネットワークを通じて接続された他のコンピュータからデータを受取る形で流通することもあり得る。また、ソフトウェアの一部が予めハードディスク54中に格納されており、ソフトウェアの残りの部分をネットワーク経由でハードディスク54に取込んで実行時に統合するような形の流通形態もあり得る。
【0033】
一般的に、現代のプログラムはコンピュータのオペレーティングシステム(OS)またはいわゆるサードパーティ等によってコンピュータ上で提供される汎用の機能を利用し、それらを所望の目的にしたがって組織化した形態で実行することにより前記した所望の目的を達成する。したがって、以下に述べる本実施の形態の各機能のうち、OSまたはサードパーティが提供する汎用的な機能を含まず、それら汎用的な機能の実行順序の組合せだけを指定するプログラム(群)であっても、それらを利用して全体的として所望の目的を達成する制御構造を有するプログラム(群)である限り、それらが本発明の技術的範囲に含まれることは明らかである。
【0034】
ただし、本発明をプログラムではなくハードウェア回路によって実現することも可能であることはもちろんである。
【0035】
―データ構造―
以下、本実施例のうち、翻訳を行なう機能部分を除き、入力文を分割する機能について詳細に説明する。最初に、文分割処理のためのソフトウェアで使用されるデータの構造について説明する。なお、以下の処理では、前に述べた条件▲1▼、▲2▼の解を探しておいて、残った解を条件▲3▼で比較する、というやり方を採る。以下に示すのは条件▲1▼、▲2▼の探索方法である。
【0036】
分割条件▲1▼▲2▼を満足する解を探すということは、次のコストが最小の分割を見つけることである。
・コスト=翻訳もれ単語数×BigNumber+部分翻訳数
ここで、BigNumberは、予め定められた,文長より大きい数のことをいう。通常は1000程度でよい。文長とは前述のとおり文に含まれる単語数をいう。
【0037】
図3に、以下の処理で使用するトークンレコードの構造を示す。このトークンレコードは、図4に示すトークン配列の各項目を構成している。図3を参照して、各トークンレコードは、nodeフィールドと、costフィールドと、path_listフィールドと、nextフィールドとを含む。
【0038】
nodeフィールドは、以下に説明するノードの番号(ノード番号)を格納する。たとえば入力文の語長をnとして、n+1個のノードを「ノード0、語1、ノード1、語2、ノード2、語3、ノード3、…、語n、ノードn」のように定義する。ここではノード0が先頭のノード、ノードnが最後のノードである。各ノードの番号(0からnまで)がノード番号である。
【0039】
costフィールドは、ノード0からノードnodeに進むまでの距離の合計を示す。ここにノード間の距離を次のように定義する。
・ノード間の単語列の翻訳が成功すればそのノード間は距離1
・隣接するノード間で翻訳が失敗すればそのノード間は距離BigNumberpath_listはノード0からノードnに進むまでの道筋(分割の仕方)を表わす。道筋は複数あり得るので、path_listはいわゆるリスト形式として表わす。
【0040】
nextフィールドは、次に進む語数を表わす。この語数は、処理の最初には最終語までの語数で初期化されるが、その間での翻訳を試した後、より短い値で更新される。
【0041】
図4に配列Sの構造を示す。配列Sは、図3に示したトークンの配列である。インデックスは0、1、…、文長である。インデックスは、各トークンに対応するノードのノード番号と一致する。各トークンのnodeフィールドの値は、そのトークンが格納されている項目のインデックスと一致するので、トークンにnodeフィールドを設けることは必ずしも必要ではない。しかし、アルゴリズム記述上でnodeフィールドを設けると便利なので、このように各トークンにnodeフィールドを設けている。
【0042】
このようにデータを準備するのは、上に述べた▲1▼〜▲3▼の条件を充足する文の分割方法を求めることは、ノード0からノードnへの最短経路を求める問題に帰着するためである。その解を求めるアルゴリズムは種々考えられるが、そのうちの一つを以下に示す。なお以下の説明では、トークンのフィールドを「トークン名.フィールド名」で表わすことがある。また以下の説明中で「NIL」という表現はデータがないことを示す。
【0043】
―プログラムの制御フロー―
図5に、本実施の形態にかかる文分割処理を実現するプログラムの制御のフローチャートを示す。図5を参照して、最初に初期化を行なう(70)。具体的には、ある文分割方法を採用するか否かを判定する際に用いられる、その分割方法に伴うコストの大きさのしきい値を表わす変数にBigNumber×文長を代入し、S[0]にトークンの初期値として{(0,0、{{}}、文長)}を代入する。S[1]〜S[n]までにはNILを代入する。
【0044】
続いて、nextフィールドの値が0になっていないトークンがあるか否かを判定する(72)。そうしたトークンが存在していなければ処理を終了する。このとき、S[文長]にトークンがあればそれが解となり、そのトークンのpath_listフィールドの内容が文分割の仕方を示す。
【0045】
nextフィールドの値が0となっているトークンがあれば、ステップ74で次にどのトークンに処理を進めるかについての処理を行なう。具体的には、配列Sからnext≠0、かつcost最小、かつnode最大のトークンを1個取出す。これが次に処理すべきノードに対応するトークンである。このトークンをtoken1とする。
【0046】
続いてステップ76で、ノードtoken1.nodeとノードtoken1.node+token1.nextの間の距離を計算する。図6に、ノード間の距離の計算処理の詳細を示す。ここでは、ノード間の単語列の翻訳を試みる事によりノード間の距離を計算する。
【0047】
図6を参照して、まずノード間の単語列の翻訳を試みる(90)。token1.nextが1より大きい場合には(ステップ92の判定結果がYES)、翻訳に成功した場合(ステップ94の判定結果がYES)に両ノード間の距離を1とし(96)、変数next_costにtoken1.costに計算した距離(1)を加算した値を代入し、変数next_nodeにtoken1.nodeとtoken1.nextとを加算した値を代入して(106)ノード間の距離の計算処理を終わる。翻訳に失敗した場合にはtoken1.nextにtoken1.next−1を代入して(98)ステップ90に制御を戻す。
【0048】
再びステップ92に戻り、token1.next>1でない場合には、token1.next=1となる。なぜなら、token1.nextの値はBigNumberか1かのいずれだからである。この場合には、翻訳に成功すれば(ステップ100の判定結果がYES)両ノード間の距離を1とし(102)、失敗すれば(ステップ100の判定結果がNO)両ノード間の距離をBigNumberとする(104)。いずれの場合にも、ステップ106で変数next_costにtoken1.costに計算した距離(1またはBigNumber)を加算した値を代入し、変数next_nodeにtoken1.nodeとtoken1.nextとを加算した値を代入してノード間の距離の計算処理を終わる。これで図5のステップ76の処理を終わる。
【0049】
再び図5を参照して、ステップ78において、ステップ76で計算した距離を用いて、元のノードを次のように更新する。すなわち、元のノードS[token1.node]に(token1.node,token1.cost,token1.path_list,token1.next−1)なるトークンを代入する。
【0050】
続いて、ステップ80で、進んだ先のノードを以下のようにして更新する。詳細を図7に示す。図7を参照して、まずS[next_node]にトークンがあるか否かを確かめ、あればそれをtoken2とする(120)。
【0051】
続いてS[next_node]=NILまたはnext_cost<token2.costが成立するか否かを判定する(122)。判定結果がYESの場合には制御はステップ124に、NOの場合には制御はステップ130に、それぞれ進む。
【0052】
ステップ124では、next_node<文長か否かについて判定する。next_node<文長であればステップ126でさらにnext_cost<しきい値か否かを判定し、判定結果がYESであればステップ128でS[next_node]に(next_node,next_cost,新path_list,文長―next_node)なるトークンを代入して処理を終了する。ステップ126でnext_cost<しきい値でないと判定されれば何もせずこの処理を終了する。すなわち、この分割方法は分割候補から除外される。なおここで、新path_listとは、token1.path_listの各道筋の末尾にtoken1.nodeからnext_nodeへのリンクを加えた道筋のリストである。
【0053】
一方、ステップ124でnext_node<文長が成立しないと判定された場合、ステップ134でnext_node=文長か否かについて判定する。この判定結果がNOであればここでも何もせず処理を終了する。判定結果がYESであれば、しきい値を表わす変数にnext_costの値を代入(136)する。さらに、配列S中のトークンのうち、次の条件を満たす全トークンのnextフィールドを0にする(枝刈り)(138)。
・cost≧しきい値、または
・(node+next<文長、かつ、cost≧しきい値―1)
続いてステップ140で、S[next_node]に(next_node,next_cost,新path_list,文長―next_node)なるトークンを代入し処理を終了する。
【0054】
図7のステップ122に戻り、ステップ122での判定結果がNOの場合には、ステップ130でnext_costがtoken2.costと等しいか否かを判定する。両者が等しい場合には、S[next_node]にtoken2のpath_listに新path_listを追加したトークンを代入し(ステップ132)処理を終了する。両者が異なる場合、すなわちnext_cost>token2.costの場合にはなにもしないで処理を終了する。以上で図5のステップ80の処理を終了する。
【0055】
再び図5に戻り、ステップ80の後、制御はステップ72に戻る。こうして、ステップ72からステップ80の処理を繰返し実行し、ステップ72での判定結果がNOとなった時点で処理を終了する。
【0056】
以上説明した処理が終了した時点で、S[文長]にトークンがあればそれが解となり、ノード0からノードnまでの最短経路問題が解けたことになる。つまり、そのトークンのpath_listフィールドの内容が前述した条件を充足する文分割の仕方のうちで最適な文分割の仕方を示す。
【0057】
なお、本実施の形態では、ステップ126である分割方法を採用するか否かを判定する際に、その分割方法に伴うコストをしきい値と比較する。このしきい値の初期値としてどの程度の大きさの値を設定するかにより、枝刈りの速さが決まる。この値を小さくすれば、ある程度コストの小さい解だけが得られる。
【0058】
―分割翻訳実験―
平均文長の長いテストデータを用いて分割翻訳実験を行なった。旅行会話に関するバイリンガル模擬会話の言語データベース(非特許文献4を参照)を実験対象として選んだ。テスト文数は330であり平均文長は11.4語である。テスト文を入力とし分割を行わない従来の翻訳、今回提案した分割翻訳をそれぞれ実行し結果を分析した。翻訳結果の品質を図8に示す。
【0059】
図8では評価レベル毎の文数、A,AB,ABCの割合を分割翻訳無/有の場合で示している。分割翻訳無しに比べ有りでは翻訳成功率(ABCの割合)が16.4%向上する。ABの割合、Aの割合もそれぞれ6.1%および1.2%向上する。分割無しで翻訳出力の得られなかった127文で見ると翻訳成功率は42.5%である。
【0060】
図9は文長別の翻訳成功文数を示すグラフである。分割無しの翻訳で評価レベルABCとなった文数、分割無しではFAILだが分割翻訳によりABCとなった文数、分割翻訳の結果でもDまたはFAILとなった文数をグラフ中で区別している。分割翻訳によりABCとなった文が分割翻訳の効果である。特に文長9 以上で効果が見られる。
【0061】
図10は分割時距離と翻訳成功率との関係を示す。ここで分割時距離を次の式で定義する。入力文と用例との距離を分割翻訳の場合に一般化している。
分割時距離=Σ(部分長 × 部分と類似用例との距離)/入力文長
類似用例の得られない部分では類似用例との距離は1とする。分割時距離と翻訳品質との相関は明瞭であり距離が大きくなると品質は悪くなる。
【0062】
以上のように、本実施の形態では用例ベース翻訳において入力文の分割翻訳方式を提案し、その有効性を確認した。長い文に弱いというD3の短所の改善が見られ、全体として翻訳成功率が向上した。
【0063】
一方で翻訳結果の信頼性の観点からは、悪い訳(評価D)を出すよりFAILとした方が良いとの考え方もある。本実施の形態によれば、分割翻訳用に一般化した距離と品質との間に相関のあることが確認できるので、求められる信頼性に応じて分割翻訳のしきい値を設けるなどの方策が考えられる。
【図面の簡単な説明】
【図1】本発明の一実施の形態を実現するコンピュータシステムの外観を示す図である。
【図2】図1に示すコンピュータシステムのブロック図である。
【図3】トークンレコードの構造を示す図である。
【図4】トークンレコードの配列Sの構造を示す図である。
【図5】本発明の一実施の形態を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図6】ノード間の距離を計算する処理を示すフローチャートである。
【図7】進んだ先のノードの更新処理を示すフローチャートである。
【図8】本発明の一実施の形態にしたがって行なった翻訳実験の結果の品質を表形式で示す図である。
【図9】翻訳実験における文長別の翻訳成功文数を示すグラフである。
【図10】分割時距離と翻訳成功率との関係を示すグラフである。
【図11】従来技術による文長と翻訳品質との関係を示すグラフである。
【符号の説明】
20 コンピュータシステム、40 コンピュータ、50 CD−ROMドライブ、52 FDドライブ、62 CD−ROM,64 FD、56 CPU,58 ROM,60 ROM
【発明の属する技術分野】
この発明は機械翻訳方法に関し、特に、入力文を複数個の部分に分割して部分翻訳を試みることにより翻訳成功率を向上させる機械翻訳方法およびそのためのコンピュータプログラムに関する。
【0002】
【従来の技術】
出願人は、用例ベース翻訳の一つとして単語列編集距離を使った翻訳方式(DP−match Driven transDucer、以下「D3」と呼ぶ)を提案した(後掲の非特許文献1を参照) 。本方式では対訳コーパスを直接利用することにより、人手による翻訳ルール、パターンの記述を不要とする。翻訳システム開発のコスト削減が可能となり、タスク移植性、多言語適用性の向上が期待できる。
【0003】
旅行会話タスクにおける日英翻訳へ当方式の適用実験を行ない高い翻訳品質を得た。翻訳一対比較法(後掲の非特許文献2を参照)によるとTOEIC 750点の日本人と同等の翻訳品質のレベルである。
【0004】
D3は、対訳コーパス、対訳辞書、類語辞書を用いて翻訳を行なう。入力文と類似する用例を基に次の手順により訳文を生成する。
(1) 用例検索
入力文と距離が最小の原文を持つ用例を対訳コーパスから検索する。与えられたしきい値未満の距離の用例が存在しなければ検索および翻訳処理は失敗(FAIL)となる。文同士の距離は次の式で定義している。
距離=(2Σ置換単語間距離+削除挿入単語数)/(入力文長+用例原文長)
ここで単語間距離は類語辞書に基づき0と1との間の値をとる。文長は文の単語数を意味する。
(2) 翻訳パターン生成
用例原文の入力文と異なる箇所を変項とし、変項と用例訳文中の単語、変項と入力文中の単語の対応をとり翻訳パターンを生成する。対応を決める際に対訳辞書、類語辞書を参照する。
(3) 翻訳パターン選択
同じ距離のパターンが複数ある場合は一つ選択する。選択基準には変項の対応率、用例数、変項中の単語の出現頻度を用いる。
(4) 訳文生成
用例訳文中の変項対応箇所を対応する入力文中の単語の訳語で置き換える。この際対訳辞書を利用する。
【0005】
【特許文献1】
特開平10−312382号公報(第9欄段落0038第4行目〜11行目、図6)
【非特許文献1】
スミタ、E.(Sumita, E.)「単語シーケンス間のDPマッチングを用いた用例ベースの機械翻訳(Example−Based machine translation using DP−matching between word sequences)」第39回ACLのDDMTワークショップ予稿集(Proc. of DDMT workshop of 39th ACL)、2001年
【非特許文献2】
菅谷文明ら「音声翻訳システムと人間との比較による音声翻訳能力評価手法の提案と比較実験」電子情報通信学会論文誌D−II、Vol. J84−D−II, No. 11、2001年
【非特許文献3】
スミタ、E(Sumita, E.)「話し言葉の翻訳に固有の問題に対する解決:ATR−MATRIXのアプローチ(Solutions to Problems Inherent in Spoken−language Translation: The ATR−MATRIX Approach)」MTサミットVII予稿集(Proc. of MT Summit VII)、1999年
【非特許文献4】
タケザワ、Tら(Takezawa T. et al.)「実世界における旅行会話の言語翻訳のための、広範囲のバイリンガルコーパスに向けて(Toward a Broad−coverage Bilingual Corpus for Speech Translation of Travel Conversations in the Real World)」LREC−2002予稿集、2002年
【非特許文献5】
大野晋、浜西正人、「類語新辞典」角川書店、1984年
【非特許文献6】
バーガー A.Lら(Berger A.L. et al)「自然言語処理への最大エントロピーアプローチ(A Maximum Entropy Approach to Natural Language Processing)」計算言語学協会、1996年
【非特許文献7】
竹沢寿幸ら「発話単位の分割または接合による言語処理単位への変換手法」自然言語処理 Vol. 6 No. 2, 1999年
【非特許文献8】
中嶋秀治ら「音声認識過程での発話分割のための統計的言語モデル」情報処理学会論文誌 Vol. 42 No. 11、2001年
【非特許文献9】
金淵培ら「日英機械翻訳のための日本語長文自動短文分割と主語の補完」情報処理学会論文誌 Vol. 35 No. 6、1994年
【発明が解決しようとする課題】
旅行会話に関する基本文集(前掲の非特許文献4を参照)をテスト文と学習文とに分けて使用し実験を行なった。学習文つまり用例に使用した文数は152,172、テスト文は1,254文である。テスト文の平均文長は6.5語である。対訳辞書には旅行会話用に作成した辞書(前掲の非特許文献3を参照)、類語辞書には角川類語辞書(前掲の非特許文献5)を用いる。翻訳結果に対して日本語のできる英語ネイティブにより4段階の評価を与える(前掲の非特許文献3)。評価レベルを次に示す。
【0006】
A:問題なし
B:主要な情報が容易に復元できる
C:主要な情報がなんとか復元できる
D:主要な情報が復元できない
また用例検索に失敗し翻訳結果の得られない場合はFAILと表記する。用例検索の距離のしきい値は1/3とする。
【0007】
図11に実験結果を示す。横軸は文長、縦軸は評価レベル別の文数である。文が長くなると翻訳品質が悪くなることが分かる。文長が10以上になると特に劣化が大きい。
【0008】
D3において翻訳結果が得られないのは、入力文との距離がしきい値未満の類似用例が見つからない場合である。特に入力文が長くなれば類似用例の存在しない可能性が大きくなる。距離と翻訳品質の間には明確な相関関係が存在する(非特許文献1)ため、むやみにしきい値を大きくするのは適当ではない。一方、入力文から部分を切り出せば類似用例が見つかり翻訳が成功する可能性がある。翻訳結果の得られない入力文への対策として、入力文を分割して翻訳することができれば、より多くの翻訳において正しい翻訳結果が得られると思われる。
【0009】
翻訳の入力文を分割する従来技術の例として、特許文献1が存在する。この文献では、文をカンマ、特定の語などに基づく分割ルールにしたがって分割する。
【0010】
しかしこの従来技術では、分割ルールが特定の言語に依存して定められるため、言語にあわせて文分割ルールを記述しなければならない。また、この分割ルールにしたがって文を分割した場合、確かに文が短くなるので翻訳ができる可能性は高くなる。しかし、単に文を短くするだけでは、分割した後の各部分が翻訳可能となるとは限らない。
【0011】
それゆえに本発明の目的は、分割した後の各部分の翻訳可能性が高くなるように文を分割して翻訳する機械翻訳装置、方法、およびそのためのプログラムを提供することである。
【0012】
本発明の他の目的は、特定の言語に制限されず、分割した後の各部分の翻訳可能性が高くなるように文を分割して翻訳する機械翻訳装置、方法、およびそのためのプログラムを提供することである。
【0013】
【課題を解決するための手段】
本発明のある局面にかかる機械翻訳方法は、データ処理システムにおける機械翻訳方法であって、入力文中に、入力文の先頭と最後とを含めて複数個のノードを定義するステップと、複数個のノードが定義された入力文を、予め定められた基準にしたがって複数個のノードのいずれかの組合せで1または複数個の部分に分割するステップと、1または複数個の部分の各々の翻訳結果を結合して入力文に対する翻訳結果を生成するステップとを含み、予め定められた基準は、翻訳結果の得られない部分に含まれる単語数が小さい分割方法を優先すること、および翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法がある場合には、分割数の小さい分割方法を優先すること、という基準を含む。
【0014】
好ましくは、この機械翻訳方法は、用例ベースの機械翻訳を用いる方法であって、予め定められた基準はさらに、翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法があり、かつそれらの分割数が同じ場合には、1または複数個の部分の各々と、当該1または複数個の部分の各々の翻訳の基礎となる類似用例との間に定義される距離の合計の小さいものを優先すること、という基準を含む。
【0015】
さらに好ましくは、分割するステップは、予め定められた基準に適合するように定められる所定のコスト関数を最小とするような、入力文の先頭のノードと入力文の最後のノードとの間でのノードの経路を探索するステップを含む。
【0016】
所定のコスト関数は、入力文のうち、分割によっても翻訳できない単語数と所定のコスト定数との積と、分割により翻訳可能となった部分の数との和により定義されるものであってもよい。
【0017】
この方法は、所定のコスト定数を、複数個のノードの数以上となるように予め定義するステップをさらに含んでもよい。
【0018】
複数個のノードは、入力文の単語の境界において定義されてもよい。
【0019】
分割するステップは、入力文の先頭のノードと最後のノードとの間で翻訳処理を試みるステップと、先行するステップで試みられた翻訳処理が成功したか否かを判定し、翻訳処理が成功するまで、または隣接するノード間での翻訳処理が失敗したと判定されるまで、翻訳処理の対象の末尾を一ノードずつ前に移動して繰返し翻訳処理を試みるステップと、翻訳処理が成功した、または隣接するノード間での翻訳処理が失敗したと判定されたことに応答して、それぞれ所定の値をコスト関数に加算して更新し、さらに次の翻訳処理の対象の先頭ノードを翻訳処理における対象の末尾のノードの次のノードに進めるステップと、繰返し翻訳処理を試みるステップと加算するステップとを所定の終了条件が成立するまで実行するステップとを含んでもよい。
【0020】
所定の終了条件が成立するまで実行するステップは、次のノードが最後のノードか否かを判定するステップと、次のノードが最後のノードではないと判定されたことに応答して繰返し翻訳処理を試みるステップと加算するステップとを再び実行するステップと、次のノードが最後のノードと判定されたことに応答して処理を終了するステップとを含んでもよい。
【0021】
この方法は、さらに、進めるステップで更新されたコスト関数の値が所定のしきい値より大きい場合には、当該分割方法を分割方法の候補から除外するステップを含んでもよい。
【0022】
本発明の他の局面にかかるコンピュータプログラムは、コンピュータ上で実行されることにより、上に述べたいずれかの方法のすべてのステップをコンピュータが実行するように適合されたコンピュータプログラムコード手段を含む。
【0023】
本発明の他の局面にかかるコンピュータプログラムは、コンピュータ可読な媒体上に記録されたものであってもよい。
【0024】
【発明の実施の形態】
―分割翻訳―
入力文を複数の部分に分割する、各々の部分の翻訳結果を連結して入力文全体の翻訳結果とする。分割の判定には次の基準を使う。
▲1▼ 翻訳結果の得られない部分の単語数が小さい方が良い。
▲2▼ ▲1▼が同じならば、分割数が小さい方が良い。
▲3▼ ▲2▼が同じならば、部分_類似用例間距離の合計が小さい方が良い。
【0025】
このように分割方法は、分割部分の翻訳可能性に注目し、単語の連接情報や文法的知識は仮定していない。この基準による最良の分割翻訳を如何に見つけ出すかは探索問題となる。
【0026】
―分割翻訳の例―
分割翻訳の例を示す。この例では入力文は2分割され、各部分の翻訳結果を連結した結果が出力される。
[入力文]
「はい合計百九十五ドルになりますカードでお支払いですね」
[分割結果]
「はい合計百九十五ドルになります/カードでお支払いですね」
[翻訳結果]
“it’s one hundred ninety five dollars in total, will you be paying with your credit card”
―ハードウェア構成―
以下に述べる本発明の各実施の形態は、コンピュータおよびコンピュータ上で動作するソフトウェアにより実現される。もちろん、以下に述べる機能の一部又は全部を、ソフトウェアでなくハードウェアで実現することも可能である。
【0027】
図1に、本実施の形態で利用されるコンピュータシステム20の外観図を、図2にコンピュータシステム20のブロック図を、それぞれ示す。なおここに示すコンピュータシステム20はあくまで一例であり、この他にも種々の構成が可能である。
【0028】
図1を参照して、コンピュータシステム20は、コンピュータ40と、いずれもこのコンピュータ40に接続されたモニタ42、キーボード46、およびマウス48を含む。コンピュータ40にはさらに、CD―ROM(Compact Disc Read−Only Memory)ドライブ50と、FD(Flexible Disk)ドライブ52とが内蔵されている。
【0029】
図2を参照して、コンピュータシステム20はさらに、コンピュータ40に接続されるプリンタ44を含むが、これは図1には示していない。またコンピュータ40はさらに、CD―ROMドライブ50およびFDドライブ52に接続されたバス66と、いずれもバス66に接続された中央演算装置(Central Processing Unit:CPU)56、コンピュータ40のブートアッププログラムなどを記憶したROM(Read−Only Memory)58、CPU56が使用する作業エリアおよびCPU56により実行されるプログラムの格納エリアを提供するRAM(Random Access Memory)60、および翻訳のための用例データベース、翻訳結果などを格納するハードディスク54を含む。
【0030】
以下に述べる実施の形態のシステムを実現するソフトウェアは、たとえば、CD―ROM62またはフレキシブルディスク64のような記録媒体上に記録されて流通し、CD―ROMドライブ50またはFDドライブ52のような読取装置を介してコンピュータ40に読込まれ、ハードディスク54に格納される。CPU56がこのプログラムを実行する際には、ハードディスク54からこのプログラムを読み出してRAM60に格納し、図示しないプログラムカウンタによって指定されるアドレスから命令を読出して実行する。CPU56は、処理対象のデータをハードディスク54から読出し、処理結果を同じくハードディスク54に格納する。
【0031】
コンピュータシステム20の動作自体は周知であるので、ここではその詳細については繰り返さない。
【0032】
なお、ソフトウェアの流通形態は上記したように記憶媒体に固定された形には限定されない。たとえば、ネットワークを通じて接続された他のコンピュータからデータを受取る形で流通することもあり得る。また、ソフトウェアの一部が予めハードディスク54中に格納されており、ソフトウェアの残りの部分をネットワーク経由でハードディスク54に取込んで実行時に統合するような形の流通形態もあり得る。
【0033】
一般的に、現代のプログラムはコンピュータのオペレーティングシステム(OS)またはいわゆるサードパーティ等によってコンピュータ上で提供される汎用の機能を利用し、それらを所望の目的にしたがって組織化した形態で実行することにより前記した所望の目的を達成する。したがって、以下に述べる本実施の形態の各機能のうち、OSまたはサードパーティが提供する汎用的な機能を含まず、それら汎用的な機能の実行順序の組合せだけを指定するプログラム(群)であっても、それらを利用して全体的として所望の目的を達成する制御構造を有するプログラム(群)である限り、それらが本発明の技術的範囲に含まれることは明らかである。
【0034】
ただし、本発明をプログラムではなくハードウェア回路によって実現することも可能であることはもちろんである。
【0035】
―データ構造―
以下、本実施例のうち、翻訳を行なう機能部分を除き、入力文を分割する機能について詳細に説明する。最初に、文分割処理のためのソフトウェアで使用されるデータの構造について説明する。なお、以下の処理では、前に述べた条件▲1▼、▲2▼の解を探しておいて、残った解を条件▲3▼で比較する、というやり方を採る。以下に示すのは条件▲1▼、▲2▼の探索方法である。
【0036】
分割条件▲1▼▲2▼を満足する解を探すということは、次のコストが最小の分割を見つけることである。
・コスト=翻訳もれ単語数×BigNumber+部分翻訳数
ここで、BigNumberは、予め定められた,文長より大きい数のことをいう。通常は1000程度でよい。文長とは前述のとおり文に含まれる単語数をいう。
【0037】
図3に、以下の処理で使用するトークンレコードの構造を示す。このトークンレコードは、図4に示すトークン配列の各項目を構成している。図3を参照して、各トークンレコードは、nodeフィールドと、costフィールドと、path_listフィールドと、nextフィールドとを含む。
【0038】
nodeフィールドは、以下に説明するノードの番号(ノード番号)を格納する。たとえば入力文の語長をnとして、n+1個のノードを「ノード0、語1、ノード1、語2、ノード2、語3、ノード3、…、語n、ノードn」のように定義する。ここではノード0が先頭のノード、ノードnが最後のノードである。各ノードの番号(0からnまで)がノード番号である。
【0039】
costフィールドは、ノード0からノードnodeに進むまでの距離の合計を示す。ここにノード間の距離を次のように定義する。
・ノード間の単語列の翻訳が成功すればそのノード間は距離1
・隣接するノード間で翻訳が失敗すればそのノード間は距離BigNumberpath_listはノード0からノードnに進むまでの道筋(分割の仕方)を表わす。道筋は複数あり得るので、path_listはいわゆるリスト形式として表わす。
【0040】
nextフィールドは、次に進む語数を表わす。この語数は、処理の最初には最終語までの語数で初期化されるが、その間での翻訳を試した後、より短い値で更新される。
【0041】
図4に配列Sの構造を示す。配列Sは、図3に示したトークンの配列である。インデックスは0、1、…、文長である。インデックスは、各トークンに対応するノードのノード番号と一致する。各トークンのnodeフィールドの値は、そのトークンが格納されている項目のインデックスと一致するので、トークンにnodeフィールドを設けることは必ずしも必要ではない。しかし、アルゴリズム記述上でnodeフィールドを設けると便利なので、このように各トークンにnodeフィールドを設けている。
【0042】
このようにデータを準備するのは、上に述べた▲1▼〜▲3▼の条件を充足する文の分割方法を求めることは、ノード0からノードnへの最短経路を求める問題に帰着するためである。その解を求めるアルゴリズムは種々考えられるが、そのうちの一つを以下に示す。なお以下の説明では、トークンのフィールドを「トークン名.フィールド名」で表わすことがある。また以下の説明中で「NIL」という表現はデータがないことを示す。
【0043】
―プログラムの制御フロー―
図5に、本実施の形態にかかる文分割処理を実現するプログラムの制御のフローチャートを示す。図5を参照して、最初に初期化を行なう(70)。具体的には、ある文分割方法を採用するか否かを判定する際に用いられる、その分割方法に伴うコストの大きさのしきい値を表わす変数にBigNumber×文長を代入し、S[0]にトークンの初期値として{(0,0、{{}}、文長)}を代入する。S[1]〜S[n]までにはNILを代入する。
【0044】
続いて、nextフィールドの値が0になっていないトークンがあるか否かを判定する(72)。そうしたトークンが存在していなければ処理を終了する。このとき、S[文長]にトークンがあればそれが解となり、そのトークンのpath_listフィールドの内容が文分割の仕方を示す。
【0045】
nextフィールドの値が0となっているトークンがあれば、ステップ74で次にどのトークンに処理を進めるかについての処理を行なう。具体的には、配列Sからnext≠0、かつcost最小、かつnode最大のトークンを1個取出す。これが次に処理すべきノードに対応するトークンである。このトークンをtoken1とする。
【0046】
続いてステップ76で、ノードtoken1.nodeとノードtoken1.node+token1.nextの間の距離を計算する。図6に、ノード間の距離の計算処理の詳細を示す。ここでは、ノード間の単語列の翻訳を試みる事によりノード間の距離を計算する。
【0047】
図6を参照して、まずノード間の単語列の翻訳を試みる(90)。token1.nextが1より大きい場合には(ステップ92の判定結果がYES)、翻訳に成功した場合(ステップ94の判定結果がYES)に両ノード間の距離を1とし(96)、変数next_costにtoken1.costに計算した距離(1)を加算した値を代入し、変数next_nodeにtoken1.nodeとtoken1.nextとを加算した値を代入して(106)ノード間の距離の計算処理を終わる。翻訳に失敗した場合にはtoken1.nextにtoken1.next−1を代入して(98)ステップ90に制御を戻す。
【0048】
再びステップ92に戻り、token1.next>1でない場合には、token1.next=1となる。なぜなら、token1.nextの値はBigNumberか1かのいずれだからである。この場合には、翻訳に成功すれば(ステップ100の判定結果がYES)両ノード間の距離を1とし(102)、失敗すれば(ステップ100の判定結果がNO)両ノード間の距離をBigNumberとする(104)。いずれの場合にも、ステップ106で変数next_costにtoken1.costに計算した距離(1またはBigNumber)を加算した値を代入し、変数next_nodeにtoken1.nodeとtoken1.nextとを加算した値を代入してノード間の距離の計算処理を終わる。これで図5のステップ76の処理を終わる。
【0049】
再び図5を参照して、ステップ78において、ステップ76で計算した距離を用いて、元のノードを次のように更新する。すなわち、元のノードS[token1.node]に(token1.node,token1.cost,token1.path_list,token1.next−1)なるトークンを代入する。
【0050】
続いて、ステップ80で、進んだ先のノードを以下のようにして更新する。詳細を図7に示す。図7を参照して、まずS[next_node]にトークンがあるか否かを確かめ、あればそれをtoken2とする(120)。
【0051】
続いてS[next_node]=NILまたはnext_cost<token2.costが成立するか否かを判定する(122)。判定結果がYESの場合には制御はステップ124に、NOの場合には制御はステップ130に、それぞれ進む。
【0052】
ステップ124では、next_node<文長か否かについて判定する。next_node<文長であればステップ126でさらにnext_cost<しきい値か否かを判定し、判定結果がYESであればステップ128でS[next_node]に(next_node,next_cost,新path_list,文長―next_node)なるトークンを代入して処理を終了する。ステップ126でnext_cost<しきい値でないと判定されれば何もせずこの処理を終了する。すなわち、この分割方法は分割候補から除外される。なおここで、新path_listとは、token1.path_listの各道筋の末尾にtoken1.nodeからnext_nodeへのリンクを加えた道筋のリストである。
【0053】
一方、ステップ124でnext_node<文長が成立しないと判定された場合、ステップ134でnext_node=文長か否かについて判定する。この判定結果がNOであればここでも何もせず処理を終了する。判定結果がYESであれば、しきい値を表わす変数にnext_costの値を代入(136)する。さらに、配列S中のトークンのうち、次の条件を満たす全トークンのnextフィールドを0にする(枝刈り)(138)。
・cost≧しきい値、または
・(node+next<文長、かつ、cost≧しきい値―1)
続いてステップ140で、S[next_node]に(next_node,next_cost,新path_list,文長―next_node)なるトークンを代入し処理を終了する。
【0054】
図7のステップ122に戻り、ステップ122での判定結果がNOの場合には、ステップ130でnext_costがtoken2.costと等しいか否かを判定する。両者が等しい場合には、S[next_node]にtoken2のpath_listに新path_listを追加したトークンを代入し(ステップ132)処理を終了する。両者が異なる場合、すなわちnext_cost>token2.costの場合にはなにもしないで処理を終了する。以上で図5のステップ80の処理を終了する。
【0055】
再び図5に戻り、ステップ80の後、制御はステップ72に戻る。こうして、ステップ72からステップ80の処理を繰返し実行し、ステップ72での判定結果がNOとなった時点で処理を終了する。
【0056】
以上説明した処理が終了した時点で、S[文長]にトークンがあればそれが解となり、ノード0からノードnまでの最短経路問題が解けたことになる。つまり、そのトークンのpath_listフィールドの内容が前述した条件を充足する文分割の仕方のうちで最適な文分割の仕方を示す。
【0057】
なお、本実施の形態では、ステップ126である分割方法を採用するか否かを判定する際に、その分割方法に伴うコストをしきい値と比較する。このしきい値の初期値としてどの程度の大きさの値を設定するかにより、枝刈りの速さが決まる。この値を小さくすれば、ある程度コストの小さい解だけが得られる。
【0058】
―分割翻訳実験―
平均文長の長いテストデータを用いて分割翻訳実験を行なった。旅行会話に関するバイリンガル模擬会話の言語データベース(非特許文献4を参照)を実験対象として選んだ。テスト文数は330であり平均文長は11.4語である。テスト文を入力とし分割を行わない従来の翻訳、今回提案した分割翻訳をそれぞれ実行し結果を分析した。翻訳結果の品質を図8に示す。
【0059】
図8では評価レベル毎の文数、A,AB,ABCの割合を分割翻訳無/有の場合で示している。分割翻訳無しに比べ有りでは翻訳成功率(ABCの割合)が16.4%向上する。ABの割合、Aの割合もそれぞれ6.1%および1.2%向上する。分割無しで翻訳出力の得られなかった127文で見ると翻訳成功率は42.5%である。
【0060】
図9は文長別の翻訳成功文数を示すグラフである。分割無しの翻訳で評価レベルABCとなった文数、分割無しではFAILだが分割翻訳によりABCとなった文数、分割翻訳の結果でもDまたはFAILとなった文数をグラフ中で区別している。分割翻訳によりABCとなった文が分割翻訳の効果である。特に文長9 以上で効果が見られる。
【0061】
図10は分割時距離と翻訳成功率との関係を示す。ここで分割時距離を次の式で定義する。入力文と用例との距離を分割翻訳の場合に一般化している。
分割時距離=Σ(部分長 × 部分と類似用例との距離)/入力文長
類似用例の得られない部分では類似用例との距離は1とする。分割時距離と翻訳品質との相関は明瞭であり距離が大きくなると品質は悪くなる。
【0062】
以上のように、本実施の形態では用例ベース翻訳において入力文の分割翻訳方式を提案し、その有効性を確認した。長い文に弱いというD3の短所の改善が見られ、全体として翻訳成功率が向上した。
【0063】
一方で翻訳結果の信頼性の観点からは、悪い訳(評価D)を出すよりFAILとした方が良いとの考え方もある。本実施の形態によれば、分割翻訳用に一般化した距離と品質との間に相関のあることが確認できるので、求められる信頼性に応じて分割翻訳のしきい値を設けるなどの方策が考えられる。
【図面の簡単な説明】
【図1】本発明の一実施の形態を実現するコンピュータシステムの外観を示す図である。
【図2】図1に示すコンピュータシステムのブロック図である。
【図3】トークンレコードの構造を示す図である。
【図4】トークンレコードの配列Sの構造を示す図である。
【図5】本発明の一実施の形態を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図6】ノード間の距離を計算する処理を示すフローチャートである。
【図7】進んだ先のノードの更新処理を示すフローチャートである。
【図8】本発明の一実施の形態にしたがって行なった翻訳実験の結果の品質を表形式で示す図である。
【図9】翻訳実験における文長別の翻訳成功文数を示すグラフである。
【図10】分割時距離と翻訳成功率との関係を示すグラフである。
【図11】従来技術による文長と翻訳品質との関係を示すグラフである。
【符号の説明】
20 コンピュータシステム、40 コンピュータ、50 CD−ROMドライブ、52 FDドライブ、62 CD−ROM,64 FD、56 CPU,58 ROM,60 ROM
Claims (11)
- データ処理システムにおける機械翻訳方法であって、
入力文中に、入力文の先頭と最後とを含めて複数個のノードを定義するステップと、
前記複数個のノードが定義された入力文を、予め定められた基準にしたがって前記複数個のノードのいずれかの組合せで1または複数個の部分に分割するステップと、
前記1または複数個の部分の各々の翻訳結果を結合して前記入力文に対する翻訳結果を生成するステップとを含み、
前記予め定められた基準は、
翻訳結果の得られない部分に含まれる単語数が小さい分割方法を優先すること、および
翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法がある場合には、分割数の小さい分割方法を優先すること、
という基準を含む、機械翻訳方法。 - 前記機械翻訳方法は、用例ベースの機械翻訳を用いる方法であって、
前記予め定められた基準はさらに、翻訳結果の得られない部分に含まれる単語数が同じ複数の分割方法があり、かつそれらの分割数が同じ場合には、前記1または複数個の部分の各々と、当該1または複数個の部分の各々の翻訳の基礎となる類似用例との間に定義される距離の合計の小さいものを優先すること、という基準を含む、請求項1に記載の方法。 - 前記分割するステップは、前記予め定められた基準に適合するように定められる所定のコスト関数を最小とするような、前記入力文の前記先頭のノードと前記入力文の前記最後のノードとの間でのノードの経路を探索するステップを含む、請求項1または2に記載の方法。
- 前記所定のコスト関数は、前記入力文のうち、分割によっても翻訳できない単語数と所定のコスト定数との積と、分割により翻訳可能となった部分の数との和により定義される、請求項3に記載の方法。
- 前記所定のコスト定数を、前記複数個のノードの数以上となるように予め定義するステップをさらに含む、請求項4に記載の方法。
- 前記複数個のノードは、前記入力文の単語の境界において定義される、請求項1〜5のいずれかに記載の方法。
- 前記分割するステップは、
前記入力文の前記先頭のノードと前記最後のノードとの間で翻訳処理を試みるステップと、
先行するステップで試みられた翻訳処理が成功したか否かを判定し、翻訳処理が成功するまで、または隣接するノード間での翻訳処理が失敗したと判定されるまで、翻訳処理の対象の末尾を一ノードずつ前に移動して繰返し翻訳処理を試みるステップと、
翻訳処理が成功した、または隣接するノード間での翻訳処理が失敗したと判定されたことに応答して、それぞれ所定の値を前記コスト関数に加算して更新し、さらに次の翻訳処理の対象の先頭ノードを前記翻訳処理における対象の末尾のノードの次のノードに進めるステップと、
前記繰返し翻訳処理を試みるステップと前記加算するステップとを所定の終了条件が成立するまで実行するステップとを含む、請求項3から5のいずれかに記載の方法。 - 前記所定の終了条件が成立するまで実行するステップは、
前記次のノードが前記最後のノードか否かを判定するステップと、
前記次のノードが前記最後のノードではないと判定されたことに応答して、前記繰返し翻訳処理を試みるステップと前記加算するステップとを再び実行するステップと、
前記次のノードが前記最後のノードと判定されたことに応答して処理を終了するステップとを含む、請求項7に記載の方法。 - さらに、前記進めるステップで更新された前記コスト関数の値が所定のしきい値より大きい場合には、当該分割方法を分割方法の候補から除外するステップを含む、請求項7または8に記載の方法。
- コンピュータ上で実行されることにより、請求項1〜9のいずれかに記載の方法のすべてのステップをコンピュータが実行するように適合されたコンピュータプログラムコード手段を含む、コンピュータプログラム。
- コンピュータ可読な媒体上に記録された、請求項10に記載のコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002274076A JP2004110583A (ja) | 2002-09-19 | 2002-09-19 | 機械翻訳方法およびそのためのコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002274076A JP2004110583A (ja) | 2002-09-19 | 2002-09-19 | 機械翻訳方法およびそのためのコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110583A true JP2004110583A (ja) | 2004-04-08 |
Family
ID=32270649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002274076A Pending JP2004110583A (ja) | 2002-09-19 | 2002-09-19 | 機械翻訳方法およびそのためのコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004110583A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024175B2 (en) | 2006-12-28 | 2011-09-20 | Fujitsu Limited | Computer program, apparatus, and method for searching translation memory and displaying search result |
-
2002
- 2002-09-19 JP JP2002274076A patent/JP2004110583A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024175B2 (en) | 2006-12-28 | 2011-09-20 | Fujitsu Limited | Computer program, apparatus, and method for searching translation memory and displaying search result |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4993762B2 (ja) | 用例ベースの機械翻訳システム | |
KR102516364B1 (ko) | 기계 번역 방법 및 장치 | |
JP4532863B2 (ja) | 2言語コーパスを整列させるための方法および装置 | |
KR101130457B1 (ko) | 트리렛 번역쌍 추출 | |
JP2004362249A (ja) | 翻訳知識最適化装置、翻訳知識最適化のためのコンピュータプログラム、コンピュータ及び記憶媒体 | |
JP2004199427A (ja) | 対訳依存構造対応付け装置、方法及びプログラム、並びに、対訳依存構造対応付けプログラムを記録した記録媒体 | |
JP5646792B2 (ja) | 単語分割装置、単語分割方法、及び単語分割プログラム | |
Chowdhury et al. | A study on dependency tree kernels for automatic extraction of protein-protein interaction | |
KR101962113B1 (ko) | 자연어 문장을 확장하는 장치와 상기 자연어 문장을 확장하는 방법 | |
KR20190034939A (ko) | 문장 생성 방법 및 장치 | |
JP5500636B2 (ja) | 句テーブル生成器及びそのためのコンピュータプログラム | |
JP4401269B2 (ja) | 対訳判断装置及びプログラム | |
JP2006004366A (ja) | 機械翻訳システム及びそのためのコンピュータプログラム | |
JP5025603B2 (ja) | 機械翻訳装置、機械翻訳プログラム及び機械翻訳方法 | |
JP2004110583A (ja) | 機械翻訳方法およびそのためのコンピュータプログラム | |
JP4113204B2 (ja) | 機械翻訳装置、その方法およびプログラム | |
Mammadov et al. | Part-of-speech tagging for azerbaijani language | |
JP2006190072A (ja) | 自動換言装置、自動換言方法及び換言処理プログラム | |
JP6451151B2 (ja) | 質問応答装置、質問応答方法、プログラム | |
JP5998779B2 (ja) | 検索装置、検索方法、及びプログラム | |
JP7430274B2 (ja) | 計算機システム及び文字認識方法 | |
JP2007316916A (ja) | 形態素解析装置、形態素解析方法及び形態素解析プログラム | |
JP2018165875A (ja) | インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法 | |
JP2008293070A (ja) | 文書解析システム、および文書解析方法、並びにコンピュータ・プログラム | |
JP3135221B2 (ja) | 用例主導型言語構造解析装置 |