(57)【要約】【課題】大量のデータを準備する必要なく、知識に基づくデータ処理に必要な知識を作成できる知識構築装置を提供する【構成】知識構築装置（ＤＢ更新装置４６）は、それぞれ、与えられる情報を含むレコードを記憶するためのソースリング９２及び翻訳リング９４と、入力される要素を受けてソースリング９２に格納させるための入力挿入部９０と、ソースリング９２を検査して未処理のレコードを読出し、その要素の各々を、翻訳知識ＤＢ４８中のソースドメインの二つの要素と組合せて類推式を作成し、翻訳リング９４に格納させるとともに、寿命の尽きたレコードを削除するためのソースリング検査部９６と、翻訳リング９４を検査して未処理のレコードから類推式を読出し、読出された類推式と翻訳知識ＤＢ４８の知識とから新たな知識を生成し、当該知識を用いて集合を更新する翻訳リング検査部９８とを含む。【選択図】      図４
2006277468.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ読取可能な知識の集合を、入力から獲得した知識を用いて構築するための知識構築装置であって、当該知識構築装置は、前記集合を記憶するための知識記憶装置とともに用いられ、前記集合は、ソースドメインの要素とターゲットドメインの要素との対を含み、
それぞれ、与えられる情報を含むレコードを記憶するための第１及び第２の記憶手段と、
入力される要素を受けて前記第１の記憶手段に与え格納させるための入力格納手段と、
前記第１の記憶手段を検査して未処理のレコードを読出し、読出されたレコード中の要素の各々を、前記集合中の前記ソースドメインの二つの要素と組合せて新たな要素を類推するための所定の第１の類推式を作成し、前記第２の記憶手段に格納させるための第１の検査手段と、
前記第２の記憶手段を検査して未処理のレコードから第１の類推式を読出し、読出された第１の類推式と前記集合に含まれる知識とから前記ソースドメインの要素と前記ターゲットドメインの要素とを含む知識を生成し、当該知識を用いて前記集合を更新するための第２の検査手段とを含む、知識構築装置。
【請求項２】
前記第２の検査手段は、
前記第２の記憶手段を検査して未処理のレコードから第１の類推式を読出し、読出された第１の類推式を解くための第１の類推手段と、
前記第１の類推手段により得られた要素が前記集合内の前記ソースドメインに存在するか否かを判定するための判定手段と、
前記第１の類推手段により得られた要素が前記集合の前記ソースドメインに存在していると前記判定手段により判定されたことに応答して、前記第１の類推式に含まれている前記二つの要素と対になっている前記ターゲットドメインの要素と、前記第１の類推手段により得られた要素と対になっている前記ターゲットドメインの要素とから、所定の第２の類推式を作成するための手段と、
前記第２の類推式を解くための第２の類推手段と、
前記第１の記憶手段から読出されたレコード中の要素を前記ソースドメインの要素に持ち、前記第２の類推手段により得られた要素を前記ターゲットドメインの要素に持つ知識を用いて、前記集合を更新するための更新手段とを含む、請求項１に記載の知識構築装置。
【請求項３】
前記第２の検査手段はさらに、前記第１の類推手段により得られた要素が前記集合の前記ソースドメインに存在していないと前記判定手段により判定されたことに応答して、前記第１の記憶手段に当該要素を格納させるための手段を含む、請求項２に記載の知識構築装置。
【請求項４】
前記第１の記憶手段のレコードは、与えられる情報を記憶する第１のフィールドと、当該レコードの寿命を示す情報を含む第２のフィールドとを含み、
前記入力格納手段と前記格納させるための手段とはいずれも、前記第１の記憶手段に新たなレコードを格納させるときには予め定める定数を前記第２のフィールドに設定し、
前記第１の検査手段は、
前記第１の記憶手段に記憶されたレコードを読出すための第１の読出手段と、
前記読出手段により読出されたレコードの前記寿命フィールドの値が所定の値を超えていれば、当該レコードの前記第１のフィールドから要素を読出し、かつ当該レコードの前記寿命フィールドの値から所定値を減算するための手段と、
前記第１のフィールドから読出された要素を、前記集合中の前記ソースドメインの二つの要素と組合せて前記第１の類推式を作成し、前記第２の記憶手段に格納させるための手段と、
前記読出手段により読出されたレコードの前記寿命フィールドの値が前記所定の値以下であるレコードを前記第１の記憶手段から削除するための手段とを含む、請求項１から請求項３のいずれかに記載の知識構築装置。
【請求項５】
前記知識の集合内の知識の各々には、当該知識の出現頻度が付されており、
前記第２の検査手段は、前記第２の記憶手段を検査して未処理のレコードから第１の類推式を読出し、読出された第１の類推式を解いて得られる要素と前記集合に含まれる知識とから前記ソースドメインの要素と前記ターゲットドメインの要素とを含む知識を生成し、当該知識が前記集合になければ当該知識を前記集合に追加し、当該知識が前記集合に存在していれば当該知識の出現頻度に所定数を加算するための手段を含む、請求項１〜請求項４のいずれかに記載の知識構築装置。
【請求項６】
コンピュータにより実行されると、当該コンピュータを請求項１〜請求項５のいずれかに記載の知識構築装置として動作させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は一般的に知識処理を行なうために好適な装置に関し、特に、自然言語処理等を行なうために必要な知識データベースの構築を行なうための知識構築装置に関する。
【背景技術】
【０００２】
コンピュータを人間が使用するためには、何らかの指示をコンピュータに与える必要がある。コンピュータを扱う者が一部の専門家のみに限られていた間は、人間がコンピュータの言語を習得し、その言語にしたがって指示を与えることで問題なくコンピュータを利用することができた。しかし現代ではコンピュータが一般化し、専門家でないものがコンピュータを操作することが日常的に行なわれる。
【０００３】
専門家でないものがコンピュータのための言語を学習する必要なくコンピュータを操作するためには、何らかの形でマン−マシンインタフェースを設計する必要がある。そうしたインタフェースの一例が、現在のパーソナルコンピュータで採用されているグラフィカル・ユーザ・インタフェース（ＧＵＩ）である。モニタの表示とマウスなどのポインティングデバイスとを用いることで視覚的な操作を可能にし、それによって専門家以外でもコンピュータを容易に利用できる。
【０００４】
このようにＧＵＩは専門家以外の利用者にもコンピュータを容易に利用可能とした点で大きな功績がある。しかし、人間同士のコミュニケーションと比較すると、ＧＵＩも依然として改善の余地がある。その第１に、人間のように言語を使用したコミュニケーションを行なうことがコンピュータには困難であることが挙げられる。人間の話す言葉をコンピュータが確実に理解できるようになり、かつコンピュータからの情報を自然言語を用いて表現できるようになれば、人間とコンピュータとの間のコミュニケーションは劇的に改善されるであろう。
【０００５】
そうしたコミュニケーションを可能にするために、自然言語処理を可能にする様々な研究が行なわれている。例えば音声認識及び音声合成、機械翻訳、情報検索、並びに文書の要約等がその一例である。
【０００６】
現在の自然言語処理の主流は、言語データ（コーパス）をもとにしたデータ主導型の手法である。何らかの手法により自然言語処理に必要な知識（多くの場合、統計的モデル）を予め言語データから作成しておき、その知識を用いて入力を処理する。
【０００７】
図１５に、自然言語処理装置の一例として、従来の機械翻訳システム４３０を示す。図１５を参照して、機械翻訳システム４３０は、予めコーパスから作成された翻訳のための知識をデータベース（以下「ＤＢ」と呼ぶ。）化した翻訳知識ＤＢ４４２と、翻訳知識ＤＢ４４２を用いてある言語の文である入力４２を翻訳し、他の言語の出力４４４を出力するための機械翻訳装置４４０とを含む。翻訳知識ＤＢ４４２は、多くの場合、言語モデル、翻訳モデル等の統計的なモデルからなり、機械翻訳装置４４０はこれら統計的モデルを用いて入力４２の翻訳文として最も尤度の高い出力４４４を出力する。
【特許文献１】特許第３１７２５１１号、段落００２６〜００３０
【発明の開示】
【発明が解決しようとする課題】
【０００８】
翻訳知識ＤＢ４４２を作成するための技術が特許文献１に開示されている。特許文献１に開示の技術では、予め準備された二言語コーパスを構成する文の対の間で句アライメント（句の対応付け）を行ない、各文を互いに対応付けられたチャンク列に変換し、このチャンク列に変換された文の対を用いて翻訳モデルをトレーニングする。
【０００９】
しかし、このように作成される知識を用いて自然言語処理を行なうためには、予め大量の文からなるコーパスを収集し、それらをトレーニングに適した形に加工し、実際にモデルのトレーニングを行なう必要がある。こうした作業には、多くの作業者と長時間とが必要とされる。より短い時間で、より低いコストでこうした知識を得ることができれば望ましい。また、こうした問題は自然言語処理に特有の問題ではない。コンピュータを用いて行なわれるデータ処理であって、それ以前に準備されたそのデータ処理に関する知識を用いるような処理であれば、自然言語以外の場合でもこうした問題が生じ得る。
【００１０】
それゆえに本発明の目的は、大量のデータを準備する必要なく、知識に基づくデータ処理に必要な知識を作成できる知識構築装置を提供することである。
【００１１】
本発明の他の目的は、予め大量のデータを準備し、それを用いて何らかのモデルのトレーニングをする必要なく、データ処理に必要な知識を構築できる知識構築装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明の第１の局面に係る知識構築装置は、コンピュータ読取可能な知識の集合を、入力から獲得した知識を用いて構築するための知識構築装置である。当該知識構築装置は、知識の集合を記憶するための知識記憶装置とともに用いられる。知識の集合は、ソースドメインの要素とターゲットドメインの要素との対を含む。知識構築装置は、それぞれ、与えられる情報を含むレコードを記憶するための第１及び第２の記憶手段と、入力される要素を受けて第１の記憶手段に与え格納させるための入力格納手段と、第１の記憶手段を検査して未処理のレコードを読出し、読出されたレコード中の要素の各々を、集合中のソースドメインの二つの要素と組合せて新たな要素を類推するための所定の第１の類推式を作成し、第２の記憶手段に格納させるための第１の検査手段と、第２の記憶手段を検査して未処理のレコードから第１の類推式を読出し、読出された第１の類推式と集合に含まれる知識とからソースドメインの要素とターゲットドメインの要素とを含む知識を生成し、当該知識を用いて集合を更新するための第２の検査手段とを含む。
【００１３】
要素が入力されると、入力格納手段により当該要素が第１の記憶手段に与えられ、第１の記憶手段にその要素を含むレコードが格納される。このレコードから第１の検査手段が要素を読出し、知識の集合中のソースドメインの二つの要素と組合わせて第１の類推式を作成し、第２の記憶手段に記憶させる。第２の検査手段は、第２の記憶手段の未処理のレコードから第１の類推式を読出し、この第１の類推式と、知識の集合に含まれる知識とから知識を生成し、その知識を用いて知識の集合を更新する。
【００１４】
知識を生成するための要素を入力すると、当該要素と知識の集合とから第１の類推式が作成され、この第１の類推式と知識の集合とから知識が生成される。知識を生成するための要素を入力するだけで、知識の集合が更新されるため、知識を人手で生成する必要がなくなる。
【００１５】
好ましくは、第２の検査手段は、第２の記憶手段を検査して未処理のレコードから第１の類推式を読出し、読出された第１の類推式を解くための第１の類推手段と、第１の類推手段により得られた要素が集合内のソースドメインに存在するか否かを判定するための判定手段と、第１の類推手段により得られた要素が集合のソースドメインに存在していると判定手段により判定されたことに応答して、第１の類推式に含まれている二つの要素と対になっているターゲットドメインの要素と、第１の類推手段により得られた要素と対になっているターゲットドメインの要素とから、所定の第２の類推式を作成するための手段と、第２の類推式を解くための第２の類推手段と、第１の記憶手段から読出されたレコード中の要素をソースドメインの要素に持ち、第２の類推手段により得られた要素をターゲットドメインの要素に持つ知識を用いて、集合を更新するための更新手段とを含む。
【００１６】
より好ましくは、第２の検査手段はさらに、第１の類推手段により得られた要素が集合のソースドメインに存在していないと判定手段により判定されたことに応答して、第１の記憶手段に当該要素を格納させるための手段を含む。
【００１７】
入力された要素と知識の集合とから作成した第１の類推式を解くことにより、別の要素が得られる。この要素が知識の集合内のソースドメインになければ、これを新たな入力とみなして第１の記憶手段に与え、格納させる。一つの入力から新たな入力が作成されるため、加速度的に知識の集合の内容が充実していく。
【００１８】
さらに好ましくは、第１の記憶手段のレコードは、与えられる情報を記憶する第１のフィールドと、当該レコードの寿命を示す情報を含む第２のフィールドとを含む。入力格納手段と格納させるための手段とはいずれも、第１の記憶手段に新たなレコードを格納させるときには予め定める定数を第２のフィールドに設定し、第１の検査手段は、第１の記憶手段に記憶されたレコードを読出すための第１の読出手段と、読出手段により読出されたレコードの寿命フィールドの値が所定の値を超えていれば、当該レコードの第１のフィールドから要素を読出し、かつ当該レコードの寿命フィールドの値から所定値を減算するための手段と、第１のフィールドから読出された要素を、集合中のソースドメインの二つの要素と組合せて第１の類推式を作成し、第２の記憶手段に格納させるための手段と、読出手段により読出されたレコードの寿命フィールドの値が所定の値以下であるレコードを第１の記憶手段から削除するための手段とを含む。
【００１９】
好ましくは、知識の集合内の知識の各々には、当該知識の出現頻度が付されており、第２の検査手段は、第２の記憶手段を検査して未処理のレコードから第１の類推式を読出し、読出された第１の類推式を解いて得られる要素と集合に含まれる知識とからソースドメインの要素とターゲットドメインの要素とを含む知識を生成し、当該知識が集合になければ当該知識を集合に追加し、当該知識が集合に存在していれば当該知識の出現頻度に所定数を加算するための手段を含む。
【００２０】
本発明の第２の局面に係るコンピュータプログラムは、コンピュータにより実行されると、当該コンピュータを上記したいずれかの知識構築装置として動作させるものである。
【発明を実施するための最良の形態】
【００２１】
＜概要＞
以下に説明する第１の実施の形態に係る装置は、機械翻訳に関するものである。しかし、この発明は機械翻訳のための知識の作成に適用可能なだけではなく、一般的に用例又は統計的情報に基づくデータ処理で使用する知識の作成に適用可能である。以下の説明では、同じ部品には同じ参照番号を付す。それらの機能も同一である。したがって、それらについての詳細な説明は繰返さない。
【００２２】
＜第１の実施の形態＞
［概略］
この実施の形態に係るシステムは、全体として、翻訳知識を用いて機械翻訳を行なうものである。従来のものと異なるのは、予めある程度の規模で準備された翻訳知識ＤＢを、翻訳を行なっている間に充実させていくことができるという点である。
【００２３】
［構造］
図１に、本実施の形態に係る機械翻訳システム３０のブロック図を示す。図１を参照して、機械翻訳システム３０は、図２を参照して後述する構成を有する翻訳知識ＤＢ４８と、翻訳知識ＤＢ４８を用い、英語の入力４２に対して英和方向の機械翻訳を行なって日本語の出力４４を出力するための機械翻訳装置４０と、機械翻訳装置４０が受けるものと同じ入力４２を受けて、この入力４２と翻訳知識ＤＢ４８内の翻訳知識とを用いて翻訳知識ＤＢ４８に新たな知識を追加する処理を行なうためのＤＢ更新装置４６とを含む。本実施の形態では、英語の入力文自体は図示しないメモリに記憶され、入力４２としては当該入力が記憶されている領域のアドレスを格納したポインタのアドレスが与えられる。以下、入力４２はこのポインタのアドレスを指すものとする。
【００２４】
図２を参照して、翻訳知識ＤＢ４８は、英語の文と日本語の文との対を含んでいる。本実施の形態では、英語の文の集まりをソースドメイン、日本語の文の集まりをターゲットドメインと呼ぶ。図２に示す例では、「I'd like a packet of tea」という文と「紅茶一箱をください」という文とが一対となっており、「Will you draw me a map?」という文と「地図を書いていただけませんか」という文とが一対となっており、以下同様である。この点で、翻訳知識ＤＢ４８は二言語コーパスに類似している。
【００２５】
この翻訳知識ＤＢ４８では、各文対ごとにその出現頻度が保持されている。図２において、英和の２文の間に記載されているのが頻度である。この出現頻度は、ＤＢ更新装置４６による翻訳知識ＤＢ４８の更新の際の処理で、翻訳知識ＤＢ４８の各文対がどのような頻度で出現したかを表す。ＤＢ更新装置４６による翻訳知識ＤＢ４８の更新の際の処理の詳細については後述する。
【００２６】
図３に、機械翻訳装置４０のより詳細なブロック図を示す。図３を参照して、機械翻訳装置４０は、ＤＢ更新装置４６における処理に用いられる二つの定数Ｌ０及びＮをそれぞれ記憶するためのメモリ６２及びメモリ６４と、入力４２が与えられると、メモリ６２及びメモリ６４からそれぞれＬ０及びＮを読出し、入力４２にこれらを付してＤＢ読出部７０に与えることにより、翻訳のためのプロセスをＤＢ読出部７０中に起動する処理を行なうための起動部６０と、起動部６０から入力４２と二つの定数Ｌ０及びＮを受けるごとに一つの翻訳プロセスを起動し、翻訳知識ＤＢ４８に格納されている翻訳知識を用い、入力４２と対になっている日本語文を翻訳知識ＤＢ４８中で検索し、定数Ｌ０及びＮにより定められる条件が充足されたときに出力４４として出力するためのＤＢ読出部７０とを含む。
【００２７】
機械翻訳装置４０はさらに、ＤＢ読出部７０が使用する翻訳記憶領域を形成する二つのメモリ７２及び７４を含む。メモリ７２は後述するように、ＤＢ読出部７０中のプロセスの寿命を表す値をプロセスごとに記憶するための領域であり、メモリ７４はあるプロセスの結果を出力するために出力が満たすべき条件をプロセスごとに記憶するための領域である。
【００２８】
図４は、ＤＢ更新装置４６の詳細な構成を示す。図４を参照して、ＤＢ更新装置４６は、二つのリング構造をなすリンク記憶機構、すなわちソースリング９２及び翻訳リング９４を含む。ソースリング９２は、０個、１個、又は複数個のレコード１００を含み、翻訳リング９４は０個、１個、又は複数個のレコード１１０を含む。
【００２９】
リング構造とは、一連のリンクドリストの最後のレコードの次のリンク先が、リンクドリストの先頭レコードとなっている記憶構造を指す。この記憶構造では、リング内の任意のレコードを取除いたり、リング内の任意の箇所に新たなレコードを挿入したりすることが容易にできる。本実施の形態では、各リングにはそれぞれ専用のポインタが設けられており、ポインタをシーケンシャルに前進させてそのポインタの指すレコードを読出してその内容について所定の処理を実行する。レコードを追加する場合には、ポインタの直前に追加する。すなわち、追加したレコードはポインタがリングを一巡してきて始めて読出される。
【００３０】
本実施の形態では、ソースリング９２及び翻訳リング９４の各レコードは、各リングに追加された後、前記した所定の処理を所定回数だけ受けた後、リングから削除される。そのために各レコードには、図５及び図６を参照して後述するように、当該レコードが削除されるまでの残りの処理回数（以下これを「寿命」と呼ぶ。）を記憶するための領域と、レコードの本体を記憶するための領域とが設けられる。寿命の初期値は、ソースリング９２については定数Ｌ１，翻訳リング９４については定数Ｌ２で、それぞれ指定される。本明細書では、寿命が来たレコードは「処理済レコード」、寿命が来る前のレコードは「未処理レコード」と、それぞれ呼ぶ。
【００３１】
ＤＢ更新装置４６はさらに、機械翻訳装置４０から、上記した定数Ｌ１を記憶するためのメモリ９１と、同じく定数Ｌ２を記憶するためのメモリ９９と、入力４２を受け、その入力を含み、メモリ９１に記憶された定数Ｌ１により定められる寿命を持つ新たなレコードをソースリング９２に挿入する処理を行なうための入力挿入部９０と、ソースリング９２の中でポインタが指す位置のレコードを読出し、翻訳知識ＤＢ４８を参照して所定の処理を行なうことにより、読出されたレコードに基づいて、定数Ｌ２により定められる寿命を持つ新たなレコードを翻訳リング９４に挿入する処理を繰返し行なうためのソースリング検査部９６と、翻訳リング９４の中でポインタが指す位置のレコードを読出してその内容を検査し、翻訳知識ＤＢ４８に追加すべき知識が見つかれば翻訳知識ＤＢ４８に知識を追加し、新たにソースリング９２に追加すべき内容が見つかればソースリング９２に寿命Ｌ１を持つ新たなレコードを追加する処理を繰返し行なうための翻訳リング検査部９８とを含む。
【００３２】
図３及び図４に示す起動部６０、ＤＢ読出部７０、入力挿入部９０、ソースリング検査部９６、翻訳リング検査部９８の機能は後述するコンピュータプログラムにより実現される。ソースリング９２及び翻訳リング９４は、メモリとリング管理プログラムとにより実現される。
【００３３】
図５に、ソースリング９２の各レコードのレコード構造を示す。図５を参照して、ソースリング９２のレコード１００は、このレコード１００の直前のレコードのアドレスを示す前リンクフィールド１０２と、翻訳対象となる入力４２を格納するためのポインタフィールド１０４と、レコード１００の残り寿命を示す値を格納するためのＤｅｃａｙフィールド１０６と、レコード１００の直後のレコードのアドレスを示す次リンクフィールド１０８とを含む。Ｄｅｃａｙフィールド１０６には、初期値として値Ｌ１が格納される。
【００３４】
図６に、翻訳リング９４の各レコードのレコード構造を示す。図６を参照して、翻訳リング９４のレコード１１０は、図５に示すレコード１００と同様のレコード構成を有しており、前リンクフィールド１１２と、ポインタフィールド１１４と、Ｄｅｃａｙフィールド１１６と、次リンクフィールド１１８とを含む。レコード１１０はさらに、後に説明する類推式を格納するための類推式フィールド１１５を含む。Ｄｅｃａｙフィールド１１６には初期値として値Ｌ２が格納される。
【００３５】
−コンピュータプログラム−
図７は、入力挿入部９０の機能を実現するためのコンピュータプログラムのフローチャートである。図７を参照して、入力挿入部９０は、入力を受けると起動され、まずステップ１３０においてソースリング９２の新たなレコードのための領域をメモリに確保する。ステップ１３２において、入力４２（これを文Ｄとする。以下、入力Ｄ又は入力された文Ｄと呼ぶことがある。）を新たなレコードのポインタフィールド１０４に格納する。
【００３６】
ステップ１３４において、メモリ９１から読出した定数Ｌ１の値を、この新たなレコードのＤｅｃａｙフィールド１０６に格納する。後述するようにこのフィールドの中の値は、ソースリング検査部９６がレコードの中身を検査するたびに１ずつ減算される。
【００３７】
ステップ１３６において、ソースリング９２の現レコード（現在のポインタが指し示す位置にあるレコード）の直前にこの新たなレコードを挿入する。より具体的には、ポインタが指し示す位置の直前にあるレコードの次リンクフィールド１０８の値をこの新たなレコードのアドレスを示す値とし、この新たなレコードの前リンクフィールド１０２を現在のポインタが指し示す位置にあるレコードのアドレスとする。
【００３８】
以上でこのプログラムは終了する。
【００３９】
図８は、ソースリング検査部９６を実現するコンピュータプログラムのフローチャートである。このプログラムは、ＤＢ更新装置４６が起動することにより起動される。
【００４０】
図８を参照して、ステップ１４０で必要な初期化を行なう。ステップ１４２で、ソースリング９２を維持するために必要な記憶領域を確保する。ステップ１４６では、入力挿入部９０との間で共有される、ソースリング９２のためのポインタに何らかの値が書込まれるまで待つ。ポインタに値が書込まれると、ステップ１４８において、ソースリング９２のうち、当該ポインタにより指し示される位置のレコードを読出す。
【００４１】
ステップ１５０では、読出したレコードが処理済か否かを判定する。すなわち、当該レコードのＤｅｃａｙフィールドの値が０か否かを判定する。値が０でなければこのレコードは未処理レコードであり、ステップ１５２に進む。０であればこのレコードは処理済レコードであり、ステップ１６０に進む。
【００４２】
ステップ１５２では、Ｄｅｃａｙフィールドの値を１減算し、更新する。さらにステップ１５４で、翻訳知識ＤＢ４８のソースドメインから二つの要素（これらを仮にＡ，Ｂとする。）を選択し、入力された文Ｄを用いて類推関係式Ａ：Ｂ＝ｘ：Ｄに相当する式を作成する。ここでいう類推関係式とは、特許文献１に記載のものと同様の物を指す。
【００４３】
すなわち、既知の要素Ａ，Ｂ及びＤに基づき、要素Ａと要素Ｂとの文字列上の関係が、要素ｘと要素Ｄとの文字列上の関係と等しくなるような要素ｘを探索する。この処理の例は上記特許文献１に記載されているが、例えば要素Ｂの文字列の内で要素Ａの文字列と共通していない部分、及び要素Ｄの文字列の内で要素Ａの文字列と共通していない部分をそれぞれ抽出する。それらをある順序で配置することで、要素ｘとして、実際に存在するものと等しいものが作成されることがある。特許文献１では、要素Ａ＝「ｒｅａｄｅｒ」、要素Ｂ＝「ｕｎｒｅａｄａｂｌｅ」、要素Ｄ（特許文献１では要素Ｃとなっている。）＝「ｄｏｅｒ」とすると、要素Ｂの内で要素Ａと共通していない二つの文字列「ｕｎ」及び「ａｂｌｅ」が抽出される。要素Ｄの内で要素Ａと共通していない文字列「ｄｏ」が抽出される。これらを要素Ａ，Ｂ，Ｄ内の各文字列間の相互の関係を配慮して正しい順序で組合わせると、「ｕｎｄｏａｂｌｅ」が得られる。
【００４４】
本実施の形態で使用する類推関係式も基本的にはこれと同種の処理を行なうものである。ただし本実施の形態では、類推関係式の各要素は単なる文字列ではなく文であるため、上記した単純な文字列の比較だけでなく、文法的な関係も類推関係式を解く際に使用できる。
【００４５】
ステップ１５４でこのように類推関係式を作成すると、ステップ１５６でこの類推関係式を類推式フィールド１１５に含む新たなレコードを翻訳リング９４に追加する。この際、新たなレコードのＤｅｃａｙフィールド１１６には、メモリ９９に予め格納された値Ｌ２が設定される。
【００４６】
ステップ１５８では翻訳リング９４のポインタに、追加されたレコードの次のレコードのアドレスを格納し、ステップ１４６に戻る。
【００４７】
一方、ステップ１５０でＤｅｃａｙフィールド１０６の値が０と等しい（処理済）と判定されると、ステップ１６０からステップ１６６においてこのレコードを削除する。すなわち、ステップ１６０においてこのレコードの直前に存在するレコードの次リンクフィールドに、このレコードの次リンクフィールドの値を格納する。ステップ１６２で、このレコードの直後の前リンクフィールドに、このレコードの直前のレコードのアドレスを格納する。この処理により、このレコードの直前のレコードと直後のレコードとが互いにリンク付けされる。
【００４８】
続いてステップ１６４で、ソースリング９２のポインタに、このレコードの次リンクフィールドの値を設定する。この処理により、ソースリング９２のポインタが一つ進んだことになる。そしてステップ１６６でこのレコードとしてそれまで使用していた領域を解放する。こうして、Ｄｅｃａｙフィールド１０６の値が０になるとそのレコードは処理済としてソースリング９２から削除される。制御はこの後ステップ１４６に戻る。
【００４９】
図９は、図４に示す翻訳リング検査部９８を実現するためのコンピュータプログラムの制御構造を示すフローチャートである。図９を参照して、このプログラムもステップ１７０で必要な初期化を行なう。ステップ１７２で、翻訳リング９４を維持するために必要な記憶領域を確保する。ステップ１７６では、ソースリング検査部９６との間で共有される翻訳リング９４のポインタに何らかの値が書込まれるまで待つ。ポインタに値が書込まれると、ステップ１７８において、翻訳リング９４のうち、当該ポインタにより指し示される位置のレコードを読出す。
【００５０】
ステップ１８０では、翻訳リング９４から読出したレコードが処理済か否かを判定する。すなわち、そのレコードのＤｅｃａｙフィールド１１６の値が０か否かを判定する。０でなければこのレコードは未処理レコードであり、制御はステップ１８２に進む。０であればこのレコードは処理済レコードであり制御はステップ２０４に進む。
【００５１】
ステップ１８２では、このレコードのＤｅｃａｙフィールド１１６の値から１を減算してＤｅｃａｙフィールド１１６に格納する。ステップ１８４では、読出したレコード中の類推式フィールド１１５から類推式を読出し、その類推式を解く。すなわち、読出した式が前述した「Ａ：Ｂ＝ｘ：Ｄ」であるものとすると、この式を満足するｘ＝Ｃを求める。
【００５２】
類推式を解くためには、類推式ソルバーと呼ばれるアプリケーションが呼ばれる。類推式ソルバーは本実施の形態では上述したような既存のアルゴリズムを用いて実現するが、それらとは異なる新規なアルゴリズムを用いて実現してもよい。類推式ソルバーは、処理の結果０、１、又は複数の解のいずれかを与える。
【００５３】
ステップ１８５では、解Ｃが求められたか否かを判定する。解Ｃが求められなかったら（すなわち解の個数が０であれば）処理はステップ２００に進む。解が一つでもあればステップ１８６に進む。以下のステップ１８６〜１９８及びステップ２０２の処理は、得られた解の全てに対し実行される。ここで解Ｃが求められなかった場合にも、翻訳知識ＤＢ４８に以下に述べるように文の対が多数格納されるようになると、後の処理で同じ類推式に対して解Ｃが得られるようになる場合もある。Ｄｅｃａｙを用いてあるレコードに対して繰返しこうした処理を実行する目的の一つは、そういうことを可能にすることである。
【００５４】
ステップ１８６では、こうして得られた解Ｃが翻訳知識ＤＢ４８のソースドメイン中に存在するか否かを判定する。もしあればステップ１８８に進み、なければステップ２０２に進む。
【００５５】
ステップ１８８では、以下の処理を行なう。翻訳知識ＤＢ４８中で、ソースドメイン中の文Ａ，Ｂ，Ｃと対となっているターゲットドメイン中の文が、それぞれＡ’，Ｂ’，及びＣ’であるものとする。ステップ１８８では、これらを翻訳知識ＤＢ４８から読出す。続くステップ１９０で、類推式Ａ’：Ｂ’＝Ｃ’：ｙを解き、ｙを求める。この値（文）をＤ’とする。ステップ１９２では、こうして得られた文Ｄ’が翻訳知識ＤＢ４８のターゲットドメイン中に存在するか否かを判定する。存在すればステップ１９４に進み、なければステップ２００に進む。
【００５６】
ステップ１９４では、以上のようにして求められた文Ｄと文Ｄ’との対が翻訳知識ＤＢ４８中に存在するか否かについて判定する。存在していればステップ１９８で翻訳知識ＤＢ４８中の当該対（Ｄ，Ｄ’）の頻度フィールドの値に１を加算しステップ２００に進む。存在していなければステップ１９６でこの対（Ｄ，Ｄ’）を翻訳知識ＤＢ４８に追加し、その頻度フィールドの値に１を代入してステップ２００に進む。この処理により、入力文Ｄと翻訳知識ＤＢ４８中のターゲットドメインの文Ｄ’とが互いに対であることを示すレコードが翻訳知識ＤＢ４８に新たに追加されるか、対（Ｄ，Ｄ’）が翻訳処理中で出現した頻度が加算されるか、のいずれかの処理が実行される。その結果、翻訳知識ＤＢ４８がより充実し、またそれらの出現頻度に関する情報が蓄積されていく。
【００５７】
ステップ２００では、ポインタに現在処理中のレコードの次リンクフィールド１１８の値をポインタに格納し、ステップ１７６に戻る。
【００５８】
一方、ステップ１８６で解である文Ｃが翻訳知識ＤＢ４８中に存在していないと判定された場合、ステップ２０２で、この文Ｃを入力４２と同様に扱い、文Ｃを含む新たなレコードをソースリング９２に追加する。このときＤｅｃａｙフィールド１０６にはメモリ９１に格納された値Ｌ１が設定される。この処理を行なうことにより、入力文Ｄに対して行なわれる処理と同じ処理がこの文Ｃに対して行なわれる。こうして、一つの入力文Ｄが与えられた場合でも、入力文Ｄに対応するターゲットドメインの文Ｄ’を求める過程で別の文Ｃについての処理が同様に実行され、結果として翻訳知識ＤＢ４８にＤ以外の解を含む新しいレコードが追加されていく。ステップ２０２の後、制御は前述したステップ２００に戻る。
【００５９】
また、ステップ１８０でＤｅｃａｙフィールド１１６の値が０と等しい（処理済）と判定されると、ステップ２０４からステップ２１０でこのレコードを削除する。この処理は、図８のステップ１６０からステップ１６６の処理と同様である。この後、ステップ１７６に戻る。
【００６０】
以上のようなＤＢ更新装置４６の処理により、翻訳知識ＤＢ４８に新たな文の対が追加されていき、この処理中での各対の出現頻度に関する情報が同じく翻訳知識ＤＢ４８に蓄積されていく。一つの入力に対し、ソースリング９２中においてメモリ９１に設定した値Ｌ１により定められる回数だけ上述した処理が繰返され、かつ各処理の中で新たにソースリング９２にレコードが追加されていくので、結果として高速に翻訳知識ＤＢ４８の内容を蓄積していくことができる。
【００６１】
図１０は、図１に示す機械翻訳装置４０を実現するコンピュータプログラムの制御構造を示すフローチャートである。この機械翻訳装置４０は、入力４２を受けたときにＤＢ更新装置４６に当該入力を与える点を除き、ＤＢ更新装置４６とは独立に動作し、入力４２に対する翻訳文を翻訳知識ＤＢ４８から抽出して出力４４として出力する。
【００６２】
図１０を参照して、本実施の形態では、このプログラムは入力４２が機械翻訳装置４０に与えられることにより起動される。起動時には、引数として入力４２が与えられる。（以下の説明の都合上、この入力４２のことを入力Ｄ又は入力された文Ｄと呼ぶことがある。）また、他の引数として、翻訳結果を出力するための条件を定める正の整数Ｎ及びプロセスの寿命を定める値Ｌ０が与えられる。これらは図３に示すメモリ６２及びメモリ６４にそれぞれ格納されている値である。この定数Ｌ０及びＮはそれぞれ図３に示すメモリ７２及びメモリ７４にプロセスごとに初期値として記憶される。
【００６３】
まず、ステップ２３２で翻訳記憶領域をメモリ７２及び７４（図３参照）に確保する。ステップ２３４では、Ｌ０＝０か否かを判定する。Ｌ０＝０でなければステップ２３６に進み、Ｌ０＝０であればステップ２４４に進む。
【００６４】
ステップ２３６では、Ｌ０の値を１減算する。続いてステップ２３８において、翻訳知識ＤＢ４８から文Ｄをソースドメインに含むレコードを読出す。そうしたレコードは翻訳知識ＤＢ４８中に複数個あり得るが、ここではその全てを読出す。ステップ２４０において、読出したレコードから、入力された文Ｄと対になっているターゲットドメインの文Ｄ’，Ｄ”等を、それらの出現頻度とともに翻訳記憶領域（図３のメモリ７４）に格納する。
【００６５】
ステップ２４２では、翻訳記憶領域に記憶された文Ｄ’，Ｄ”，…の出現頻度ｆｋの総和が起動時に与えられた値Ｎ以上か否かを判定する。総和がＮ以上であればステップ２４４に進み、総和がＮ未満であればステップ２３４に戻る。
【００６６】
ステップ２４２で総和がＮ以上と判定された場合、及びステップ２３４でＬ０＝０と判定された場合、ステップ２４４において、翻訳記憶領域に記憶されていた文Ｄ’，Ｄ”，…を全て入力文Ｄに対する翻訳文として出力する。ステップ２４６ではこのプロセスがステップ２３２で確保した翻訳記憶領域を解放し、プロセスを終了する。
【００６７】
以上のコンピュータプログラムをコンピュータ上で実行することにより、入力Ｄに対する翻訳文Ｄ’，Ｄ”，…が得られ、同時に翻訳知識ＤＢ４８に記憶される文対の数も増加する。また、翻訳知識ＤＢ４８に記憶されている文対の出現頻度についても更新されていく。
【００６８】
−コンピュータハードウェア−
図１１はこの実施の形態に係る機械翻訳システム３０を実現するコンピュータシステム３３０の外観を示し、図１２はコンピュータシステム３３０の内部構成を示す。
【００６９】
図１１を参照して、このコンピュータシステム３３０は、ＦＤ（フレキシブルディスク）ドライブ３５２およびＣＤ−ＲＯＭ（コンパクトディスク読出専用メモリ）ドライブ３５０を有するコンピュータ３４０と、キーボード３４６と、マウス３４８と、モニタ３４２と、マイクロフォン３７０と、スピーカ３７２とを含む。マイクロフォン３７０とスピーカ３７２は、本実施の形態には直接関与しない。
【００７０】
図１２を参照して、コンピュータ３４０は、ＦＤドライブ３５２およびＣＤ−ＲＯＭドライブ３５０に加えて、ＣＰＵ（中央処理装置）３５６と、ＣＰＵ３５６、ＦＤドライブ３５２およびＣＤ−ＲＯＭドライブ３５０に接続されたバス３６６と、ブートアッププログラム等を記憶する読出専用メモリ（ＲＯＭ）３５８と、バス３６６に接続され、プログラム命令、システムプログラム、および作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）３６０とを含む。コンピュータ３４０はさらに、マイクロフォン３７０とスピーカ３７２に接続され、バス３６６に接続されたサウンドボード３６８を含む。コンピュータシステム３３０はさらに、図示しないプリンタを含んでいる。
【００７１】
ここでは示さないが、コンピュータ３４０はさらにローカルエリアネットワーク（ＬＡＮ）への接続を提供するネットワークアダプタボードを含んでもよい。
【００７２】
コンピュータシステム３３０に機械翻訳システム３０としての動作を行なわせるためのコンピュータプログラムは、ＣＤ−ＲＯＭドライブ３５０またはＦＤドライブ３５２に挿入されるＣＤ−ＲＯＭ３６２またはＦＤ３６４に記憶され、さらにハードディスク３５４に転送される。または、プログラムは図示しないネットワークを通じてコンピュータ３４０に送信されハードディスク３５４に記憶されてもよい。プログラムは実行の際にＲＡＭ３６０にロードされる。ＣＤ−ＲＯＭ３６２から、ＦＤ３６４から、またはネットワークを介して、直接にＲＡＭ３６０にプログラムをロードしてもよい。
【００７３】
このプログラムは、コンピュータ３４０にこの実施の形態の機械翻訳システム３０としての機能を実現させる複数の命令を含む。この機能を実現させるのに必要な基本的機能のいくつかはコンピュータ３４０上で動作するＯＳまたはサードパーティのプログラム、もしくはコンピュータ３４０にインストールされる各種ツールキットのモジュールにより提供される。従って、このプログラムはこの実施の形態の機械翻訳システム３０を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能または「ツール」を呼出すことにより、上記した機械翻訳システム３０を実現する命令のみを含んでいればよい。コンピュータシステム３３０の動作は周知であるので、ここでは繰返さない。
【００７４】
［動作］
上に構造を説明した機械翻訳システム３０は以下のように動作する。予め、ある程度の量の翻訳知識（英語の文と日本語の文との対とその出現頻度）が翻訳知識ＤＢ４８として準備されているものとする。図１を参照して、入力４２が機械翻訳システム３０に与えられると、この入力４２は機械翻訳装置４０及びＤＢ更新装置４６に同時に与えられる。最初にＤＢ更新装置４６の動作を説明し、次に機械翻訳装置４０の動作を説明する
−ＤＢ更新装置４６の動作−
図４を参照して、入力挿入部９０は、入力４２を受取ると、メモリ９１に記憶されている値Ｌ１と、入力４２の内容とを用い、ソースリング９２に新たなレコードを追加する（図７のステップ１３０〜１３６）。このとき、図５に示すポインタフィールド１０４には入力４２を格納し（図７のステップ１３２）、Ｄｅｃａｙフィールド１０６にはＬ１を格納する（図７のステップ１３４）。
【００７５】
ソースリング検査部９６はＤＢ更新装置４６の起動後、以下の動作を繰返す。すなわち、ソースリング検査部９６は、ソースリング９２のポインタ位置にあるレコードを読出し（図８のステップ１４８）、そのＤｅｃａｙフィールド１０６の値を検査する（図８のステップ１５０）。もしもその値（Ｄｅｃａｙ）が０であればこのレコードを削除し（図８のステップ１６０〜１６２）、ポインタを次のレコードに進め（図８のステップ１６４）、削除したレコードの領域を解放して（ステップ１６６）、次のレコードを読む（図８のステップ１４６）。以下同様である。
【００７６】
もしも値Ｄｅｃａｙが０でなければ、ソースリング検査部９６は、Ｄｅｃａｙの値から１を減算した値を処理中のレコードのＤｅｃａｙフィールド１０６に格納し、ソースリング９２中のレコードを更新する（図８のステップ１５２）。さらにソースリング検査部９６は、翻訳知識ＤＢ４８のソースドメインから二つの要素（Ａ，Ｂとする。）を選び、入力４２をＤとして類推式Ａ：Ｂ＝ｘ：Ｄを作成する（図８のステップ１５４）。ソースリング検査部９６は、この類推式を含むレコードを翻訳リング９４に追加する（図８のステップ１５６）。
【００７７】
図６を参照して、このとき、類推式フィールド１１５には上記類推式を示す情報（例えばＡ，Ｂ，及びＤをこの文に分離記号で分離した文字列）を格納し、Ｄｅｃａｙフィールド１１６にはメモリ９９に格納されている値Ｌ２を格納する。
【００７８】
再び図８を参照して、ソースリング検査部９６はこの後ソースリング９２のポインタを次のレコードに進め（図８のステップ１５８）、次のレコードを読む（ステップ１４６）。以下同様の処理を繰返す。
【００７９】
ＤＢ更新装置４６がこの処理を実行することにより、入力４２が与えられるとソースリング９２にその入力４２を持つレコードが新たに作成される。ソースリング検査部９６の処理により、ソースリング９２中のレコードが順に検査され、翻訳知識ＤＢ４８から読出された二つの文とともに作成された類推式を含むレコードが翻訳リング９４に新たに追加される。ソースリング９２のレコードを１回処理すると、そのＤｅｃａｙフィールド１０６の値は１減算される。したがって、あるレコードに着目すると、最初にＤｅｃａｙフィールド１０６に設定された値（Ｌ１）と等しい回数だけソースリング検査部９６による処理が行なわれると、当該レコードはソースリング９２から削除される。それまではそのレコードに対しては繰返し上記したソースリング検査部９６の処理が実行される。
【００８０】
なおソースリング検査部９６は、ソースリング９２にレコードが何もない状態では、何らかのレコードがソースリング９２に書込まれポインタが更新されるまで処理を待つ。
【００８１】
一方、翻訳リング検査部９８は、翻訳リング９４に対して次のような処理を行なう。翻訳リング検査部９８も、ソースリング検査部９６と同様、ＤＢ更新装置４６が起動されると起動し、以後次に説明する処理を繰返し実行する。すなわち、翻訳リング検査部９８は翻訳リング９４のポインタが指す位置からレコードを読出し（図９のステップ１７８。以下特に断らない限り図９を参照する。）、Ｄｅｃａｙフィールド１１６の値が０か否かを判定する（ステップ１８０）。Ｄｅｃａｙフィールド１１６の値が０であれば当該レコードを削除し（ステップ２０４及び２０６）、ポインタを次のレコードに進め（ステップ２０８）、削除されたレコードの領域を解放して（ステップ２１０）、次のレコードを読込む処理に戻る（ステップ１７６）。
【００８２】
Ｄｅｃａｙフィールド１１６の値が０でなければ、その値から１を減算した値をＤｅｃａｙフィールド１１６に格納して処理中のレコードを更新（ステップ１８２）する。次に読出したレコード中の類推式（これを前述の式「Ａ：Ｂ＝ｘ：Ｄ」とする。）を解き、ｘを求める（ステップ１８４）。このｘの値をＣとする。類推式の解き方については前述したが、さらに詳細については特許文献１の記載を参照されたい。
【００８３】
解Ｃを求めることができなければ、ステップ２００に進む。求めることができれば、ステップ１８６に進む。
【００８４】
続いてこの解Ｃが翻訳知識ＤＢ４８のソースドメイン中に存在するか否かを判定する（ステップ１８６）。存在していなければ、この解Ｃを入力４２と同様に扱い、解Ｃの記憶領域へのポインタをポインタフィールド１０４に含むようなソースリング９２の新たなレコードを作成し、ソースリング９２に追加する（ステップ２０２）。そして次のレコードに進む（ステップ２００からステップ１７６へ）。解Ｃが翻訳知識ＤＢ４８のソースドメイン中に存在していれば、類推式中のＡ及びＢと、得られた解Ｃとに対し、翻訳知識ＤＢ４８からこれらと対になるターゲットドメイン（日本語）の文を読出す（ステップ１８８）。これらはいずれも翻訳知識ＤＢ４８中に存在していることが確認されたものであり、読出された文をそれぞれＡ’，Ｂ’及びＣ’とする。続いてこれらを用いて作成される類推式「Ａ’：Ｂ’＝Ｃ’：ｙ」を解くことで、ｙを求める（ステップ１９０）。その値をＤ’とする。
【００８５】
求められた解Ｄ’が翻訳知識ＤＢ４８中に存在するか否かを判定し（ステップ１９２）、存在していれば次に入力４２（Ｄ）と解Ｄ’との対（Ｄ，Ｄ’）が翻訳知識ＤＢ４８中にあるか否かを判定し（ステップ１９４）、あれば翻訳知識ＤＢ４８中の当該対の出現頻度に１を加算して次のレコードに進む（ステップ１９８，２００，１７６）。なければこの対（Ｄ，Ｄ’）を翻訳知識ＤＢ４８に追加する（ステップ１９６）。このとき、当該対の出現頻度の値として「１」を設定する。この処理が終わるとポインタに従い次のレコードの読出を行ない（ステップ２００、ステップ１７６）、次のレコードに対し同じ処理を繰返す。
【００８６】
以上のＤＢ更新装置４６の動作により、入力された英語の文Ｄに対する日本語の訳文Ｄ’が得られるだけではなく、それらを対にしたレコードが新たに翻訳知識ＤＢ４８に追加される。またこの処理中でソースドメインの文で翻訳知識ＤＢ４８中に存在していない文が得られると、その文を入力として同様の処理が繰返され、さらに多くの文の対が翻訳知識ＤＢ４８に追加される。このような処理がＤＢ更新装置４６によって常時繰返されることにより、翻訳知識ＤＢ４８に格納される文の対の数が急速に大きくなるとともに、各対の出現頻度に関する情報も蓄積されていく。
【００８７】
−機械翻訳装置４０の動作−
さて、機械翻訳システム３０の本来の機能である翻訳は、機械翻訳装置４０（図１を参照）により以下のようにして行なわれる。図３を参照して、起動部６０は、入力４２が与えられるとＤＢ読出部７０中に新たな翻訳プロセスを起動する。起動部６０はこのとき、当該プロセスに対し入力４２とメモリ６２に記憶された値Ｌ０とメモリ６４に記憶された値Ｎとを引数として渡す。
【００８８】
ＤＢ読出部７０中に起動されたプロセスは以下のような処理を実行する。まず、メモリ７２及びメモリ７４中に翻訳記憶領域を確保する（図１０のステップ２３２。以下、特に断らない限り図１０の各ステップを参照する。）。続いて値Ｌ０が０か否かを判定する（ステップ２３４）。値Ｌ０が０であればこのプロセスに与えられた寿命が終了したということである。したがって翻訳記憶領域に格納されている文Ｄ’，Ｄ”，…を全て入力４２（Ｄ）に対する翻訳文として出力する。値Ｌ０が０でなければ、このプロセスはまだ終了時期ではない。したがって値Ｌ０の値を１減算し（ステップ２３６）、翻訳知識ＤＢ４８から入力文４２（Ｄ）をソースドメイン（英語）に含む全レコードを読出す（ステップ２３８）。これらレコードの中で文Ｄと対になっているターゲットドメイン（日本語）の文Ｄ’，Ｄ”等をそれらの出現頻度ｆｋとともに翻訳記憶領域の先頭から記憶する（ステップ２４０）。
【００８９】
これら文を全て翻訳記憶領域に記憶すると、各レコードの出現頻度ｆｋの総和Σｆｋを計算し、この値が当該プロセスを起動したときに引数として与えられた値Ｎ以上か否かを判定する（ステップ２４２）。総和Σｆｋが値Ｎ以上であれば、入力文Ｄと対になるターゲットドメインの文が相当程度の頻度で出現したということであるから、十分に信頼性のある訳文候補が得られたと考え、これまでの処理で翻訳記憶領域に記憶されている文Ｄ’，Ｄ”などを全て入力４２（Ｄ）に対する翻訳文候補として出力する（ステップ２４４）。このとき、出力される各文にはそれらが文Ｄと対で出現する頻度を付するようにしてもよい。Σｆｋ＜Ｎであれば、ステップ２３４〜ステップ２４２の処理をもう一度実行する。
【００９０】
こうして、入力４２に対する翻訳文候補を出力し終わると、このプロセスに割当てられていた翻訳記憶領域を解放し（ステップ２４６）、プロセスを終了させる。
【００９１】
以上のように、この機械翻訳装置４０では、翻訳知識ＤＢ４８に格納されるレコードの内容を用いて翻訳を行なう。翻訳知識ＤＢ４８の内容は、ＤＢ更新装置４６により常に入力４２に基づいて更新し充実させることが図られている。その上、前述した二つのリング（ソースリング９２及び翻訳リング９４）を使用した処理により、上記したＤＢ更新装置４６による翻訳知識ＤＢ４８の更新の途中で、入力文とは別に類推式を解いて新たな文が得られる。その文がＤＢ更新装置４６のソースドメインに存在していなければ、その文を入力文と同様に取扱い、さらにＤＢ更新装置４６の内容を充実させる処理が実行される。したがって、ＤＢ更新装置４６の内容を非常に早く充実させることができる。その結果、ＤＢ読出部７０による翻訳結果としても、妥当なものを得ることができる。
【００９２】
＜変形例＞
上記実施の形態では、翻訳知識を充実させるために二つのリング（ソースリング９２及び翻訳リング９４）を持つＤＢ更新装置４６を利用している。しかし、本発明は機械翻訳に対してのみ適用可能な訳ではない。ＤＢ更新装置４６の動作には類推式を解くという過程があり、そのように類推式を用いて既存の知識にない知識を作り出すことができるものであれば、どのようなものにも適用できる。類推式を適用可能なものとしては、本実施の形態であげたようにパラレルコーパスが典型的であり、特に自然言語処理における文字列処理に本発明は威力を発揮する。類推式を適用可能な他の例としては、ある文と、当該文を構文解析した結果とを対にしたものを知識とするもの、ある文と、その文を形態素解析したり句に分割したりしたものとを対にしたものを知識とするものなど、種々のものが考えられる。
【００９３】
図１３に、本発明を英語の構文解析に適用したときの構文解析知識ＤＢ３９０の内容を示す。図１３に示すように、この例では、ソースドメインは英語の文、ターゲットドメインはその文を構文解析した結果を、それぞれ含む対が多数構文解析知識ＤＢ３９０に格納されている。この例でもまた各対の出現頻度が構文解析知識ＤＢ３９０に格納されている。
【００９４】
このような構文解析知識ＤＢ３９０を用いた構文解析装置のようなものも考えられる。その構成は、原則として図１〜図１０に示したものと同様である。
【００９５】
図１４には、本発明を日本語の形態素解析に適用したときの形態素解析知識ＤＢ４００の内容を示す。図１４に示すように、この例では、ソースドメインは日本語文、ターゲットドメインは形態素解析された結果得られた形態素列である。各対には出現頻度が付されている。この場合にも、形態素解析知識ＤＢ４００を用いて日本語の形態素解析をする装置の構成は、図１〜図１０に示したものと同様である。
【００９６】
次の表１に、図１〜図１０に示した実施の形態の機械翻訳装置で使用した文言と、それを上位概念で示した文言、及び上記した構文解析及び形態素解析で使用する文言とを対比して示す。図１〜図１０に示される各部品を、次の表１を参照して所望の機能を実現するものに置換することにより、原理的には上記した実施の形態の装置と同じ構成で種々の処理を実現できる。
【００９７】
【表１】
2006277468.tif 000003
上記実施の形態では、ＤＢ更新装置４６が一つだけ存在するものとして説明した。実際には、ＤＢ更新装置４６はプログラムで実現される。したがってこれを一つのコンピュータで、別々のスレッドで複数個動作させて一つの翻訳知識ＤＢ４８を更新するようにもできる。この際の排他制御については周知の排他制御機構を用いればよい。同様の方法で、ＤＢ更新装置４６をさらに複数個に分割し、ソースリング９２を維持するスレッドと、翻訳リング９４を維持するスレッドとを別々にしてもよい。また、一つのソースリング９２に対し複数個の翻訳リング９４を対応させたり、逆に複数のソースリング９２に対し一つの翻訳リング９４を対応させたりすることもできる。
【００９８】
機械翻訳装置４０での機械翻訳処理（ＤＢ読出部７０による処理）もまた複数個のプロセス又はスレッドで同時並列的に実行することができる。
【００９９】
上記実施の形態では、入力文に対する翻訳文として翻訳知識ＤＢ４８から得られた文は全て出力している。しかし本発明はそのような実施の形態には限定されない。例えば、出現頻度を基準として、上位の所定個数の文のみを訳文候補として出力するようにしてもよい。または、頻度の値がある基準値以上の文のみを訳文候補として出力するようにしてもよい。
【０１００】
また、上記した実施の形態では、リング構造を用いている。しかし本発明はそのような実施の形態には限定されない。効率は悪くなるが、例えば配列を準備し、配列要素の最後尾に新しい要素を追加し、配列の要素が削除されるたびにそれ以後の配列要素を順次前に移動させるようにしてもよい。この場合、配列の要素の数を常に維持しておくようにすることが望ましい。
【０１０１】
これ以外にも、通常のメモリ管理方法を用いて、上記したリング構造と同等の機能を実現することが可能である。
【０１０２】
さらに、上記実施の形態では、自然言語処理を主として説明した。しかし本発明がそのような自然言語処理に限定して適用可能なわけではないことは前述のとおりであり、データ処理に関する所定の構造を持つ知識を用いてデータ処理を行なうものであり、かつその知識を求めるために、上記した類推式による類推が可能であれば、どのようなものにも適用できる。
【０１０３】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味および範囲内でのすべての変更を含む。
【図面の簡単な説明】
【０１０４】
【図１】本発明の一実施例に係る機械翻訳システム３０のブロック図である。
【図２】翻訳知識ＤＢ４８の構成を示す模式図である。
【図３】機械翻訳装置４０の構成を示すブロック図である。
【図４】ＤＢ更新装置４６の構成を示すブロック図である。
【図５】ソースリング９２のレコード１００のレコード構成を示す模式図である。
【図６】翻訳リング９４のレコード１１０のレコード構成を示す模式図である。
【図７】図４に示す入力挿入部９０を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図８】図４に示すソースリング検査部９６を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図９】図４に示す翻訳リング検査部９８を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図１０】図１に示す機械翻訳装置４０を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図１１】機械翻訳システム３０を実現するためのコンピュータシステム３３０の外観を示す図である。
【図１２】図１１に示すコンピュータ３４０のブロック図である。
【図１３】本発明の実施の形態の変形例に係る構文解析知識ＤＢ３９０の構成を示す模式図である。
【図１４】本発明の実施の形態の変形例に係る形態素解析知識ＤＢ４００の構成を示す模式図である。
【図１５】従来の機械翻訳システム４３０の構成を示す図である。
【符号の説明】
【０１０５】
３０  機械翻訳システム
４０  機械翻訳装置
４２  入力
４４  出力
４６  ＤＢ更新装置
４８  翻訳知識ＤＢ
６０  起動部
７０  ＤＢ読出部
９０  入力挿入部
９２  ソースリング
９４  翻訳リング
９６  ソースリング検査部
９８  翻訳リング検査部
３９０  構文解析知識ＤＢ
４００  形態素解析知識ＤＢ
【図１】
2006277468.tif 000004
【図２】
2006277468.tif 000005
【図３】
2006277468.tif 000006
【図４】
2006277468.tif 000007
【図５】
2006277468.tif 000008
【図６】
2006277468.tif 000009
【図７】
2006277468.tif 000010
【図８】
2006277468.tif 000011
【図９】
2006277468.tif 000012
【図１０】
2006277468.tif 000013
【図１１】
2006277468.tif 000014
【図１２】
2006277468.tif 000015
【図１３】
2006277468.tif 000016
【図１４】
2006277468.tif 000017
【図１５】
2006277468.tif 000018