翻訳装置、翻訳方法および翻訳プログラム
【課題】 例文対訳辞書を有効に活用し、迅速に正確な対訳を得ることができる翻訳メモリ装置を提供する。
【解決手段】 翻訳メモリ装置は、第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2の言語の複数の例文を記憶する例文対訳辞書部116と、第1または第2言語の入力文を入力する入力部100、200と、入力文と同一言語の例文が例文対訳辞書部に含まれているか否かを検索する例文照合部112、212と、一致する例文が検索されないとき、入力文に類似する例文候補を検索する類似例文検索部114、214と、検索された例文の対訳の例文を出力する出力部118とを有する。
【解決手段】 翻訳メモリ装置は、第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2の言語の複数の例文を記憶する例文対訳辞書部116と、第1または第2言語の入力文を入力する入力部100、200と、入力文と同一言語の例文が例文対訳辞書部に含まれているか否かを検索する例文照合部112、212と、一致する例文が検索されないとき、入力文に類似する例文候補を検索する類似例文検索部114、214と、検索された例文の対訳の例文を出力する出力部118とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例文対訳辞書を利用した翻訳装置、翻訳方法および翻訳プログラムに関する。
【背景技術】
【0002】
機械翻訳とは、計算機を利用して、ある言語から別の言語に変換することである。半世紀をかけて、世界中で研究開発が行われている。機械翻訳方式は大きく、(1)解析ベース機械翻訳方式、(2)例文ベース機械翻訳方式、(3)統計ベース機械翻訳方式に分けることができる。
【0003】
解析ベース機械翻訳方式は、第1言語を形態素解析、構文・意味解析などを行い、その解析の結果を第2言語に変換し、さらに第2言語の訳文を生成する技術である。自然言語の解析技術はまだ未熟な技術であるため、解析ベース機械翻訳方式の実用化には限界がある。また、学習できないので、翻訳エンジンの改善や改良が困難である。
【0004】
統計ベース機械翻訳方式は、言語モデルと統計モデルを用いて翻訳モデルを構築する技術である。各モデルの構成に必要な学習データ(コーパス)が限られているので、実用化が困難である。
【0005】
例文ベース機械翻訳方式は、人間が外国語を勉強するメカニズムを真似して、既に学習した翻訳例文を参考して、新しい文書を翻訳することである。1980年代に、長尾教授が始めてこの翻訳方式を提案した。その後、盛んに研究開発が行われている。
【0006】
一方、翻訳業務を支援するための翻訳支援システムがある。翻訳支援ソフトは、機械翻訳ソフトと異なり、正確に翻訳できないセンテンスに対して、蓄積された例文対訳辞書から類似な例文とその例文の訳文、或いは部分的な翻訳結果を翻訳者に提示する。
【0007】
特許文献1は、類似文検索装置に関し、用例データベースを利用して、入力文により類似する用例文、特に入力文を含むような例文を検索する技術を開示している。特許文献2は、自動翻訳装置に関し、例文データベースから、入力文の形態素間の関係を用いて1番近い例文を選択する技術を開示している。特許文献3は、類似例文をグルーピングすることにより、入力文を翻訳するために必要な類似例文を分かりやすく表示する方法を開示している。
【0008】
【特許文献1】特開2005−107597号
【特許文献2】特開平6−83864号
【特許文献3】特開平8−106474号
【発明の開示】
【発明が解決しようとする課題】
【0009】
図23は、例文対訳辞書の概要を説明する図である。同図に示す例文対訳辞書は、中国語の例文とそれに対応する日本語の例文の例文ペアを複数記憶するメモリ1を有している。ユーザから、中国語の入力文2が入力されると、例文検索部3は、入力文2に一致する中国語の例文を検索し、入力文2に一致する日本語の訳文4を出力する。
【0010】
従来の例文対訳辞書では、入力文と例文の一致を検索するため、一致する例文以外の訳文の情報を得ることができず、仮に入力文に類似する例文が記憶されていたとしても、ユーザは、その類似する例文を利用することができず、例文対訳辞書が有効に活用されていなかった。また、OCR(文字認識装置)により読取られた文書データを入力文に用いるとき、読取りに誤認識があると例文との照合が不一致となり、一致する例文が記憶されているにもかかわらず、その対訳を得ることができない。
【0011】
一方、例文対訳辞書の例文を検索する方法として、文字インデックス方法や単語インデックス方法が考えられる。前者は、対訳句対コーパスに存在するすべでの文字に対して文字インデックスを作成するものであるが、この方法は、検索するデータ量が膨大となり、リアルタイムで翻訳を実現するのは困難である。後者は、対訳句対コーパスに存在するすべでの単語に対して単語インデックスを作成するものであるが、入力文から単語を抽出するために形態素解析が必要となり、形態素解析の結果が不正解の場合は翻訳が困難になる。特に、専門用語、慣用句に対して形態素解析が難しい。
【0012】
本発明は、上記従来の課題を解決し、例文対訳辞書を有効に活用し、迅速に正確な対訳を得ることができる翻訳装置、翻訳方法および翻訳プログラムを提供することを目的とする。
さらに本発明は、例文対訳辞書を活用し、入力文の類似例文の対訳を提供することでユーザの翻訳支援を行うことができる翻訳装置、翻訳方法および翻訳プログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明に係る翻訳装置は、第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書と、第1言語の入力文を入力する入力手段と、前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索手段と、第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索手段と、第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第2言語の例文を出力する出力手段とを有する。これにより、入力文に一致する例文が見つからない場合であっても、類似する例文を検索しその対訳を提供することで、ユーザの翻訳の支援を行うことができる。
【0014】
好ましくは、入力手段から第2言語の入力文が入力されたとき、前記第1の検索手段は、第2言語の入力文が例文対訳辞書の第2言語の複数の例文のいずれかに一致するか否か検索し、第2の検索手段は、第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、出力手段は、第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第1言語の例文を出力する。つまり、翻訳装置は、第1言語の入力文および第2言語の入力文のそれぞれについて双方向の翻訳を可能とする。
【0015】
好ましくは第1の検索手段は、前記入力文のハッシュ値を生成し、生成されたハッシュ値に基づき一致する例文を検索する。ハッシュ値を用いて検索することで、一致する例文を正確にかつ高速に検索することができる。
【0016】
好ましくは第2の検索手段は、前記入力文のNグラム列(Nは、自然数)を生成し、生成されたNグラム列に基づき類似する例文を検索する。Nグラム例を用いることで、類似する例文の検索を容易に実現することができる。
【0017】
好ましくは、第2の検索手段は、生成されたNグラム列が予め用意された検索禁止用Nグラムに一致するとき、生成されたNグラム列から一致した禁止用Nグラムを削除する。予め禁止用Nグラム列を除外することで、類似する例文の検索を高速化することができる。
【0018】
好ましくは、第2の検索手段は、第1言語および第2言語の複数の例文をNグラムトライ構造により格納するNグラムインデックス部を有する。トライ構造を用いることで、例文の検索をより高速にすることができる。より好ましくは、第2の検索手段は、入力文から2グラムの文字列を生成し、Nグラムインデックス部は、例文を2グラムのトライ構造で格納する。文字インデックス法に比べてより高速の検索が可能であり、単語インデックス法に比べて検索が容易である。
【0019】
好ましくは、第2の検索手段は、入力文から生成されたNグラムを包含する数を例文毎にカウントし、当該カウント結果に基づき入力文と例文との類似度を判定し、当該判定結果に基づき例文候補を選択する。例文候補を選択し、その対訳を出力可能にすることで、ユーザへの翻訳支援を行うことができる。
【0020】
本発明に係る翻訳方法または翻訳プログラムは、第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書を用いるものであって、第1言語の入力文を入力するステップと、前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索ステップと、第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索ステップと、第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第2言語の例文を出力するステップとを有する。
【発明の効果】
【0021】
本発明によれば、入力文に一致する例文が見つからない場合には、入力文と同じ言語の類似する例文候補を検索し、例文候補の対訳を提示するようにしたので、例文対訳辞書を有効に活用しつつ、ユーザの翻訳の支援を行うことができる。さらに、第1の言語および第2の言語のいずれの入力文に対しても双方向の翻訳を可能とすることで翻訳装置の構成を簡略化し、コスト増を抑制することができる。
さらに、入力文への形態素解析の結果が不正解でも、例文対訳辞書に蓄積された例文対訳データを正確に引き出すことが可能となる。また、OCRから得られた文書データに誤認識があっても、蓄積された対訳例文データを正確に引き出すことが可能となる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の最良の実施形態について図面を参照して説明する。
【実施例】
【0023】
図1は、本発明の実施例に係る機械翻訳システムの全体構成を示す図である。機械翻訳システム10は、より簡単な翻訳からより複雑な翻訳へ移行するように構成され、翻訳の高速化を図っている。また、機械翻訳システム10は、翻訳することができない部分を自動的に回収し、正確な対訳を付与する学習機能を備えている。
【0024】
機械翻訳システム10は、原言語テキスト文入力部12から入力された文単位の文を翻訳する翻訳メモリ装置14、翻訳メモリ装置14において照合できなかった入力文、つまり不適切とされた入力文を入力しこれの形態素解析された単語等の例文パターンを翻訳する例文ベース翻訳装置16と、例文ベース翻訳装置16で翻訳できなかった単語を不適切な単語として入力し、この単語を翻訳する単語直訳翻訳装置18と、上記の翻訳装置によって適切に翻訳された結果に基づき目的言語のテキスト文を作成しこれを出力する目的言語テキスト出力部20とを有している。
【0025】
さらに機械翻訳システム10は、例文ベース翻訳装置16によって翻訳することができなかった文を回収し、回収された文に適切な翻訳を作成する翻訳不適切文自動回収部22と、翻訳不適切文自動回収部22により作成された翻訳のチェックや修正を行う学習装置24と、翻訳辞書26とを備えている。翻訳辞書26は、第1の言語の単語とその対訳である第2の言語の単語を格納する単語対訳辞書26a、第1の言語の例文とその対訳である第2の言語の例文を格納する例文対訳辞書26b、第1の言語の例文パターンとその対訳である第2の言語の例文パターンを格納する例文パターン対訳辞書26cを含んでいる。翻訳辞書26は、翻訳メモリ装置14、例文ベース翻訳装置16、単語直訳翻訳装置18において利用される。なお、図1の機械翻訳システムは、一つの構成例であって、さらに他のチャンクベース等の翻訳エンジンを含むものであってもよい。
【0026】
本実施例は、機械翻訳システム10に用いられる翻訳メモリ装置14に新規な特徴を備える。図2は、本実施例の翻訳メモリ装置の構成を示す図である。翻訳メモリ装置14は、第1言語検索辞書14−1と第2言語検索辞書14−2とを含み、第1および第2言語検索辞書14−1、14−2は、第1言語および第2言語の入力文が入力されると、入力文に照合する例文または例文候補を検索し、その対訳の抽出および出力を行う。
【0027】
図3は、第1言語または第2言語検索辞書の構成を示すブロック図である。ハッシュ(Hash)インデックス検索部30は、第1言語の入力文が入力されたとき、入力文のハッシュ値を生成し、入力文のハッシュ値と完全にマッチングする第1言語の例文のハッシュ値を、例文対訳辞書26bから検索し、対訳例文を抽出する。ハッシュインデックス検索部30により入力文と完全にマッチングする例文を検索することができない場合、N-gramインデックス検索部32は、入力文からN-gramを生成し、生成されたN-Gram文字列を用いて、例文対訳辞書26bから類似する第1言語の例文候補を検索し、その対訳例文を抽出する。
【0028】
後述するように、高速化、記憶空間の節約のため、Bi-gram(2グラム)生成のとき、禁止用文字リストを用いて、どの例文にも出現する可能性の高い文字を含むN-Gramを削除する.また、禁止用Bi-gramリストを用いて、どの例文にも出現する可能性の高いBi-gramを削除する。なお、第2言語の入力文が入力されたときも第1言語のときと同様に行われる。
【0029】
図4は、翻訳メモリ装置のハードウエア構成を示す図である。翻訳メモリ装置は、入力装置40、表示装置42、主記憶装置44、外部記憶装置46、中央処理装置(CPU)48、これらを接続するバス50を含んでいる。入力装置40は、ユーザインターフェースを提供したり、原稿に記載された単語を光学的に読み取る光学式読取装置等を含む。表示装置42は、原言語のテキスト文を表示したり、翻訳結果等を表示するディスプレイ等を含む。主記憶装置44は、ROMまたはRAMを含み、翻訳を制御するためのプログラムや演算結果等のデータを記憶する。外部記憶装置46は、例えばハードディスク等の大容量記憶装置を含み、ここに、例文対訳辞書26bなどを格納するようにしてもよい。CPU(Central Processing Unit)48は、主記憶装置34に記憶されたプログラムに従い翻訳動作を制御する。
【0030】
図5は、本実施例の翻訳メモリ装置の機能ブロック図である。本実施例に係る翻訳メモリ装置は、第1言語の入力文を入力する第1言語入力部100、第1言語入力部100からの入力文を受け取り、入力文のハッシュ値を計算するハッシュ値計算部102、第1言語入力部100からの入力文を受け取り、入力文のNグラム文字列を生成するNグラム生成部104、第1言語の禁止用Nグラムを格納する禁止用Nグラムリスト106、第1言語の複数の例文についてのハッシュ値を格納するハッシュ値インデックス部108、第1言語の例文をNグラムのトライ構造で格納するNグラムインデックス部110、ハッシュ値計算部102で計算された入力文のハッシュ値とハッシュ値インデックス部108に格納された例文のハッシュ値とを比較し入力文に一致する例文を検索する例文照合部112、例文照合部112による照合が不調に終わったとき、Nグラム生成部104により生成された入力文のNグラム文字列に基づき類似する例文候補をNグラムインデックス部110から検索する類似例文検索部114、第1言語の例文と第2言語の対訳の例文とを格納し、例文照合部112または類似例文検索部114により検索された例文または例文候補の対訳である第2言語の例文または例文候補を抽出する例文対訳辞書部116、例文対訳辞書部116で抽出された例文をディスプレイやプリンタなどに出力する出力部118を含んでいる。
【0031】
また、第2言語入力部200、第2言語の入力文のハッシュ値を計算するハッシュ値計算部202、第2言語の入力文のNグラム文字列を生成するNグラム生成部204、第2言語の禁止用Nグラムを格納する禁止用Nグラムリスト206、第2言語の複数の例文についてのハッシュ値を格納するハッシュ値インデックス部208、第2言語の例文をNグラムのトライ構造で格納するNグラムインデックス部210、第2言語の入力文に一致する第2言語の例文を検索する例文照合部212、例文照合部212による照合が不調に終わったとき、第2言語の入力文のNグラム文字列に基づき類似する第2言語の例文候補をNグラムインデックス部210から検索する類似例文検索部214を含み、第2言語の入力文についても第1言語のときと同様の検索が行われ、その対訳である第1言語の例文が出力される。
【0032】
第1言語(第2言語)入力部100、200は、外部から第1言語または第2言語の翻訳文書のセンテンスを入力する。入力文は、OCRを用いたり、媒体に格納された電子情報により入力することができる。
【0033】
第1言語(第2言語)の例文ハッシュ値計算部102、202は、入力文のハッシュ値を計算する。ハッシュ値の計算は、次のようにして行われる。入力文をS、入力文に含まれる1つの文字をCi(i=1,2,…n;nは自然数)とするとき、入力文は、S=C1,C2,…,Cnとなり、入力文Sのハッシュ値をHash(S)で表す。Hash(S)の初期値は、0であり、Hash(S)は、図6に示す式によって計算される。ここで、“or”はBit毎にor操作、“and”はBit毎にand操作、“A<<(m)”はAが左にシフトm Bits、“mod”操作は余り演算である。LはHashインデックス表の長さ(例文ペアの数)である。11101101<<4は、4bits左にシフトされ、11010000となった例を示している。勿論、上記以外の他の方法により入力文のハッシュ値を計算するようにしてもよい。
【0034】
第1言語(第2言語)のハッシュインデックス部108、208は、例文のハッシュ値と、当該例文とその訳文を格納している例文対訳辞書のアドレスを格納し、例文照合部112、212は、そのアドレスに基づき例文の対訳を検索する。図7は、ハッシュインデックス部と例文対訳辞書との関係を説明する図である。
【0035】
第1言語のハッシュインデックス部106は、例文対訳辞書に格納されている第1言語の全ての例文についてのハッシュ値(Hash(C)=0〜Hash(C)=L-1)と、ハッシュ値に対応する例文を識別するため当該例文の格納先のアドレスとを記憶する複数のレコードを備えている。第2言語のハッシュインデックス部206も同様に、第2言語の全ての例文についてのハッシュ値(Hash(J)=0〜Hash(J)=L-1)と、ハッシュ値に対応する例文を識別するためのアドレスを記憶する複数のレコードを備えている。
【0036】
例文対訳辞書部116は、第1言語の例文と第2言語の例文ペア(SC1,SJ1),(SC2,SJ2), … , (SCL,SJL)を記憶する。ここで、SCi(i=1,2,…,L)は、第1言語の例文(第2言語のSJiセンテンスの訳文)、SJi(I=1,2,…,L)は、第2言語のSCiセンテンスの訳文(第1言語の例文)である。例文ペアには、それぞれ対応するアドレスが付与されている。同じハッシュ値を持つ複数の例文に対しては、Next例文アドレスでリンクされている。さらに、例文ペアには、後述する類似例文の検索に利用されるNグラム数のカウント領域250が割当てられる。
【0037】
次に、入力文に照合する例文を検索する動作を図8のフローチャートを参照して説明する。ここでは、第1言語の入力文の検索を説明する。第1言語の入力文SCが第1言語入力部100から入力されると(ステップS101)、ハッシュ値計算部102は、上記した計算方法により入力文SCのハッシュ値Hash(SC)を計算する(ステップS102)。計算されたハッシュ値Hash(SC)は、例文照合部112へ提供され、例文照合部112は、インデックス部108からHash(SC)に一致するレコードを検索し、当該レコードを読み出す(ステップS103)。次に、例文照合部112は、レコードに記憶された例文の識別情報であるアドレスを取得し(ステップS104)、そのアドレスに基づき例文対訳辞書部116に格納された例文ペアを読み出す(ステップS105)。
【0038】
例文照合部112は、例文ペアに含まれる第1言語の例文SCiと入力文SCを比較し、例文SCiと入力文SCが同一か否かを判定する(ステップS106)。例文SCiが入力文SCと同一であるとき、例文照合部112は、例文SCiの対訳である第2言語の例文SCjを出力部118から出力させる。一方、例文SCiと入力文SCが異なるとき、第1言語のNEXT例文のアドレスが空(Null)か否かを判定し(ステップS107)、アドレスが空であれば、入力文のHash値(SC)に該当する例文は存在しないので終了となる。NEXTアドレスが存在する場合には、NEXTアドレスを取得し(ステップS108)、NEXTアドレスの例文ペアを読み出し(ステップS105)、入力文との比較が繰り返される。
【0039】
第2言語の入力文が入力された場合にも、第1言語の入力文のときと同様に、ハッシュインデックス部208から該当するハッシュ値のレコードが読み出され、そのレコードに記憶されたアドレスにより第2言語の例文が検索され、その対訳である第1言語の例文が出力される。
【0040】
入力文のハッシュ値に一致するハッシュ値をもつ例文が存在しないとき、類似例文検索部114、214は、入力文のNグラム文字列を利用して類似する例文を検索する。先ず、入力文からNグラム文字列を生成するNグラム生成部104、204について説明する。Nグラムインデックス部110、210は、図9に示すように、対訳例文辞書部の例文に含まれているすべてのNグラムをトライ構造で格納する。Nグラムトライ構造において、1つのノードは1文字を格納し、葉から根(ルート)に存在するノードによってNグラムが特定される。ノードは、ノードID、文字情報(文字C)、フラグ(Flag)、フラグが1のとき例文番号リストレコードへの指針、親ノードのノードID、左兄弟ノードのノードIDを含む。ノードIDは、木の各ノードが深さ優先探索法の探索順位で付与される。文字情報は1文字であり、ユニコード(Unicode)を採用する。しかし、検索速度を考慮するために、検索木の第1層の各ノードに単語の第1文字の高バイト(Byte)を格納し、第2層の各ノードに単語の第1文字の低バイト(Byte)を格納するようにしてもよい。根(Root)は第0層とする。一番左の子供のノードIDは、現ノードID+1、兄弟間に左から右へ文字情報値の昇順で並べる。また、フラグ0は、ノードが中間であることを意味し、フラグ1は、根から該ノードまでのパス上に存在するノードがNグラムであることを表す。
【0041】
Nグラムは、N個の文字からなる文字列であり、入力文S=C1,C2,…Cn,Cn+1,…,Cmであるとき、そのNグラムの文字列は次のように表される。(C1,C2,…,Cn)、(C2,C3,…,Cn+1)、(C3,C4,…,Cn+2)・・・(Ck,Ck+1,…,Cn+k-1)。本実施例のトライ構造において、ノードIDのフラグが1、すなわち当該ノードIDの葉には、例文番号リストが関連付けされている。例文番号リストは、Nグラムの”文字i…文字j”を含む例文を識別する番号と、Nグラムの”文字i…文字j”を含む次の例文番号リストを参照する指針(ポインタ)とを対とするレコードを複数含む。言い換えれば、例文番号リストは、葉から根(ルート)に至るノードによって特定され文字を含む例文を識別する情報のレコードの集合である。
【0042】
例えば、Nグラムインデックス部が2グラムトライ構造であるとき、図10に示すように、葉から根(ルート)までのノードによって、(C11,C21)(C11,C22),(C12,C23),…,(C1m,C2S),(C1m,C2n)の2グラムの文字列が格納される。それぞれの2グラムの葉には、例文番号リストが対応付けされている。(C11,C21)に対応付けされた例文番号リストは、レコード260、262、・・・、270を含んでいる。レコード260には、(C11,C21)を含む例文を識別する番号S010とレコード262を示すポインタP1が格納される。レコード262には、(C11,C21)を含む次の例文を識別する番号S015と次のレコードを示すポインタP2が格納される。最後のレコード270には、最後の例文を識別する番号S020とポインタが空(Null)とが格納される。こうして、(C11,C21)を含むすべての例文が例文番号リストによって特定される。同様に他の2グラムについてそれぞれ例文番号リストが付与される。
【0043】
次に、類似例文検索部の動作について図11のフローチャートを参照して説明する。ここでは、第1言語の入力文が入力されたものとする。第1言語の入力文SCが入力部100から入力される(ステップS201)。ハッシュ値により例文の照合を得ることができないとき、入力文SCは、Nグラム生成部104に入力され、Nグラム生成部104は、入力文SCのNグラム列(C1C2C3,…, C2C3C4…, …,Ch…Cn;h個のNグラム)を生成する(ステップS202)。但し、Nグラム生成部104は、予め禁止用のNグラムを登録している第1言語禁止用Nグラムリスト106を参照し、このリストに登録されているNグラムに一致するNグラムを除外する。禁止用Nグラムリストは、統計手法と人工手法を用いて構築されたものであり、類似例文の検索に寄与することが少ないNグラムを除外することで、類似例文の検索効率および処理速度を向上させることができる。
【0044】
Nグラム生成部104により生成されたNグラムの文字列は、類似例文検索部114へ供給される。類似例文検索部114は、初期動作として、すべての例文IDに対して、Num(ID)=0、Sim(ID)=0の処理を行う(ステップS203)。Num(ID)は、その例文がNグラムを含む数を示し、Sim(ID)はその例文の類似度を示す。
【0045】
類似例文検索部114は、入力文SCのNグラムがh個であるとき、i=1からi=hまで、Nグラムを含む例文の検索を行う。すなわち、類似例文検索部114は、Nグラムインデックス部110を参照し、Nグラムトライ構造からNグラム(CiCi+1…Ck)を探す(ステップS204)。Nグラムトライ構造において、一致するNグラム(CiCi+1…Ck)が検索された場合(ステップS205)、類似例文検索部114は、文字Ckを格納しているノードにある“例文番号リストレコードへの指針”を用いて、例文番号リストから、(CiCi+1…Ck)を含むすべでの例文ID(ID1,ID2,,,)を獲得する(ステップS206)。これにより、Num(ID1)=Num(ID1)+1; Num(ID2)=Num(ID2)+1;,….の処理が行われ、それぞれの例文のNグラムの一致数に「1」が加算される。Num(ID)の加算値は、好ましくは、例文対訳辞書のそれぞれの例文に対応するカウント領域250に書き込まれる。
【0046】
Nグラムの一致数の加算が終了したとき、およびNグラムトライ構造において、Nグラム(CiCi+1…Ck)が検索されなかったとき、類似例文検索部114は、i=i+1の処理を行い(ステップS207)、入力文SCの次のNグラムをNグラムトライ構造から探し出す(ステップS204)。上記と同様の処理により、次のNグラムが検索されると、対応する例文のNグラムの一致数に「1」が加算される。このような処理は、i=h回、すなわち入力文SCから生成されるNグラムの文字列の数だけ繰り返される。
【0047】
入力文のNグラムの検索が終了すると、図12に示すように、例文対訳辞書部の例文のカウント領域250にNグラム数が保持される。類似例文検索部114は、カウント領域250のNグラム数が1以上のすべでのNum(IDj) > 0の例文に対して、Sim(IDj) = Num(IDj) / nの計算を行う(ステップS208)。nの値は、類似度Sim(IDj)の閾値を決定する。
【0048】
類似例文検索部114は、すべでのSim(IDj) > 閾値の例文に対して、例文対訳辞書部116からIDj番目の例文ペア情報(SCj,SJj)を読み出し、これに応じて出力部118は、入力文SCに類似する例文候補とその訳文(SCj,SJj)を出力する(ステップS209)。
【0049】
上記した類似度Sim(IDj)の計算は、一例であって必ずしもこれに限定されるものではない。例えば、すべでのNum(IDj) > 0の例文に対して、Sim(IDj) = 2*Num(IDj) / (NumBG(SCj)+NumBG(SJj))による計算を行っても良い。NumBG(SC)は、入力文SCのN-gramの数を表す。
【0050】
図11および図12は、第1言語の入力文についての類似例文の検索例を示したが、第2言語の入力文についても同様の検索が行われる。
【0051】
次に、本実施例の翻訳メモリを2グラムインデックス法を用いて構成したときのブロック図を図13に示す。図13に示す構成は、第1言語および第2言語の禁止用文字リスト120、220を備える以外は、基本的に図5に示す構成と同じである。但し、Nグラムを2(Bi)グラムに変更したブロックには、番号の最後にアルファベットの文字「a」を付してある。
【0052】
第1言語の入力文CSに照合する例文が検索されないとき、入力文CSに類似する例文の検索が行われる。この検索は、2グラムインデックスで行われる。2グラム生成部104aの動作を図14を参照して説明する。第1言語入力部100に第1言語の入力文CSが入力され(ステップS301)、次いで、2グラム生成部104aは、入力文CS=C1,C2,…,Cnから2グラム列C1C2, C2C3, …,Cn-1Cn を得る(ステップS302)。
【0053】
次に、2グラム生成部104aは、禁止用文字リスト120を参照し、2グラム列C1C2, C2C3, …,Cn-1Cn から禁止用文字リストの文字を含む2グラムを削除し、2グラム文字列C1C2, C2C3, …,ChCkを得る(ステップS303)。さらに、2グラム生成部104aは、禁止用2グラムリスト106aを参照し、2グラム文字列C1C2, C2C3, …,ChCkから禁止用2グラムリストに含まれている2グラムを削除し(ステップS304)、最終的な2グラム列 C1C2, C2C3, …,CuCv を得る(ステップS305)。以後の処理は、Nグラムのときと同様に行われ、第1言語の入力文に類似する第1言語の例文候補とそれらの訳文が出力される。第2言語の入力文から2グラムを生成するときも第1言語のときと同様に行われる。
【0054】
次に、本発明の第2の実施例について説明する。上記実施例は、2グラムインデックス部110aの2グラムトライ構造を利用して2グラムの検索を実行するものであるが、第2の実施例に係る2グラムインデックス部は、トライ構造を利用することなく、入力文から生成された2グラム列の検索を行うものである。
【0055】
図15に第1言語の2グラムインデックス部の構成を示す。2グラムインデックス部300は、第1言語文字ハッシュ値計算部302、第1言語2グラムの第1文字リスト304、第1言語2グラムリスト306、および第1言語例文番号リスト308を含む。なお、図示しないが、第2言語用の2グラムインデックス部も同様に構成される。
【0056】
文字ハッシュ値計算部302は、第1言語、或いは第2言語のすべでの文字コードを連続のコードに変換する関数である。2グラムの第1文字リスト304は、図16に示すように、2グラムの第1文字すなわち最初の文字0,1,…iおよび2グラムリストへの指針(ポインタ)とを含む。2グラムリスト306は、図17に示すように、2グラムの第2文字、2グラム“文字i文字j”を含む例文の番号リストへの指針、および次の2グラム”文字i文字h”の2グラムリストへの指針を含んでいる。例文番号リスト306は、図18に示すように2グラム”文字i文字j”を含む例文の番号および次の同じ2グラムを含む例文の番号リストレコードへの指針を含む。
【0057】
図19は、図18に示す2グラムインデックス部の詳細を示す図である。例えば、第1言語文字ハッシュ値計算部302により計算されたハッシュ値が2グラムの第1文字リスト304の第1文字C0に該当するとき、それに対応するポインタによって2グラムリスト306のレコード310が検索される。レコード310には、2グラムの第2文字C01と、2グラムの文字C0,C01に対応する例文を識別する番号と、次のレコード312を示すポインタとが格納されている。レコード312には、2グラムの第2文字C02と、2グラムの文字C0,C02に対応する例文を識別する番号と、次のレコードを示すポインタとが格納されている。レコード310によって指針された例文番号リスト308のレコード320には、2グラムの文字C0,C01に対応する例文番号S010と、2グラムの文字C0,C01を含む次の例文番号のレコードへの指針とが格納されている。第2言語の2グラムインデックスの構成も同様である。
【0058】
図20は、2グラムインでクスの検索例を示す図である。例えば、ハッシュ値計算部により2グラムの第1文字リストから「測」が特定されると、そのポインタによって2グラムリストのレコードが参照される。ここでは、「測」に続く第2文字として、「定」、「算」、および「地」が示されている。これらの2グラム、「測定」、「測算」、「測地」を含む例文は、例文番号リストへの指針によって参照される。
【0059】
次に、第2の実施例における類似例文検索動作について図21の動作フローを参照して説明する。この動作は、第1言語の入力文が入力され、入力文に一致する例文が検索されなかったときに行われるものである。第1言語の入力部SCが入力部100に入力され(ステップS401)2グラム生成部104aは、入力文SCの2グラム列(C1C2,C2C3,…,Cn-1Cn)を生成する(ステップS402)。このとき、2グラム生成部104aは、禁止用2グラムリスト106aおよび禁止用文字リスト120を参照し、それらのリストに該当する文字または文字列を2グラム列から削除する。
【0060】
類似例文検索部114は、入力文SCの2グラム列が生成されると、Num(ID),Sim(ID)を初期化し、すべての例文IDに対して、Num(ID)=0,Sim(ID)=0とする(ステップS403)。また、入力文SCに含まれる2グラム列の数だけ検索のルーチン処理を行うためi=1を設定する。
【0061】
次に、類似例文検索部114は、2グラムインデックス部110aの文字Hash値計算部302に文字CiのHash値Hash(Ci)を計算させる(ステップS404)。次に、類似例文検索部114は、第1言語2グラムの第1文字リスト304を参照し、Hash(Ci)番目のレコードに格納している2グラムリスト306への指針情報BP(Ci)を読み出す(ステップS405)。
【0062】
次に、類似例文検索部114は、指針情報BP(Ci)で示されるレコード情報を読み出し、文字=Ci+1のレコードを探しだす(ステップS406)。類似例文検索部114は、文字=Ci+1のレコードが存在するか否かを判定する(ステップS407)。文字=Ci+1のレコードが存在する場合には、2グラムリスト306の文字=Ci+1のレコードに格納された“例文の番号リストへの指針”を参照し、第1言語例文番号リスト308から、2グラム列CiCi+1を含むすべての例文ID(ID1,ID2,,,)を獲得し、Num(ID1)=Num(ID1)+1; Num(ID2)=Num(ID2)+1;,….をカウントする(ステップS408)。カウント結果は、類似例文検索部114が記憶してもよいし、例文対訳辞書部116の例文に対応する領域にカウント値を書き込むようにしてもよい。
【0063】
カウントが終了したとき、および文字=Ci+1のレコードが存在しない場合には、i=i+1の処理を行い(ステップS409)、再び、文字hash値計算部302において次の2グラム列の最初の文字のhash値の計算および検索が続行される(ステップS404)。こうして、入力文SCから生成された全ての2グラム列について、それらの2グラム列を含む例文が検索され、2グラム列を含むカウント結果が保持される。
【0064】
入力文SCの2グラムの検索が終了すると、類似例文検索部114は、2グラム数が1以上のすべでのNum(IDj) > 0の例文に対して、Sim(IDj) = Num(IDj) / nの計算を行う(ステップS410)。nの値は、類似度Sim(IDj)の閾値を決定する。次いで、類似例文検索部114は、すべでのSim(IDj) > 閾値の例文に対して、例文対訳辞書部116からIDj番目の例文ペア情報(SCj,SJj)を読み出し、これに応じて、出力部118は、入力文SCに類似する例文候補とその訳文(SCj,SJj)を出力する(ステップS411)。なお、第2言語の入力文の検索動作は第1言語のときと同様に行われる。
【0065】
類似度の計算方法は、上記に限らず、例えば、すべでのNum(IDj) > 0の例文に対して、Sim(IDj) = 2*Num(IDj) / (NumBG(SCj)+NumBG(SJj))による計算を行っても良い。NumBG(SC)は、入力文SCのN-gramの数を表す。
【0066】
図22は、具体的な翻訳例である。SC1は中国語の入力文であり、SJ1はその対訳である日本語の例文である。同様に、SC2とSJ2、SC3とSJ3はそれぞれ例文ペアである。Hash(SC1), Hash(SC2), Hash(SC3)は、それぞれ中国語の例文のハッシュ値、Hash(SJ1), Hash(SJ2), Hash(SJ3)は、それぞれ日本語の例文のハッシュ値である。
【0067】
上記した図5に示す翻訳メモリ装置に、中国語の例文SC1が入力されると、Hash値計算部102によりハッシュ値5878が計算され、例文照合部112は、ハッシュインデックス部108を参照し、ハッシュ値5878に該当するレコードを検索する。該当するレコードが存在する場合には、当該レコードに格納されたポインタ(アドレス)を参照し、例文対訳辞書部116の中国語の例文を照合し、かつ対訳である日本語の例文SJ1を出力する。他の中国語の例文SC2、SC3が入力されたときも同様の処理が行われる。
【0068】
一方、日本語の例文SJ1が入力されると、Hash値計算部202によりハッシュ値5914が計算され、例文照合部212は、ハッシュインデックス部208を参照し、ハッシュ値5914に該当するレコードを検索する。該当するレコードが存在する場合には、当該レコードに格納されたポインタ(アドレス)を参照し、例文対訳辞書部116の日本語の例文を照合し、かつその対訳である中国語の例文SC1を出力する。他の日本語の例文SJ2、SJ3が入力されたときも同様の処理が行われる。
【0069】
以上、本発明の好ましい実施の形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【産業上の利用可能性】
【0070】
本発明に係る翻訳装置は、翻訳メモリ、翻訳システムにおいて利用される。特に、例文対訳辞書を備えた翻訳メモリによる翻訳支援システムに利用される。
【図面の簡単な説明】
【0071】
【図1】機械翻訳システムの構成を示すブロック図である。
【図2】本実施例に係る翻訳メモリ装置の概略を示すブロック図である。
【図3】翻訳メモリ装置の第1言語(第2言語)の検索辞書の構成を示す図である。
【図4】翻訳メモリ装置を構成するハードウエハを示す図である。
【図5】本実施例に係る翻訳メモリ装置の機能ブロック図である。
【図6】ハッシュ値計算部の例を示す図である。
【図7】ハッシュ値インデックス部と例文対訳辞書の関係を示す図である。
【図8】本実施例における入力文に照合する例文を検索する動作を示すフローチャートである。
【図9】Nグラムインデックスのトライ構造を示す図である。
【図10】2グラムトライ構造を示す図である。
【図11】類似例文検索部の動作を説明するフローチャートである。
【図12】例文対訳辞書部の例文のカウント領域を示す図である。
【図13】2グラムインデックス法による翻訳メモリの機能ブロック図である。
【図14】2グラム生成部の動作を説明するフローチャートである。
【図15】第2の実施例に係る2グラムインデックス部の構成を示す図である。
【図16】図15に示す2グラムインデックス部の第1言語文字Hash値計算部の詳細を説明する図である。
【図17】図15に示す2グラムインデックス部の第1言語2グラムの第1文字リストの詳細を説明する図である。
【図18】図15に示す2グラムインデックス部の第1言語例文番号リストの詳細を説明する図である。
【図19】第2の実施例に係る2グラムインデックス部の動作を説明する図である。
【図20】第2の実施例に係る2グラムインデックス部の具体的な動作を説明する図である。
【図21】第2の実施例に係る類似例文検索部の検索動作を説明するフローチャートである。
【図22】本発明の実施例に係る翻訳メモリ装置による具体的な翻訳例を示す図である。
【図23】従来の例文対訳辞書の概要を説明する図である。
【符号の説明】
【0072】
100:第1言語入力部 102:ハッシュ値計算部
104:Nグラム生成部 104a:2グラム生成部
106:禁止用Nグラムリスト 106a:禁止用2グラムリスト
108:ハッシュインデックス部 110:Nグラムインデックス部
110a:2グラムインデックス部 112:例文照合部
114:類似例文検索部 116:例文対訳辞書
118:出力部 120:禁止用文字リスト
200:第1言語入力部 202:ハッシュ値計算部
204:Nグラム生成部 204a:2グラム生成部
206:禁止用Nグラムリスト 206a:禁止用2グラムリスト
208:ハッシュインデックス部 210:Nグラムインデックス部
210a:2グラムインデックス部 212:例文照合部
214:類似例文検索部 220:禁止用文字リスト
250:カウント領域 260、262、270:レコード
【技術分野】
【0001】
本発明は、例文対訳辞書を利用した翻訳装置、翻訳方法および翻訳プログラムに関する。
【背景技術】
【0002】
機械翻訳とは、計算機を利用して、ある言語から別の言語に変換することである。半世紀をかけて、世界中で研究開発が行われている。機械翻訳方式は大きく、(1)解析ベース機械翻訳方式、(2)例文ベース機械翻訳方式、(3)統計ベース機械翻訳方式に分けることができる。
【0003】
解析ベース機械翻訳方式は、第1言語を形態素解析、構文・意味解析などを行い、その解析の結果を第2言語に変換し、さらに第2言語の訳文を生成する技術である。自然言語の解析技術はまだ未熟な技術であるため、解析ベース機械翻訳方式の実用化には限界がある。また、学習できないので、翻訳エンジンの改善や改良が困難である。
【0004】
統計ベース機械翻訳方式は、言語モデルと統計モデルを用いて翻訳モデルを構築する技術である。各モデルの構成に必要な学習データ(コーパス)が限られているので、実用化が困難である。
【0005】
例文ベース機械翻訳方式は、人間が外国語を勉強するメカニズムを真似して、既に学習した翻訳例文を参考して、新しい文書を翻訳することである。1980年代に、長尾教授が始めてこの翻訳方式を提案した。その後、盛んに研究開発が行われている。
【0006】
一方、翻訳業務を支援するための翻訳支援システムがある。翻訳支援ソフトは、機械翻訳ソフトと異なり、正確に翻訳できないセンテンスに対して、蓄積された例文対訳辞書から類似な例文とその例文の訳文、或いは部分的な翻訳結果を翻訳者に提示する。
【0007】
特許文献1は、類似文検索装置に関し、用例データベースを利用して、入力文により類似する用例文、特に入力文を含むような例文を検索する技術を開示している。特許文献2は、自動翻訳装置に関し、例文データベースから、入力文の形態素間の関係を用いて1番近い例文を選択する技術を開示している。特許文献3は、類似例文をグルーピングすることにより、入力文を翻訳するために必要な類似例文を分かりやすく表示する方法を開示している。
【0008】
【特許文献1】特開2005−107597号
【特許文献2】特開平6−83864号
【特許文献3】特開平8−106474号
【発明の開示】
【発明が解決しようとする課題】
【0009】
図23は、例文対訳辞書の概要を説明する図である。同図に示す例文対訳辞書は、中国語の例文とそれに対応する日本語の例文の例文ペアを複数記憶するメモリ1を有している。ユーザから、中国語の入力文2が入力されると、例文検索部3は、入力文2に一致する中国語の例文を検索し、入力文2に一致する日本語の訳文4を出力する。
【0010】
従来の例文対訳辞書では、入力文と例文の一致を検索するため、一致する例文以外の訳文の情報を得ることができず、仮に入力文に類似する例文が記憶されていたとしても、ユーザは、その類似する例文を利用することができず、例文対訳辞書が有効に活用されていなかった。また、OCR(文字認識装置)により読取られた文書データを入力文に用いるとき、読取りに誤認識があると例文との照合が不一致となり、一致する例文が記憶されているにもかかわらず、その対訳を得ることができない。
【0011】
一方、例文対訳辞書の例文を検索する方法として、文字インデックス方法や単語インデックス方法が考えられる。前者は、対訳句対コーパスに存在するすべでの文字に対して文字インデックスを作成するものであるが、この方法は、検索するデータ量が膨大となり、リアルタイムで翻訳を実現するのは困難である。後者は、対訳句対コーパスに存在するすべでの単語に対して単語インデックスを作成するものであるが、入力文から単語を抽出するために形態素解析が必要となり、形態素解析の結果が不正解の場合は翻訳が困難になる。特に、専門用語、慣用句に対して形態素解析が難しい。
【0012】
本発明は、上記従来の課題を解決し、例文対訳辞書を有効に活用し、迅速に正確な対訳を得ることができる翻訳装置、翻訳方法および翻訳プログラムを提供することを目的とする。
さらに本発明は、例文対訳辞書を活用し、入力文の類似例文の対訳を提供することでユーザの翻訳支援を行うことができる翻訳装置、翻訳方法および翻訳プログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明に係る翻訳装置は、第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書と、第1言語の入力文を入力する入力手段と、前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索手段と、第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索手段と、第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第2言語の例文を出力する出力手段とを有する。これにより、入力文に一致する例文が見つからない場合であっても、類似する例文を検索しその対訳を提供することで、ユーザの翻訳の支援を行うことができる。
【0014】
好ましくは、入力手段から第2言語の入力文が入力されたとき、前記第1の検索手段は、第2言語の入力文が例文対訳辞書の第2言語の複数の例文のいずれかに一致するか否か検索し、第2の検索手段は、第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、出力手段は、第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第1言語の例文を出力する。つまり、翻訳装置は、第1言語の入力文および第2言語の入力文のそれぞれについて双方向の翻訳を可能とする。
【0015】
好ましくは第1の検索手段は、前記入力文のハッシュ値を生成し、生成されたハッシュ値に基づき一致する例文を検索する。ハッシュ値を用いて検索することで、一致する例文を正確にかつ高速に検索することができる。
【0016】
好ましくは第2の検索手段は、前記入力文のNグラム列(Nは、自然数)を生成し、生成されたNグラム列に基づき類似する例文を検索する。Nグラム例を用いることで、類似する例文の検索を容易に実現することができる。
【0017】
好ましくは、第2の検索手段は、生成されたNグラム列が予め用意された検索禁止用Nグラムに一致するとき、生成されたNグラム列から一致した禁止用Nグラムを削除する。予め禁止用Nグラム列を除外することで、類似する例文の検索を高速化することができる。
【0018】
好ましくは、第2の検索手段は、第1言語および第2言語の複数の例文をNグラムトライ構造により格納するNグラムインデックス部を有する。トライ構造を用いることで、例文の検索をより高速にすることができる。より好ましくは、第2の検索手段は、入力文から2グラムの文字列を生成し、Nグラムインデックス部は、例文を2グラムのトライ構造で格納する。文字インデックス法に比べてより高速の検索が可能であり、単語インデックス法に比べて検索が容易である。
【0019】
好ましくは、第2の検索手段は、入力文から生成されたNグラムを包含する数を例文毎にカウントし、当該カウント結果に基づき入力文と例文との類似度を判定し、当該判定結果に基づき例文候補を選択する。例文候補を選択し、その対訳を出力可能にすることで、ユーザへの翻訳支援を行うことができる。
【0020】
本発明に係る翻訳方法または翻訳プログラムは、第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書を用いるものであって、第1言語の入力文を入力するステップと、前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索ステップと、第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索ステップと、第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第2言語の例文を出力するステップとを有する。
【発明の効果】
【0021】
本発明によれば、入力文に一致する例文が見つからない場合には、入力文と同じ言語の類似する例文候補を検索し、例文候補の対訳を提示するようにしたので、例文対訳辞書を有効に活用しつつ、ユーザの翻訳の支援を行うことができる。さらに、第1の言語および第2の言語のいずれの入力文に対しても双方向の翻訳を可能とすることで翻訳装置の構成を簡略化し、コスト増を抑制することができる。
さらに、入力文への形態素解析の結果が不正解でも、例文対訳辞書に蓄積された例文対訳データを正確に引き出すことが可能となる。また、OCRから得られた文書データに誤認識があっても、蓄積された対訳例文データを正確に引き出すことが可能となる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の最良の実施形態について図面を参照して説明する。
【実施例】
【0023】
図1は、本発明の実施例に係る機械翻訳システムの全体構成を示す図である。機械翻訳システム10は、より簡単な翻訳からより複雑な翻訳へ移行するように構成され、翻訳の高速化を図っている。また、機械翻訳システム10は、翻訳することができない部分を自動的に回収し、正確な対訳を付与する学習機能を備えている。
【0024】
機械翻訳システム10は、原言語テキスト文入力部12から入力された文単位の文を翻訳する翻訳メモリ装置14、翻訳メモリ装置14において照合できなかった入力文、つまり不適切とされた入力文を入力しこれの形態素解析された単語等の例文パターンを翻訳する例文ベース翻訳装置16と、例文ベース翻訳装置16で翻訳できなかった単語を不適切な単語として入力し、この単語を翻訳する単語直訳翻訳装置18と、上記の翻訳装置によって適切に翻訳された結果に基づき目的言語のテキスト文を作成しこれを出力する目的言語テキスト出力部20とを有している。
【0025】
さらに機械翻訳システム10は、例文ベース翻訳装置16によって翻訳することができなかった文を回収し、回収された文に適切な翻訳を作成する翻訳不適切文自動回収部22と、翻訳不適切文自動回収部22により作成された翻訳のチェックや修正を行う学習装置24と、翻訳辞書26とを備えている。翻訳辞書26は、第1の言語の単語とその対訳である第2の言語の単語を格納する単語対訳辞書26a、第1の言語の例文とその対訳である第2の言語の例文を格納する例文対訳辞書26b、第1の言語の例文パターンとその対訳である第2の言語の例文パターンを格納する例文パターン対訳辞書26cを含んでいる。翻訳辞書26は、翻訳メモリ装置14、例文ベース翻訳装置16、単語直訳翻訳装置18において利用される。なお、図1の機械翻訳システムは、一つの構成例であって、さらに他のチャンクベース等の翻訳エンジンを含むものであってもよい。
【0026】
本実施例は、機械翻訳システム10に用いられる翻訳メモリ装置14に新規な特徴を備える。図2は、本実施例の翻訳メモリ装置の構成を示す図である。翻訳メモリ装置14は、第1言語検索辞書14−1と第2言語検索辞書14−2とを含み、第1および第2言語検索辞書14−1、14−2は、第1言語および第2言語の入力文が入力されると、入力文に照合する例文または例文候補を検索し、その対訳の抽出および出力を行う。
【0027】
図3は、第1言語または第2言語検索辞書の構成を示すブロック図である。ハッシュ(Hash)インデックス検索部30は、第1言語の入力文が入力されたとき、入力文のハッシュ値を生成し、入力文のハッシュ値と完全にマッチングする第1言語の例文のハッシュ値を、例文対訳辞書26bから検索し、対訳例文を抽出する。ハッシュインデックス検索部30により入力文と完全にマッチングする例文を検索することができない場合、N-gramインデックス検索部32は、入力文からN-gramを生成し、生成されたN-Gram文字列を用いて、例文対訳辞書26bから類似する第1言語の例文候補を検索し、その対訳例文を抽出する。
【0028】
後述するように、高速化、記憶空間の節約のため、Bi-gram(2グラム)生成のとき、禁止用文字リストを用いて、どの例文にも出現する可能性の高い文字を含むN-Gramを削除する.また、禁止用Bi-gramリストを用いて、どの例文にも出現する可能性の高いBi-gramを削除する。なお、第2言語の入力文が入力されたときも第1言語のときと同様に行われる。
【0029】
図4は、翻訳メモリ装置のハードウエア構成を示す図である。翻訳メモリ装置は、入力装置40、表示装置42、主記憶装置44、外部記憶装置46、中央処理装置(CPU)48、これらを接続するバス50を含んでいる。入力装置40は、ユーザインターフェースを提供したり、原稿に記載された単語を光学的に読み取る光学式読取装置等を含む。表示装置42は、原言語のテキスト文を表示したり、翻訳結果等を表示するディスプレイ等を含む。主記憶装置44は、ROMまたはRAMを含み、翻訳を制御するためのプログラムや演算結果等のデータを記憶する。外部記憶装置46は、例えばハードディスク等の大容量記憶装置を含み、ここに、例文対訳辞書26bなどを格納するようにしてもよい。CPU(Central Processing Unit)48は、主記憶装置34に記憶されたプログラムに従い翻訳動作を制御する。
【0030】
図5は、本実施例の翻訳メモリ装置の機能ブロック図である。本実施例に係る翻訳メモリ装置は、第1言語の入力文を入力する第1言語入力部100、第1言語入力部100からの入力文を受け取り、入力文のハッシュ値を計算するハッシュ値計算部102、第1言語入力部100からの入力文を受け取り、入力文のNグラム文字列を生成するNグラム生成部104、第1言語の禁止用Nグラムを格納する禁止用Nグラムリスト106、第1言語の複数の例文についてのハッシュ値を格納するハッシュ値インデックス部108、第1言語の例文をNグラムのトライ構造で格納するNグラムインデックス部110、ハッシュ値計算部102で計算された入力文のハッシュ値とハッシュ値インデックス部108に格納された例文のハッシュ値とを比較し入力文に一致する例文を検索する例文照合部112、例文照合部112による照合が不調に終わったとき、Nグラム生成部104により生成された入力文のNグラム文字列に基づき類似する例文候補をNグラムインデックス部110から検索する類似例文検索部114、第1言語の例文と第2言語の対訳の例文とを格納し、例文照合部112または類似例文検索部114により検索された例文または例文候補の対訳である第2言語の例文または例文候補を抽出する例文対訳辞書部116、例文対訳辞書部116で抽出された例文をディスプレイやプリンタなどに出力する出力部118を含んでいる。
【0031】
また、第2言語入力部200、第2言語の入力文のハッシュ値を計算するハッシュ値計算部202、第2言語の入力文のNグラム文字列を生成するNグラム生成部204、第2言語の禁止用Nグラムを格納する禁止用Nグラムリスト206、第2言語の複数の例文についてのハッシュ値を格納するハッシュ値インデックス部208、第2言語の例文をNグラムのトライ構造で格納するNグラムインデックス部210、第2言語の入力文に一致する第2言語の例文を検索する例文照合部212、例文照合部212による照合が不調に終わったとき、第2言語の入力文のNグラム文字列に基づき類似する第2言語の例文候補をNグラムインデックス部210から検索する類似例文検索部214を含み、第2言語の入力文についても第1言語のときと同様の検索が行われ、その対訳である第1言語の例文が出力される。
【0032】
第1言語(第2言語)入力部100、200は、外部から第1言語または第2言語の翻訳文書のセンテンスを入力する。入力文は、OCRを用いたり、媒体に格納された電子情報により入力することができる。
【0033】
第1言語(第2言語)の例文ハッシュ値計算部102、202は、入力文のハッシュ値を計算する。ハッシュ値の計算は、次のようにして行われる。入力文をS、入力文に含まれる1つの文字をCi(i=1,2,…n;nは自然数)とするとき、入力文は、S=C1,C2,…,Cnとなり、入力文Sのハッシュ値をHash(S)で表す。Hash(S)の初期値は、0であり、Hash(S)は、図6に示す式によって計算される。ここで、“or”はBit毎にor操作、“and”はBit毎にand操作、“A<<(m)”はAが左にシフトm Bits、“mod”操作は余り演算である。LはHashインデックス表の長さ(例文ペアの数)である。11101101<<4は、4bits左にシフトされ、11010000となった例を示している。勿論、上記以外の他の方法により入力文のハッシュ値を計算するようにしてもよい。
【0034】
第1言語(第2言語)のハッシュインデックス部108、208は、例文のハッシュ値と、当該例文とその訳文を格納している例文対訳辞書のアドレスを格納し、例文照合部112、212は、そのアドレスに基づき例文の対訳を検索する。図7は、ハッシュインデックス部と例文対訳辞書との関係を説明する図である。
【0035】
第1言語のハッシュインデックス部106は、例文対訳辞書に格納されている第1言語の全ての例文についてのハッシュ値(Hash(C)=0〜Hash(C)=L-1)と、ハッシュ値に対応する例文を識別するため当該例文の格納先のアドレスとを記憶する複数のレコードを備えている。第2言語のハッシュインデックス部206も同様に、第2言語の全ての例文についてのハッシュ値(Hash(J)=0〜Hash(J)=L-1)と、ハッシュ値に対応する例文を識別するためのアドレスを記憶する複数のレコードを備えている。
【0036】
例文対訳辞書部116は、第1言語の例文と第2言語の例文ペア(SC1,SJ1),(SC2,SJ2), … , (SCL,SJL)を記憶する。ここで、SCi(i=1,2,…,L)は、第1言語の例文(第2言語のSJiセンテンスの訳文)、SJi(I=1,2,…,L)は、第2言語のSCiセンテンスの訳文(第1言語の例文)である。例文ペアには、それぞれ対応するアドレスが付与されている。同じハッシュ値を持つ複数の例文に対しては、Next例文アドレスでリンクされている。さらに、例文ペアには、後述する類似例文の検索に利用されるNグラム数のカウント領域250が割当てられる。
【0037】
次に、入力文に照合する例文を検索する動作を図8のフローチャートを参照して説明する。ここでは、第1言語の入力文の検索を説明する。第1言語の入力文SCが第1言語入力部100から入力されると(ステップS101)、ハッシュ値計算部102は、上記した計算方法により入力文SCのハッシュ値Hash(SC)を計算する(ステップS102)。計算されたハッシュ値Hash(SC)は、例文照合部112へ提供され、例文照合部112は、インデックス部108からHash(SC)に一致するレコードを検索し、当該レコードを読み出す(ステップS103)。次に、例文照合部112は、レコードに記憶された例文の識別情報であるアドレスを取得し(ステップS104)、そのアドレスに基づき例文対訳辞書部116に格納された例文ペアを読み出す(ステップS105)。
【0038】
例文照合部112は、例文ペアに含まれる第1言語の例文SCiと入力文SCを比較し、例文SCiと入力文SCが同一か否かを判定する(ステップS106)。例文SCiが入力文SCと同一であるとき、例文照合部112は、例文SCiの対訳である第2言語の例文SCjを出力部118から出力させる。一方、例文SCiと入力文SCが異なるとき、第1言語のNEXT例文のアドレスが空(Null)か否かを判定し(ステップS107)、アドレスが空であれば、入力文のHash値(SC)に該当する例文は存在しないので終了となる。NEXTアドレスが存在する場合には、NEXTアドレスを取得し(ステップS108)、NEXTアドレスの例文ペアを読み出し(ステップS105)、入力文との比較が繰り返される。
【0039】
第2言語の入力文が入力された場合にも、第1言語の入力文のときと同様に、ハッシュインデックス部208から該当するハッシュ値のレコードが読み出され、そのレコードに記憶されたアドレスにより第2言語の例文が検索され、その対訳である第1言語の例文が出力される。
【0040】
入力文のハッシュ値に一致するハッシュ値をもつ例文が存在しないとき、類似例文検索部114、214は、入力文のNグラム文字列を利用して類似する例文を検索する。先ず、入力文からNグラム文字列を生成するNグラム生成部104、204について説明する。Nグラムインデックス部110、210は、図9に示すように、対訳例文辞書部の例文に含まれているすべてのNグラムをトライ構造で格納する。Nグラムトライ構造において、1つのノードは1文字を格納し、葉から根(ルート)に存在するノードによってNグラムが特定される。ノードは、ノードID、文字情報(文字C)、フラグ(Flag)、フラグが1のとき例文番号リストレコードへの指針、親ノードのノードID、左兄弟ノードのノードIDを含む。ノードIDは、木の各ノードが深さ優先探索法の探索順位で付与される。文字情報は1文字であり、ユニコード(Unicode)を採用する。しかし、検索速度を考慮するために、検索木の第1層の各ノードに単語の第1文字の高バイト(Byte)を格納し、第2層の各ノードに単語の第1文字の低バイト(Byte)を格納するようにしてもよい。根(Root)は第0層とする。一番左の子供のノードIDは、現ノードID+1、兄弟間に左から右へ文字情報値の昇順で並べる。また、フラグ0は、ノードが中間であることを意味し、フラグ1は、根から該ノードまでのパス上に存在するノードがNグラムであることを表す。
【0041】
Nグラムは、N個の文字からなる文字列であり、入力文S=C1,C2,…Cn,Cn+1,…,Cmであるとき、そのNグラムの文字列は次のように表される。(C1,C2,…,Cn)、(C2,C3,…,Cn+1)、(C3,C4,…,Cn+2)・・・(Ck,Ck+1,…,Cn+k-1)。本実施例のトライ構造において、ノードIDのフラグが1、すなわち当該ノードIDの葉には、例文番号リストが関連付けされている。例文番号リストは、Nグラムの”文字i…文字j”を含む例文を識別する番号と、Nグラムの”文字i…文字j”を含む次の例文番号リストを参照する指針(ポインタ)とを対とするレコードを複数含む。言い換えれば、例文番号リストは、葉から根(ルート)に至るノードによって特定され文字を含む例文を識別する情報のレコードの集合である。
【0042】
例えば、Nグラムインデックス部が2グラムトライ構造であるとき、図10に示すように、葉から根(ルート)までのノードによって、(C11,C21)(C11,C22),(C12,C23),…,(C1m,C2S),(C1m,C2n)の2グラムの文字列が格納される。それぞれの2グラムの葉には、例文番号リストが対応付けされている。(C11,C21)に対応付けされた例文番号リストは、レコード260、262、・・・、270を含んでいる。レコード260には、(C11,C21)を含む例文を識別する番号S010とレコード262を示すポインタP1が格納される。レコード262には、(C11,C21)を含む次の例文を識別する番号S015と次のレコードを示すポインタP2が格納される。最後のレコード270には、最後の例文を識別する番号S020とポインタが空(Null)とが格納される。こうして、(C11,C21)を含むすべての例文が例文番号リストによって特定される。同様に他の2グラムについてそれぞれ例文番号リストが付与される。
【0043】
次に、類似例文検索部の動作について図11のフローチャートを参照して説明する。ここでは、第1言語の入力文が入力されたものとする。第1言語の入力文SCが入力部100から入力される(ステップS201)。ハッシュ値により例文の照合を得ることができないとき、入力文SCは、Nグラム生成部104に入力され、Nグラム生成部104は、入力文SCのNグラム列(C1C2C3,…, C2C3C4…, …,Ch…Cn;h個のNグラム)を生成する(ステップS202)。但し、Nグラム生成部104は、予め禁止用のNグラムを登録している第1言語禁止用Nグラムリスト106を参照し、このリストに登録されているNグラムに一致するNグラムを除外する。禁止用Nグラムリストは、統計手法と人工手法を用いて構築されたものであり、類似例文の検索に寄与することが少ないNグラムを除外することで、類似例文の検索効率および処理速度を向上させることができる。
【0044】
Nグラム生成部104により生成されたNグラムの文字列は、類似例文検索部114へ供給される。類似例文検索部114は、初期動作として、すべての例文IDに対して、Num(ID)=0、Sim(ID)=0の処理を行う(ステップS203)。Num(ID)は、その例文がNグラムを含む数を示し、Sim(ID)はその例文の類似度を示す。
【0045】
類似例文検索部114は、入力文SCのNグラムがh個であるとき、i=1からi=hまで、Nグラムを含む例文の検索を行う。すなわち、類似例文検索部114は、Nグラムインデックス部110を参照し、Nグラムトライ構造からNグラム(CiCi+1…Ck)を探す(ステップS204)。Nグラムトライ構造において、一致するNグラム(CiCi+1…Ck)が検索された場合(ステップS205)、類似例文検索部114は、文字Ckを格納しているノードにある“例文番号リストレコードへの指針”を用いて、例文番号リストから、(CiCi+1…Ck)を含むすべでの例文ID(ID1,ID2,,,)を獲得する(ステップS206)。これにより、Num(ID1)=Num(ID1)+1; Num(ID2)=Num(ID2)+1;,….の処理が行われ、それぞれの例文のNグラムの一致数に「1」が加算される。Num(ID)の加算値は、好ましくは、例文対訳辞書のそれぞれの例文に対応するカウント領域250に書き込まれる。
【0046】
Nグラムの一致数の加算が終了したとき、およびNグラムトライ構造において、Nグラム(CiCi+1…Ck)が検索されなかったとき、類似例文検索部114は、i=i+1の処理を行い(ステップS207)、入力文SCの次のNグラムをNグラムトライ構造から探し出す(ステップS204)。上記と同様の処理により、次のNグラムが検索されると、対応する例文のNグラムの一致数に「1」が加算される。このような処理は、i=h回、すなわち入力文SCから生成されるNグラムの文字列の数だけ繰り返される。
【0047】
入力文のNグラムの検索が終了すると、図12に示すように、例文対訳辞書部の例文のカウント領域250にNグラム数が保持される。類似例文検索部114は、カウント領域250のNグラム数が1以上のすべでのNum(IDj) > 0の例文に対して、Sim(IDj) = Num(IDj) / nの計算を行う(ステップS208)。nの値は、類似度Sim(IDj)の閾値を決定する。
【0048】
類似例文検索部114は、すべでのSim(IDj) > 閾値の例文に対して、例文対訳辞書部116からIDj番目の例文ペア情報(SCj,SJj)を読み出し、これに応じて出力部118は、入力文SCに類似する例文候補とその訳文(SCj,SJj)を出力する(ステップS209)。
【0049】
上記した類似度Sim(IDj)の計算は、一例であって必ずしもこれに限定されるものではない。例えば、すべでのNum(IDj) > 0の例文に対して、Sim(IDj) = 2*Num(IDj) / (NumBG(SCj)+NumBG(SJj))による計算を行っても良い。NumBG(SC)は、入力文SCのN-gramの数を表す。
【0050】
図11および図12は、第1言語の入力文についての類似例文の検索例を示したが、第2言語の入力文についても同様の検索が行われる。
【0051】
次に、本実施例の翻訳メモリを2グラムインデックス法を用いて構成したときのブロック図を図13に示す。図13に示す構成は、第1言語および第2言語の禁止用文字リスト120、220を備える以外は、基本的に図5に示す構成と同じである。但し、Nグラムを2(Bi)グラムに変更したブロックには、番号の最後にアルファベットの文字「a」を付してある。
【0052】
第1言語の入力文CSに照合する例文が検索されないとき、入力文CSに類似する例文の検索が行われる。この検索は、2グラムインデックスで行われる。2グラム生成部104aの動作を図14を参照して説明する。第1言語入力部100に第1言語の入力文CSが入力され(ステップS301)、次いで、2グラム生成部104aは、入力文CS=C1,C2,…,Cnから2グラム列C1C2, C2C3, …,Cn-1Cn を得る(ステップS302)。
【0053】
次に、2グラム生成部104aは、禁止用文字リスト120を参照し、2グラム列C1C2, C2C3, …,Cn-1Cn から禁止用文字リストの文字を含む2グラムを削除し、2グラム文字列C1C2, C2C3, …,ChCkを得る(ステップS303)。さらに、2グラム生成部104aは、禁止用2グラムリスト106aを参照し、2グラム文字列C1C2, C2C3, …,ChCkから禁止用2グラムリストに含まれている2グラムを削除し(ステップS304)、最終的な2グラム列 C1C2, C2C3, …,CuCv を得る(ステップS305)。以後の処理は、Nグラムのときと同様に行われ、第1言語の入力文に類似する第1言語の例文候補とそれらの訳文が出力される。第2言語の入力文から2グラムを生成するときも第1言語のときと同様に行われる。
【0054】
次に、本発明の第2の実施例について説明する。上記実施例は、2グラムインデックス部110aの2グラムトライ構造を利用して2グラムの検索を実行するものであるが、第2の実施例に係る2グラムインデックス部は、トライ構造を利用することなく、入力文から生成された2グラム列の検索を行うものである。
【0055】
図15に第1言語の2グラムインデックス部の構成を示す。2グラムインデックス部300は、第1言語文字ハッシュ値計算部302、第1言語2グラムの第1文字リスト304、第1言語2グラムリスト306、および第1言語例文番号リスト308を含む。なお、図示しないが、第2言語用の2グラムインデックス部も同様に構成される。
【0056】
文字ハッシュ値計算部302は、第1言語、或いは第2言語のすべでの文字コードを連続のコードに変換する関数である。2グラムの第1文字リスト304は、図16に示すように、2グラムの第1文字すなわち最初の文字0,1,…iおよび2グラムリストへの指針(ポインタ)とを含む。2グラムリスト306は、図17に示すように、2グラムの第2文字、2グラム“文字i文字j”を含む例文の番号リストへの指針、および次の2グラム”文字i文字h”の2グラムリストへの指針を含んでいる。例文番号リスト306は、図18に示すように2グラム”文字i文字j”を含む例文の番号および次の同じ2グラムを含む例文の番号リストレコードへの指針を含む。
【0057】
図19は、図18に示す2グラムインデックス部の詳細を示す図である。例えば、第1言語文字ハッシュ値計算部302により計算されたハッシュ値が2グラムの第1文字リスト304の第1文字C0に該当するとき、それに対応するポインタによって2グラムリスト306のレコード310が検索される。レコード310には、2グラムの第2文字C01と、2グラムの文字C0,C01に対応する例文を識別する番号と、次のレコード312を示すポインタとが格納されている。レコード312には、2グラムの第2文字C02と、2グラムの文字C0,C02に対応する例文を識別する番号と、次のレコードを示すポインタとが格納されている。レコード310によって指針された例文番号リスト308のレコード320には、2グラムの文字C0,C01に対応する例文番号S010と、2グラムの文字C0,C01を含む次の例文番号のレコードへの指針とが格納されている。第2言語の2グラムインデックスの構成も同様である。
【0058】
図20は、2グラムインでクスの検索例を示す図である。例えば、ハッシュ値計算部により2グラムの第1文字リストから「測」が特定されると、そのポインタによって2グラムリストのレコードが参照される。ここでは、「測」に続く第2文字として、「定」、「算」、および「地」が示されている。これらの2グラム、「測定」、「測算」、「測地」を含む例文は、例文番号リストへの指針によって参照される。
【0059】
次に、第2の実施例における類似例文検索動作について図21の動作フローを参照して説明する。この動作は、第1言語の入力文が入力され、入力文に一致する例文が検索されなかったときに行われるものである。第1言語の入力部SCが入力部100に入力され(ステップS401)2グラム生成部104aは、入力文SCの2グラム列(C1C2,C2C3,…,Cn-1Cn)を生成する(ステップS402)。このとき、2グラム生成部104aは、禁止用2グラムリスト106aおよび禁止用文字リスト120を参照し、それらのリストに該当する文字または文字列を2グラム列から削除する。
【0060】
類似例文検索部114は、入力文SCの2グラム列が生成されると、Num(ID),Sim(ID)を初期化し、すべての例文IDに対して、Num(ID)=0,Sim(ID)=0とする(ステップS403)。また、入力文SCに含まれる2グラム列の数だけ検索のルーチン処理を行うためi=1を設定する。
【0061】
次に、類似例文検索部114は、2グラムインデックス部110aの文字Hash値計算部302に文字CiのHash値Hash(Ci)を計算させる(ステップS404)。次に、類似例文検索部114は、第1言語2グラムの第1文字リスト304を参照し、Hash(Ci)番目のレコードに格納している2グラムリスト306への指針情報BP(Ci)を読み出す(ステップS405)。
【0062】
次に、類似例文検索部114は、指針情報BP(Ci)で示されるレコード情報を読み出し、文字=Ci+1のレコードを探しだす(ステップS406)。類似例文検索部114は、文字=Ci+1のレコードが存在するか否かを判定する(ステップS407)。文字=Ci+1のレコードが存在する場合には、2グラムリスト306の文字=Ci+1のレコードに格納された“例文の番号リストへの指針”を参照し、第1言語例文番号リスト308から、2グラム列CiCi+1を含むすべての例文ID(ID1,ID2,,,)を獲得し、Num(ID1)=Num(ID1)+1; Num(ID2)=Num(ID2)+1;,….をカウントする(ステップS408)。カウント結果は、類似例文検索部114が記憶してもよいし、例文対訳辞書部116の例文に対応する領域にカウント値を書き込むようにしてもよい。
【0063】
カウントが終了したとき、および文字=Ci+1のレコードが存在しない場合には、i=i+1の処理を行い(ステップS409)、再び、文字hash値計算部302において次の2グラム列の最初の文字のhash値の計算および検索が続行される(ステップS404)。こうして、入力文SCから生成された全ての2グラム列について、それらの2グラム列を含む例文が検索され、2グラム列を含むカウント結果が保持される。
【0064】
入力文SCの2グラムの検索が終了すると、類似例文検索部114は、2グラム数が1以上のすべでのNum(IDj) > 0の例文に対して、Sim(IDj) = Num(IDj) / nの計算を行う(ステップS410)。nの値は、類似度Sim(IDj)の閾値を決定する。次いで、類似例文検索部114は、すべでのSim(IDj) > 閾値の例文に対して、例文対訳辞書部116からIDj番目の例文ペア情報(SCj,SJj)を読み出し、これに応じて、出力部118は、入力文SCに類似する例文候補とその訳文(SCj,SJj)を出力する(ステップS411)。なお、第2言語の入力文の検索動作は第1言語のときと同様に行われる。
【0065】
類似度の計算方法は、上記に限らず、例えば、すべでのNum(IDj) > 0の例文に対して、Sim(IDj) = 2*Num(IDj) / (NumBG(SCj)+NumBG(SJj))による計算を行っても良い。NumBG(SC)は、入力文SCのN-gramの数を表す。
【0066】
図22は、具体的な翻訳例である。SC1は中国語の入力文であり、SJ1はその対訳である日本語の例文である。同様に、SC2とSJ2、SC3とSJ3はそれぞれ例文ペアである。Hash(SC1), Hash(SC2), Hash(SC3)は、それぞれ中国語の例文のハッシュ値、Hash(SJ1), Hash(SJ2), Hash(SJ3)は、それぞれ日本語の例文のハッシュ値である。
【0067】
上記した図5に示す翻訳メモリ装置に、中国語の例文SC1が入力されると、Hash値計算部102によりハッシュ値5878が計算され、例文照合部112は、ハッシュインデックス部108を参照し、ハッシュ値5878に該当するレコードを検索する。該当するレコードが存在する場合には、当該レコードに格納されたポインタ(アドレス)を参照し、例文対訳辞書部116の中国語の例文を照合し、かつ対訳である日本語の例文SJ1を出力する。他の中国語の例文SC2、SC3が入力されたときも同様の処理が行われる。
【0068】
一方、日本語の例文SJ1が入力されると、Hash値計算部202によりハッシュ値5914が計算され、例文照合部212は、ハッシュインデックス部208を参照し、ハッシュ値5914に該当するレコードを検索する。該当するレコードが存在する場合には、当該レコードに格納されたポインタ(アドレス)を参照し、例文対訳辞書部116の日本語の例文を照合し、かつその対訳である中国語の例文SC1を出力する。他の日本語の例文SJ2、SJ3が入力されたときも同様の処理が行われる。
【0069】
以上、本発明の好ましい実施の形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【産業上の利用可能性】
【0070】
本発明に係る翻訳装置は、翻訳メモリ、翻訳システムにおいて利用される。特に、例文対訳辞書を備えた翻訳メモリによる翻訳支援システムに利用される。
【図面の簡単な説明】
【0071】
【図1】機械翻訳システムの構成を示すブロック図である。
【図2】本実施例に係る翻訳メモリ装置の概略を示すブロック図である。
【図3】翻訳メモリ装置の第1言語(第2言語)の検索辞書の構成を示す図である。
【図4】翻訳メモリ装置を構成するハードウエハを示す図である。
【図5】本実施例に係る翻訳メモリ装置の機能ブロック図である。
【図6】ハッシュ値計算部の例を示す図である。
【図7】ハッシュ値インデックス部と例文対訳辞書の関係を示す図である。
【図8】本実施例における入力文に照合する例文を検索する動作を示すフローチャートである。
【図9】Nグラムインデックスのトライ構造を示す図である。
【図10】2グラムトライ構造を示す図である。
【図11】類似例文検索部の動作を説明するフローチャートである。
【図12】例文対訳辞書部の例文のカウント領域を示す図である。
【図13】2グラムインデックス法による翻訳メモリの機能ブロック図である。
【図14】2グラム生成部の動作を説明するフローチャートである。
【図15】第2の実施例に係る2グラムインデックス部の構成を示す図である。
【図16】図15に示す2グラムインデックス部の第1言語文字Hash値計算部の詳細を説明する図である。
【図17】図15に示す2グラムインデックス部の第1言語2グラムの第1文字リストの詳細を説明する図である。
【図18】図15に示す2グラムインデックス部の第1言語例文番号リストの詳細を説明する図である。
【図19】第2の実施例に係る2グラムインデックス部の動作を説明する図である。
【図20】第2の実施例に係る2グラムインデックス部の具体的な動作を説明する図である。
【図21】第2の実施例に係る類似例文検索部の検索動作を説明するフローチャートである。
【図22】本発明の実施例に係る翻訳メモリ装置による具体的な翻訳例を示す図である。
【図23】従来の例文対訳辞書の概要を説明する図である。
【符号の説明】
【0072】
100:第1言語入力部 102:ハッシュ値計算部
104:Nグラム生成部 104a:2グラム生成部
106:禁止用Nグラムリスト 106a:禁止用2グラムリスト
108:ハッシュインデックス部 110:Nグラムインデックス部
110a:2グラムインデックス部 112:例文照合部
114:類似例文検索部 116:例文対訳辞書
118:出力部 120:禁止用文字リスト
200:第1言語入力部 202:ハッシュ値計算部
204:Nグラム生成部 204a:2グラム生成部
206:禁止用Nグラムリスト 206a:禁止用2グラムリスト
208:ハッシュインデックス部 210:Nグラムインデックス部
210a:2グラムインデックス部 212:例文照合部
214:類似例文検索部 220:禁止用文字リスト
250:カウント領域 260、262、270:レコード
【特許請求の範囲】
【請求項1】
第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書と、
第1言語の入力文を入力する入力手段と、
前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索手段と、
第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索手段と、
第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第2言語の例文を出力する出力手段と、
を有する翻訳装置。
【請求項2】
前記入力手段から第2言語の入力文が入力されたとき、前記第1の検索手段は、第2言語の入力文が例文対訳辞書の第2言語の複数の例文のいずれかに一致するか否か検索し、前記第2の検索手段は、第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、前記出力手段は、第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第1言語の例文を出力する、請求項1に記載の翻訳装置。
【請求項3】
前記第1の検索手段は、前記入力文のハッシュ値を生成し、生成されたハッシュ値に基づき一致する例文を検索する、請求項1または2に記載の翻訳装置。
【請求項4】
前記第2の検索手段は、前記入力文のNグラム列(Nは、自然数)を生成し、生成されたNグラム列に基づき類似する例文を検索する、請求項1または2に記載の翻訳装置。
【請求項5】
前記第2の検索手段は、生成されたNグラム列が予め用意された検索禁止用Nグラムに一致するとき、生成されたNグラム列から一致した禁止用Nグラムを削除する、請求項4に記載の翻訳装置。
【請求項6】
前記第2の検索手段は、第1言語および第2言語の複数の例文をNグラムトライ構造により格納するNグラムインデックス部を有する、請求項4または5に記載の翻訳装置。
【請求項7】
前記第2の検索手段は、前記入力文から2グラムの文字列を生成し、前記Nグラムインデックス部は、例文を2グラムのトライ構造で格納する、請求項6に記載の翻訳装置。
【請求項8】
前記第2の検索手段は、入力文から生成されたNグラムを包含する数を例文毎にカウントし、当該カウント結果に基づき入力文と例文との類似度を判定し、当該判定結果に基づき例文候補を選択する、請求項1に記載の翻訳装置。
【請求項9】
第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書を用いた翻訳方法であって、
第1言語の入力文を入力するステップと、
前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索ステップと、
第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索ステップと、
第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第2言語の例文を出力するステップと、
を有する翻訳方法。
【請求項10】
第2言語の入力文が入力されたとき、前記第1の検索ステップは、第2言語の入力文が例文対訳辞書の第2言語の複数の例文のいずれかに一致するか否か検索し、前記第2の検索ステップは、第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、前記出力ステップは、第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第1言語の例文を抽出する、請求項9に記載の翻訳方法。
【請求項11】
第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書を用いた翻訳プログラムであって、
第1言語の入力文を入力するステップと、
前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索ステップと、
第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索ステップと、
第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第2言語の例文を出力するステップと、
を有する翻訳プログラム。
【請求項12】
第2言語の入力文が入力されたとき、前記第1の検索ステップは、第2言語の入力文が例文対訳辞書の第2言語の複数の例文に一致するか否か検索し、前記第2の検索ステップは、第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、前記出力ステップは、第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第1言語の例文を抽出する、請求項11に記載の翻訳プログラム。
【請求項1】
第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書と、
第1言語の入力文を入力する入力手段と、
前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索手段と、
第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索手段と、
第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第2言語の例文を出力する出力手段と、
を有する翻訳装置。
【請求項2】
前記入力手段から第2言語の入力文が入力されたとき、前記第1の検索手段は、第2言語の入力文が例文対訳辞書の第2言語の複数の例文のいずれかに一致するか否か検索し、前記第2の検索手段は、第1の検索手段により一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、前記出力手段は、第1の検索手段により検索された例文または第2の検索手段により検索された例文候補の対訳である第1言語の例文を出力する、請求項1に記載の翻訳装置。
【請求項3】
前記第1の検索手段は、前記入力文のハッシュ値を生成し、生成されたハッシュ値に基づき一致する例文を検索する、請求項1または2に記載の翻訳装置。
【請求項4】
前記第2の検索手段は、前記入力文のNグラム列(Nは、自然数)を生成し、生成されたNグラム列に基づき類似する例文を検索する、請求項1または2に記載の翻訳装置。
【請求項5】
前記第2の検索手段は、生成されたNグラム列が予め用意された検索禁止用Nグラムに一致するとき、生成されたNグラム列から一致した禁止用Nグラムを削除する、請求項4に記載の翻訳装置。
【請求項6】
前記第2の検索手段は、第1言語および第2言語の複数の例文をNグラムトライ構造により格納するNグラムインデックス部を有する、請求項4または5に記載の翻訳装置。
【請求項7】
前記第2の検索手段は、前記入力文から2グラムの文字列を生成し、前記Nグラムインデックス部は、例文を2グラムのトライ構造で格納する、請求項6に記載の翻訳装置。
【請求項8】
前記第2の検索手段は、入力文から生成されたNグラムを包含する数を例文毎にカウントし、当該カウント結果に基づき入力文と例文との類似度を判定し、当該判定結果に基づき例文候補を選択する、請求項1に記載の翻訳装置。
【請求項9】
第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書を用いた翻訳方法であって、
第1言語の入力文を入力するステップと、
前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索ステップと、
第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索ステップと、
第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第2言語の例文を出力するステップと、
を有する翻訳方法。
【請求項10】
第2言語の入力文が入力されたとき、前記第1の検索ステップは、第2言語の入力文が例文対訳辞書の第2言語の複数の例文のいずれかに一致するか否か検索し、前記第2の検索ステップは、第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、前記出力ステップは、第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第1言語の例文を抽出する、請求項9に記載の翻訳方法。
【請求項11】
第1言語の複数の例文と当該第1言語の複数の例文の対訳である第2言語の複数の例文を記憶する例文対訳辞書を用いた翻訳プログラムであって、
第1言語の入力文を入力するステップと、
前記入力文が例文対訳辞書の第1言語の複数の例文のいずれかに一致するか否か検索する第1の検索ステップと、
第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第1言語の複数の例文から前記入力文に類似する少なくとも1つの例文候補を検索する第2の検索ステップと、
第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第2言語の例文を出力するステップと、
を有する翻訳プログラム。
【請求項12】
第2言語の入力文が入力されたとき、前記第1の検索ステップは、第2言語の入力文が例文対訳辞書の第2言語の複数の例文に一致するか否か検索し、前記第2の検索ステップは、第1の検索ステップにより一致する例文が検索されないとき、例文対訳辞書の第2言語の複数の例文から第2言語の入力文に類似する少なくとも1つの例文候補を検索し、前記出力ステップは、第1の検索ステップにより検索された例文または第2の検索ステップにより検索された例文候補の対訳である第1言語の例文を抽出する、請求項11に記載の翻訳プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2008−65395(P2008−65395A)
【公開日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願番号】特願2006−239612(P2006−239612)
【出願日】平成18年9月4日(2006.9.4)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願日】平成18年9月4日(2006.9.4)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]