(57)【要約】【課題】原言語に語順が自由な言語が含まれ、対応する目的言語の語順が固定される場合でも、複数の翻訳パターンを用意することなく正確な翻訳を行えるようにする。【解決手段】原言語で記載されたテキスト文を単語分割し、この分割されたテキスト文から原言語パターンに従って構文木を作成する。そして、この原言語の構文木から目的言語パターンに従って目的言語の構文木を作成する際に、目的言語の構文を構成する構成要素のうち予め指定された構成要素にマーカを付けて記憶しておく。そして、目的言語パターンに記述されたマーカの位置に上記記憶された構成要素を配置して翻訳を行うようにしている。【選択図】    図１
2004157688.tif 000002
【特許請求の範囲】
【請求項１】
原言語の構文木を作成するための原言語パターンと、この原言語パターンに対応した目的言語の構文木を作成するための目的言語パターンと、目的言語評価部とから構成され、かつ前記目的言語パターンには前記目的言語の構文木を表す構成要素のうち位置が変更可能な構成要素を示す識別子が含まれ、前記目的言語評価部には前記識別子が表す目的言語の構成要素を特定するための情報が含まれる翻訳パターンを記憶した第１の記憶手段と、
原言語で記載されたテキスト文を単語分割する分割手段と、
前記分割手段により分割された単語をもとに前記原言語パターンに従って原言語の構文木を作成する第１の作成手段と、
前記第１の作成手段により作成された原言語の構文木をもとに前記目的言語パターンに従って目的言語の構文木を作成する第２の作成手段と、
前記第２の作成手段により作成された目的言語の構文木の構成要素のうち前記目的言語評価部の識別子が表す構成要素を当該識別子と対応付けて記憶する第２の記憶手段と、
前記目的言語パターンに前記識別子が存在した場合には、前記第２の記憶手段により当該識別子に対応付けて記憶された構成要素を置き換えて翻訳文を生成する生成手段とを具備したことを特徴とする翻訳装置。
【請求項２】
ユーザの入力操作に応じて前記識別子を前記目的言語パターンに含める処理を行う手段をさらに具備したことを特徴とする請求項１記載の翻訳装置。
【請求項３】
ユーザの入力操作に応じて前記識別子が表す目的言語の構成要素を特定するための情報を前記目的言語評価部に含める処理を行う手段をさらに具備したことを特徴とする請求項１記載の翻訳装置。
【請求項４】
原言語の構文木を作成するための原言語パターンと、この原言語パターンに対応した目的言語の構文木を作成するための目的言語パターンと、目的言語評価部とから構成され、かつ前記目的言語パターンには前記目的言語の構文木を表す構成要素のうち位置が変更可能な構成要素を示す識別子が含まれ、前記目的言語評価部には前記識別子が表す目的言語の構成要素を特定するための情報が含まれる翻訳パターンを使用することにより、原言語で記載されたテキスト文を目的言語に翻訳する翻訳方法であって、
前記テキスト文を単語分割する工程と、
前記分割された単語をもとに前記原言語パターンに従って原言語の構文木を作成する工程と、
前記作成された原言語の構文木をもとに前記目的言語パターンに従って目的言語の構文木を作成する工程と、
前記作成された目的言語の構文木の構成要素のうち前記目的言語評価部の識別子が表す構成要素を当該識別子と対応付けて記憶する工程と、
前記目的言語パターンに前記識別子が存在した場合には、前記識別子に対応付けて記憶された構成要素を置き換えて翻訳文を生成する工程とを具備したことを特徴とする翻訳方法。
【請求項５】
原言語の構文木を作成するための原言語パターンと、この原言語パターンに対応した目的言語の構文木を作成するための目的言語パターンと、目的言語評価部とから構成され、かつ前記目的言語パターンには前記目的言語の構文木を表す構成要素のうち位置が変更可能な構成要素を示す識別子が含まれ、前記目的言語評価部には前記識別子が表す目的言語の構成要素を特定するための情報が含まれる翻訳パターンを記憶した記憶手段と、コンピュータとを具備し、このコンピュータにより、原言語で記載されたテキスト文を前記記憶手段に記憶された翻訳パターンを用いて目的言語に翻訳する翻訳装置で使用する翻訳プログラムであって、
前記テキスト文を単語分割するステップと、
前記分割された単語をもとに前記原言語パターンに従って原言語の構文木を作成するステップと、
前記作成された原言語の構文木をもとに前記目的言語パターンに従って目的言語の構文木を作成するステップと、
前記作成された目的言語の構文木の構成要素のうち前記目的言語評価部の識別子が表す構成要素を当該識別子と対応付けて記憶するステップと、
前記目的言語パターンに前記識別子が存在した場合には、前記識別子に対応付けて記憶された構成要素を置き換えて翻訳文を生成するステップとを前記コンピュータに実行させるための翻訳プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、原言語で記載されたテキスト文を目的言語に翻訳する機械翻訳システムに係わり、特に翻訳パターンを用いて翻訳を行う翻訳装置、翻訳方法及び翻訳プログラムに関する。
【０００２】
【従来の技術】
機械翻訳システムにおいて、機械翻訳では扱いにくい分野特有の特徴的な文を精度良く翻訳する翻訳方式や、ユーザによって機械翻訳システムをカスタマイズすることが可能な翻訳方式として、従来よりパターン翻訳方式が採用されている。このパターン翻訳方式は、原言語の文パターンとその翻訳である目的言語の文パターンとの対応を表す翻訳パターンを用意しておき、原言語で記載されたテキスト文と上記翻訳パターンとを照合して目的言語に翻訳するものである。
【０００３】
図５は、日本語から英語に翻訳する際の従来技術による翻訳パターンの一例を示すものである。翻訳パターンは、ＩＤと、原言語パターンと、目的言語パターンとから構成される。原言語パターンでは、矢印“⇒”の左側にこの原言語パターンを置き換える変数が記述され、矢印の右側に入力文と照合する単語、あるいは変数の列が記述される。ここで、鈎括弧“「”、“」”で括られている文字列（“私”、“は”など）が単語を示し、括られていない文字列（“文”、“動詞句”など）が変数を示す。また、コロン“：”の後の数字は、原言語パターンに記述された単語や変数を目的言語パターンから参照するためのインデックスを示す。目的言語パターンは、単語、あるいはインデックスの列で表される。ここで、単語は原言語パターンと同様に鈎括弧で括られており、インデックスは原言語パターンに記述された数字と対応している。
【０００４】
例えば、ＩＤが００８である翻訳パターンは、入力文に“私”という単語が存在すれば変数“名詞句”で置き換え、目的言語では“Ｉ”を生成することを意味する。また、ＩＤが００３である翻訳パターンは、変数“を格”で置き換えられた入力文の一部分と変数“動詞句”で置き換えられた入力文の一部分が存在すれば、変数“動詞句”で置き換え、目的言語では原言語パターンの出現順とは逆に、変数“動詞句”、変数“を格”の順に生成することを意味する。
【０００５】
図５の翻訳パターンを用いて、
“私は一所懸命英語を勉強する”（例１）
の日本語文を翻訳すると、原言語パターンと照合した結果、図６（ａ）の構文木が得られ、対応する目的言語パターンに従って変換した結果、図６（ｂ）の生成結果が得られる。そして、最終的に図６（ｂ）の末端の単語列を図の左から出現する順に並べることで、
“Ｉ  ｓｔｕｄｙ  Ｅｎｇｌｉｓｈ  ｈａｒｄ”（例２）
の翻訳文が得られる。
【０００６】
なお、従来では、原言語パターンを一文字の変数で置き換えることによって、翻訳パターンの入れ子構造（木構造）が表現できる翻訳装置が知られている（例えば、特許文献１参照。）。さらに本発明者等は、翻訳テンプレートを使用して翻訳を行う翻訳方法も提案している（例えば、特許文献２参照。）。
【０００７】
【特許文献１】
特許第３１８９１８６号公報
【０００８】
【特許文献２】
特願２００２−１３８９３０
【０００９】
【発明が解決しようとする課題】
ところが、従来のパターン翻訳方式では、目的言語パターンの構成要素は単語、あるいは変数の列で表現されている。そのため、日本語や朝鮮語など語順が自由である言語を原言語とし、かつ英語など語順が固定的な言語を目的言語とした場合には、テキスト文の語順によって翻訳文の語順が変化するという問題が生じる。
【００１０】
例えば、前述した図５の翻訳パターンを用いて、上記例１とは語順を変化させた、
“私は英語を一所懸命勉強する”（例３）
の日本語文を翻訳すると、原言語パターンと照合した結果、図７（ａ）の構文木が得られ、対応する目的言語パターンに従って変換した結果、図７（ｂ）の生成結果が得られる。そして、最終的には、
“Ｉ  ｓｔｕｄｙ  ｈａｒｄ  Ｅｎｇｌｉｓｈ”（例４）
の翻訳文が得られる。この例４の翻訳文は、翻訳パターンの適用順に応じて英語の語順も変化しており、正確な英語文とは云えない。
【００１１】
上記翻訳方式で正確な翻訳文を得るには、例１と例３それぞれの語順に応じた翻訳パターンを用意する必要があるだけでなく、
“一所懸命私は英語を勉強する”や、
“英語を私は一所懸命勉強する”
などの、考えられるすべての語順に対応した翻訳パターンを用意しなければならない。このため、膨大な量の翻訳パターンが必要となってしまう。
【００１２】
この発明は上記事情に着目してなされたもので、その目的とするところは、原言語に語順が自由な言語が含まれ、対応する目的言語の語順が固定される場合でも、複数の翻訳パターンを用意することなく正確な翻訳を行えるようにした翻訳装置、翻訳方法及び翻訳プログラムを提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するためにこの発明は、原言語の構文木を作成するための原言語パターンと、この原言語パターンに対応した目的言語の構文木を作成するための目的言語パターンと、目的言語評価部とから構成され、かつ上記目的言語パターンには上記目的言語の構文木を表す構成要素のうち位置が変更可能な構成要素を示す識別子が含まれ、上記目的言語評価部には上記識別子が表す目的言語の構成要素を特定するための情報が含まれる翻訳パターンを有し、原言語で記載されたテキスト文を単語分割して、この分割された単語をもとに上記原言語パターンに従って原言語の構文木を作成する。そして、上記作成された原言語の構文木をもとに上記目的言語パターンに従って目的言語の構文木を作成し、この作成された目的言語の構文木の構成要素のうち上記目的言語評価部の識別子が表す構成要素を当該識別子と対応付けて記憶しておく。そして、上記目的言語パターンに上記識別子が存在した場合には、当該識別子に対応付けて記憶された構成要素を置き換えて翻訳文を生成するようにしたものである。
【００１４】
したがってこの発明によれば、翻訳文を生成する際に、目的言語評価部に目的言語パターンの構成要素を生成する位置として識別子が記述されていれば、当該識別子により指定された位置に上記構成要素を置換して得られる部分木が埋め込まれる。このため、原言語に語順が自由な言語が含まれ、対応する目的言語の語順が固定される場合でも、複数の翻訳パターンを用意することなく正確な翻訳文を生成することが可能となる。
【００１５】
またこの発明は、ユーザの入力操作に応じて、上記目的言語パターンに識別子を含める処理を行う手段をさらに備えることも特徴とする。このような構成を備えることで、翻訳文の語順をユーザが任意に変更することが可能となり、これにより翻訳パターンをカスタマイズすることができる。
【００１６】
さらにこの発明は、ユーザの入力操作に応じて、上記目的言語評価部に含まれる上記識別子が表す目的言語の構成要素を特定するための情報を含める処理を行う手段をさらに備えることも特徴とする。このような構成を備えることで、語順が変更する構成要素をユーザが任意に指定することが可能となり、これにより上記同様翻訳パターンをカスタマイズすることができる。
【００１７】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
図１は、この発明に係わる翻訳装置の一実施形態を示す機能ブロック図である。
【００１８】
この翻訳装置は、入力部１と、プロセッサ２と、記憶部６と、出力部１１とを備えている。入力部１は、例えばキーボードにより構成され、ユーザがテキスト文をはじめ、翻訳パターンを構成する要素、例えばマーカやこのマーカが指定する値等を入力するために使用する。
【００１９】
記憶部６は、言語別単語辞書記憶エリア７と、対訳辞書記憶エリア８と、翻訳パターン記憶エリア９と、マーカテーブル記憶エリア１０とを有する。言語別単語辞書記憶エリア７は、翻訳に使用する複数の言語について、単語と当該単語の品詞等の情報を記憶する。対訳辞書記憶エリア８は、例えば日英対訳の辞書データを記憶する。翻訳パターン記憶エリア９は、原言語を目的言語に翻訳する際に照合する翻訳パターン情報を記憶しており、この翻訳パターンの詳しい構成は後述する。マーカテーブル記憶エリア１０は、後述する訳文生成処理部５の指示により、上記翻訳パターンに記述されたインデックスとマーカ及びマーカが指定する値とを対応付けて記憶するものである。
【００２０】
プロセッサ２は、ＣＰＵやＲＯＭ、ＲＡＭ等のコンピュータとしての一般的な構成を備えており、上記ＲＯＭに記憶された翻訳プログラムにより指定される処理手順に従って翻訳処理を実行する。この翻訳処理のためにプロセッサ２は、単語分割処理部３と、構文解析処理部４と、訳文生成処理部５とを備えている。
【００２１】
単語分割処理部３は、原言語で記載されたテキスト文を、上記言語別単語辞書記憶エリア７に格納された情報に基づいて単語分割を行う。構文解析処理部４は、翻訳パターン記憶エリア９に記憶された翻訳パターンと、上記単語分割処理部３により分割されたテキスト文とを用いて構文の解析を行う。訳文生成処理部５は、上記構文解析処理部４により解析された構文を、上記翻訳パターン記憶エリア９に記憶された翻訳パターンを参照して目的言語に変換する。
【００２２】
出力部１１は、例えばディスプレイやプリンタにより構成され、上記プロセッサ２の制御の下に、上記訳文生成処理部５により生成された翻訳文等を表示又はプリントアウトする。
【００２３】
ところで、上記翻訳パターン記憶エリア９に記憶された翻訳パターンは次のように構成される。図２は、この翻訳パターンの構成の一例を示す図である。
すなわち、翻訳パターンは、識別番号（ＩＤ）と、原言語パターンと、目的言語パターンと、目的言語評価部とから構成される。ＩＤは一意となる任意の数字列からなり、各翻訳パターンを特定するために使用される。
【００２４】
原言語パターンは、原言語のテキスト文を構文解析するために使用されるもので、この原言語パターンには単語、品詞及び格等が記述される。例えば、図中の矢印“⇒”の左側にはこの原言語パターンを置き換える変数が記述され、矢印の右側にはテキスト文と照合する単語、あるいは変数の列が記述される。ここで、鈎括弧“「”“」”で括られている文字列（“私”、“は”など）が単語を示し、括られていない文字列（“文”、“動詞句”など）が変数を示す。また、コロン“：”の後の数字は、原言語パターンに記述された単語や変数を目的言語パターンから参照するためのインデックスを示す。
【００２５】
目的言語パターンは、目的言語の単語、インデックスあるいはマーカの列で表される。このうち単語は、原言語パターンと同様に鈎括弧で括られており、インデックスは原言語パターンに記述された数字と対応している。またマーカは“＄”で始まる文字列で表される。このマーカは、目的言語の翻訳文を生成する際の構文を構成する構成要素のうち、位置が変更可能な構成要素に付与される識別子である。
【００２６】
目的言語評価部は、マーカとして指定された構成要素の指定位置を表すもので、等号“＝”の左辺に生成位置がインデックスとマーカとで指定され、右辺にその位置に生成すべき構成要素がインデックスで示される。
【００２７】
例えば、ＩＤが「１０３」である翻訳パターンの目的言語パターンでは、インデックスが「２」で参照される変数“動詞句”を生成することを意味し、目的言語評価部ではインデックスが「２」で参照される変数“動詞句”から生成された構成要素におけるマーカ“＄ｏｂｊ”の位置に、インデックスが１で参照される変数“を格”から生成される構成要素を埋め込むことを意味する。
【００２８】
また、ＩＤが「１０５」である翻訳パターンの目的言語パターンでは、インデックスが「１」で参照される変数“動詞”を生成し、その前後のマーカ“＄ｓｂｊ”、“＄ｏｂｊ”、“＄ａｄｖ”で示される位置に他の翻訳パターンで指定される構成要素が埋め込まれることを意味する。
【００２９】
次に、以上のように構成された翻訳装置による翻訳手順とその処理内容を説明する。なお、ここでは日本語文の
“私は英語を一所懸命勉強する”
を英文に翻訳する場合を例にとって説明する。
【００３０】
ユーザが入力部１から翻訳対象の原言語のテキスト文“私は英語を一所懸命勉強する”を入力すると、プロセッサ２は当該テキスト文を単語分割処理部３に取り込む。単語分割処理部３は、この取り込んだテキスト文を上記言語別単語辞書を参照して単語単位に分割する。
【００３１】
例えば、“私／は／英語／を／一所懸命／勉強する”のように分割する。なお、／は単語の区切りを示す。この単語分割の手段としては、例えば形態素解析処理が使われるが、正確に単語認識が可能であれば特に形態素解析処理に限定されるものではなく、他の処理手段を用いてもよい。上記単語分割されたテキスト文は、構文解析処理部４に転送される。
【００３２】
構文解析処理部４は、上記単語分割されたテキスト文を、翻訳パターン記憶エリア９に記憶された翻訳パターンの原言語パターンと照合し、テキスト文の構文木を作成する。図３（ａ）に、作成された構文木を示す。この構文木の各ノードには、上記原言語パターンが一つずつ対応している。ところで、図２に示す原言語パターンは、文脈自由文法の形式で記述されているため、既存の構文解析アルゴリズムを適用することで容易に構文木が作成可能である。文脈自由文法を解析する構文解析アルゴリズムとしては、例えば一般的な文脈自由文法規則が扱え、かつ解析過程の制御の自由度が大きいチャート法が用いられる。上記構文解析処理部４により作成された構文木は、訳文生成処理部５に送られる。
【００３３】
訳文生成処理部５は、上記構文解析処理部４から送られた構文木を、上記翻訳パターンの目的言語パターンを参照して目的言語に変換する。図３（ｂ）は、図３（ａ）に示す原言語の構文木から作成された目的言語の構文木を示す。この訳文生成処理部５では、関数ｇｅｎｅｒａｔｅ（）を定義しており、この関数ｇｅｎｅｒａｔｅ（）を実行することで原言語の構文木から目的言語の構文木への変換処理が行われる。図４は、この関数ｇｅｎｅｒａｔｅ（）を用いた変換処理の手順と内容を示すフローチャートである。以下に、この図４を用いて上記訳文生成処理部５による変換処理動作を説明する。
【００３４】
まず訳文生成処理部５は、原言語の根ノードであるＳＮｏｄｅ［文，ＩＤ＝１０１］を呼び出す。ここで、ＳＮｏｄｅ［文，ＩＤ＝１０１］は、原言語の構文木のノードを示す構造体であり、変数が“文”、ＩＤが「１０１」であることを示し、さらに構文木の子ノードへのポインタも有している。この呼び出したＳＮｏｄｅ［文，ＩＤ＝１０１］から、原言語ノードの変数“文”と、翻訳パターンのＩＤ＝「１０１」を取得する（ステップＳ１０）。これら取得した情報をもとに、目的言語ノードＴＮｏｄｅ［文，ＩＤ＝１０１］を生成する。ここで、ＴＮｏｄｅ［文，ＩＤ＝１０１］は、目的言語の構文木のノードを示す構造体であり、変数が“文”、ＩＤが「１０１」であることを示し、さらに構文木の子ノードへのポインタも有している。
【００３５】
続いて訳文生成処理部５は、ステップＳ１２に移行してここでマーカテーブルが存在するか否かを判定する。ここではまだマーカテーブルが設定されていないのでステップＳ１４に移行する。ステップＳ１４では、目的言語評価部をすべて処理したか否かを判定する。そして、ＩＤが「１０１」の翻訳パターンには目的言語評価部が無いので、ステップＳ１７に移行する。ステップＳ１７では、目的言語パターンのすべての構成要素について訳文生成処理を行ったか否かを判定する。そして、ここではまだ処理を終了していないので、構成要素の種類ごとの処理を次のように実行する。
【００３６】
すなわち、訳文生成処理部５はステップＳ１８、ステップＳ２０及びステップＳ２２により、構成要素が「単語」であるのか、「インデックス」であるのか、さらに「マーカ」であるのかを判定する。いま、ＩＤ「１０１」の目的言語パターンにはインデックス“１”が記述されている。このため、ステップＳ２０からステップＳ２１に移行し、ここでインデックス参照先である原言語ノードＳＮｏｄｅ［動詞句，ＩＤ＝１０２］を呼び出す。そして、このＳＮｏｄｅ［動詞句，ＩＤ＝１０２］と、再帰的に呼び出した関数ｇｅｎｅｒａｔｅ（）とから目的言語ノードＴＮｏｄｅ［動詞句，ＩＤ＝１０２］を作成する。そして、この作成したＴＮｏｄｅ［動詞句，ＩＤ＝１０２］をＴＮｏｄｅ［文，ＩＤ＝１０１］の子ノードとして設定する。ここで、訳文生成処理部５は、すべてのノードの処理ごとに関数ｇｅｎｅｒａｔｅ（）を再帰的に呼び出す。そして、目的言語パターンのすべての構成要素を処理すると、当該ＩＤ「１０１」の翻訳パターンにおける関数ｇｅｎｅｒａｔｅ（）の処理を終了する（ステップＳ２４）。
【００３７】
次に訳文生成処理部５は、ＩＤが「１０２」の翻訳パターンについての関数ｇｅｎｅｒａｔｅ（）の処理を行う。なお、上記ＩＤ「１０１」の場合と重複するステップについては説明を省略する。
【００３８】
まず訳文生成処理部５は、呼び出した原言語ノードＳＮｏｄｅ［動詞句，ＩＤ＝１０２］の変数“動詞句”とＩＤ＝１０２をステップＳ１０で取得し、ステップＳ１１で目的言語ノードＴＮｏｄｅ［動詞句，ＩＤ＝１０２］を作成する。そして、マーカテーブルが存在しなければステップＳ１２からステップＳ１４に移行し、ここで目的言語評価部をすべて処理したか否かを判定する。いまＩＤが「１０２」の翻訳パターンには目的言語評価部に位置指定がある。このため訳文生成処理部５は、ステップＳ１５に移行して右辺値のインデックス“１”で参照される原言語ノードＳＮｏｄｅ［主格，ＩＤ＝１０６］を呼び出す。そして、このＳＮｏｄｅ［主格，ＩＤ＝１０６］と再帰的に呼び出した関数ｇｅｎｅｒａｔｅ（）とから作成される目的言語ノードＴＮｏｄｅ［主格，ＩＤ＝１０６］を、位置指定の左辺値のインデックス“２”とマーカ“＄ｓｂｊ”とに対応付けてマーカテーブル記憶エリア１０に記憶する（ステップＳ１６）。この結果、マーカテーブルは表１に示すエントリを持つことになる。
【００３９】
【表１】
2004157688.tif 000003
【００４０】
そうして目的言語評価部をすべて処理すると、訳文生成処理部５はステップＳ１７に移行し、ここで目的言語パターンのすべての構成要素を処理したか否かを判定する。そして、未処理であればステップＳ１８、ステップＳ２０及びステップＳ２２により構成要素の種類を判定する。いま、ＩＤ「１０２」の目的言語パターンにはインデックス“２”が記述されている。このため、訳文生成処理部５はインデックス“２”で参照される原言語ノードＳＮｏｄｅ［動詞句，ＩＤ＝１０３］をステップＳ２１で呼び出す。そして、マーカテーブルにエントリが存在すれば、以下の条件のいずれかを満たすエントリを呼び出す。
目的言語パターンに記述されているインデックスと同じインデックスを持つエントリ（条件１）
インデックスがＮＵＬＬであり、かつ、現目的言語パターンに存在しないマーカを持つエントリ（条件２）
いま、表１を参照すると、１行目のエントリのインデックスが“２”であり、条件１を満たす。このため、訳文生成処理部５は当該エントリを呼び出す。そして、上記原言語ノードＳＮｏｄｅ［動詞句，ＩＤ＝１０３］からＴＮｏｄｅ［動詞句，ＩＤ＝１０３］を作成し、上記呼び出したエントリをＴＮｏｄｅ［動詞句，ＩＤ＝１０３］に属性情報として設定する。そして、このＴＮｏｄｅ［動詞句，ＩＤ＝１０３］をＴＮｏｄｅ［動詞句，ＩＤ＝１０２］の子ノードに設定する。そして、目的言語パターンのすべての構成要素を処理すると、当該翻訳パターンにおける関数ｇｅｎｅｒａｔｅ（）の処理を終了する。
【００４１】
次に訳文生成処理部５は、原言語ノードのＳＮｏｄｅ［動詞句，ＩＤ＝１０３］を呼び出す。このとき、属性情報として、前述のようにマーカテーブルのエントリが設定されている。このため訳文生成処理部５は、ステップＳ１３に移行し、ここで上記エントリを取得してインデックス“２”を“ＮＵＬＬ”に変更し、マーカテーブル記憶エリア１０に再度記憶する。この結果、マーカテーブルは表２に示すエントリを持つことになる。
【００４２】
【表２】
2004157688.tif 000004
【００４３】
さらに訳文生成処理部５は、前述の説明と同様に目的言語評価部についてステップＳ１５及びステップＳ１６の処理を行う。この結果、マーカテーブル記憶エリア１０は表３に示すエントリを持つことになる。
【００４４】
【表３】
2004157688.tif 000005
【００４５】
いま、ＩＤが「１０３」の翻訳パターンの目的言語パターンには、インデックス“２”が記述されている。このため訳文生成処理部５は、表３のマーカテーブルを参照し、前述の条件１、条件２を満たすエントリが存在するかを判定する。
表３の１行目のエントリは、インデックスが“ＮＵＬＬ”であり、かつ目的言語パターンにはマーカ“＄ｓｂｊ”は存在しない。このため、前述の条件２を満たす。表３の２行目のエントリは、インデックスが目的言語パターンに記述されているインデックスと同じである。このため、前述の条件１を満たす。
【００４６】
したがって訳文生成処理部５は、表３の２つのエントリと、目的言語パターンのインデックス“２”で参照される原言語ノードＳＮｏｄｅ［動詞句，ＩＤ＝１０４］とを呼び出す。そして、この原言語ノードＳＮｏｄｅ［動詞句，ＩＤ＝１０４］と再帰的に呼び出した関数ｇｅｎｅｒａｔｅ（）とからＴＮｏｄｅ［動詞句，ＩＤ＝１０４］を作成し、上記呼び出した２つのエントリをＴＮｏｄｅ［動詞句，ＩＤ＝１０４］に属性情報として設定する。そして、このＴＮｏｄｅ［動詞句，ＩＤ＝１０４］をＴＮｏｄｅ［動詞句，ＩＤ＝１０３］の子ノードに設定する（ステップＳ２１）。
【００４７】
この処理動作から明らかなように、現在のノードにおける目的言語パターンが指定されたマーカを持たない場合には、現在のノードの子ノードを関数ｇｅｎｅｒａｔｅ（）が処理する際に、マーカテーブルのエントリをもとに子ノードをたどることにより、指定されたマーカが記述されている目的言語パターンを探すことができる。辿るべき子ノードが複数ある場合には、例えば最左、深さ優先で子ノードを辿るといった優先順位を予め定めておけばよい。
【００４８】
次に訳文生成処理部５は、ＩＤが「１０５」の翻訳パターンについての関数ｇｅｎｅｒａｔｅ（）の処理を行う。原言語ノードＳＮｏｄｅ［動詞句，ＩＤ＝１０５］を呼び出したとき、属性情報としてマーカテーブルのエントリが３つ与えられており、表４に示すエントリがマーカテーブル記憶エリア１０に記憶されている（ステップＳ１２）。
【００４９】
【表４】
2004157688.tif 000006
【００５０】
いま、ＩＤが「１０５」である翻訳パターンの目的言語パターンには、マーカ“＄ｓｂｊ”が記述されている。このため訳文生成処理部５は、ステップＳ２２からステップＳ２３に移行し、ここでマーカテーブルのエントリのうちインデックスが“ＮＵＬＬ”であり、かつ同じマーカを持つ目的言語ノードを選択する。例えば、表４に示すマーカテーブルでは１行目のエントリが選択され、目的言語ノードＴＮｏｄｅ［主格，ＩＤ＝１０６］を最初の子ノードとして設定する。
【００５１】
次に、目的言語パターンにはインデックス“１”が記述されているため、インデックス参照先である原言語ノードＳＮｏｄｅ［動詞，ＩＤ＝１１１］を呼び出し、このＳＮｏｄｅ［動詞，ＩＤ＝１１１］と再帰的に呼び出した関数ｇｅｎｅｒａｔｅ（）とから目的言語ノードＴＮｏｄｅ［動詞，ＩＤ＝１１１］を作成する。そして、この作成したＴＮｏｄｅ［動詞，ＩＤ＝１１１］を２番目の子ノードとして設定する（ステップＳ２１）。このとき、表４に示すマーカテーブルのエントリは、いずれも前述の条件１、条件２を満たしていないので、属性情報は設定されない。
【００５２】
次の目的言語パターンの構成要素は、マーカ“＄ｏｂｊ”であるため、訳文生成処理部５はステップＳ２２からステップＳ２３に移行し、ここで表４のマーカテーブルを参照して目的言語ノードＴＮｏｄｅ［を格，ＩＤ＝１０７］を取得する。そして、このＴＮｏｄｅ［を格，ＩＤ＝１０７］を３番目の子ノードとして設定する。
同様に、最後の構成要素はマーカ“＄ａｄｖ”であるため、訳文生成処理部５は表４のマーカテーブルを参照して目的言語ノードＴＮｏｄｅ［副詞句，ＩＤ＝１１０］を４番目の子ノードとして設定する。
【００５３】
そうして、目的言語パターンのすべての構成要素についての処理を終了すると、訳文生成処理部５はステップＳ１７からステップＳ２４に移行して、当該翻訳パターンにおける関数ｇｅｎｅｒａｔｅ（）の処理を終了する。
【００５４】
最後に、原言語ノードＳＮｏｄｅ［名詞句，ＩＤ＝１０８］を呼び出したときの関数ｇｅｎｅｒａｔｅ（）の動作を説明する。訳文生成処理部５は、ＩＤが「１０８」である翻訳パターンの目的言語パターンには単語“Ｉ”が記述されているので、ステップＳ１８からステップＳ１９に移行し、ここで再帰的に呼び出した関数ｇｅｎｅｒａｔｅ（）により目的言語ノードＴＮｏｄｅ［「Ｉ」，ＩＤ＝＊＊＊］を作成し、ＴＮｏｄｅ［名詞句，ＩＤ＝１０８］の子ノードとして設定する。そして、当該翻訳パターンにおける関数ｇｅｎｅｒａｔｅ（）の処理を終了する（Ｓ２４）。ここで、ＩＤ＝「＊＊＊」は単語を表すノードであることを示している。
【００５５】
以上のように訳文生成処理部５は、すべてのノードの処理ごとに関数ｇｅｎｅｒａｔｅ（）を再帰的に呼び出す。このため、図３（ａ）に示す原言語の構文木の根ノードを呼び出して翻訳処理を実行すると、図３（ｂ）に示す目的言語の構文木が生成される。そして、訳文生成処理部５は、この生成された目的言語の構文木（図３（ｂ））を最左、深さ優先で辿ることにより得られる末端の単語を出現順に並べ、これにより翻訳文の表示データを生成する。そして、この生成された翻訳文の表示データを出力部１１へ出力し表示させる。この結果出力部１１では、翻訳文“Ｉ  ｓｔｕｄｙ  Ｅｎｇｌｉｓｈ  ｈａｒｄ”が表示される。
【００５６】
以上詳述したようにこの実施形態では、原言語で記載されたテキスト文を単語分割し、この単語分割されたテキスト文から原言語パターンに従って構文木を作成する。そして、原言語の構文木から目的言語パターンに従って目的言語の構文木を作成する際に、目的言語評価部によりマーカで指定された構成要素を記憶しておき、目的言語パターンに記述されたマーカの位置に上記記憶された構成要素を配置して翻訳文を生成するようにしたものである。
【００５７】
したがってこの実施形態によれば、マーカを設定した目的言語の構成要素を配置する位置を変更することが可能となる。よって、原言語の語順が自由であり、目的言語の語順が固定的な言語であっても、翻訳パターンの適用順序によらずに所定の語順で翻訳文を生成することができる。
【００５８】
また上記実施形態では、翻訳パターンの目的言語評価部に変更可能な構成要素を予め特定して翻訳処理を実行するようにしていたが、上記変更可能な構成要素をユーザが設定できるように構成してもよい。すなわち、変更可能な構成要素の入力をユーザに促す設定画面を作成して出力部１１に表示する。そして、ユーザが入力部１により入力した情報を上記目的言語評価部に反映させることで実現可能である。
【００５９】
同様に上記実施形態では、翻訳パターンの目的言語パターンに記述されたマーカの配置する位置を予め特定して（図２におけるＩＤ＝１０５の目的言語パターン）翻訳処理を実行するようにしていたが、上記マーカの位置をユーザが設定できるように構成してもよい。すなわち、マーカにより指定された構成要素の変更を促す設定画面を作成して出力部１１に表示する。そして、ユーザが入力部１により入力した情報を上記目的言語パターンに反映させることで実現可能である。
このような構成にすることで、上記一定の語順で翻訳文を作成できることに加えて、翻訳方式をカスタマイズすることが可能となる。
【００６０】
また上記実施形態では、ＲＯＭに記憶された翻訳プログラムをＣＰＵが実行することで翻訳処理を行うように説明したが、上記翻訳プログラムをＣＤ−ＲＯＭ等の外部記憶媒体から読み込んだり、ネットワーク上のサイトから通信回線を介してダウンロードしてインストールするようにしてもよい。
【００６１】
その他、翻訳装置の種類とその構成、辞書の種類とその構成、単語分割処理や構文解析処理の方法、訳文生成処理の制御手順とその内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
【００６２】
【発明の効果】
以上詳述したようにこの発明では、原言語の構文木を作成するための原言語パターンと、この原言語パターンに対応した目的言語の構文木を作成するための目的言語パターンと、目的言語評価部とから構成され、かつ上記目的言語パターンには上記目的言語の構文木を表す構成要素のうち位置が変更可能な構成要素を示す識別子が含まれ、上記目的言語評価部には上記識別子が表す目的言語の構成要素を特定するための情報が含まれる翻訳パターンを有し、原言語で記載されたテキスト文を単語分割して、この分割された単語をもとに上記原言語パターンに従って原言語の構文木を作成する。そして、上記作成された原言語の構文木をもとに上記目的言語パターンに従って目的言語の構文木を作成し、この作成された目的言語の構文木の構成要素のうち上記目的言語評価部の識別子が表す構成要素を当該識別子と対応付けて記憶しておく。そして、上記目的言語パターンに上記識別子が存在した場合には、当該識別子に対応付けて記憶された構成要素を置き換えて翻訳文を生成するようにしている。
【００６３】
したがってこの発明によれば、原言語に語順が自由な言語が含まれ、対応する目的言語の語順が固定される場合でも、複数の翻訳パターンを用意することなく正確な翻訳を行えるようにした翻訳装置、翻訳方法及び翻訳プログラムを提供することができる。
【図面の簡単な説明】
【図１】この発明に係わる実施形態における翻訳装置の構成を示すブロック図。
【図２】図１に示した翻訳装置における翻訳パターンの一例。
【図３】図１に示した翻訳装置により作成される構文木を示す図。
【図４】訳文生成処理部５で実行される関数ｇｅｎｅｒａｔｅ（）の動作を示すフローチャート。
【図５】日本語から英語に翻訳する際の従来技術による翻訳パターンの一例。
【図６】従来技術による翻訳例。
【図７】従来技術による翻訳例。
【符号の説明】
１…入力部
２…プロセッサ
３…単語分割処理部
４…構文解析処理部
５…訳文生成処理部
６…記憶部
７…言語別単語辞書記憶エリア
８…対訳辞書記憶エリア
９…翻訳パターン記憶エリア
１０…マーカテーブル記憶エリア
１１…出力部
【図１】
2004157688.tif 000007
【図２】
2004157688.tif 000008
【図３】
2004157688.tif 000009
【図４】
2004157688.tif 000010
【図５】
2004157688.tif 000011
【図６】
2004157688.tif 000012
【図７】
2004157688.tif 000013