(57)【要約】【課題】  原言語の文を目的言語の文により正確に、高速に翻訳することができる翻訳メモリを提供する。【解決手段】  翻訳メモリは、第１の言語についてサブ文字列を記憶する第１の辞書トライ構造、および第１の辞書トライ構造に記憶されたサブ文字列を特定するインデックス情報を記憶するインデックストライ構造を含む第１の検索辞書と、第２の言語についてサブ文字列を記憶する第２の辞書トライ構造、および第２の辞書トライ構造に記憶されたサブ文字列を特定するインデックス情報を記憶するインデックストライ構造を含む第２の検索辞書とを有し、第１の検索辞書のインデックス情報は、少なくとも第２の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含むものである。【選択図】  図１０
2006252428.tif 000002
【特許請求の範囲】
【請求項１】
原言語の文を目的言語の文に翻訳する翻訳メモリであって、
第１の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する第１の辞書トライ構造、および第１の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報を記憶するインデックストライ構造を含む第１の検索辞書と、
第２の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する第２の辞書トライ構造、および第２の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報を記憶するインデックストライ構造を含む第２の検索辞書とを有し、
第１の検索辞書のインデックス情報は、少なくとも第２の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含む、翻訳メモリ。
【請求項２】
インデックス情報は、辞書トライ構造のルートから末端ノードまでのパスによりサブ文字列を特定する、請求項１に記載の翻訳メモリ。
【請求項３】
インデックス情報は、辞書トライ構造の末端ノードを識別するノード識別情報を含む、請求項２に記載の翻訳メモリ。
【請求項４】
第１の検索辞書のインデックス情報は、第２の検索辞書のインデックストライ構造の対応するノード識別情報を含む、請求項１に記載の翻訳メモリ。
【請求項５】
インデックス情報は、インデックストライ構造のルートから末端ノードのパスにより、複数のサブ文字列からなる文を特定する、請求項１ないし４いずれか１つに記載の翻訳メモリ。
【請求項６】
翻訳メモリはさらに、第３の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する第３の辞書トライ構造、および第３の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報を記憶するインデックストライ構造を含む第３の検索辞書とを有し、第２の検索辞書のインデックス情報は、少なくとも第３の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含む、請求項１に記載の翻訳メモリ。
【請求項７】
翻訳メモリはさらに、原言語の文を入力する入力手段と、入力された文をサブ文字列に分割する分割手段と、分割されたサブ文字列を第１の検索辞書の第１の辞書トライ構造と照合し、照合されたサブ文字列のインデックス情報を検索する検索手段と、検索されたインデックス情報に基づき第２の検索辞書のインデックストライ構造から対応するインデックス情報を識別し、識別されたインデックス情報に基づき第２の辞書トライ構造からサブ文字列を特定し、第２の言語の文を抽出する抽出手段と、抽出された文を出力する出力手段とを有する、請求項１ないし６いずれか１つに記載の翻訳メモリ。
【請求項８】
分割されたサブ文字列の文字数は、第１、第２または第３の辞書トライ構造のルートから末端ノードまでのパスで規定される文字列の文字数に等しい、請求項１ないし７いずれか１つに記載の翻訳メモリ。
【請求項９】
翻訳メモリは、Ｎカ国の言語（Ｎは、２以上の整数）に対応する第１ないし第Ｎの検索辞書を含み、それぞれの検索辞書は、インデックス情報により対訳関係が特定されている、請求項１ないし８いずれか１つに記載の翻訳メモリ。
【請求項１０】
原言語の文を目的言語の文に翻訳する翻訳メモリであって、
第１の言語についてルートから複数の末端ノードまでの各パス上にサブ文字列を記憶し、かつ第２の言語についてルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する辞書トライ構造と、
第１の言語のサブ文字列を特定するための第１のインデックス情報、および第２の言語のサブ文字列を特定するための第２のインデックス情報を記憶するインデックストライ構造とを含む検索辞書を有し、
第１のインデックス情報は、少なくとも第２の言語のサブ文字列を特定するための第２のインデックス情報を識別する識別情報を含む、翻訳メモリ。
【請求項１１】
請求項１ないし１０いずれか１つに記載の翻訳メモリと、
翻訳メモリによって翻訳できなかった文を入力し、当該文の翻訳を行う翻訳エンジンと、
翻訳メモリによって翻訳された文と翻訳エンジンによって翻訳された文とを識別して出力する出力手段と、
を有する機械翻訳システム。
【請求項１２】
翻訳エンジンは、パターンベース翻訳エンジン、チャンベース翻訳エンジン、解析ベースまたは単語直訳翻訳エンジンの少なくとも１つを含む、請求項１１に記載の機械翻訳システム。
【請求項１３】
原言語の文を目的言語の文に翻訳する翻訳方法であって、
第１の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第１の辞書トライ構造に記憶し、第１の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第１の検索辞書を構築し、かつ、第２の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第２の辞書トライ構造に記憶し、第２の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第２の検索辞書を構築するステップを有する翻訳方法。
【請求項１４】
第１の検索辞書のインデックス情報は、少なくとも第２の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含む、請求項１３に記載の翻訳方法。
【請求項１５】
翻訳方法はさらに、原言語の文を入力するステップと、入力された文をサブ文字列に分割するステップと、分割されたサブ文字列を第１の検索辞書の第１の辞書トライ構造と照合し、照合されたサブ文字列のインデックス情報を検索するステップと、検索されたインデックス情報に基づき第２の検索辞書のインデックストライ構造から対応するインデックス情報を識別し、識別されたインデックス情報に基づき第２の辞書トライ構造からサブ文字列を特定し、第２の言語の文を抽出するステップと、抽出された文を出力するステップとを有する、請求項１３または１４に記載の翻訳方法。
【請求項１６】
原言語の文を目的言語の文に翻訳する翻訳プログラムであって、
第１の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第１の辞書トライ構造に記憶し、第１の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第１の検索辞書を構築し、かつ、第２の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第２の辞書トライ構造に記憶し、第２の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第２の検索辞書を構築するステップを有する翻訳プログラム。
【請求項１７】
第１の検索辞書のインデックス情報は、少なくとも第２の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含む、請求項１６に記載の翻訳プログラム。
【請求項１８】
翻訳プログラムはさらに、原言語の文を入力するステップと、入力された文をサブ文字列に分割するステップと、分割されたサブ文字列を第１の検索辞書の第１の辞書トライ構造と照合し、照合されたサブ文字列のインデックス情報を検索するステップと、検索されたインデックス情報に基づき第２の検索辞書のインデックストライ構造から対応するインデックス情報を識別し、識別されたインデックス情報に基づき第２の辞書トライ構造からサブ文字列を特定し、第２の言語の文を抽出するステップと、抽出された文を出力するステップとを有する、請求項１６または１７に記載の翻訳プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原言語の文、文字列または文章を目的言語の文、文字列または文章に翻訳するマルチリンガル翻訳装置に関し、特にトライ検索構造を用いた翻訳メモリの技術に関する。
【背景技術】
【０００２】
原言語から目的言語へ機械翻訳する手法として、単語直接翻訳技術、解析ベース翻訳技術・中間言語方式、統計ベース翻訳技術、例文ベース翻訳技術などがある。
【０００３】
単語直接翻訳技術は、原言語の文を構成する単語を直接に目標言語の単語に翻訳し、統計データ或いは予め決められたルールによって、目標言語の翻訳文を生成するものである。
【０００４】
解析ベース翻訳技術・中間言語方式は、原言語の文を形態素解析、構文解析、意味解析し、目標言語の意味、構文、形態素に変換し、目標言語の翻訳文を生成するものである。中間言語方式は、原言語の文を解析して中間言語に変換し、変換された中間言語から目標言語の訳文を生成するものである。
【０００５】
統計ベース翻訳技術は、言語モデルと翻訳モデルを用いて、原言語を目標言語に翻訳するものである。例文ベース翻訳技術は、人間が外国語を学ぶ過程のように、翻訳された例文等の学習により構築された知識ベースを参考にしながら入力された原言語の文を目標言語の訳文に翻訳する方法である。
【０００６】
このような翻訳技術において、中間言語方式による幾つかの特許文献が開示されている。例えば特許文献１は、単一の中間言語を用いて１つの原語から２つ以上の目的言語に同時翻訳可能な自動翻訳システムを提供する。この翻訳システムは、原語で書かれた文書を基に、メッセージの高度な理解を可能にする文書解析、知識の明確な表現、および「翻訳品質／時間」に関して高いレベルで、多数の目的言語への自動翻訳を可能としている。
【０００７】
特許文献２は、入力された原言語に関する情報に基づいて、それに対応する標準化中間言語を抽出し、抽出された標準化言語に基づいて、それに対応する目的言語に関する情報を生成する電子翻訳装置に関するものである。
【０００８】
特許文献３は、ユーザが簡単に作成でき、しかも効率良く検索できる、機械翻訳用の翻訳パターンを提供する。文パターンを木構造の検索辞書に格納し、入力されたテキスト文を検索辞書と照合し、成功すれば、対応している他の言語の文パターンを取り出し、当該文パターンを用いて目的言語のテキスト文を生成する。失敗した場合には、言語解析・生成方式の機械翻訳技術を用いて翻訳を行うものである。
【０００９】
さらに翻訳メモリに関する技術として、文字インデックス法と単語インデックス法がある。前者は、対訳句対コーパスに存在するすべでの文字に対して文字インデックスを作成することにより、翻訳メモリを実現する方法である。後者は、対訳句対コーパスに存在するすべでの単語に対して単語インデックスを作成することにより、翻訳メモリを実現する方法である。
【００１０】
【特許文献１】特開平６−３２５０８号
【特許文献２】特開昭６２−２５１８７５号
【特許文献３】特開平５−２９００８２号
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の翻訳技術には、次のような課題がある。単語直接翻訳技術は、比較的簡単に構成できる反面、その翻訳精度を保証することができない。中間言語方式は、マルチリンガル機械翻訳に対応できるが、各言語の構文解析・意味解析技術は未熟であるため、実用化するのは非常に困難である。さらに、高等な言語解析技術や中言語の生成技術を必要とするため、多分野の翻訳に対応することができず、機能を拡張することが困難であり、翻訳ツールのメンテナンスも非常に困難であるという課題もある。
【００１２】
また、特許文献３に開示される技術は、木構造を用いて文パターンを格納し、文パターンを照合するときに、部分パターンを見つけると、その部分パターンをある変数で入れ替えることにより、パターンの表現範囲を広げることを可能にしている。しかし、文に出現した単語を、部分パターンとして木構造に登録されていないと、たとえ、文に対応するパターンが存在していても照合できないという問題がある。特許文献３の図７の木構造において、文「接点を改善する」に対して、「〜を改善する」というパターンが照合されるが、文「性能を改善する」に対して、もし、「性能」という部分パターンが登録されていなければ、「〜を改善する」というパターンと照合されない。さらに、仮に、「性能」という部分パターンが木構造の下の階層に登録されていても、「〜を改善する」というパターンと照合されない。従って、広範囲の表現をカバーするためには、数多くの文パターンを用意しなければならないという問題点があった。
【００１３】
さらに、文字インデックス法による翻訳メモリは、リアルタイムで翻訳するのが困難であり、単語インデックス法による翻訳メモリは、リアルタイムでの翻訳の困難性に加えて、マルチリンガルの翻訳システムに対応できないという課題がある。
【００１４】
本発明は、従来の課題を解決するために成されたもので、原言語の文を目的言語の文により正確に翻訳することができる翻訳メモリ、翻訳システム、翻訳方法および翻訳プログラムを提供することを目的とする。
さらに本発明は、原言語の文を複数の目的言語に同時に翻訳することができるマルチリンガル翻訳メモリ、翻訳システム、翻訳方法および翻訳プログラムを提供することを目的とする。
さらに本発明は、対訳辞書等の記憶容量を低減し、かつ高速に翻訳することができる翻訳メモリ、翻訳システム、翻訳方法および翻訳プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係る原言語の文を目的言語の文に翻訳する翻訳メモリは、第１の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する第１の辞書トライ構造、および第１の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報を記憶するインデックストライ構造を含む第１の検索辞書と、第２の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する第２の辞書トライ構造、および第２の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報を記憶するインデックストライ構造を含む第２の検索辞書とを有し、第１の検索辞書のインデックス情報は、少なくとも第２の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含むものである。辞書トライとインデックストライの２重検索トライ構造を採用し、サブ文字列のトライ検索を可能にすることで、メモリ(記憶)使用容量をできるだけ削減しつつ、文の翻訳の高速化を図っている。
【００１６】
好ましくは、インデックス情報は、辞書トライ構造のルートから末端ノードまでのパスによりサブ文字列を特定する。例えば、インデックス情報は、辞書トライ構造の末端ノードを識別するノード識別情報である。さらに、第１の検索辞書のインデックス情報は、第２の検索辞書のインデックストライ構造の対応するノード識別情報を含む。例えば、インデックス情報は、インデックストライ構造のルートから末端ノードのパスにより複数のサブ文字列からなる文を特定する。
【００１７】
翻訳メモリはさらに、第３の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する第３の辞書トライ構造、および第３の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報を記憶するインデックストライ構造を含む第３の検索辞書とを有し、第２の検索辞書のインデックス情報は、少なくとも第３の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含む。すなわち、翻訳メモリは、複数の言語について、それぞれの検索辞書を構築し、入力された原言語の文に対応する目的言語の訳文を選択することができる、いわゆるマルチリンガル翻訳メモリである。
【００１８】
好ましくは、翻訳メモリはさらに、原言語の文を入力する入力手段と、入力された文をサブ文字列に分割する分割手段と、分割されたサブ文字列を第１の検索辞書の第１の辞書トライ構造と照合し、照合されたサブ文字列のインデックス情報を検索する検索手段と、検索されたインデックス情報に基づき第２の検索辞書のインデックストライ構造から対応するインデックス情報を識別し、識別されたインデックス情報に基づき第２の辞書トライ構造からサブ文字列を特定し、第２の言語の文を抽出する抽出手段と、抽出された文を出力する出力手段とを有する。これにより、ユーザは、所望の文を入力し、それに対応する言語の訳文を得ることができる。目的言語は、ユーザにより適宜選択される。
【００１９】
好ましくは、分割されたサブ文字列の文字数は、第１、第２または第３の辞書トライ構造のルートから末端ノードまでのパスで規定される文字列の文字数に等しい。例えば、辞書トライ構造が文字列を５文字に分割している場合には、分割手段は、入力された文を５文字に分割し、５文字の文字列を辞書トライ構造において検索する。
【００２０】
好ましくは、翻訳メモリは、Ｎカ国の言語（Ｎは、２以上の整数）に対応する第１ないし第Ｎの検索辞書を含み、それぞれの検索辞書は、インデックス情報により対訳関係が特定されている。上記したように本発明の翻訳メモリは、複数の言語間において文の対訳を得ることが可能なマルチリンガル翻訳メモリを構成することができる。
【００２１】
さらに本発明に係る、原言語の文を目的言語の文に翻訳する翻訳メモリは、第１の言語についてルートから複数の末端ノードまでの各パス上にサブ文字列を記憶し、かつ第２の言語についてルートから複数の末端ノードまでの各パス上にサブ文字列を記憶する辞書トライ構造と、第１の言語のサブ文字列を特定するための第１のインデックス情報、および第２の言語のサブ文字列を特定するための第２のインデックス情報を記憶するインデックストライ構造とを含む検索辞書を有し、第１のインデックス情報は、少なくとも第２の言語のサブ文字列を特定するための第２のインデックス情報を識別する識別情報を含むものである。１つの辞書トライ構造に複数の言語の文字列を記憶させ、かつ１つのインデックストライ構造に複数の言語のインデックス情報を記憶させることで、よりメモリ容量を削減し、翻訳処理の高速化を図ることができる。
【００２２】
本発明に係る機械翻訳システムは、上記した特徴を有する翻訳メモリと、翻訳メモリによって翻訳できなかった文を入力し、当該文の翻訳を行う翻訳エンジンと、翻訳メモリによって翻訳された文と翻訳エンジンによって翻訳された文とを識別して出力する出力手段とを有する。好ましくは、翻訳エンジンは、パターンベース翻訳エンジン、チャンベース翻訳エンジン、解析ベースまたは単語直訳翻訳エンジンの少なくとも１つを含む。
【００２３】
本発明に係る、原言語の文を目的言語の文に翻訳する翻訳方法は、第１の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第１の辞書トライ構造に記憶し、第１の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第１の検索辞書を構築し、かつ、第２の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第２の辞書トライ構造に記憶し、第２の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第２の検索辞書を構築するステップを有する。好ましくは、第１の検索辞書のインデックス情報は、少なくとも第２の検索辞書における対訳のサブ文字列を特定するためのインデックス情報を識別する識別情報を含む。
【００２４】
さらに本発明に係る原言語の文を目的言語の文に翻訳する翻訳プログラムは、第１の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第１の辞書トライ構造に記憶し、第１の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第１の検索辞書を構築し、かつ、第２の言語について、ルートから複数の末端ノードまでの各パス上にサブ文字列を第２の辞書トライ構造に記憶し、第２の辞書トライ構造に記憶されたサブ文字列を特定するためのインデックス情報をインデックストライ構造に記憶する第２の検索辞書を構築するステップを有する。
【発明の効果】
【００２５】
本発明に係る翻訳メモリによれば、辞書トライ構造とインデックストライ構造の２重トライ構造を採用することで、サブ文字列による共用部分が増え、辞書トライ構造のメモリ使用量を削減しつつ、より高速な文の翻訳を行うことができる。さらに、２重トライ構造の検索辞書を複数の言語毎に構築することで、マルチリンガルな文の翻訳を行う翻訳メモリを提供することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の最良の実施形態について図面を参照して説明する。図１は、本発明の実施例に係る機械翻訳システムの全体構成を示す図である。機械翻訳システム１は、文書のすべての部分を正しく翻訳することはできず、翻訳できない部分に無理に翻訳すると、ユーザを混迷させ、原文の内容の把握に悪い影響を与えてしまう。そこで、翻訳結果において、正解または失敗の区別、あるいは信頼性の高低を与えるようにしている。また、翻訳システムに学習機能を設け、翻訳できない部分を自動的に回収し、正確な対訳を付与することで、翻訳の性能を向上させている。
【００２７】
機械翻訳システム１は、原言語テキスト文入力部１０から入力された文単位の文を翻訳する翻訳メモリエンジン１２、翻訳メモリエンジン１２のデータベースにおいて照合できなかった部分、つまり正確に翻訳をできなかった部分を入力しこれの形態素解析を行う形態素解析部１４と、形態素解析部１４で解析された入力文の解析結果を入力しパターンベースで翻訳をするパターンベース翻訳エンジン１６と、パターンベース翻訳エンジン１６で翻訳できなかった場合は、前記入力文の形態素解析部分の結果をチャンクベース例文（単語の組合せまたは名詞句のようなフレーズ）で翻訳するチャンクベース翻訳エンジン１８と、チャンクベース翻訳エンジン１８で翻訳できなかった場合は、前記入力文の形態素解析の結果を入力し、解析ベースまたは単語ベースで翻訳する解析ベースまたは単語直訳翻訳エンジン２０と、目的言語テキスト文を作成する目的言語テキスト作成部２２とを有している。
【００２８】
翻訳メモリエンジン１２、パターンベース翻訳エンジン１６、チャンクベース例文翻訳エンジン１８により翻訳が成功した部分の翻訳データは、目的言語テキスト作成部２２に入力される。目的言語テキスト作成部２２は、これらの翻訳データに基づき目的言語のテキストを作成する。このとき、翻訳成功した部分については、正確に翻訳されたことがわかるような識別を与える。一方、解析ベースまたは単語直訳翻訳エンジン２０によって翻訳された翻訳データは、目的言語テキスト文作成部２２において、参考程度の翻訳として出力される。これにより、ユーザは、テキスト訳文において、どこが信頼できる翻訳結果であり、どこが信頼できない翻訳結果かを一見して把握することができる。
【００２９】
一方、チャンクベース例文翻訳エンジン１８で翻訳失敗した部分は、回収部２４によって回収される。回収された翻訳失敗部分は、翻訳者によって正確な翻訳がなされ、その結果が、学習エンジン２６に出力される。学習エンジン２６は、正確な翻訳に基づき、対訳データを対訳辞書２８へ書き込む。
【００３０】
図２は、本実施例の好ましい翻訳メモリエンジンの構成を示す図である。翻訳メモリエンジン１２は、Ｎカ国（１、２、・・・Ｎの）複数の言語についての検索辞書１２−１、１２−２、・・・１２−Ｎを含んでいる。検索辞書１２−１の出力が検索辞書１２−２に入力され、検索辞書１２−Ｎの出力が検索辞書１２−１に入力されるように、検索辞書１２−１から検索辞書１２−Ｎまでが循環するように連結されている。勿論、検索辞書１２−１から検索辞書１２−ＮまでのＮ個の検索辞書を双方向で循環するように連結しても構わない。翻訳メモリエンジン１２は、原言語テキスト文入力部１２からテキスト文が入力されると、そのテキスト文を検索辞書１２−１において言語１に翻訳することができ、さらに、言語１の翻訳結果を用いて検索辞書１２−２において言語２に翻訳することができる。すなわち、入力されたテキスト文をＮカ国の言語に同時に翻訳することができる。目的言語テキスト文２２は、ユーザによって指定された目的言語への翻訳を出力する。目的言語は、単一の言語のみならず、複数の言語であってもよい。
【００３１】
図３は、翻訳メモリエンジンのハードウエア構成を示す図である。翻訳メモリエンジンは、入力装置３０、表示装置３２、主記憶装置３４、外部記憶装置３６、中央処理装置（ＣＰＵ）３８、これらを接続するバス４０を含んでいる。入力装置３０、キー操作により単語を入力するキーボード、原稿に記載された単語を光学的に読み取る光学式読取装置、あるいは、他のハードウエアまたはソフトウエアの演算結果であってもよい。
【００３２】
表示装置３２は、原言語のテキスト文を表示したり、原言語を翻訳した目的言語の文を出力するディスプレイ等を含む。主記憶装置３４は、ＲＯＭまたはＲＡＭを含み、翻訳メモリを制御するためのプログラムや演算結果等のデータを記憶する。外部記憶装置３６は、例えばハードディスク等の大容量記憶装置を含み、ここには、文の翻訳に必要な検索辞書１２−１、１２−２・・・１２−Ｎ等の対訳辞書が記憶されている。ＣＰＵ（Central Processing Unit）３８は、主記憶装置３４に記憶されたプログラムに従い各部を制御する。
【００３３】
次に、本実施例に係る翻訳メモリエンジンの詳細について説明する。図４は、翻訳メモリの検索辞書の構成を示す図である。各検索辞書１２−１〜１２−Ｎは、辞書トライ構造１００−１〜１００−Ｎとインデックストライ構造２００−１〜２００−Ｎとを有している。辞書トライ構造１００−１は、言語１についてのサブ文字列をトライ構造に記憶したものであり、インデックストライ構造２００−１は、辞書トライ構造１００−１のサブ文字列を特定するためのインデックス情報をトライ構造に記憶したものである。こうした辞書トライ構造とインデックストライ構造の２重トライ構造が、各言語ごとに構築されている。
【００３４】
トライ構造(TRIE structure)とは、言語情報処理分野において、検索キー集合の共通部分の文字列を併合して得られる木構造のことである。例えば、「あい」、「あいさい」、「あいさつ」、「あいのこ」、「あいのり」の５つの検索キーから生成したトライ構造は図５に示すようになる。図中の＄は、単語の末尾を表わす特殊文字として用いることができる。トライ構造を用いて検索するには、検索文字列を左から順に走査しながら、木の根(ノードＮ１)から各ノードＮ２〜Ｎ１３に付与された文字を手がかりに木をたどり、検索文字列に照合する単語を抽出する。トライ構造を用いると、検索キーの数によらず検索文字列に比例した時間で、高速な検索を行うことができる。
【００３５】
図６は、辞書トライ構造の詳細を説明する図である。辞書トライ構造は、ルート１１０から末端ノード１２０−１〜１２０−Ｎのパス上に、複数のサブ文字列を格納している。例えば、末端ノード１２０−１からルートまでのパスをたどることで、そのパス上のノードに含まれる文字Ｍ１０、Ｍ１１、・・・Ｍ１ｎからなるサブ文字列が特定され、同様に、末端ノード１２０−２からルートまでのパスをたどることで、そのパス上のノードに含まれる文字Ｍ２０、Ｍ２１、・・・Ｍ２ｎからなるサブ文字列が特定される。ルートから末端ノードまでのパス上に存在するノード数、すなわち、サブ文字列の文字数は、適宜選択することができる。
【００３６】
図７は、インデックストライ構造の詳細を説明する図である。インデックストライ構造は、辞書トライ構造に含まれる文字列を検索し、特定することを可能にする。インデックストライ構造の各ノードには、文字列を特定するためのインデックス情報が記憶される。インデックス情報は、辞書トライ構造の末端ノードを識別する情報を含んでいる。例えば、ノード２２２−２には、インデックス情報ＩＮ２が記憶され、インデックス情報ＩＮ２は、辞書トライ構造の末端ノード１２０−２を識別する情報を含み、末端ノード２２０−２には、インデックス情報ＩＮ１が記憶され、インデックス情報ＩＮ１は、辞書トライ構造の末端ノード１２０−１を識別する情報を含む。つまり、インデックス情報ＩＮ２は、サブ文字列Ｍ２０、Ｍ２１、・・・Ｍ２ｎを特定することができ、インデックス情報Ｎ１は、サブ文字列Ｍ１０、Ｍ１１、・・・Ｎ１ｎを特定することができる。従って、インデックストライ構造の末端ノードは、その末端ノードからルートまでのパス上に存在するインデックス情報により辞書トライ構造のサブ文字列を組み合わせた文を特定することができる。
【００３７】
また、インデックストライ構造の末端ノード２２０−１、２２０−２、・・・２２０−Ｎは、他のインデックストライ構造の末端ノード２３０−１、２３０−２、２３０−Ｎとリンク付けされる。このリンク付けは、原言語の文と、目的言語の訳文との関係を規定するものである。例えば、末端ノード２２０−２は、他の言語のインデックストライ構造の末端ノード２３０−１とリンク付けされるように、末端ノード２３０−１を識別する情報を含んでいる。この末端ノード２３０−１とルート２１２のパス上に存在するノードに含まれるインデックス情報ＩＮ１、ＩＮ２、ＩＮ３により特定されるサブ文字列からなる文は、末端ノード２２０−２からルート２１０のパス上に存在するノードに含まれるインデックス情報ＩＮ１、ＩＮ２、ＩＮ３、ＩＮ４により特定されるサブ文字列からなる文の翻訳である。
【００３８】
次に、辞書トライ構造の作成フローについて説明する。辞書トライ構造を新規に登録し、または追加する場合には、図８に示すように、翻訳メモリ用の対訳データファイルからデータを入力する（ステップＳ１０１）。入力されたデータは、ＣＰＵ３８によってデータフォーマット変換によりユニコードに変換される（ステップＳ１０２）。これにより、対訳の関係にある、文字列Ｊと文字列Ｃが生成される。
【００３９】
次に、ＣＰＵ３８は、図９に示すように、文字列Ｊを長さｍｊで左から右の順で、ｋｊ個のサブ文字列Ｊ１、Ｊ２、・・・Ｊｋｊに分割する（ステップＳ１０３）。同様に、文字列Ｃを長さｍｃで左から右の順でｋｃ個のサブ文字列Ｃ１、Ｃ２・・・Ｃｋｃに分割する。
【００４０】
次に、ＣＰＵ３８は、サブ文字列Ｊ１、Ｊ２、・・・Ｊｋｊ、あるいはサブ文字列Ｃ１、Ｃ２、・・・Ｃｋｃが、対応する言語の検索辞書に存在するか否かをチェックする（ステップＳ１０４）。存在していない場合には、ＣＰＵ３８は、サブ文字列Ｊ１、Ｊ２、・・・Ｊｋｊおよびサブ文字列Ｃ１、Ｃ２、・・・Ｃｋｃを対応する検索辞書に登録し、ログファイルに情報を記憶し、終了する（ステップＳ１０５）。
【００４１】
一方、既に検索辞書内に、サブ文字列Ｊ１、Ｊ２、・・・Ｊｋｊ、あるいはサブ文字列Ｃ１、Ｃ２、・・・Ｃｋｃが存在している場合には、ログファイルに情報を記録し、終了する（ステップＳ１０６）。
【００４２】
ユーザはまた、外部記憶装置３６に格納された検索辞書の内容を編集することも可能である。表示装置３２に既存の検索辞書に登録された文字列を表示させ、これを入力装置３０から訂正等をする。
【００４３】
図１０は、対訳データを検索辞書に登録する例を示す図である。ここでは、言語Ｊの辞書トライ構造を１００−Ｊとし、言語Ｃの辞書トライ構造を１００−Ｃとする。上記したように、対訳データから一方の言語ｊの文の文字列が入力されると、これが文字列Ｊ１、Ｊ２、・・・Ｊｋｊに分割され、辞書トライ構造１００−Ｊに挿入される。一方、言語ｊの文Ｊの訳文文字列Ｃが文字列Ｃ１、Ｃ２、・・・Ｃｋｃに分割され、辞書トライ構造１００−Ｃに挿入される。
【００４４】
辞書トライ構造１００−Ｊにおいて、文字列Ｊ１、Ｊ２、・・・Ｊｋｊを特定するためのルートから末端ノードまでのパスが記録され、言語Ｊのインデックストライ構造２００−Ｊが構築される。同様に、辞書トライ構造１００−Ｃにおいて、文字列Ｃ１、Ｃ２、・・・Ｃｋｊを特定するためのルートから末端ノードまでのパスが記録され、言語Ｃのインデックストライ構造２００−Ｃが構築される。
【００４５】
次に、言語Ｊのインデックストライ構造の末端ノードと言語Ｃのインデックストライ構造の末端ノード間に対応関係をつける。このようにして、対訳データに基づき複数の言語間の検索辞書を構築する。
【００４６】
なお、サブ文字列の分割方法は、例えばサブ文字列の文字数を予め設定しておくことができる。この場合、入力された文を、予め設定された文字数で除した値が、サブ文字列の数となる。あるいは、サブ文字列の数を予め設定しておいても良い。この場合、入力された文（文字列）をサブ文字列数で除した値が、サブ文字列の文字数となる。言語Ｊと言語Ｃにおいて、サブ文字列の文字数は等しくてもよいし、異なるものであっても良い。
【００４７】
次に、トライ構造の各ノードの構造定義を説明する。ノードの構造定義には、物理構造の定義と論理構造の定義の２種類がある。図１１（ａ）は、辞書トライ構造のノードの物理構造の定義を示している。辞書トライノードＩＤ３００は、当該ノードを識別するための情報（ＩＤ）である。文字情報３０２は、ノードに含まれる文字が漢字、ひらがな、カタカナ、アルファベットかを示すものである。文字列フラグ３０４は、図１２(ａ)に示すように、当該ノードが文字列の終わりか否かを示すフラグであり、フラグ＝０であれば終わりであり、フラグ＝１であれば、終わりでない。例えば、辞書トライの末端ノードであれば、フラグ＝０であり、それ以外はフラグ＝１となる。
【００４８】
言語訳語ＩＤ３０６は、図１２（ｂ）に示すように、言語の種類を識別するものである。例えば、日本語＝１、中国語＝２、英語＝３のように対応をつける。さらに、一番左の子供フラグのメモリのポインタ３０８、親ノードのメモリのポインタ３１０および右兄弟ノードのメモリのポインタ３１２が記憶され、これらのノードポイントは、トライ構造に必要な情報である。
【００４９】
図１１（ｂ）には、インデックストライ構造が示されている。インデックストライノードＩＤ３２０は、当該ノードを識別するための情報である。辞書トライノードポインタ３２１は、当該ノードに対応する辞書トライのノードを識別するための情報である。すなわち、辞書トライ構造の末端ノードを識別するための情報である。文フラグ３２２は、当該ノードが末端ノードか否かを識別するための情報である。次に、訳語言語ＩＤ３２４、一番左の子供のメモリのポインタ３２６、親ノードのメモリのポインタ３２８、および右兄弟ノードのメモリのポインタ３３０が記憶される。最後の訳語インデックストライノードＩＤのポインタ３３２は、訳語のインデックストライ構造の末端ノードを識別する情報である。
【００５０】
図１３（ａ）は、辞書トライ構造のノードの論理構造を示している。文字情報３４０は、上記したようにノードに含まれる文字種を示すものである。文字列フラグ＋子供フラグ+訳語言語ＩＤ３４２は、上記したように、文字列フラグが「１」のとき中間ノードを意味し、文字列フラグが「０」のとき、文字列ノードを意味し（ルートから該ノードまでのパス上の情報が文字列を表す）。子供フラグが「０」のとき、当該ノードよりも下の階層にノードを含まないことを意味し、子供フラグ「１」のとき、当該ノードよりも下の階層にノードがあることを意味する。訳語言語ＩＤは、上記下通りであり、さら親ノードＩＤ３４４おおび右兄弟ノード３４６を含んでいる。
【００５１】
図１３（ｂ）は、インデックストライ構造のノードの論理構造を示している。辞書トライノードＩＤ３５０は、当該ノードが対応する辞書トライ構造の末端ノードＩＤである。文フラグは、当該ノードが文の終わりか否かを示す情報であり、インデックストライ構造の末端ノードは、文の終了であるので、例えばフラグ「１」となり、それ以外のノードがフラグ「０」となる。また、インデックストライ親ノードＩＤ３５２は、当該ノードの親ノードを識別する情報である。さらに、子供フラグ+インデックストライ右兄弟ノードＩＤ３５４と訳語インデックストライノードＩＤ３５４が記憶される。
【００５２】
次にノードＩＤの付与方法について説明する。図１４は、ノードＩＤの付与方法を示す図である。トライ構造では、深さ優先探索し、探索の順番によって番号を１あるいは０から順に増加させ、ノードＩＤを付与する。ノードＩＤを付与したならば、図１５に示すように、ノードＩＤに対応するレコードをノードＩＤの順番に従い配列し、格納する。ノードＩＤの順番でレコードを配列させることで、ノードＩＤが指すノード情報に瞬時にアクセスすることができる。
【００５３】
次に、検索辞書の処理のフローを図１６に示す。新規に文を登録する場合、入力装置３０（図３参照）から入力された文がサブ文字列に分割され、それらが図１１（ａ）に示す物理構造ノードの定義に従い辞書トライの単語情報レコードを構成する（ステップＳ２０１）。
【００５４】
次に、物理構造のトライのすべてのノードを深さ優先走査順でＩＤを付与する（ステップＳ２０２）。次に、物理構造のトライとノードＩＤを用いて論理構造のトライと単語情報レコードを構成する（ステップＳ２０３）。これにより、辞書トライとインデックストライが作成される（ステップＳ２０４）。
【００５５】
文の追加、編集を行う場合には、既存の辞書トライ構造および既存のインデックストライ構造を、一旦、メモリ上の物理構造に変換する（ステップＳ２０５）。次いで、メモリ上の物理構造トライにおいて、文またはサブ文字列の編集、追加を行う（ステップＳ２０６）。ここで、トライに要求されることは、トライのルートをヌル（Ｎｕｌｌ）にすること、および各頂点の子供が左から右へ文字情報の値を小さい順で並べることである。また、辞書トライ構造の各ノードは、２バイトにより１文字を表す。
【００５６】
次に、マルチリンガルの検索辞書の構築について説明する。
１）言語１、言語２、・・・言語Ｎのテキスト文集合をそれぞれ用いて、言語１、 言語２、・・・言語Ｎをそれぞれ複数のサブ文字列に分割し、分割されたサブ文字列を、それぞれ対応している言語の対訳辞書トライとインデックストライに構築する。
２）それぞれのＮ個の対訳辞書トライとインデックストライに対して、ノードＩＤを付与する。
３）トライの保存方法：トライのノード情報が定数長であるので、一つのノード情報を一つのレコードとする。ノードＩＤの順番でトライのノード情報を配列構造で書き換える。そうすることにより、ノードＩＤにより、ノードＩＤが指すノードの情報を瞬間に取り出すことができる。
４）すべての対訳文に対して、言語１のテキスト文−言語２のテキスト文・・・言語Ｎのテキスト文となるマルチリンガル対訳文対を用いて、言語ｉ(ｉ=１、２、・・・Ｎ)のテキスト文を、言語ｉの対訳辞書トライと照合し、照合したときに得られたｋ個のノードＩＤ（ＩＤ１（ｉ）、ＩＤ２（ｉ）、・・・ＩＤｋ（ｉ））を用いて、言語iのインデックストライと照合する。
５）照合が整合したときのインデックストライのノードＩＤを取り出す。このノードＩＤをＩ(ｉ)とする。ノードＩ（ｉ）の訳語インデックストライノードＩＤ（訳語は言語ｉ＋１を指している）をＴ（ｉ）で表すと、Ｔ（１）=Ｉ（２）、Ｔ（２）＝Ｉ（３）、・・・Ｔ（Ｎ）＝Ｉ（１）となる。
【００５７】
言語ｉのテキスト文から言語ｊのテキスト文に翻訳する動作を図１７のフローを参照して説明する。テキスト文を入力すると（ステップＳ３０１）、テキスト文がサブ文字列に分割される（ステップＳ３０２）。分割されたサブ文字列を、それぞれ言語ｉの対訳辞書トライと照合する（ステップＳ３０３）。
【００５８】
照合が成功した場合（ステップＳ３０４）、照合したときに得られたｋ個のノードＩＤ（ＩＤ１（ｉ）、ＩＤ２（ｉ）、・・・ＩＤｋ（ｉ）を用いて、言語ｉのインデックストライと照合する（ステップＳ３０５）。照合が成功した場合は（ステップＳ３０６）、言語ｉのインデックストライのノードＩ（ｉ）に対応する訳語インデックストライノードＩＤのＴ(ｉ)の値によって、言語ｉ+1のインデックストライのノードＩ（ｉ＋１）のＴ（ｉ＋１）の値を取り出す（ステップＳ３０７）。
【００５９】
ｊ＝ｉ＋１であれば（ステップＳ３０８）、ノードＩ（ｉ＋１）からルートまでのパス上の情報を取り出し、ｈ個の言語ｊの対訳辞書トライのノードＩＤを得る（ステップＳ３０９）。そして、これらのＩＤを、ＩＤ１（ｊ）、ＩＤ２（ｊ）・・・ＩＤｈ（ｊ）を用いて、言語ｊの対訳辞書トライから訳文を求め、これを出力する（ステップＳ３１０）。もし、ｊ＝ｉ＋１でなければ、ステップＳ３０７を行う。こうして、言語ｉのテキスト文から言語ｊのテキスト文への翻訳が行われる。
【００６０】
次に、日本語と中国語間の機械翻訳の例を説明する。先ず、対訳辞書の構築動作を説明する。日本語と中国語のテキスト文集合をそれぞれを用いて、日本語と中国語をそれぞれ複数のサブ文字列に分割し、分割されたサブ文字列をそれぞれ対応している言語の対訳辞書トライとインデックストライを構築する。たとえば、図１８（ａ）に示す日本語のテキスト文「この決勝戦のスコアは終了したばかりの３位決定戦さえにも及ばない。」が、中国語に翻訳される例を用いる。日本語のテキスト文は、図１８（ｂ）に示すように、サブ文字列Ｊ１〜Ｊ７に分割され、中国語のテキスト文は、図１８（ｃ）に示すように、サブ文字列Ｃ１〜Ｃ６に分割され、辞書トライに格納される。ここでは、サブ文字列の文字数を５にしている。
【００６１】
図１９は、日本語と中国語のそれぞれの辞書トライ構造およびインデックストライ構造を示す図である。日本語と中国語の対訳辞書トライとインデックストライに対してノードＩＤを付与する。
【００６２】
すべでの対訳文に対して、日本語のテキスト文−中国語テキスト文となる対訳文対を用いて、日本語のテキスト文を日本語の対訳辞書トライと照合し、照合したときに得られた７個のノードＩＤ（ＩＤ１（１）、ＩＤ２（１）、・・・ＩＤ７（１））を用いて、日本語のインデックストライと照合する。照合が整合したときの日本語インデックストライのノードＩＤ１（１）を取り出す。
【００６３】
中国語のテキスト文を中国語の対訳辞書トライと照合し、照合したときに得られた６個のノードＩＤ（ＩＤ１（２）、ＩＤ２（２）、・・・ＩＤ６（２））を用いて、中国語のインデックストライと照合する。照合が整合したときの中国語インデックストライのノードＩＤＩ（２）を取り出す。ノードＩ（１）の訳語インデックストライノードＩＤ(訳語は中国語を指している)をＴ（１）で表すと、Ｔ（１）＝Ｉ（２）となる。ノードＩ（２）の訳語インデックストライノードＩＤ（訳語は日本語を指している）をＴ（２）で表すと、Ｔ（２）＝Ｉ（１）となる。
【００６４】
次に、翻訳動作を説明する。日本語のテキスト文をサブ文字列Ｊに分割する。分割されたサブ文字列Ｊ１、Ｊ２、・・・Ｊ７を日本語の対訳辞書トライと照合し、これにより、ＩＤ１（１）、ＩＤ２（１）、・・・ＩＤ７（１）が得られる。
【００６５】
次に、ＩＤ１（１）、ＩＤ２（１）、・・・ＩＤ７（１）をサブ文字列として、日本語インデックストライと照合し、この照合により、ノードＩ（１）が得られる。ノードＩＤ（１）の訳語インデックストライノードＩＤの値によって、中国語インデックストライのノードＩ（２）が得られる。
【００６６】
中国語インデックストライＩ（２）からルートまで逆にインデックストライを辿っていけば、中国語対訳辞書トライのノードＩＤ（ＩＤ１（２）、ＩＤ２（２）、・・・ＩＤ６（２））が得られる。ＩＤ１（２）、ＩＤ２（２）、・・・ＩＤ６（２）を用いて、中国語の対訳辞書トライから中国語訳文が抽出される。
【００６７】
このように本実施例に係る翻訳メモリによれば、複数言語間の翻訳において、正確に、高速に、かつ、対訳辞書の大きさを従来のトライ構造の１／２〜１／３としたマルチリンがル機械翻訳を実現することができる。特に、慣用句、ことわざ、技術分野の固定文書、マニュアル、技術説明文書などの機械翻訳に最適である。さらに、翻訳メモリに学習機能を持たせ、ある文とその文の対訳文を学習させれば、以降においてより正確な翻訳文を得ることができる。勿論、本発明の翻訳メモリは、マルチリンガルの単語対訳辞書の構築、マルチリンガルのパターンベースの例文ベース機械翻訳装置、単語対訳辞書の構築翻訳にも適用することができる。
【００６８】
次に、本発明の第２の実施例について説明する。第２の実施例は、辞書トライおよびインデックストライが複数の言語（好ましくは２カ国の言語）に対応している。
【００６９】
図２０に示すように、第１言語の文の文字列Ｊを、サブ文字列Ｊ１、Ｊ２・・・Ｊｋ１に分割し、対訳辞書トライ４００に挿入する。また、第２言語の文Ｊの訳文の文字列Ｃを、サブ文字列Ｃ１、Ｃ２・・・Ｃｋ２に分割し、対訳辞書トライ４００に挿入する。
【００７０】
対訳辞書トライ４００のルートからＩＤｉのノードまでのパスがＪｉの情報を記録とすると、ＩＤ１、ＩＤ２・・・ＩＤｋ１を用いてインデックストライ４１０を構築する。対訳辞書トライ４００のルートからＩＤｊのノードまでのパスがＣｊの情報を記録とすると、ＩＤ１、ＩＤ２・・・ＩＤｋ２を用いてインデックストライを構築する。最後に、インデックストライに、２カ国言語情報間の対応関係を付ける。これにより、辞書トライおよびインデックストライを２カ国の言語に対応させることができる。
【００７１】
次に本発明の第３の実施例について説明する。第３の実施例は、辞書トライ構造とインデックストライ構造を１つにまとめたものである。図２１は、第３の実施例の翻訳メモリに用いられる検索辞書を示す図である。ここでは、説明を間単にするために、言語ｉと言語ｊの検索辞書を示している。
【００７２】
言語ｉの文の文字列Ｓｉを言語ｉの言語トライ４００−ｉに挿入し、言語ｊの文の文字列Ｓｊを言語ｊの言語トライ４００−ｊに挿入する。言語ｉのトライ４００−ｉのルートからＩＤｉの末端ノードまでのパス上に文字列Ｓｉの情報を記録する。同様に、言語ｊの言語トライ４００−ｊのルートからＩＤｊの末端ノードまでのパス上に文字列Ｓｊの情報を記録する。
【００７３】
図２１（ｂ）は、言語ｉの言語トライのノードの構造を示している。ノード構造は、当該ノードを識別するノードＩＤ４０２、文字情報４０４、文フラグ・子供フラグ・訳語言語ＩＤ４０６、言語ｊの検索辞書への対応する訳文のノードＩＤ４０８、親ノード４１０、および右兄弟ノードＩＤ４１２を含んでいる。
【００７４】
翻訳をするとき、文字列Ｓｉが入力されると、言語ｉの言語トライ４００−ｉのルートからＩＤｉのノードを探し出し、ＩＤｉのノードに格納してる対訳文の情報ＩＤｊを取り出す。 言語ｊの言語トライのノードＩＤｊからルートまで逆に走査すれば、訳文Ｓｊを取り出すことができる。
【００７５】
また、第３の実施例の検索辞書が２カ国言語に限定される場合には、図２２のように構成することも可能である。言語１の文Ｊと言語２の文Ｃをそれぞれ辞書言語トライ５００に挿入して、検索辞書を構築する。言語トライ５００のルートからＩＤｊのノードまでのパスが文Ｊの情報を記録している。また、トライのルートからＩＤｃのノードまでのパスが文Ｃの情報を記録している。図２２（ｂ）にノードの構造を示す。この場合、言語１または言語２への対応する訳文のノードＩＤ５０２が与えられている。
【００７６】
翻訳するとき、言語トライ５００のルートから文Ｊを探し、ＩＤｊノードを取り出し、ＩＤｊノードに格納している対訳文の情報ＩＤｃを取り出す。言語トライ５００のノードＩＤｃからトライのルートまで逆に走査すれば、訳文Ｃを取り出すことができる。
【００７７】
本実施例による翻訳メモリを用いることで、次のような効果を得ることができる。第１の実施例に係る翻訳メモリと文字インデックス法の空間量は、ほぼ同じであるが、第１の実施例の翻訳メモリは、文字インデックス法と比較して翻訳速度が約２４，０００倍速いことがわかった。さらに、単語インでクス法と比較すると、記憶容量は大幅に小さくすることができ、翻訳速度は、単語インデックス法より約５００倍速いことがわかった。さらに、第１の実施例は、第３の実施例よりも記憶容量は約５６％減少し、速度は、第３の実施例よりも約４倍早いことがわかった。
【００７８】
以上、本発明の好ましい実施の形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【産業上の利用可能性】
【００７９】
本発明に係る翻訳メモリは、マルチリンガル機械翻訳システム、例えば、パターンベース例文ベースマルチリンガル機械翻訳、チャンク例文ベースマルチリンガル機械翻訳などに適用することができる。さらに、紙原稿をコピー感覚でリアルタイムに翻訳して結果を出力し、電子化するスキャン翻訳や、自動信憑性判定機能および自動回収機能を有するスキャン翻訳装置を用いて、マルチリンガルの翻訳サービスに適用することができる。さらに、翻訳メモリは、その機能を実行するソフトウエアをコンピュータに搭載させたり、あるいは携帯用もしくはポータブル用の電子辞書として利用することもできる。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施例に係る機械翻訳システムの構成を示す図である。
【図２】翻訳メモリエンジンの構成を示す図である。
【図３】本発明の実施例に係る翻訳メモリエンジンのハードウエア構成を示す図である。
【図４】検索辞書の構成を示す図である。
【図５】トライ構造を説明する図である。
【図６】辞書トライ構造を説明する図である。
【図７】インデックストライ構造を説明する図である。
【図８】辞書トライ構造の作成するフローを示す図である。
【図９】文字列を分割する例を示す図。
【図１０】検索辞書への文字列の登録を示す図である。
【図１１】図１１(ａ)は辞書トライ構造のノードの物理構造を示し、図１１（ｂ）はインデックストライ構造の物理構造を示す。
【図１２】フラグと言語ＩＤを説明する図である。
【図１３】図１３(ａ)は辞書トライ構造のノードの論理構造を示し、図１３(ｂ)はインデックストライ構造のノードの論理構造を示す。
【図１４】ノードレコードＩＤの付与を説明する図である。
【図１５】ノードレコードの配列を示す図である。
【図１６】辞書構成の処理フローを示す図である。
【図１７】言語ｉのテキスト文から言語ｊのテキスト文への翻訳動作を説明するフローである。
【図１８】日本語と中国語間の翻訳例を説明する図である。
【図１９】日本語と中国語の辞書トライ構造およびインデックストライ構造を示す図である。
【図２０】本発明の第２の実施例に係る翻訳メモリの検索辞書の構成を示す図である。
【図２１】本発明の第３の実施例に係る翻訳メモリの検索辞書の構成を示す図である。
【図２２】第３の実施例の検索辞書の変形例である。
【符号の説明】
【００８１】
１：機械翻訳システム
１０：原言語テキスト分入力部
１２：翻訳メモリエンジン
１２−１、１２−２、１２−Ｎ：検索辞書
２２：目的言語テキスト文作成部
１００−１、１００−２、１００−Ｎ：辞書トライ構造
１２０−１、１２０−２、１２０−Ｎ：末端ノード
２００−１、２００−２、２００−Ｎ：インデックストライ構造
２２０−１、２２０−２、２２０−Ｎ：末端ノード
【図１】
2006252428.tif 000003
【図２】
2006252428.tif 000004
【図３】
2006252428.tif 000005
【図４】
2006252428.tif 000006
【図５】
2006252428.tif 000007
【図６】
2006252428.tif 000008
【図７】
2006252428.tif 000009
【図８】
2006252428.tif 000010
【図９】
2006252428.tif 000011
【図１０】
2006252428.tif 000012
【図１１】
2006252428.tif 000013
【図１２】
2006252428.tif 000014
【図１３】
2006252428.tif 000015
【図１４】
2006252428.tif 000016
【図１５】
2006252428.tif 000017
【図１６】
2006252428.tif 000018
【図１７】
2006252428.tif 000019
【図１８】
2006252428.tif 000020
【図１９】
2006252428.tif 000021
【図２０】
2006252428.tif 000022
【図２１】
2006252428.tif 000023
【図２２】
2006252428.tif 000024