(57)【要約】【課題】  例文対訳辞書を有効に活用し、迅速に正確な対訳を得ることができる翻訳メモリ装置を提供する。【解決手段】  翻訳メモリ装置は、第１言語の複数の例文と当該第１言語の複数の例文の対訳である第２の言語の複数の例文を記憶する例文対訳辞書部１１６と、第１または第２言語の入力文を入力する入力部１００、２００と、入力文と同一言語の例文が例文対訳辞書部に含まれているか否かを検索する例文照合部１１２、２１２と、一致する例文が検索されないとき、入力文に類似する例文候補を検索する類似例文検索部１１４、２１４と、検索された例文の対訳の例文を出力する出力部１１８とを有する。【選択図】  図５
2008065395.tif 000002
【特許請求の範囲】
【請求項１】
第１言語の複数の例文と当該第１言語の複数の例文の対訳である第２言語の複数の例文を記憶する例文対訳辞書と、
第１言語の入力文を入力する入力手段と、
前記入力文が例文対訳辞書の第１言語の複数の例文のいずれかに一致するか否か検索する第１の検索手段と、
第１の検索手段により一致する例文が検索されないとき、例文対訳辞書の第１言語の複数の例文から前記入力文に類似する少なくとも１つの例文候補を検索する第２の検索手段と、
第１の検索手段により検索された例文または第２の検索手段により検索された例文候補の対訳である第２言語の例文を出力する出力手段と、
を有する翻訳装置。
【請求項２】
前記入力手段から第２言語の入力文が入力されたとき、前記第１の検索手段は、第２言語の入力文が例文対訳辞書の第２言語の複数の例文のいずれかに一致するか否か検索し、前記第２の検索手段は、第１の検索手段により一致する例文が検索されないとき、例文対訳辞書の第２言語の複数の例文から第２言語の入力文に類似する少なくとも１つの例文候補を検索し、前記出力手段は、第１の検索手段により検索された例文または第２の検索手段により検索された例文候補の対訳である第１言語の例文を出力する、請求項１に記載の翻訳装置。
【請求項３】
前記第１の検索手段は、前記入力文のハッシュ値を生成し、生成されたハッシュ値に基づき一致する例文を検索する、請求項１または２に記載の翻訳装置。
【請求項４】
前記第２の検索手段は、前記入力文のＮグラム列（Ｎは、自然数）を生成し、生成されたＮグラム列に基づき類似する例文を検索する、請求項１または２に記載の翻訳装置。
【請求項５】
前記第２の検索手段は、生成されたＮグラム列が予め用意された検索禁止用Ｎグラムに一致するとき、生成されたＮグラム列から一致した禁止用Ｎグラムを削除する、請求項４に記載の翻訳装置。
【請求項６】
前記第２の検索手段は、第１言語および第２言語の複数の例文をＮグラムトライ構造により格納するＮグラムインデックス部を有する、請求項４または５に記載の翻訳装置。
【請求項７】
前記第２の検索手段は、前記入力文から２グラムの文字列を生成し、前記Ｎグラムインデックス部は、例文を２グラムのトライ構造で格納する、請求項６に記載の翻訳装置。
【請求項８】
前記第２の検索手段は、入力文から生成されたＮグラムを包含する数を例文毎にカウントし、当該カウント結果に基づき入力文と例文との類似度を判定し、当該判定結果に基づき例文候補を選択する、請求項１に記載の翻訳装置。
【請求項９】
第１言語の複数の例文と当該第１言語の複数の例文の対訳である第２言語の複数の例文を記憶する例文対訳辞書を用いた翻訳方法であって、
第１言語の入力文を入力するステップと、
前記入力文が例文対訳辞書の第１言語の複数の例文のいずれかに一致するか否か検索する第１の検索ステップと、
第１の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第１言語の複数の例文から前記入力文に類似する少なくとも１つの例文候補を検索する第２の検索ステップと、
第１の検索ステップにより検索された例文または第２の検索ステップにより検索された例文候補の対訳である第２言語の例文を出力するステップと、
を有する翻訳方法。
【請求項１０】
第２言語の入力文が入力されたとき、前記第１の検索ステップは、第２言語の入力文が例文対訳辞書の第２言語の複数の例文のいずれかに一致するか否か検索し、前記第２の検索ステップは、第１の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第２言語の複数の例文から第２言語の入力文に類似する少なくとも１つの例文候補を検索し、前記出力ステップは、第１の検索ステップにより検索された例文または第２の検索ステップにより検索された例文候補の対訳である第１言語の例文を抽出する、請求項９に記載の翻訳方法。
【請求項１１】
第１言語の複数の例文と当該第１言語の複数の例文の対訳である第２言語の複数の例文を記憶する例文対訳辞書を用いた翻訳プログラムであって、
第１言語の入力文を入力するステップと、
前記入力文が例文対訳辞書の第１言語の複数の例文のいずれかに一致するか否か検索する第１の検索ステップと、
第１の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第１言語の複数の例文から前記入力文に類似する少なくとも１つの例文候補を検索する第２の検索ステップと、
第１の検索ステップにより検索された例文または第２の検索ステップにより検索された例文候補の対訳である第２言語の例文を出力するステップと、
を有する翻訳プログラム。
【請求項１２】
第２言語の入力文が入力されたとき、前記第１の検索ステップは、第２言語の入力文が例文対訳辞書の第２言語の複数の例文に一致するか否か検索し、前記第２の検索ステップは、第１の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第２言語の複数の例文から第２言語の入力文に類似する少なくとも１つの例文候補を検索し、前記出力ステップは、第１の検索ステップにより検索された例文または第２の検索ステップにより検索された例文候補の対訳である第１言語の例文を抽出する、請求項１１に記載の翻訳プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例文対訳辞書を利用した翻訳装置、翻訳方法および翻訳プログラムに関する。
【背景技術】
【０００２】
機械翻訳とは、計算機を利用して、ある言語から別の言語に変換することである。半世紀をかけて、世界中で研究開発が行われている。機械翻訳方式は大きく、（１）解析ベース機械翻訳方式、（２）例文ベース機械翻訳方式、（３）統計ベース機械翻訳方式に分けることができる。
【０００３】
解析ベース機械翻訳方式は、第１言語を形態素解析、構文・意味解析などを行い、その解析の結果を第２言語に変換し、さらに第２言語の訳文を生成する技術である。自然言語の解析技術はまだ未熟な技術であるため、解析ベース機械翻訳方式の実用化には限界がある。また、学習できないので、翻訳エンジンの改善や改良が困難である。
【０００４】
統計ベース機械翻訳方式は、言語モデルと統計モデルを用いて翻訳モデルを構築する技術である。各モデルの構成に必要な学習データ(コーパス)が限られているので、実用化が困難である。
【０００５】
例文ベース機械翻訳方式は、人間が外国語を勉強するメカニズムを真似して、既に学習した翻訳例文を参考して、新しい文書を翻訳することである。１９８０年代に、長尾教授が始めてこの翻訳方式を提案した。その後、盛んに研究開発が行われている。
【０００６】
一方、翻訳業務を支援するための翻訳支援システムがある。翻訳支援ソフトは、機械翻訳ソフトと異なり、正確に翻訳できないセンテンスに対して、蓄積された例文対訳辞書から類似な例文とその例文の訳文、或いは部分的な翻訳結果を翻訳者に提示する。
【０００７】
特許文献１は、類似文検索装置に関し、用例データベースを利用して、入力文により類似する用例文、特に入力文を含むような例文を検索する技術を開示している。特許文献２は、自動翻訳装置に関し、例文データベースから、入力文の形態素間の関係を用いて１番近い例文を選択する技術を開示している。特許文献３は、類似例文をグルーピングすることにより、入力文を翻訳するために必要な類似例文を分かりやすく表示する方法を開示している。
【０００８】
【特許文献１】特開２００５−１０７５９７号
【特許文献２】特開平６−８３８６４号
【特許文献３】特開平８−１０６４７４号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
図２３は、例文対訳辞書の概要を説明する図である。同図に示す例文対訳辞書は、中国語の例文とそれに対応する日本語の例文の例文ペアを複数記憶するメモリ１を有している。ユーザから、中国語の入力文２が入力されると、例文検索部３は、入力文２に一致する中国語の例文を検索し、入力文２に一致する日本語の訳文４を出力する。
【００１０】
従来の例文対訳辞書では、入力文と例文の一致を検索するため、一致する例文以外の訳文の情報を得ることができず、仮に入力文に類似する例文が記憶されていたとしても、ユーザは、その類似する例文を利用することができず、例文対訳辞書が有効に活用されていなかった。また、ＯＣＲ（文字認識装置）により読取られた文書データを入力文に用いるとき、読取りに誤認識があると例文との照合が不一致となり、一致する例文が記憶されているにもかかわらず、その対訳を得ることができない。
【００１１】
一方、例文対訳辞書の例文を検索する方法として、文字インデックス方法や単語インデックス方法が考えられる。前者は、対訳句対コーパスに存在するすべでの文字に対して文字インデックスを作成するものであるが、この方法は、検索するデータ量が膨大となり、リアルタイムで翻訳を実現するのは困難である。後者は、対訳句対コーパスに存在するすべでの単語に対して単語インデックスを作成するものであるが、入力文から単語を抽出するために形態素解析が必要となり、形態素解析の結果が不正解の場合は翻訳が困難になる。特に、専門用語、慣用句に対して形態素解析が難しい。
【００１２】
本発明は、上記従来の課題を解決し、例文対訳辞書を有効に活用し、迅速に正確な対訳を得ることができる翻訳装置、翻訳方法および翻訳プログラムを提供することを目的とする。
さらに本発明は、例文対訳辞書を活用し、入力文の類似例文の対訳を提供することでユーザの翻訳支援を行うことができる翻訳装置、翻訳方法および翻訳プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る翻訳装置は、第１言語の複数の例文と当該第１言語の複数の例文の対訳である第２言語の複数の例文を記憶する例文対訳辞書と、第１言語の入力文を入力する入力手段と、前記入力文が例文対訳辞書の第１言語の複数の例文のいずれかに一致するか否か検索する第１の検索手段と、第１の検索手段により一致する例文が検索されないとき、例文対訳辞書の第１言語の複数の例文から前記入力文に類似する少なくとも１つの例文候補を検索する第２の検索手段と、第１の検索手段により検索された例文または第２の検索手段により検索された例文候補の対訳である第２言語の例文を出力する出力手段とを有する。これにより、入力文に一致する例文が見つからない場合であっても、類似する例文を検索しその対訳を提供することで、ユーザの翻訳の支援を行うことができる。
【００１４】
好ましくは、入力手段から第２言語の入力文が入力されたとき、前記第１の検索手段は、第２言語の入力文が例文対訳辞書の第２言語の複数の例文のいずれかに一致するか否か検索し、第２の検索手段は、第１の検索手段により一致する例文が検索されないとき、例文対訳辞書の第２言語の複数の例文から第２言語の入力文に類似する少なくとも１つの例文候補を検索し、出力手段は、第１の検索手段により検索された例文または第２の検索手段により検索された例文候補の対訳である第１言語の例文を出力する。つまり、翻訳装置は、第１言語の入力文および第２言語の入力文のそれぞれについて双方向の翻訳を可能とする。
【００１５】
好ましくは第１の検索手段は、前記入力文のハッシュ値を生成し、生成されたハッシュ値に基づき一致する例文を検索する。ハッシュ値を用いて検索することで、一致する例文を正確にかつ高速に検索することができる。
【００１６】
好ましくは第２の検索手段は、前記入力文のＮグラム列（Ｎは、自然数）を生成し、生成されたＮグラム列に基づき類似する例文を検索する。Ｎグラム例を用いることで、類似する例文の検索を容易に実現することができる。
【００１７】
好ましくは、第２の検索手段は、生成されたＮグラム列が予め用意された検索禁止用Ｎグラムに一致するとき、生成されたＮグラム列から一致した禁止用Ｎグラムを削除する。予め禁止用Ｎグラム列を除外することで、類似する例文の検索を高速化することができる。
【００１８】
好ましくは、第２の検索手段は、第１言語および第２言語の複数の例文をＮグラムトライ構造により格納するＮグラムインデックス部を有する。トライ構造を用いることで、例文の検索をより高速にすることができる。より好ましくは、第２の検索手段は、入力文から２グラムの文字列を生成し、Ｎグラムインデックス部は、例文を２グラムのトライ構造で格納する。文字インデックス法に比べてより高速の検索が可能であり、単語インデックス法に比べて検索が容易である。
【００１９】
好ましくは、第２の検索手段は、入力文から生成されたＮグラムを包含する数を例文毎にカウントし、当該カウント結果に基づき入力文と例文との類似度を判定し、当該判定結果に基づき例文候補を選択する。例文候補を選択し、その対訳を出力可能にすることで、ユーザへの翻訳支援を行うことができる。
【００２０】
本発明に係る翻訳方法または翻訳プログラムは、第１言語の複数の例文と当該第１言語の複数の例文の対訳である第２言語の複数の例文を記憶する例文対訳辞書を用いるものであって、第１言語の入力文を入力するステップと、前記入力文が例文対訳辞書の第１言語の複数の例文のいずれかに一致するか否か検索する第１の検索ステップと、第１の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第１言語の複数の例文から前記入力文に類似する少なくとも１つの例文候補を検索する第２の検索ステップと、第１の検索ステップにより検索された例文または第２の検索ステップにより検索された例文候補の対訳である第２言語の例文を出力するステップとを有する。
【発明の効果】
【００２１】
本発明によれば、入力文に一致する例文が見つからない場合には、入力文と同じ言語の類似する例文候補を検索し、例文候補の対訳を提示するようにしたので、例文対訳辞書を有効に活用しつつ、ユーザの翻訳の支援を行うことができる。さらに、第１の言語および第２の言語のいずれの入力文に対しても双方向の翻訳を可能とすることで翻訳装置の構成を簡略化し、コスト増を抑制することができる。
さらに、入力文への形態素解析の結果が不正解でも、例文対訳辞書に蓄積された例文対訳データを正確に引き出すことが可能となる。また、ＯＣＲから得られた文書データに誤認識があっても、蓄積された対訳例文データを正確に引き出すことが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の最良の実施形態について図面を参照して説明する。
【実施例】
【００２３】
図１は、本発明の実施例に係る機械翻訳システムの全体構成を示す図である。機械翻訳システム１０は、より簡単な翻訳からより複雑な翻訳へ移行するように構成され、翻訳の高速化を図っている。また、機械翻訳システム１０は、翻訳することができない部分を自動的に回収し、正確な対訳を付与する学習機能を備えている。
【００２４】
機械翻訳システム１０は、原言語テキスト文入力部１２から入力された文単位の文を翻訳する翻訳メモリ装置１４、翻訳メモリ装置１４において照合できなかった入力文、つまり不適切とされた入力文を入力しこれの形態素解析された単語等の例文パターンを翻訳する例文ベース翻訳装置１６と、例文ベース翻訳装置１６で翻訳できなかった単語を不適切な単語として入力し、この単語を翻訳する単語直訳翻訳装置１８と、上記の翻訳装置によって適切に翻訳された結果に基づき目的言語のテキスト文を作成しこれを出力する目的言語テキスト出力部２０とを有している。
【００２５】
さらに機械翻訳システム１０は、例文ベース翻訳装置１６によって翻訳することができなかった文を回収し、回収された文に適切な翻訳を作成する翻訳不適切文自動回収部２２と、翻訳不適切文自動回収部２２により作成された翻訳のチェックや修正を行う学習装置２４と、翻訳辞書２６とを備えている。翻訳辞書２６は、第１の言語の単語とその対訳である第２の言語の単語を格納する単語対訳辞書２６ａ、第１の言語の例文とその対訳である第２の言語の例文を格納する例文対訳辞書２６ｂ、第１の言語の例文パターンとその対訳である第２の言語の例文パターンを格納する例文パターン対訳辞書２６ｃを含んでいる。翻訳辞書２６は、翻訳メモリ装置１４、例文ベース翻訳装置１６、単語直訳翻訳装置１８において利用される。なお、図１の機械翻訳システムは、一つの構成例であって、さらに他のチャンクベース等の翻訳エンジンを含むものであってもよい。
【００２６】
本実施例は、機械翻訳システム１０に用いられる翻訳メモリ装置１４に新規な特徴を備える。図２は、本実施例の翻訳メモリ装置の構成を示す図である。翻訳メモリ装置１４は、第１言語検索辞書１４−１と第２言語検索辞書１４−２とを含み、第１および第２言語検索辞書１４−１、１４−２は、第１言語および第２言語の入力文が入力されると、入力文に照合する例文または例文候補を検索し、その対訳の抽出および出力を行う。
【００２７】
図３は、第１言語または第２言語検索辞書の構成を示すブロック図である。ハッシュ（Hash）インデックス検索部３０は、第１言語の入力文が入力されたとき、入力文のハッシュ値を生成し、入力文のハッシュ値と完全にマッチングする第１言語の例文のハッシュ値を、例文対訳辞書２６ｂから検索し、対訳例文を抽出する。ハッシュインデックス検索部３０により入力文と完全にマッチングする例文を検索することができない場合、N-gramインデックス検索部３２は、入力文からN-gramを生成し、生成されたN-Gram文字列を用いて、例文対訳辞書２６ｂから類似する第１言語の例文候補を検索し、その対訳例文を抽出する。
【００２８】
後述するように、高速化、記憶空間の節約のため、Bi-gram（２グラム）生成のとき、禁止用文字リストを用いて、どの例文にも出現する可能性の高い文字を含むN-Gramを削除する．また、禁止用Bi-gramリストを用いて、どの例文にも出現する可能性の高いBi-gramを削除する。なお、第２言語の入力文が入力されたときも第１言語のときと同様に行われる。
【００２９】
図４は、翻訳メモリ装置のハードウエア構成を示す図である。翻訳メモリ装置は、入力装置４０、表示装置４２、主記憶装置４４、外部記憶装置４６、中央処理装置（ＣＰＵ）４８、これらを接続するバス５０を含んでいる。入力装置４０は、ユーザインターフェースを提供したり、原稿に記載された単語を光学的に読み取る光学式読取装置等を含む。表示装置４２は、原言語のテキスト文を表示したり、翻訳結果等を表示するディスプレイ等を含む。主記憶装置４４は、ＲＯＭまたはＲＡＭを含み、翻訳を制御するためのプログラムや演算結果等のデータを記憶する。外部記憶装置４６は、例えばハードディスク等の大容量記憶装置を含み、ここに、例文対訳辞書２６ｂなどを格納するようにしてもよい。ＣＰＵ（Central Processing Unit）４８は、主記憶装置３４に記憶されたプログラムに従い翻訳動作を制御する。
【００３０】
図５は、本実施例の翻訳メモリ装置の機能ブロック図である。本実施例に係る翻訳メモリ装置は、第１言語の入力文を入力する第１言語入力部１００、第１言語入力部１００からの入力文を受け取り、入力文のハッシュ値を計算するハッシュ値計算部１０２、第１言語入力部１００からの入力文を受け取り、入力文のＮグラム文字列を生成するＮグラム生成部１０４、第１言語の禁止用Ｎグラムを格納する禁止用Ｎグラムリスト１０６、第１言語の複数の例文についてのハッシュ値を格納するハッシュ値インデックス部１０８、第１言語の例文をＮグラムのトライ構造で格納するＮグラムインデックス部１１０、ハッシュ値計算部１０２で計算された入力文のハッシュ値とハッシュ値インデックス部１０８に格納された例文のハッシュ値とを比較し入力文に一致する例文を検索する例文照合部１１２、例文照合部１１２による照合が不調に終わったとき、Ｎグラム生成部１０４により生成された入力文のＮグラム文字列に基づき類似する例文候補をＮグラムインデックス部１１０から検索する類似例文検索部１１４、第１言語の例文と第２言語の対訳の例文とを格納し、例文照合部１１２または類似例文検索部１１４により検索された例文または例文候補の対訳である第２言語の例文または例文候補を抽出する例文対訳辞書部１１６、例文対訳辞書部１１６で抽出された例文をディスプレイやプリンタなどに出力する出力部１１８を含んでいる。
【００３１】
また、第２言語入力部２００、第２言語の入力文のハッシュ値を計算するハッシュ値計算部２０２、第２言語の入力文のＮグラム文字列を生成するＮグラム生成部２０４、第２言語の禁止用Ｎグラムを格納する禁止用Ｎグラムリスト２０６、第２言語の複数の例文についてのハッシュ値を格納するハッシュ値インデックス部２０８、第２言語の例文をＮグラムのトライ構造で格納するＮグラムインデックス部２１０、第２言語の入力文に一致する第２言語の例文を検索する例文照合部２１２、例文照合部２１２による照合が不調に終わったとき、第２言語の入力文のＮグラム文字列に基づき類似する第２言語の例文候補をＮグラムインデックス部２１０から検索する類似例文検索部２１４を含み、第２言語の入力文についても第１言語のときと同様の検索が行われ、その対訳である第１言語の例文が出力される。
【００３２】
第１言語(第２言語)入力部１００、２００は、外部から第１言語または第２言語の翻訳文書のセンテンスを入力する。入力文は、ＯＣＲを用いたり、媒体に格納された電子情報により入力することができる。
【００３３】
第１言語(第２言語)の例文ハッシュ値計算部１０２、２０２は、入力文のハッシュ値を計算する。ハッシュ値の計算は、次のようにして行われる。入力文をＳ、入力文に含まれる１つの文字をCi（i＝1,2,…n；nは自然数）とするとき、入力文は、S＝C1,C2,…,Cnとなり、入力文Sのハッシュ値をHash(S)で表す。Hash(S)の初期値は、０であり、Hash(S)は、図６に示す式によって計算される。ここで、“or”はBit毎にor操作、“and”はBit毎にand操作、“A<<(m)”はAが左にシフトm Bits、“mod”操作は余り演算である。LはHashインデックス表の長さ(例文ペアの数)である。11101101<<4は、4bits左にシフトされ、11010000となった例を示している。勿論、上記以外の他の方法により入力文のハッシュ値を計算するようにしてもよい。
【００３４】
第１言語（第２言語）のハッシュインデックス部１０８、２０８は、例文のハッシュ値と、当該例文とその訳文を格納している例文対訳辞書のアドレスを格納し、例文照合部１１２、２１２は、そのアドレスに基づき例文の対訳を検索する。図７は、ハッシュインデックス部と例文対訳辞書との関係を説明する図である。
【００３５】
第１言語のハッシュインデックス部１０６は、例文対訳辞書に格納されている第１言語の全ての例文についてのハッシュ値（Hash(C)=0〜Hash(C)=L-1）と、ハッシュ値に対応する例文を識別するため当該例文の格納先のアドレスとを記憶する複数のレコードを備えている。第２言語のハッシュインデックス部２０６も同様に、第２言語の全ての例文についてのハッシュ値（Hash(J)=0〜Hash(J)=L-1）と、ハッシュ値に対応する例文を識別するためのアドレスを記憶する複数のレコードを備えている。
【００３６】
例文対訳辞書部１１６は、第１言語の例文と第２言語の例文ペア(SC1,SJ1),(SC2,SJ2), … , (SCL,SJL)を記憶する。ここで、SCi(i=1,2,…,L)は、第１言語の例文(第２言語のSJiセンテンスの訳文)、SJi(I=1,2,…,L)は、第２言語のSCiセンテンスの訳文(第１言語の例文)である。例文ペアには、それぞれ対応するアドレスが付与されている。同じハッシュ値を持つ複数の例文に対しては、Next例文アドレスでリンクされている。さらに、例文ペアには、後述する類似例文の検索に利用されるＮグラム数のカウント領域２５０が割当てられる。
【００３７】
次に、入力文に照合する例文を検索する動作を図８のフローチャートを参照して説明する。ここでは、第１言語の入力文の検索を説明する。第１言語の入力文SCが第１言語入力部１００から入力されると（ステップＳ１０１）、ハッシュ値計算部１０２は、上記した計算方法により入力文SCのハッシュ値Hash(SC)を計算する（ステップＳ１０２）。計算されたハッシュ値Hash(SC)は、例文照合部１１２へ提供され、例文照合部１１２は、インデックス部１０８からHash(SC)に一致するレコードを検索し、当該レコードを読み出す（ステップＳ１０３）。次に、例文照合部１１２は、レコードに記憶された例文の識別情報であるアドレスを取得し（ステップＳ１０４）、そのアドレスに基づき例文対訳辞書部１１６に格納された例文ペアを読み出す（ステップＳ１０５）。
【００３８】
例文照合部１１２は、例文ペアに含まれる第１言語の例文SCiと入力文SCを比較し、例文SCiと入力文SCが同一か否かを判定する（ステップＳ１０６）。例文SCiが入力文SCと同一であるとき、例文照合部１１２は、例文SCiの対訳である第２言語の例文SCjを出力部１１８から出力させる。一方、例文SCiと入力文SCが異なるとき、第１言語のNEXT例文のアドレスが空(Null)か否かを判定し（ステップS１０７）、アドレスが空であれば、入力文のHash値(SC)に該当する例文は存在しないので終了となる。NEXTアドレスが存在する場合には、NEXTアドレスを取得し（ステップＳ１０８）、NEXTアドレスの例文ペアを読み出し（ステップＳ１０５）、入力文との比較が繰り返される。
【００３９】
第２言語の入力文が入力された場合にも、第１言語の入力文のときと同様に、ハッシュインデックス部２０８から該当するハッシュ値のレコードが読み出され、そのレコードに記憶されたアドレスにより第２言語の例文が検索され、その対訳である第１言語の例文が出力される。
【００４０】
入力文のハッシュ値に一致するハッシュ値をもつ例文が存在しないとき、類似例文検索部１１４、２１４は、入力文のＮグラム文字列を利用して類似する例文を検索する。先ず、入力文からＮグラム文字列を生成するＮグラム生成部１０４、２０４について説明する。Ｎグラムインデックス部１１０、２１０は、図９に示すように、対訳例文辞書部の例文に含まれているすべてのＮグラムをトライ構造で格納する。Ｎグラムトライ構造において、１つのノードは１文字を格納し、葉から根（ルート）に存在するノードによってＮグラムが特定される。ノードは、ノードＩＤ、文字情報(文字C)、フラグ(Flag)、フラグが１のとき例文番号リストレコードへの指針、親ノードのノードID、左兄弟ノードのノードIDを含む。ノードIDは、木の各ノードが深さ優先探索法の探索順位で付与される。文字情報は１文字であり、ユニコード（Unicode）を採用する。しかし、検索速度を考慮するために、検索木の第１層の各ノードに単語の第１文字の高バイト（Byte）を格納し、第２層の各ノードに単語の第1文字の低バイト（Byte）を格納するようにしてもよい。根（Root）は第０層とする。一番左の子供のノードIDは、現ノードID＋１、兄弟間に左から右へ文字情報値の昇順で並べる。また、フラグ０は、ノードが中間であることを意味し、フラグ１は、根から該ノードまでのパス上に存在するノードがＮグラムであることを表す。
【００４１】
Ｎグラムは、Ｎ個の文字からなる文字列であり、入力文S=C1,C2,…Cn,Cn+1,…,Cmであるとき、そのＮグラムの文字列は次のように表される。（C1,C2,…,Cn）、（C2,C3,…,Cn+1）、（C3,C4,…,Cn+2）・・・（Ck,Ck+1,…,Cn+k-1）。本実施例のトライ構造において、ノードIDのフラグが１、すなわち当該ノードIDの葉には、例文番号リストが関連付けされている。例文番号リストは、Ｎグラムの”文字i…文字j”を含む例文を識別する番号と、Ｎグラムの”文字i…文字j”を含む次の例文番号リストを参照する指針（ポインタ）とを対とするレコードを複数含む。言い換えれば、例文番号リストは、葉から根（ルート）に至るノードによって特定され文字を含む例文を識別する情報のレコードの集合である。
【００４２】
例えば、Ｎグラムインデックス部が２グラムトライ構造であるとき、図１０に示すように、葉から根（ルート）までのノードによって、（C11,C21）(C11,C22),(C12,C23),…,(C1m,C2S),(C1m,C2n)の２グラムの文字列が格納される。それぞれの２グラムの葉には、例文番号リストが対応付けされている。（C11,C21）に対応付けされた例文番号リストは、レコード２６０、２６２、・・・、２７０を含んでいる。レコード２６０には、（C11,C21）を含む例文を識別する番号S010とレコード２６２を示すポインタＰ１が格納される。レコード２６２には、（C11,C21）を含む次の例文を識別する番号S015と次のレコードを示すポインタＰ２が格納される。最後のレコード２７０には、最後の例文を識別する番号S020とポインタが空（Null）とが格納される。こうして、（C11,C21）を含むすべての例文が例文番号リストによって特定される。同様に他の２グラムについてそれぞれ例文番号リストが付与される。
【００４３】
次に、類似例文検索部の動作について図１１のフローチャートを参照して説明する。ここでは、第１言語の入力文が入力されたものとする。第１言語の入力文SCが入力部１００から入力される（ステップＳ２０１）。ハッシュ値により例文の照合を得ることができないとき、入力文SCは、Ｎグラム生成部１０４に入力され、Ｎグラム生成部１０４は、入力文SCのＮグラム列(C1C2C3,…, C2C3C4…, …,Ch…Cn；h個のＮグラム)を生成する（ステップＳ２０２）。但し、Ｎグラム生成部１０４は、予め禁止用のＮグラムを登録している第１言語禁止用Ｎグラムリスト１０６を参照し、このリストに登録されているＮグラムに一致するＮグラムを除外する。禁止用Ｎグラムリストは、統計手法と人工手法を用いて構築されたものであり、類似例文の検索に寄与することが少ないＮグラムを除外することで、類似例文の検索効率および処理速度を向上させることができる。
【００４４】
Ｎグラム生成部１０４により生成されたＮグラムの文字列は、類似例文検索部１１４へ供給される。類似例文検索部１１４は、初期動作として、すべての例文IDに対して、Num(ID)=０、Sim(ID)=０の処理を行う（ステップＳ２０３）。Num(ID)は、その例文がＮグラムを含む数を示し、Sim(ID)はその例文の類似度を示す。
【００４５】
類似例文検索部１１４は、入力文SCのＮグラムがh個であるとき、ｉ＝１からｉ＝ｈまで、Ｎグラムを含む例文の検索を行う。すなわち、類似例文検索部１１４は、Ｎグラムインデックス部１１０を参照し、Ｎグラムトライ構造からＮグラム（CiCi+1…Ck）を探す（ステップＳ２０４）。Ｎグラムトライ構造において、一致するＮグラム（CiCi+1…Ck）が検索された場合（ステップＳ２０５）、類似例文検索部１１４は、文字Ckを格納しているノードにある“例文番号リストレコードへの指針”を用いて、例文番号リストから、（CiCi+1…Ck）を含むすべでの例文ID(ID1,ID2,,,)を獲得する（ステップＳ２０６）。これにより、Num(ID1)=Num(ID1)+1; Num(ID2)=Num(ID2)+1;,….の処理が行われ、それぞれの例文のＮグラムの一致数に「１」が加算される。Num(ID)の加算値は、好ましくは、例文対訳辞書のそれぞれの例文に対応するカウント領域２５０に書き込まれる。
【００４６】
Ｎグラムの一致数の加算が終了したとき、およびＮグラムトライ構造において、Ｎグラム（CiCi+1…Ck）が検索されなかったとき、類似例文検索部１１４は、ｉ＝ｉ+１の処理を行い（ステップＳ２０７）、入力文SCの次のＮグラムをＮグラムトライ構造から探し出す（ステップＳ２０４）。上記と同様の処理により、次のＮグラムが検索されると、対応する例文のＮグラムの一致数に「１」が加算される。このような処理は、ｉ＝ｈ回、すなわち入力文SCから生成されるＮグラムの文字列の数だけ繰り返される。
【００４７】
入力文のＮグラムの検索が終了すると、図１２に示すように、例文対訳辞書部の例文のカウント領域２５０にＮグラム数が保持される。類似例文検索部１１４は、カウント領域２５０のＮグラム数が１以上のすべでのNum(IDj) > 0の例文に対して、Sim(IDj) = Num(IDj) / nの計算を行う（ステップＳ２０８）。ｎの値は、類似度Sim(IDj)の閾値を決定する。
【００４８】
類似例文検索部１１４は、すべでのSim(IDj) > 閾値の例文に対して、例文対訳辞書部１１６からIDj番目の例文ペア情報(SCj,SJj)を読み出し、これに応じて出力部１１８は、入力文ＳＣに類似する例文候補とその訳文(SCj,SJj)を出力する（ステップＳ２０９）。
【００４９】
上記した類似度Sim(IDj)の計算は、一例であって必ずしもこれに限定されるものではない。例えば、すべでのNum(IDj) > 0の例文に対して、Sim(IDj) = 2*Num(IDj) / (NumBG(SCj)+NumBG(SJj))による計算を行っても良い。NumBG(SC)は、入力文SCのN-gramの数を表す。
【００５０】
図１１および図１２は、第１言語の入力文についての類似例文の検索例を示したが、第２言語の入力文についても同様の検索が行われる。
【００５１】
次に、本実施例の翻訳メモリを２グラムインデックス法を用いて構成したときのブロック図を図１３に示す。図１３に示す構成は、第１言語および第２言語の禁止用文字リスト１２０、２２０を備える以外は、基本的に図５に示す構成と同じである。但し、Ｎグラムを２（Ｂｉ）グラムに変更したブロックには、番号の最後にアルファベットの文字「ａ」を付してある。
【００５２】
第１言語の入力文CSに照合する例文が検索されないとき、入力文CSに類似する例文の検索が行われる。この検索は、２グラムインデックスで行われる。２グラム生成部１０４ａの動作を図１４を参照して説明する。第1言語入力部１００に第1言語の入力文CSが入力され（ステップＳ３０１）、次いで、２グラム生成部１０４ａは、入力文CS=C1,C2,…,Cnから２グラム列C1C2, C2C3, …,Cn-1Cn を得る（ステップＳ３０２）。
【００５３】
次に、２グラム生成部１０４ａは、禁止用文字リスト１２０を参照し、２グラム列C1C2, C2C3, …,Cn-1Cn から禁止用文字リストの文字を含む２グラムを削除し、２グラム文字列C1C2, C2C3, …,ChCkを得る（ステップＳ３０３）。さらに、２グラム生成部１０４ａは、禁止用２グラムリスト１０６ａを参照し、２グラム文字列C1C2, C2C3, …,ChCkから禁止用２グラムリストに含まれている２グラムを削除し（ステップＳ３０４）、最終的な２グラム列 C1C2, C2C3, …,CuCv を得る（ステップＳ３０５）。以後の処理は、Ｎグラムのときと同様に行われ、第１言語の入力文に類似する第１言語の例文候補とそれらの訳文が出力される。第２言語の入力文から２グラムを生成するときも第１言語のときと同様に行われる。
【００５４】
次に、本発明の第２の実施例について説明する。上記実施例は、２グラムインデックス部１１０ａの２グラムトライ構造を利用して２グラムの検索を実行するものであるが、第２の実施例に係る２グラムインデックス部は、トライ構造を利用することなく、入力文から生成された２グラム列の検索を行うものである。
【００５５】
図１５に第１言語の２グラムインデックス部の構成を示す。２グラムインデックス部３００は、第１言語文字ハッシュ値計算部３０２、第１言語２グラムの第１文字リスト３０４、第１言語２グラムリスト３０６、および第１言語例文番号リスト３０８を含む。なお、図示しないが、第２言語用の２グラムインデックス部も同様に構成される。
【００５６】
文字ハッシュ値計算部３０２は、第１言語、或いは第２言語のすべでの文字コードを連続のコードに変換する関数である。２グラムの第１文字リスト３０４は、図１６に示すように、２グラムの第１文字すなわち最初の文字0,1,…ｉおよび２グラムリストへの指針（ポインタ）とを含む。２グラムリスト３０６は、図１７に示すように、２グラムの第２文字、２グラム“文字i文字j”を含む例文の番号リストへの指針、および次の２グラム”文字i文字h”の２グラムリストへの指針を含んでいる。例文番号リスト３０６は、図１８に示すように２グラム”文字i文字j”を含む例文の番号および次の同じ２グラムを含む例文の番号リストレコードへの指針を含む。
【００５７】
図１９は、図１８に示す２グラムインデックス部の詳細を示す図である。例えば、第１言語文字ハッシュ値計算部３０２により計算されたハッシュ値が２グラムの第１文字リスト３０４の第１文字C0に該当するとき、それに対応するポインタによって２グラムリスト３０６のレコード３１０が検索される。レコード３１０には、２グラムの第２文字C01と、２グラムの文字C0,C01に対応する例文を識別する番号と、次のレコード３１２を示すポインタとが格納されている。レコード３１２には、２グラムの第２文字C02と、２グラムの文字C0,C02に対応する例文を識別する番号と、次のレコードを示すポインタとが格納されている。レコード３１０によって指針された例文番号リスト３０８のレコード３２０には、２グラムの文字C0,C01に対応する例文番号S010と、２グラムの文字C0,C01を含む次の例文番号のレコードへの指針とが格納されている。第２言語の２グラムインデックスの構成も同様である。
【００５８】
図２０は、２グラムインでクスの検索例を示す図である。例えば、ハッシュ値計算部により２グラムの第１文字リストから「測」が特定されると、そのポインタによって２グラムリストのレコードが参照される。ここでは、「測」に続く第２文字として、「定」、「算」、および「地」が示されている。これらの２グラム、「測定」、「測算」、「測地」を含む例文は、例文番号リストへの指針によって参照される。
【００５９】
次に、第２の実施例における類似例文検索動作について図２１の動作フローを参照して説明する。この動作は、第１言語の入力文が入力され、入力文に一致する例文が検索されなかったときに行われるものである。第１言語の入力部SCが入力部１００に入力され（ステップＳ４０１）２グラム生成部１０４ａは、入力文SCの２グラム列(C1C2,C2C3,…,Cn-1Cn)を生成する（ステップS４０２）。このとき、２グラム生成部１０４ａは、禁止用２グラムリスト１０６ａおよび禁止用文字リスト１２０を参照し、それらのリストに該当する文字または文字列を２グラム列から削除する。
【００６０】
類似例文検索部１１４は、入力文SCの２グラム列が生成されると、Num(ID),Sim(ID)を初期化し、すべての例文IDに対して、Num(ID)=0，Sim(ID)=0とする（ステップS４０３）。また、入力文SCに含まれる２グラム列の数だけ検索のルーチン処理を行うためｉ＝１を設定する。
【００６１】
次に、類似例文検索部１１４は、２グラムインデックス部１１０ａの文字Hash値計算部３０２に文字CiのHash値Hash(Ci)を計算させる（ステップＳ４０４）。次に、類似例文検索部１１４は、第1言語２グラムの第１文字リスト３０４を参照し、Hash(Ci)番目のレコードに格納している２グラムリスト３０６への指針情報BP(Ci)を読み出す（ステップＳ４０５）。
【００６２】
次に、類似例文検索部１１４は、指針情報BP(Ci)で示されるレコード情報を読み出し、文字=Ci+1のレコードを探しだす（ステップＳ４０６）。類似例文検索部１１４は、文字=Ci+1のレコードが存在するか否かを判定する（ステップＳ４０７）。文字=Ci+1のレコードが存在する場合には、２グラムリスト３０６の文字=Ci+1のレコードに格納された“例文の番号リストへの指針”を参照し、第１言語例文番号リスト３０８から、２グラム列CiCi+1を含むすべての例文ID(ID1,ID2,,,)を獲得し、Num(ID1)=Num(ID1)+1; Num(ID2)=Num(ID2)+1;,….をカウントする（ステップＳ４０８）。カウント結果は、類似例文検索部１１４が記憶してもよいし、例文対訳辞書部１１６の例文に対応する領域にカウント値を書き込むようにしてもよい。
【００６３】
カウントが終了したとき、および文字=Ci+1のレコードが存在しない場合には、ｉ＝ｉ+１の処理を行い（ステップＳ４０９）、再び、文字hash値計算部３０２において次の２グラム列の最初の文字のhash値の計算および検索が続行される（ステップＳ４０４）。こうして、入力文SCから生成された全ての２グラム列について、それらの２グラム列を含む例文が検索され、２グラム列を含むカウント結果が保持される。
【００６４】
入力文SCの２グラムの検索が終了すると、類似例文検索部１１４は、２グラム数が１以上のすべでのNum(IDj) > 0の例文に対して、Sim(IDj) = Num(IDj) / nの計算を行う（ステップＳ４１０）。ｎの値は、類似度Sim(IDj)の閾値を決定する。次いで、類似例文検索部１１４は、すべでのSim(IDj) > 閾値の例文に対して、例文対訳辞書部１１６からIDj番目の例文ペア情報(SCj,SJj)を読み出し、これに応じて、出力部１１８は、入力文ＳＣに類似する例文候補とその訳文(SCj,SJj)を出力する（ステップＳ４１１）。なお、第２言語の入力文の検索動作は第1言語のときと同様に行われる。
【００６５】
類似度の計算方法は、上記に限らず、例えば、すべでのNum(IDj) > 0の例文に対して、Sim(IDj) = 2*Num(IDj) / (NumBG(SCj)+NumBG(SJj))による計算を行っても良い。NumBG(SC)は、入力文SCのN-gramの数を表す。
【００６６】
図２２は、具体的な翻訳例である。SC1は中国語の入力文であり、SJ1はその対訳である日本語の例文である。同様に、SC2とSJ2、SC3とSJ3はそれぞれ例文ペアである。Hash(SC1), Hash(SC2), Hash(SC3)は、それぞれ中国語の例文のハッシュ値、Hash(SJ1), Hash(SJ2), Hash(SJ3)は、それぞれ日本語の例文のハッシュ値である。
【００６７】
上記した図５に示す翻訳メモリ装置に、中国語の例文SC1が入力されると、Hash値計算部１０２によりハッシュ値５８７８が計算され、例文照合部１１２は、ハッシュインデックス部１０８を参照し、ハッシュ値５８７８に該当するレコードを検索する。該当するレコードが存在する場合には、当該レコードに格納されたポインタ（アドレス）を参照し、例文対訳辞書部１１６の中国語の例文を照合し、かつ対訳である日本語の例文SJ1を出力する。他の中国語の例文SC2、SC3が入力されたときも同様の処理が行われる。
【００６８】
一方、日本語の例文SJ1が入力されると、Hash値計算部２０２によりハッシュ値５９１４が計算され、例文照合部２１２は、ハッシュインデックス部２０８を参照し、ハッシュ値５９１４に該当するレコードを検索する。該当するレコードが存在する場合には、当該レコードに格納されたポインタ（アドレス）を参照し、例文対訳辞書部１１６の日本語の例文を照合し、かつその対訳である中国語の例文SC1を出力する。他の日本語の例文SJ2、SJ3が入力されたときも同様の処理が行われる。
【００６９】
以上、本発明の好ましい実施の形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【産業上の利用可能性】
【００７０】
本発明に係る翻訳装置は、翻訳メモリ、翻訳システムにおいて利用される。特に、例文対訳辞書を備えた翻訳メモリによる翻訳支援システムに利用される。
【図面の簡単な説明】
【００７１】
【図１】機械翻訳システムの構成を示すブロック図である。
【図２】本実施例に係る翻訳メモリ装置の概略を示すブロック図である。
【図３】翻訳メモリ装置の第１言語（第２言語）の検索辞書の構成を示す図である。
【図４】翻訳メモリ装置を構成するハードウエハを示す図である。
【図５】本実施例に係る翻訳メモリ装置の機能ブロック図である。
【図６】ハッシュ値計算部の例を示す図である。
【図７】ハッシュ値インデックス部と例文対訳辞書の関係を示す図である。
【図８】本実施例における入力文に照合する例文を検索する動作を示すフローチャートである。
【図９】Ｎグラムインデックスのトライ構造を示す図である。
【図１０】２グラムトライ構造を示す図である。
【図１１】類似例文検索部の動作を説明するフローチャートである。
【図１２】例文対訳辞書部の例文のカウント領域を示す図である。
【図１３】２グラムインデックス法による翻訳メモリの機能ブロック図である。
【図１４】２グラム生成部の動作を説明するフローチャートである。
【図１５】第２の実施例に係る２グラムインデックス部の構成を示す図である。
【図１６】図１５に示す２グラムインデックス部の第1言語文字Hash値計算部の詳細を説明する図である。
【図１７】図１５に示す２グラムインデックス部の第1言語２グラムの第1文字リストの詳細を説明する図である。
【図１８】図１５に示す２グラムインデックス部の第1言語例文番号リストの詳細を説明する図である。
【図１９】第２の実施例に係る２グラムインデックス部の動作を説明する図である。
【図２０】第２の実施例に係る２グラムインデックス部の具体的な動作を説明する図である。
【図２１】第２の実施例に係る類似例文検索部の検索動作を説明するフローチャートである。
【図２２】本発明の実施例に係る翻訳メモリ装置による具体的な翻訳例を示す図である。
【図２３】従来の例文対訳辞書の概要を説明する図である。
【符号の説明】
【００７２】
１００：第１言語入力部                １０２：ハッシュ値計算部
１０４：Ｎグラム生成部                １０４ａ：２グラム生成部
１０６：禁止用Ｎグラムリスト          １０６ａ：禁止用２グラムリスト
１０８：ハッシュインデックス部        １１０：Ｎグラムインデックス部
１１０ａ：２グラムインデックス部      １１２：例文照合部
１１４：類似例文検索部                １１６：例文対訳辞書
１１８：出力部                        １２０：禁止用文字リスト
２００：第１言語入力部                ２０２：ハッシュ値計算部
２０４：Ｎグラム生成部                ２０４ａ：２グラム生成部
２０６：禁止用Ｎグラムリスト          ２０６ａ：禁止用２グラムリスト
２０８：ハッシュインデックス部        ２１０：Ｎグラムインデックス部
２１０ａ：２グラムインデックス部      ２１２：例文照合部
２１４：類似例文検索部                ２２０：禁止用文字リスト
２５０：カウント領域                  ２６０、２６２、２７０：レコード
【図１】
2008065395.tif 000003
【図２】
2008065395.tif 000004
【図３】
2008065395.tif 000005
【図４】
2008065395.tif 000006
【図５】
2008065395.tif 000007
【図６】
2008065395.tif 000008
【図７】
2008065395.tif 000009
【図８】
2008065395.tif 000010
【図９】
2008065395.tif 000011
【図１０】
2008065395.tif 000012
【図１１】
2008065395.tif 000013
【図１２】
2008065395.tif 000014
【図１３】
2008065395.tif 000015
【図１４】
2008065395.tif 000016
【図１５】
2008065395.tif 000017
【図１６】
2008065395.tif 000018
【図１７】
2008065395.tif 000019
【図１８】
2008065395.tif 000020
【図１９】
2008065395.tif 000021
【図２０】
2008065395.tif 000022
【図２１】
2008065395.tif 000023
【図２２】
2008065395.tif 000024
【図２３】
2008065395.tif 000025