本実施の形態では、日本語で入力された文を、英語および中国語に翻訳する場合を例に挙げて説明する。なお、本発明は、これに限定されず、ある言語で入力された文を他の言語に翻訳する構成であれば、適用可能である。
日本語には「活用」といった概念がある。「活用」とは、単語が文中でその語の文法的機能や他の語への続き方に応じて、語形を変化させることをいう。また、活用する語の変化形を、「活用形」という。また、用語が活用する際に変化する語末の部分(つまり語幹以外の部分)を、「活用語尾」(inflected suffix)という。
本発明に係る翻訳装置の一実施の形態について、図1から図77に基づいて説明すると、以下のとおりである。
図1は、本発明の実施の形態に係る翻訳装置1の概略構成を示した図である。
翻訳装置1は、同図に示すとおり、入力部10と、出力部11と、制御部12と、記憶装置13と、メモリ14とを備えている。
入力部10は、ユーザからの入力を受け付けるための入力デバイスである。入力部10を介してユーザが文の入力を行うことにより、メモリ14に当該入力された文が記憶される。
出力部11は、制御部12からの指示に基づき、入力部10を介して入力されたデータ、および制御部12における各種の処理の結果を表示するためのデバイスである。
制御部12は、同図に示すとおり、抽出部20と、データ読出部21と、判定部22と、選択部23と、置換部24と、表示制御部25と、出力文整形部26とを備えている。また、置換部24は、辞書検索部40と、スロット置換部41と、共起置換部42と、変化形探索部43と、未入力箇所置換部44とを備えている。
なお、制御部12および制御部12内の各部は機能ブロックであり、これらのブロックにおける処理は、後述するCPU(Central Processing Unit)により実行されるソフトウェアによって実現される。
抽出部20は、入力部10を介して日本語(第1言語)で入力された文から、所定の規則にしたがって語句を抽出する。例えば、日本語による文W11(図77参照)が入力部10を介して入力された場合、抽出部20は、例えば形態素解析を行うことにより、語句W12(名詞)、語句W13(名詞)、および語句W14(動詞)といった3つの語句(形態素)を抽出する。なお、図77は、日本語の文、日本語の語句、または中国語の語句を示した図である。
ここで、語句とは語や句を意味し、語句の中には単語(一般に文を構成する最小単位で、特定の意味や文法上の職能を有するものと定義されているもの)や複合語(一般に2個以上の語が結び付いて1つの意味を表すものと定義されているもの)等も含まれる。
データ読出部21は、所定の指示を受けた場合、記憶装置13に記憶された各種のデータを読み出す。例えば、データ読出部21は、後述するテンプレートデータを記憶装置13から読み出す。
判定部22は、入力部10を介して日本語で入力された文に含まれる語句が、後述する語句と一致するかを判定する。なお、判定部22における判定方法の詳細については後述する。
選択部23は、判定部22の判定結果に基づいて、記憶装置13に記憶された日本語による複数のテンプレートの中から、少なくとも一つのテンプレートを選択する。
置換部24は、後述する置換処理を行うことにより、上記選択されたテンプレートを用いて日本語による文例を作成する。さらに、置換部24は、記憶装置13に記憶された、上記選択されたテンプレートと対応関係にある英語(第2言語)および中国語(第2言語)によるテンプレートを用いて、英語および中国語による文例を作成する。なお、置換部24が行う処理の詳細と、置換部24に含まれる各部(40〜43)が行う処理とについては後述する。なお、文例とは、後述するテンプレートデータの可変部を語句に置換し終えることにより、得られる文をいう。
表示制御部25は、出力部11に対して、入力部10を介して入力されたデータ、および翻訳装置1における各種の処理の結果を表示させる。なお、出力文整形部26については、後述する。
図2は、記憶装置13に記憶されているデータを示した図である。
記憶装置13は、同図に示すとおり、テンプレートデータベース60と、辞書データベース61と、日本語活用形テーブル62と、カテゴリデータベース63と、シソーラスデータ64と、共起関係データベース65とを記憶している。
テンプレートデータベース60は、後述するテンプレートデータを一つ以上含んでいる。また、辞書データベース61は、後述する辞書データを含んでいる。また、カテゴリデータベース63は、後述するカテゴリデータを一つ以上含んでいる。共起関係データベース65は、後述する共起関係データを一つ以上含んでいる。
図3は、上記テンプレートデータベース60に含まれる一つのテンプレートデータの構成を示した図である。同図に示すとおり、テンプレートデータは、テンプレートIDと、日本語によるテンプレート(以下、日本語テンプレート)と、英語によるテンプレート(以下、英語テンプレート)と、中国語によるテンプレート(以下、中国語テンプレート)とを含んでいる。
上記テンプレートIDは、テンプレートデータを他のテンプレートデータと識別する識別子である。なお、テンプレートIDは、テンプレートデータ毎に固有の番号が与えれている。
上記日本語テンプレートは、所定の語句で構成された固定部と、予め定められた複数の語句のうちの何れかの語句に置換可能な可変部とを含んでいる。同図においては、語句W15(postpositional word functioning as an auxiliary to a main word)と、文W16とが固定部に該当し、{1:&HUMAN-SUBJ}と{2:&VB_EAT+v.ren1}とが可変部に該当する。
上記英語テンプレートは、日本語テンプレートと同様に、固定部と可変部とを含んでいる。同図においては、「What」と「?」とのが固定部に該当し、{-i:be_AUX+pres}と{-i:#DET_MY-NULL}と{1-i:&HUMAN-SUBJ}と{2:&VB_EAT+ing}とが可変部に該当する。
また、可変部の種類として、第1可変部と第2可変部とがある。同図においては、英語テンプレート中の「1」や「2」といった数字で始まる{1-i:&HUMAN-SUBJ}と{2:&VB_EAT+ing}とが第1可変部に該当し、「-i」で始まる{-i:be_AUX+pres}と{-i:#DET_MY-NULL}とが第2可変部に該当する。なお、以下では、説明の便宜上、第1可変部をスロット部と、第2可変部を共起部と称する。
なお、各言語のテンプレートにおいて、「-i」が含まれている可変部は、当該可変部同士の間において共起関係があることを示している。ここで、共起関係とは、一方が決定すると他方が決定するといった関係、あるいは、一方を仮に決定しても他方との関係で当該決定内容を変更せざるを得ないような、言わば両方を共に決定していくような関係をいう。
上記中国語テンプレートについても、同図に示すとおり、日本語テンプレートと英語テンプレートと同様に、固定部と可変部とを含んでいる。
以上のように、日本語テンプレートと英語テンプレート(あるいは中国語テンプレート)とは、対応する位置に、それぞれ、所定の語句で構成された固定部と、予め定められた複数の語句のうちの何れかの語句に置換可能な可変部とを含んだ構成である。
また、以下では、可変部の「1」や「2」といった先頭の数字をスロット番号と称する。また、各可変部において、「:」よりも前の文字と「+」よりも後ろの文字とを除いた部分(同図の場合には、「be_AUX」と「#DET_MY-NULL」と「&HUMAN-SUBJ」と「&VB_EAT」)をラベル(所定の識別標識)と称する。また、上記ラベルのうちスロット部に関する各ラベル(「&」で始まるラベル)を、それぞれ1つのカテゴリとする。
なお、上記スロット部と共起部との詳細については、後述する。
図4は、辞書データベース61に含まれる一つの辞書データの構成を示した図である。同図に示すとおり、辞書データにおいては、辞書IDと、見出しと、品詞と、活用と、助数詞コードと、意味コードとが対応付けられている。
上記辞書IDの欄には、辞書データを他の辞書データと区別するための識別子(ID)が記載されている。また、上記見出しの欄には、日本語の語句である語句W14(動詞)と、当該語句に対応する英語の語句「drink」と中国語の語句である語句W17(動詞)とが記されている。さらに、上記品詞の欄には、見出しの品詞が記載されている。また、上記活用の欄には、上記各言語について上記語句の活用形に関する情報が記載されている。語句W18の意味は、語句W14が、語句W19(図77参照)が示す活用(five-tire conjugation in the ”ma” column of the kana syllabary)であることを示している。意味コードについては、後述する。
また、同図に示すとおり、日本語の語句に対して、英語の語句と中国語の語句とがそれぞれ一つだけ対応付けられている。
図5は、上記日本語活用形テーブル62を示した図である。日本語活用形テーブル62には、活用の種類(例えば、語句W20(図77参照)が示す活用(five-tire conjugation of a Japanese consonant-stem verb)、語句W21が示す活用(conjugation
of a vowel-stem verb ending in ”-eru”))と、当該活用における各活用形(例えば、語句W22として示した活用形(form of a verb preceding ”nai”)、語句W23として示した活用形(attributive form of a verb))で用いられる語句(例えば、語句W24(inflected suffix)、語句W25(inflected suffix))とが記載されている。なお、同図には、一例として、語句W19が示す活用(つまり語句W18(図4参照))における各活用の語句を記している。また、例えば語句W26として示した活用形(continuative form of a verb)の語句には、「ren1」といった省略形の記号を対応付けている。
図6は、上記カテゴリーデータベースに含まれる一つのカテゴリデータの構成を示した図である。同図に示すとおり、カテゴリデータにおいては、カテゴリIDとラベル名と意味コードと代表値とが対応付けてられている。
上記カテゴリIDの欄には、カテゴリデータを他のカテゴリデータと区別するための識別子が記載されている。ラベル名の欄には、テンプレートデータ(例えば、図3のテンプレートデータ)の可変部に含まれるラベルが記されている。なお、代表値については後述する。
図7は、シソーラスデータの階層構造の一部を示した図である。ここで、シソーラスとは、単語の上位/下位関係、部分/全体関係、同義関係、類義関係などによって単語を分類し、体系付けた辞書(語彙集)をいう。
まず、上記意味コードは上記ラベルに対応付けられている。例えば、同図においては、「120201」といった意味コードは、「&HUMAN-PRON_SUBJ」といったラベルに対応付けられている。
ここで、ラベル名として「&HUMAN-PRON_SUBJ」が与えられ、かつ意味コードとして「120201」が与えられたカテゴリーデータに関しては、同図における「&HUMAN-PRON_SUBJ (120201)」といった区分(所定の区分)に含まれるの語句が、当該カテゴリーデータに含まれる語句として特定される。例えば、日本語の語句については、語句W27(名詞)、語句W28(名詞)、および語句W12が特定される。
ここで、図6に戻り、代表値について説明する。同図に示したように、ラベル「&VB_EAT」と意味コード「52500」とが与えられたカテゴリーデータには、日本語と英語と中国語との組が複数組含まれている。そして、これらの複数組のうち所定の組の各語句が、代表値として設定されている。例えば、同図では、語句W29(動詞)、「eat」、語句W14、「drink」、語句W17等の語句が代表値として記されている。
ところで、図3に示したテンプレートデータには、可変部として、例えば{2:&VB_EAT+v.ren1}や{2:&VB_EAT+ing}が含まれている。この場合、{2:&VB_EAT+v.ren1}および{2:&VB_EAT+ing}については、上記シソーラスデータにおいて「&VB_EAT (52500)」といった区分に含まれる語句が、置換可能な語句として特定される。また、他の可変部についても同様である。
図8は、上記カテゴリーデータベースに含まれる他のカテゴリデータの構成を示した図である。この場合、翻訳装置1は、図7に示したシソーラスデータにおいて、「&HUMAN-SUBJ」といった区分に含まれる語句を、置換可能な語句として特定する。同図に示す場合には、翻訳装置1は、例えば、日本語に関しては、語句W27、語句W28、語句W12、語句W30(名詞)等を置換可能な語句として特定する。
以上のように、可変部は、予め定められた複数の語句のうちの何れかの語句に置換可能な構成となっている。なお、以下では、置換可能な語句の集合を、候補とも称する。
図9Aは、上記共起関係データベースに含まれる共起関係データの構成を示した図である。図9Bは、上記共起関係データベースに含まれる他の共起関係データの構成を示した図である。図9Aおよび図9Bに示すとおり、共起関係データにおいては、言語とラベル名と共起条件とが対応付けられている。言語の欄には、日本語、英語、または中国語といった種別が記される。また、ラベル名の欄には、上述した共起部に記されるラベルが記される。
さらに、図9Aの共起条件の欄には、上述したスロット部に用いられる語句(例えば、「I」)と、当該語句が用いられた場合における共起部に用いる文字(例えば、「am」)との対応関係が記されている。一方、図9Bの共起条件の欄には、上述したスロット部のラベル(例えば、「&HUMAN-MY」)と、当該ラベルが条件として指定された場合における共起部に用いる文字(例えば、「my」)との対応関係が記されている。
図10は、上記メモリ14内の各バッファを示した図である。
メモリ14は、同図に示すとおり、抽出語句バッファ70と、検索結果テンプレートバッファ71と、スロット部用バッファ72と、共起部用バッファ73と、優先共起バッファ74と、処理文格納バッファ75と、翻訳結果バッファ76と、テンポラリーテンプレートバッファ77と、テンポラリー辞書バッファ78と、テンポラリー語句バッファ79と、テンポラリースロットバッファ80と、テンポラリー第1共起バッファ81と、テンポラリー第2共起バッファ82と、入力文バッファ83と、を備えている。これらの各バッファが記憶するデータについては、後述する。
なお、メモリ14内には、上記の各バッファ専用の領域が常に用意されている必要はなく、処理に必要となるバッファの領域がメモリ14内で順次確保される構成であればよい。
ここで、図11を参照して、本実施の形態に係る翻訳装置1の具体的構成の一態様について説明する。同図は、翻訳装置1として機能するコンピュータシステム100のハードウェア構成を表わすブロック図である。
コンピュータシステム100は、主たる構成要素として、プログラムを実行するCPU110と、コンピュータシステム100の使用者による指示の入力を受けるマウス120およびキーボード130と、CPU110によるプログラムの実行により生成されたデータ、又はマウス120若しくはキーボード130を介して入力されたデータを揮発的に格納するRAM140と、データを不揮発的に格納するハードディスク150と、CD−ROM(Compact Disk-Read Only Memory)駆動装置160と、モニタ170と、通信IF(Interface)180とを含む。各構成要素は、相互にデータバスによって接続されている。CD−ROM駆動装置160には、CD−ROM161が装着される。
なお、翻訳装置1における入力部10がキーボード130およびマウス120に該当し、出力部11がモニタ170に該当し、記憶装置13がハードディスク150に該当し、メモリ14がRAM140に該当する。
コンピュータシステム100における処理は、各ハードウェアおよびCPU110により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク150に予め記憶されている場合がある。また、ソフトウェアは、CD−ROM161その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、CD−ROM駆動装置160その他の読取装置によりその記憶媒体から読み取られて、あるいは、通信IF180を介してダウンロードされた後、ハードディスク150に一旦格納される。そのソフトウェアは、CPU110によってハードディスク150から読み出され、RAM140に実行可能なプログラムの形式で格納される。CPU110は、そのプログラムを実行する。
同図に示されるコンピュータシステム100を構成する各構成要素は、一般的なものである。したがって、翻訳装置1の本質的な部分は、RAM140、ハードディスク150、CD−ROM161その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム100の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
なお、記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
ところで、上記構成は、あくまでも具体的構成の一態様にすぎず、上記マウスを備えず、かつ、キーボードとモニタとハードディスクとが翻訳装置1内に備えられている構成であってもよい。上記翻訳装置1は、電子辞書や携帯電話等のポータブル型の携帯情報端末としても構成できる。
このような携帯情報端末として翻訳装置1を構成する場合には、ハードディスク150の代わりに例えばフラッシュメモリを用いることができる。また、入力部として、タッチペン式の入力装置を備える構成としてもよい。さらに、小型化の観点から、モニタ170としては、液晶モニタや有機ELモニタ等の薄型のモニタを使用することが好適である。また、小型化の観点から、CD−ROM駆動装置の代わりにメモリカードを読み取る装置を設けておき、記録媒体としてCD−ROMの代わりに当該メモリカードを用いることが好適である。
ここで、翻訳装置1における処理の具体的な流れについて、図12から図40に基づいて説明する。また、以下では、処理フローの各ステップにおいて行われる処理の結果、どのようなデータが作成されるかを、適宜具体例を挙げて説明する。
図12は、翻訳装置1における処理の概略を示したフローチャートである。
まず、入力部11を介して日本語による文が翻訳装置1に入力される(S1)。なお、当該入力された文はメモリ14の入力文バッファ83に一時的に記憶される。ステップS1の後は、制御部12が、テンプレートデータベース60において、所定の条件を満たすテンプレートデータデータを検索する(S2)。
ステップS2の後は、上記所定の条件を満たすテンプレートデータが存在したか否かを制御部12が判断する(S3)。ステップS3において上記テンプレートデータが存在したと判断された場合には、制御部12は、処理をステップS4の文例作成処理に進める。一方、ステップS3において上記テンプレートデータが存在しないと判断された場合、制御部12は処理を終了する。
ステップS4においては、置換部24は、上記テンプレートデータを用いて、日本語の文例と、当該文例に対応する英語の文例および中国語の文例とを作成する。ステップS4の後は、表示制御部25は、各言語による文例を出力部11に表示させる(S5)。
なお、上記においては、テンプレートデータが日本語テンプレートと英語テンプレートと中国語テンプレートとを含んでおり、各言語によるテンプレートを用いて各言語による文例を作成する構成を示したが、これに限定されるものではない。
例えば、ユーザが日本語の文を英語に翻訳した結果を知りたい場合には、ユーザが入力部10を介して翻訳装置1に所定の指示を送ることにより、中国語の文例を表示することなく、日本語の文例と英語の文例とを翻訳装置1が表示する構成としてもよい。つまり、翻訳装置1は、ユーザが翻訳が不要と考える言語については、出力部11で出力させる必要はない。また、この際、不要な言語については、文例を作成する処理を翻訳装置1が行わない構成としてもよい。
次に、上記ステップS2におけるテンプレートの検索の詳細について、図13および図14に基づいて説明する。
図13は、テンプレート検索における処理の流れを示したフローチャートである。また、図14は、抽出語句バッファ70に記憶されるデータの構成を示した図である。
まず、抽出部20が、入力された日本語の文から上記所定の規則にしたがって語句を抽出し、当該抽出した語句を抽出語句バッファ70に記憶させる(S201)。例えば、文W11(図77参照)を入力した場合、抽出語句バッファ70には、図14に示すとおり、抽出された各語句(語句W14、語句W12、語句W13)が、語句(日本語)の欄に語句番号と対応付けられた形で記憶される。なお、語句番号は、抽出した語句を互いに識別するための番号である。なお、以下では、説明の便宜上、抽出した語句を、語句(WX)として表記する。
ステップS201の後は、データ読出部21が、テンプレートデータベース60からテンプレートデータを一つ読み出す(S202)。そして、ステップS202の後は、制御部12が、抽出語句バッファ70から語句(WX)を一つ読み出す(S203)。
ステップ203の後は、判定部22が、読み出したテンプレートデータにおける日本語テンプレートの固定部に、上記読み出した語句(WX)または当該語句(WX)の活用形を示した語句(WX′)が存在するか否かを判断する(S204)。なお、語句(WX′)が存在するか否かの判断に際しては、上述した、辞書データの活用の欄における情報と日本語活用形テーブルとを用いる。
ステップS204において、存在すると判断された場合には、制御部12は、処理をステップS206に進める。一方、ステップS204において、存在しないと判断された場合には、判定部22が、上記日本語テンプレートの可変部に置換可能な語句(つまり、上記候補)に、上記読み出した語句(WX)または上記語句(WX′)が含まれているか否かを判断する(S205)。
ステップS205において、存在すると判定された場合には、制御部12は、処理をステップS206に進める。一方、ステップS205において、存在しないと判定された場合には、制御部12は、処理をステップS208に進める。
ステップS206においては、制御部12が、未だ読み出していない語句が抽出語句バッファ70に存在するか否かを判定する。ステップS206において存在すると判断された場合には、制御部12は、処理をステップS203に戻す。一方、S206において存在しないと判断された場合には、選択部23が、上記テンプレートデータを検索結果テンプレートバッファ71に記憶させる(S207)。このように、選択部23により、複数のテンプレートデータの中から一定の条件を満たしたテンプレートデータが選択されて、検索結果テンプレートバッファ71に記憶されることになる。なお、ステップS207の後は、制御部12は、処理をステップS208に進める。
ステップS208においては、制御部12が、テンプレートデータベース60内に、未だ読み出していないテンプレートデータが存在するか否かを判断する。ステップS208において存在すると判断された場合には、制御部12は、処理をステップS202に戻す。一方、ステップS208において存在しないと判断された場合には、制御部12は、処理を図12のステップS13に進める。
次に、上記ステップS4における文例作成処理の詳細について、図15から図19に基づいて説明する。
図15は、文例作成処理における処理の流れを示したフローチャートである。
まず、制御部12が、検索結果テンプレートバッファ71からテンプレートデータを一つ読み出し、当該読み出したテンプレートデータをテンポラリーテンプレートバッファ77に記憶させる(S401)。例えば、図3に示すようようなテンプレートデータが検索結果テンプレートバッファ71に記憶されている場合、制御部12は、図16に示すとおり、結果番号が付与された形でテンポラリーテンプレートバッファ77に当該テンプレートデータを記憶させる。なお、結果番号とは、複数のテンプレートデータからテンプレートデータを識別するための番号であり、検索結果テンプレートバッファ71にテンプレートデータが記憶される際に付される番号である。
ステップS401の後は、制御部12が、上記読み出したテンプレートデータを処理文格納バッファ75に格納する(S402)。当該ステップS402によって、例えば、制御部12は、図17に示すとおり、図16で示したテンプレートデータのうち上記結果番号とテンプレートIDとを除いたデータが処理文格納バッファ75に記憶させる。なお、図16は、テンポラリテンプレートデータバッファ77に記憶されたテンポラリテンプレートデータの構成を示した図である。また、図17は、処理文格納バッファ75に記憶されたテンプレートデータを示した図である。
ステップS402の後は、制御部12が、処理文格納バッファ75からスロット部に関する情報を上述したカテゴリ(つまり、「&」で始まるラベル)毎に抽出し、当該抽出した各データを所定形式のテーブルの所定箇所に代入する(S403)。
このステップS403の処理により、図17に示すデータの例では、スロット部用バッファ72に、図18に示すとおり、スロット番号と、当該スロット番号に対応するカテゴリと、各言語の情報(活用情報および共起フラグの情報)とが対応付けされて記憶される。なお、活用情報の欄と、共起フラグの欄と、置換語句の欄とにおいては、言語別に欄(以下、小欄という)が設けられている。なお、図18は、スロット部用バッファ72に記憶されたデータを示した図である。
ここで、制御部12は、同図の活用情報の欄に、言語毎に、スロット部の「+」より後ろの文字列を書き込む。例えば、制御部12は、日本語テンプレートでは、活用情報の欄に{2:&VB_EAT+v.ren1}の「v.ren1」を書き込み、英語のテンプレートでは、活用情報の欄に{2:&VB_EAT+ing}の「ing」を書き込む。
また、スロット部に「-i」という符号が付されている場合、制御部12は、同図の共起フラグの欄には、当該スロット部に関連する小欄(同図では、英語の小欄)の箇所に、「i」を書き込む。ここで、上記符号は、他の可変部との関連性を示す符号である。なお、同図における置換語句の欄と、処理済フラグの欄とについては、後述する。
また、以下では、説明の便宜上、一つのカテゴリと、当該カテゴリに関する、上記活用情報と上記共起フラグの情報と置換語句との言語毎の情報とからなる情報を、スロット情報と称する。例えば、図18においては、「&HUMAN-SUBJ」に関するスロット情報と、「&VB_EAT」とに関するスロット情報とが存在していることになる。
ステップS403の後は、制御部12が、処理文格納バッファ75から共起部に関する情報をラベル(つまり、「&」で始まるラベル)毎に抽出し、当該抽出した各データを所定形式のテーブルの所定箇所に書き込む(S404)。
このステップS404の処理により、図17に示すデータの例では、共起部用バッファ73に、図19に示すとおり、共起番号と、ラベルと、言語と、優先処理フラグと、置換語句と、共起フラグとが対応付けて記憶される。なお、図19は、共起部用バッファ73に記憶されたデータを示した図である。
ここで、上記共起番号とは、共起部をラベル毎に区別するために付された番号である。また、上記言語は、ラベル名で特定される共起部を含むテンプレートが、何れの言語のテンプレートであるかを示している。言い換えれば、上記言語は、ラベル名で特定される共起部に何れの言語が用いられるのかを示した情報といえる。
また、上記優先処理フラグは、後述する共起部の作成の際に用いられるフラグである。図17の英語テンプレートに示すように、共起部の「:」の後ろに「#」が付されている場合、当該共起部のラベルに関する図19の優先処理フラグの欄に、フラグ「1」を立てる。
なお、以下では、説明の便宜上、一つのラベルと、当該ラベルに関する、上記言語と上記優先処理フラグと上記置換語句と上記共起フラグとの情報とからなる情報を、共起情報と称する。例えば、図19においては、「be_AUX」に関する共起情報と、「DET_MY-NULL」とに関する共起情報とが存在していることになる。
ステップS404の後は、制御部12が、スロット部用バッファ72にデータが書き込まれているか否かを判断する(S405)。ステップS405においてデータが書き込まれていると判断された場合には、置換部24が、スロット部の処理を実行する(S406)。そして、ステップS406の後は、制御部12は、処理をステップS407に進める。なお、当該ステップS406の詳細については、後述する。
一方、ステップS405においてデータが書き込まれていないと判断された場合には、制御部12は、処理をステップS407に進める。なお、テンプレートデータによっては、スロット部が存在しないものもあるため、制御部12は、ステップS405においてデータが書き込まれているか否かを判断している。
ステップS407においては、制御部12が、共起部用バッファ73にデータが書き込まれているか否かを判断する。ステップS407においてデータが書き込まれていると判断された場合には、置換部24が、共起部の処理を実行する(S408)。そして、ステップS408の後は、制御部12は、処理をステップS409に進める。なお、当該ステップS408の詳細については、後述する。
一方、ステップS407においてデータが書き込まれていないと判断された場合には、制御部12は、処理をステップS409に進める。なお、テンプレートデータによっては、共起部が存在しないものもあるため、制御部12は、ステップS407においてデータが書き込まれているか否かを判断している。
ステップS409においては、出力文整形部26が、スロット部と共起部とが処理されることにより作成された文例に対して、後処理を行う。なお、当該処理の詳細については後述する。上記文例としては、日本語による文例と、英語による文例と、中国語による文例が含まれる。つまり、置換部24と出力文整形部26とにより、各言語のテンプレートに対応した文例が作成される。
ステップS409の後は、制御部12が、上記後処理した文例を翻訳結果バッファ76に書き込む(S410)。ステップS410の後は、制御部12が、未だ読み出されていないテンプレートデータが検索結果テンプレートバッファ71に存在しているか否かを判断する(S411)。
ステップS411において存在すると判断された場合には、制御部12は、処理をステップS401に戻す。一方、ステップS411において存在しないと判断された場合には、制御部12は、処理を図12のステップS5に進める。
次に、上記ステップS406におけるスロット部の処理の詳細について、図20A、図20B、および図21から図28に基づいて説明する。
図20Aは、スロット部の処理フローにおける前半の処理フローを示したフローチャートである。図20Bは、スロット部の処理フローにおける後半の処理フローを示したフローチャートである。
まず、スロット置換部41が、抽出語句バッファ70から語句(WX)を一つ読み出し、当該読み出した語句(WX)をテンポラリ語句バッファ79に書き込む(S601)。例えば、図14に示すとおり、抽出語句バッファ70に語句W14と語句W12と語句W13とが記憶されている場合、スロット置換部41は、同図に示す語句番号の順に語句を読み出す。ここでは、スロット置換部41は、最初に語句W14を読み出す。なお、テンポラリ語句バッファの構成については後述する。
S601の後は、スロット置換部41が、スロット部用バッファ72から上述したスロット情報を一つ抽出し、テンポラリスロットバッファ80に書き込む(S602)。例えば、スロット置換部41は、図18に示すスロット部用バッファ73から、最初に「&HUMAN-SUBJ」に関するスロット情報を抽出する。また、抽出されたスロット情報については、制御部12は、スロット置換部41が抽出済みであることを示すフラグ(図示せず)を立てる。なお、以下では、説明の便宜上、上記のようにテンポラリスロットバッファ80に記憶されたスロット情報をスロット情報(SX)として表記する。
ステップS602の後は、スロット置換部41が、テンポラリ語句バッファ79に書き込んだ語句(WX)が抽出したスロット情報(SX)に関連する語句であるか否かを判断する(S603)。
ステップS603について具体的には、以下のように判断する。なお、語句(WX)として語句W14(図14、図77参照)が読み出されており、かつスロット情報(SX)として「&HUMAN-SUBJ」に関するスロット情報が抽出されているものとする。この場合、スロット置換部41が、図7に示したシソーラスデータを参照し、「&HUMAN-SUBJ」といった区分に含まれる語句に、語句W14といった語句が存在するか否かを判断する。実際のところ、「&HUMAN-SUBJ」といった区分に含まれる語句に語句W14は存在しないので、この場合、スロット置換部41は、ステップS603において、テンポラリ語句バッファ79に書き込んだ語句(WX)は抽出したスロット情報(SX)に関連する語句ではないと判断する。
ステップS603において関連する語句であると判断された場合には、制御部12は、処理をステップS604に進める。一方、ステップS603において関連する語句ではないと判断された場合には、制御部12は、処理をステップS610に進める。
ここで、説明の便宜上、ステップS604からステップS609の説明の前に、ステップS610の説明を行う。
ステップS610においては、スロット置換部41が、スロット部用バッファ72に、未だ抽出されていないスロット情報が存在するか否かを判断する。ステップS610においてスロット情報が存在すると判断された場合には、制御部12は、処理をステップS602に進める。一方、ステップS610においてスロット情報が存在しないと判断された場合には、制御部12は、処理をステップS611に進める。
ここで、上記の例では、「&HUMAN-SUBJ」に関するスロット情報は抽出されているが、「&VB_EAT」に関するスロット情報は未だ抽出されていないため、スロット置換部41は、ステップS610においてスロット情報が存在すると判断する。そして、ステップS602において、図21に示すとおり、スロット置換部41が「&VB_EAT」に関するスロット情報を抽出する。なお、図21は、テンポラリースロットバッファ80に記憶されたスロット情報の構成を示した図である。
さらに、この場合、スロット置換部41は、テンポラリ語句バッファ79に書き込まれた語句W14(WX)が、「&VB_EAT」に関するスロット情報に関連する語句であるか否かを、ステップS603において判断することになる。ここでは、上記と同様に、スロット置換部41が、図7に示したシソーラスデータを参照し、「&VB_EAT」といった区分に含まれる語句に、語句W14が存在するか否かを判断する。実際のところ、「&VB_EAT」といった区分に含まれる語句に語句W14は存在するため、この場合、スロット置換部41は、ステップS603において、テンポラリ語句バッファ79に書き込んだ語句(WX)は抽出したスロット情報(SX)に関連する語句であると判断する。その結果、制御部12は、処理をステップS604に進める。
ここで、ステップS604からステップS609について説明する。なお、ステップS604からステップS609の説明においては、語句(WX)として語句W14が読み出されており、かつスロット情報(SX)として「&VB_EAT」に関するスロット情報が抽出されている例を挙げて説明する。
ステップS604においては、辞書検索部50が、語句(WX)を含んだ辞書データを辞書データベース61から読み出し、当該読み出した辞書データをテンポラリ辞書バッファ78に書き込む。さらに、ステップS604の後は、スロット置換部41が、テンポラリ辞書データにおける見出しの欄に書き込まれた英語と中国語とのデータを用いて、テンポラリー語句バッファ79の英語の語句の欄と中国語の語句の欄との書き込みを行う(S605)。また、ステップS605の後は、制御部12は、処理をステップS606に進める。
ステップS604およびステップS605について具体例を挙げて説明すると、以下の通りである。まず、ステップS604において、辞書検索部50は、図22に示すとおり、語句W14(WX)を含んだ辞書データを、テンポラリ辞書バッファ78に書き込む。なお、図22は、テンポラリ辞書バッファ78に記憶された辞書データを示した図である。ここで、見出しの欄に書き込まれた英語のデータが「drink」であり、中国語のデータが語句W17である。したがって、ステップS605において、スロット置換部41は、「drink」と語句W17とを、図23に示すとおり、それぞれ、テンポラリー語句バッファ79の英語の語句の欄と中国語の語句の欄とに書き込む。なお、図23は、テンポラリー語句バッファ79に記憶されたデータを示した図である。
ステップS606においては、変化形探索部43が、テンポラリスロットバッファ80に書き込まれたスロット情報(SX)において、上記活用情報の欄にデータが書き込まれているかを判断する。そして、ステップS606においてデータが書き込まれていると判断された場合には、スロット置換部41が、当該活用情報とテンポラリー辞書バッファ78の活用の欄のデータと図5に示した日本語活用形テーブル62とを用いて、テンポラリ語句バッファ79における語句(WX)の語形を変化させる(S607)。さらに、ステップS607においては、スロット置換部41が、上記活用情報を用いて、テンポラリ語句バッファ79における、語句(WX)に対応する英語の語句と中国語の語句との語形を変化させる。そして、ステップS607の後は、ステップS608に進む。
ステップS606およびステップS607について具体例を挙げて説明すると、以下の通りである。先ず、テンポラリスロットバッファ80に、図21に示すとおり、「&VB_EAT」に関するスロット情報(SX)があるため、当該スロット情報の活用情報の欄を、スロット置換部41が確認する。ここで、活用情報の欄には、日本語に関しては動詞の連用形1を示す「v.ren1」が書き込まれており、英語に関しては進行形を示す「ing」が書き込まれている。
そして、語句W14(WX)については、図22に示すテンポラリ辞書データの活用の欄に、語句W19(図77参照)が示す活用であることを示す語句W18が書き込まれている。それゆえ、スロット置換部41が、当該語句W18が示す情報と「v.ren1」という情報とを用いて、図5に示した日本語活用形テーブル62から活用形で用いられる語句(この例では、語句W31(inflected suffix))を取得する。そして、スロット置換部41は、テンポラリ語句バッファ79における語句W14のうち語句W32(inflected
suffix)を、当該取得した語句W31で置換する(図23,77参照)。
また、「drink」といった語句については、スロット置換部41が、テンポラリスロットバッファ80の「ing」という情報に基づき、テンポラリ辞書バッファ78の活用の欄から「*ing」という情報を得る。この「*ing」という情報は、「*」の部分に、テンポラリ辞書バッファ78の見出しの欄の語句「drink」を挿入すればよいことを示した情報である。それゆえ、スロット置換部41は、テンポラリ語句バッファ79の「drink」を、「*」の部分に「drink」を挿入して得られた「drinking」に置換する。
なお、中国語である語句W17(図22参照)に関しては、活用情報が書き込まれていないため、スロット置換部41は、語形の変化を行わない。
以上の結果、テンポラリー語句バッファ79には、図24に示すとおり、語句W33(動詞)と「drinking」と語句W17とが各言語の欄に書き込まれることになる。なお、図24は、テンポラリー語句バッファ79に記憶された、語形変化を行った後のデータを示した図である。
次に、ステップS608においては、スロット置換部41が、処理文格納バッファ75に記憶された各言語のテンプレートにおける上記スロット情報に関連するスロット部を、テンポラリー語句バッファ79に記憶されている語句で置換する。そして、ステップS608の後は、制御部12は、処理をステップS609に進める。
ステップS608について具体例を挙げて説明すると、以下の通りである。
まず、処理文格納バッファ75には、図17に示したテンプレートデータが記憶されている。また、テンポラリ語句バッファ79(図24参照)には、日本語の欄に語句W33が、英語の欄に「drinking」が、中国語の欄に語句W17が書き込まれている。
そこで、スロット置換部41は、図17に示した日本語テンプレートの{2:&VB_EAT+v.ren1}を語句W33に置換する。また、スロット置換部41は、同図に示した英語テンプレートの{2:&VB_EAT+ing}を上記「drinking」に置換する。さらに、スロット置換部41は、同図に示した中国語テンプレートの{2:&VB_EAT}を語句W17に置換する。
以上により、図25に示すとおりのテンプレートデータが処理文格納バッファ75に記憶されることになる。なお、図25は、処理文格納バッファ75に記憶された、スロット部における置換処理の途中状態のテンプレートデータを示した図である。
ところで、図25においては、可変部であることを判別しやすくするため、便宜上、置換した語句(語句W33と「drinking」と語句W17)を、{}といった括弧書きで記載している。実際には、翻訳装置1においては、{}を含めた可変部全体が語句で置換されることになる。つまり、置換された可変部には{}といった括弧は存在しなくなる。後述する、図27と図34と図39と図40と図45と図50と図55とにおいても、同様である。
ステップS609においては、制御部12は、スロット部用バッファ72に記憶されている上記スロット情報(SX)の置換語句の欄に、各言語のテンプレートの置換に用いた語句を書き込むとともに、上記処理済フラグの欄に置換処理済であることを示すフラグを立てる。
この処理により、例えば図18で示された、スロット部用バッファ72に記憶されているデータが更新される。ここでは、制御部12は、図26に示すとおり、「&VB_EAT」に関するスロット情報における置換語句の日本語の欄に語句W33を、英語の欄に「drinking」が、中国語の欄に語句W17を書き込む。さらに、制御部12は、同図に示すとおり、「&VB_EAT」に関するスロット情報における処理済フラグの欄に、「1」を書き込む。なお、図26は、スロット部用バッファ72に記憶された、スロット部における置換処理の途中状態のスロット情報を示した図である。
ステップS609の後は、ステップS610に進む。なお、ステップS610については説明を行ったので、ここでの説明は省略する。
ステップS610の後は、スロット置換部41が、未だ読み出されていない語句が抽出語句バッファ70に存在するか否かを判断する(S611)。ステップS611において存在すると判断された場合には、制御部12は、処理をステップS601に戻す。一方、ステップS611において存在しないと判断された場合には、制御部12は、処理をステップS612に進める。
なお、ステップS612に進む際には、処理文格納バッファ75において、各言語のテンプレートのスロット部が、例えば図27に示すとおり語句で置換されている。なお、図27は、処理文格納バッファ75に記憶された、スロット部の置換処理が完了した状態におけるテンプレートデータを示した図である。
また、スロット部用バッファ72は、図26に示した状態から図28に示した状態に遷移する。つまり、制御部12は、「&HUMAN_SUBJ」に関するスロット情報における置換語句の日本語の欄に語句W12を、英語の欄に「he」を、中国語の欄に語句W34(名詞)を書き込む。さらに、同図に示すとおり、「&HUMAN_SUBJ」に関するスロット情報における処理済フラグの欄に、制御部12は、「1」を書き込む。なお、図28は、スロット部用バッファ72に記憶された、スロット部の置換処理が完了した状態におけるスロット情報を示した図である。
この場合、以上の処理により全てのスロット情報が読み出されているため、全てのスロット情報について、抽出済みフラグ(図示せず)が立っている。一方で、抽出部20で抽出した語句がn個(n:自然数)であり、日本語テンプレートにおけるスロット部の個数がn+1個以上の場合等には、スロット部に語句が置換されていない状況が起こりうる。つまり、この場合、置換処理済みであることを示すフラグが立っていないスロット情報が存在する。
そこで、ステップS612においては、スロット置換部41が、全てのスロット情報について、抽出済みであることを示すフラグを消去する。そして、ステップS612の後は、スロット置換部41が、再度、スロット部用バッファ72からスロット情報を一つ抽出し、当該抽出したスロット情報をテンポラリスロットバッファ80に再度書き込む(S613)。
ステップS613の後は、スロット置換部41が、抽出したスロット情報において、置換処理済であることを示すフラグが立っているか否かを判断する(S614)。ステップS614においてフラグが立っていると判断された場合には、制御部12は、処理をステップS616に進める。一方、ステップS614においてフラグが立っていないと判断された場合には、未入力箇所置換部44が、当該スロット情報に対応する各言語のテンプレートのスロット部を、所定の語句に置換する(S615)。さらに、制御部12は、当該スロット情報の置換語句の欄にも、上記置換された語句と同じ語句を書き込む。また、ステップS615の後は、制御部12は、処理をステップS616に進める。
なお、上記語句の置換の仕方としては、例えば、ユーザが入力部10を介して入力する構成とすることができる。また、未入力箇所置換部44が、図7に示したシソーラスデータを参照し、上記スロット部のラベルが存在する階層の語句および当該階層よりも下層の語句の何れかを用いて、語句の置換を行う構成としてもよい。この場合、置換する語句としては、例えば上述した代表値を用いることができる。また、ユーザが入力する場合であっても、未入力箇所置換部44が、上記スロット部のラベルで示される区分に含まれる語句を、埋め込み対象語句として出力部11に表示するとともに、表示した語句の中から一つの語句をユーザに選択させる構成としてもよい。未入力箇所置換部44における置換の方法は特に限定されるものではない。
ステップS616においては、スロット置換部41が、未だ読み出されていない語句が抽出語句バッファ70に存在するか否かを判断する。ステップS616において存在すると判断された場合には、制御部12は、処理を、再度、ステップS613に進める。一方、ステップS616において存在しないと判断された場合には、制御部12は、処理を図15のステップS407に進める。
次に、上記ステップS408における共起部の処理の詳細について、図29A、図29B、および図30から図40に基づいて説明する。
図29Aは、共起部の処理フローにおける前半の処理フローを示したフローチャートである。図29Bは、共起部の処理フローにおける後半の処理フローを示したフローチャートである。
まず、共起置換部42が、共起部用バッファ73から上述した共起情報を一つ抽出し、テンポラリ第1共起バッファ81に書き込む(S801)。共起置換部42は、例えば、図19に示す共起部用バッファ73内のデータから、最初に「be_AUX」に関する共起情報を抽出し、当該共起情報を、図30に示すとおり、テンポラリ第1共起バッファ81に書き込む。また、制御部12は、抽出された共起情報については、共起置換部42が抽出済みであることを示すフラグ(図示せず)を立てる。なお、図30は、テンポラリー第1共起バッファ81に記憶された共起情報を示した図である。また、以下では、説明の便宜上、上記のようにテンポラリ第1共起バッファ81に書き込まれた情報を共起情報(CX)として表記する。
ステップS801の後は、制御部12は、テンポラリ第1共起バッファ81に書き込まれた共起情報において、優先処理フラグが立っているか否かを判断する(S802)。ステップS802において優先処理フラグが立っていると判断された場合には、制御部12は、処理をステップS803に進める。一方、ステップS802において優先処理フラグが立っていないと判断されたされた場合には、制御部12は、処理をステップS808に進める。例えば、「be_AUX」に関する共起情報については、図30に示すように優先処理フラグが立っていないので、この場合には、制御部12は、処理をステップS808に進める。
ここで、説明の便宜上、ステップS803からステップS807の説明の前に、ステップS808の説明を行う。
ステップS808においては、共起置換部42が、未だ抽出されていない共起情報が存在するか否かを判断する。ステップS808において共起情報が存在すると判断された場合には、制御部12は、処理をステップS801に進める。一方、ステップS808において共起情報が存在しないと判断された場合には、制御部12は、処理をステップS809に進める。
ここで、上記の例では、「be_AUX」に関する共起情報は抽出されているが、「DET_MY-NULL」に関する共起情報は未だ抽出されていないため、制御部12は、ステップS808において共起情報が存在すると判断する。そして、ステップS801において、図31に示すとおり、共起置換部42が「DET_MY-NULL」に関する共起情報を抽出する。なお、図31は、テンポラリ第1共起バッファ81に記憶された共起情報の構成を示した図である。
また、同図に示すとおり「DET_MY-NULL」に関する共起情報は優先処理フラグが立っているため、制御部12は、ステップS802においては優先処理フラグがあると判断し、その結果、処理をステップS803に進める。
ここで、ステップS803からステップS807について説明する。なお、ステップS803からステップS807の説明においては、共起情報(CX)として「DET_MY-NULL」に関する共起情報が抽出されている例を挙げて説明する。
ステップS803においては、共起置換部42が、スロット部用バッファ72から、共起情報(CX)に含まれる共起フラグを有するスロット情報を読み出し、当該読み出したスロット情報をテンポラリスロットバッファ80に書き込む。
ここで、具体例を挙げて説明する。図21に示す「DET_MY-NULL」に関する共起情報(CX)には、共起フラグ「i」が立っている。一方、スロット部用バッファ72には、図28に示すとおり、共起フラグ「i」を含んだ「&HUMAN-SUBJ」に関するスロット情報が存在する。したがって、共起置換部42は、テンポラリスロットバッファ80に、図32に示すような「&HUMAN-SUBJ」に関するスロット情報を書き込む。なお、図32は、テンポラリスロットバッファ80に記憶されたスロット情報の構成を示した図である。
ステップS803の後は、共起置換部42が、テンポラリ第1共起バッファ81に書き込んだ共起情報に基づき、共起関係対応データベースから共起関係対応データを読み出す(S804)。そして、ステップS804の後は、共起置換部42が、テンポラリスロットバッファ80に書き込んだスロット情報と、上記読み出した共起関係対応データとに基づいて、テンポラリ語句バッファ79に語句を書き込む(S805)。また、ステップS805の後は、制御部12は、処理をステップS806に進める。
ステップS804およびステップS805について具体例を挙げて説明すると、以下の通りである。
まず、ステップS804において、共起置換部42は、図9Bに示す共起関係データを読み出す。そして、ステップS805において、共起置換部42は、図32に示すスロット情報と、当該読み出した共起関係データとに基づいて、テンポラリ語句バッファ79に語句を書き込む。この例の場合、スロット情報に置換される語句W12(図7参照)の属するのカテゴリ(ラベルの一種)が「&HUMAN-PRON_SUBJ(&HUMAN-SUBJ)」であるため、共起置換部42は、当該ラベルが条件として指定された場合に用いられる文字を書き込む。
図9Bによると、ラベルが「&HUMAN-MY」に属する場合は「my」という文字が書き込まれるが、それ以外の場合には「(NULL)」という文字が書き込まれる。したがって、ステップS805において、共起置換部42は、図33に示すとおり、テンポラリ語句バッファ79における英語の欄に、「(NULL)」を書き込む。なお、(NULL)については、後述する。なお、図33は、テンポラリー語句バッファ79に記憶されたデータを示した図である。
このように、共起部の置換候補を決定する場合には、シソーラスデータの木をたどり、ラベルの包含関係も考慮に入れる必要がある。
ステップS806においては、共起置換部42が、処理文格納バッファ75に記憶された各言語のテンプレートにおける上記共起情報に関連する共起部を、テンポラリー語句バッファ79に記憶されている語句で置換する。そして、ステップS806の後は、ステップS807に進む。
ステップS806について具体例を挙げて説明すると、以下の通りである。まず、共起置換部42は、図27に示した英語テンプレートの「{-i:#DET_MY-NULL}」といった共起部の「-i:#DET_MY-NULL」を「(NULL)」で置き換える。ただし、「(NULL)」とは、本実施の形態においては何も記さないことを意味する記号であるため、共起置換部42は「-i:#DET_MY-NULL」を消去する。この結果、上記英語テンプレートは、図34に示すように、「{-i:be_AUX+pres}」と「{he}」との間の共起部が、単に「{}」といった記号で示されることになる。なお、図34は、処理文格納バッファ75に記憶された、共起部における置換処理の途中状態のテンプレートデータを示した図である。
ステップS807においては、制御部12は、図35に示すとおり、上記共起情報(CX)を優先共起バッファ74に書き込む。なお、図35は、優先共起バッファに記憶された共起情報を示した図である。
そして、S807の後は、制御部12は、処理をステップS808に進める。なお、ステップS808については説明を行ったので、ここでの説明は省略する。
ステップS809においては、共起置換部42が、全ての共起情報について、抽出済みであることを示すフラグを消去する。そして、ステップS809の後は、共起置換部42が、共起部用バッファ73から共起情報を一つ抽出し、当該抽出した共起情報をテンポラリ第1共起バッファ80に書き込む(S810)。
共起置換部42は、例えば、図19に示す共起部用バッファ73から、最初に「be_AUX」に関する共起情報を抽出する。また、制御部12は、抽出された共起情報については、抽出済みであることを示すフラグ(図示せず)を立てる。
ステップS810の後は、テンポラリ第1共起バッファ80に書き込まれた上記共起情報において、制御部12は、優先処理フラグが立っているか否かを判断する(S811)。そして、ステップS811において優先処理フラグが立っていると判断された場合には、制御部12は、処理をステップS817に進める。一方、ステップS811において優先処理フラグが立っていないと判断されたされた場合には、制御部12は、処理をステップS812に進める。
上記の例では、共起置換部42は、図19に示す共起部用バッファ73内のデータから、最初に「be_AUX」に関する共起情報を再度抽出し、当該共起情報を、図30に示すとおり、テンポラリ第1共起バッファ81に再度書き込む。例えば、「be_AUX」に関する共起情報については、同図に示すように優先処理フラグが立っていないので、この場合には、制御部12は、処理をステップS812に進める。
なお、ステップS811において優先処理フラグの有無を判断する理由は、「{-i:#DET_MY-NULL}」といった共起部のように、もはや処理の必要でない共起部を、以降のステップS812からステップS816における処理の対象外とするためである。
ここで、説明の便宜上、ステップS812からステップS816の説明の前に、ステップS817の説明を行う。
ステップS817においては、共起置換部42が、未だ抽出されていない共起情報が存在するか否かを判断する。ステップS817において共起情報が存在すると判断された場合には、制御部12は、処理をステップS810に進める。一方、ステップS817において共起情報が存在しないと判断された場合には、制御部12は、処理をステップS409に進める。
上記の例では、「be_AUX」に関する共起情報は抽出されているが、「DET_MY-NULL」に関する共起情報は未だ抽出されていないため、共起置換部42は、ステップS817において共起情報が存在すると判断する。そして、ステップS810において、図31に示すとおり、共起置換部42が「DET_MY-NULL」に関する共起情報を抽出する。
ここで、ステップS812からステップS815について説明する。なお、ステップS812からステップS815の説明においては、共起情報(CX)として「be_AUX」に関する共起情報が抽出されている例を挙げて説明する。
ステップS812においては、共起置換部42が、スロット部用バッファ72から、共起情報(CX)に含まれる共起フラグを有するスロット情報を読み出し、当該読み出したスロット情報をテンポラリスロットバッファ80に書き込む。
例えば、優先処理フラグのない図30に示す共起情報(CX)に含まれる共起フラグ「i」を有するスロット情報は、「&HUMAN-SUBJ」に関するスロット情報である。したがって、共起置換部42は、「&HUMAN-SUBJ」に関するスロット情報をスロット部用バッファ72から読み出し、図36に示すとおり、当該読み出したスロット情報(SX)をテンポラリスロットバッファ80に書き込む。なお、図36は、テンポラリースロットバッファ80に記憶されたスロット情報を示した図である。
ステップS812の後は、共起置換部42は、優先共起バッファ74から、上記共起情報(CX)と同じ共起フラグを有する共起情報を読み出す(S813)。例えば、図35に示すとおり、「be_AUX」に関する共起情報(CX)と同じ共起フラグ「i」を有する共起情報として、「DET_MY-NULL」に関する共起情報が優先共起バッファ74に存在する。このため、共起置換部42は、当該「DET_MY-NULL」に関する共起情報を読み出し、図37に示すとおり、当該読み出した共起情報をテンポラリー第2共起バッファ82に書き込む。なお、図37は、テンポラリ第2共起バッファに記憶された共起情報を示した図である。また、以下では、上記のようにテンポラリー第2共起バッファ82に書き込まれた共起情報を共起情報(CHX)と表記する。
ステップS813の後は、共起置換部42が、テンポラリ第1共起バッファ81に書き込んだ共起情報(CX)と、テンポラリ第2共起バッファ82に書き込んだ共起情報(CHX)とに基づき、共起関係対応データベースから共起関係対応データを読み出す(S814)。そして、ステップS814の後は、共起置換部42が、上記読み出した共起関係対応データと、テンポラリスロットバッファ80に書き込んだスロット情報(SX)とに基づいて、テンポラリ語句バッファ79に語句を書き込む(S815)。また、ステップS815の後は、制御部12は、処理をステップS816に進める。
ステップS814およびステップS815について具体例を挙げて説明すると、以下の通りである。なお、以下の例では、共起情報(CX)に基づき、共起関係対応データベースから共起関係対応データを読み出す構成を説明する。
まず、ステップS814において、共起置換部42は、図30に示す共起情報(CX)に基づき、図9Aに示す共起関係対応データを読み出す。具体的には、共起置換部42は、図30に示された共起情報のラベルと同じラベルを有する共起関係対応データを読み出す。そして、ステップS815において、共起置換部42は、図9Aに示す共起関係対応データと、図36に示すスロット情報(SX)とに基づいて、テンポラリ語句バッファ79に語句を書き込む。
この例の場合、スロット情報の置換語句が「he」であるため、共起置換部42は、当該「he」が用いられた場合における共起部に用いる語句をテンポラリ語句バッファ79に書き込む。図9Aによると、共起置換部42は、置換語句が「I」の場合には「am」という語句をテンポラリ語句バッファ79に書き込む。また、置換語句が「you」または複数形の語句である場合には、共起置換部42は、「are」という語句をテンポラリ語句バッファ79に書き込む。さらに、これら以外の置換語句の場合には、共起置換部42は、「is」という語句をテンポラリ語句バッファ79に書き込む。したがって、共起置換部42は、テンポラリ語句バッファ79の英語の欄に、図38に示すとおり、「is」といった語句を書き込む。なお、図38は、テンポラリー語句バッファ79に記憶された語句を示した図である。
ステップS816においては、共起置換部42は、処理文格納バッファ75に記憶されたテンプレートにおける上記共起情報に関する共起部を、テンポラリ語句バッファ79に記憶された語句で置換する。具体的には、共起置換部42は、図34に示した英語テンプレートの{-i:be_AUX+pres}を上記「is」に置換する。これにより、図39に示すとおりのテンプレートデータが処理文格納バッファ75に記憶されることになる。なお、図39は、処理文格納バッファ75に記憶された、共起部の置換処理が完了した状態におけるテンプレートデータを示した図である。
そして、ステップS816の後は、S817に進む。
ここで、図15のステップS409における処理を説明する。
ステップS409においては、出力文整形部26が、処理文格納バッファ75に記憶された、例えば図39に示すテンプレートデータにおける日本語テンプレートの語句W35(音節)という語句を、図40に示すとおり語句W36(音節(語句W35の濁音))に変更する。なお、図40は、処理文格納バッファ75に記憶された文例データを示した図である。
翻訳装置1には、このように文を整形する規則が記憶されており、例えば全ての可変部が置換された後に当該規則にしたがって文を整形する。この規則の一例としては、語句W19(図77参照)で示した活用の動詞の活用形が語句W26で示した活用形(つまり、ren1)であり、当該動詞の直後が語句W35である場合には語句W36に変更し、当該動詞の直後が図77に示す語句W38(音節)である場合には図77に示す語句W39(音節(語句W38の濁音))に変更するといった規則が挙げられる。
以上の結果、翻訳装置1では、各言語のテンプレートに基づき、日本語の文例が得られるとともに、当該日本語の文例を翻訳した英語の文例と、当該日本語の文例を翻訳した中国語の文例とが得られる。そして、これらの各文例は表示制御部25によって出力部で表示されるため、ユーザは、少なくとも自身が入力した文と同じ文例あるいは最も近い文例の翻訳結果を確認することができる。
このように、翻訳装置1は、所定の語句で構成された固定部と予め定められた複数の語句のうちの何れかの語句に置換可能な可変部とをそれぞれ対応する位置に含んだ、第1言語(例えば、日本語)によるテンプレートと当該テンプレートと対応関係にある第2言語(例えば、英語)によるテンプレートとを記憶した記憶装置13から、第1言語によるテンプレートと第2言語によるテンプレートとを読み出すデータ読出部21と、データ読出部21によって読み出された第1言語による複数のテンプレートについて、入力部10を介して第1言語で入力された文に含まれる語句が、上記所定の語句および上記予め定めた複数の語句の何れかと一致するかを判定する判定部22と、当該判定の結果に基づいて、上記複数のテンプレートの中から、少なくとも一つのテンプレートを選択する選択部23と、選択部23によって上記一致した語句に置換可能な可変部を含むテンプレートが選択された場合、データ読出部21によって読み出された、上記選択されたテンプレートと対応関係にある第2言語によるテンプレートについて、上記一致した語句に置換可能な可変部に対応した可変部を、上記一致した語句に対応する第2言語による語句に置換する置換部24とを備える構成であるといえる。
それゆえ、このような構成では、第1言語による各テンプレートの可変部における語句を上記複数の語句から選ぶことができるため、当該可変部において語句の選択の幅を持たせることができる。例えば、可変部においてn個の語句が置換可能な場合、翻訳装置1は、一つのテンプレートにより、n通りの文例を作成することができる。また、例えば2つの可変部を有する場合、一方の可変部においてn個の語句が置換可能であって、他方の可変部においてm個の語句が置換可能である場合、翻訳装置1は、一つのテンプレートから、n×m個の文例を作成することができる。
このように、可変部を有さない従来の装置と、本実施の形態に係る翻訳装置1とにおいて、仮に同じ数のテンプレートを備えた構成とした場合、作成可能な文例の数は明らかに本実施の形態に係る翻訳装置1の方が多くなる。このため、本実施の形態に係る翻訳装置1の方が、従来の装置に比べ、正確な文例を選ぶことが可能となる。
また、特に、シソーラスデータを用いることにより、翻訳装置1は、一つの可変部に含まれる語句を容易に決めることができる。また、シソーラスデータを用いれば、一つの可変部における上記複数の語句を、概念的に似通った語句とすることができる。このため、意味の通じない文例が作成されるおそれがなくなる。
また、翻訳装置1は、少なくとも、置換部24による置換を行った後の第2言語によるテンプレートに基づく画像を出力部11に表示させる表示制御部25を備える構成でもある。それゆえ、当該構成により、翻訳装置1のユーザは、第2言語による文例を確認することができる。
さらに、翻訳装置1は、選択部23によって第1言語によるテンプレートが選択された場合、前記一致した語句に置換可能な可変部を前記一致した語句に置換するとともに、置換部24による置換を行った後の第1言語によるテンプレートに基づく画像を出力部11に表示させる構成でもある。それゆえ、当該構成により、ユーザは、第1言語による文例と第2言語による文例とを同時に確認することができる。
特に、翻訳装置1では、図4に示したとおり、記憶装置13には、第1言語によるテンプレートの可変部における上記予め定めた複数の語句それぞれについて、第2言語に翻訳した語句が一つ対応付けて記憶されている。そして、置換部24が、第2言語によるテンプレートの可変部を、記憶装置13において上記対応付けて記憶された第2言語に翻訳した語句に置換する。それゆえ、翻訳装置1においては、第1言語のテンプレートの可変部において置換された語句に対応する、第2言語による語句が一意に定まる。したがって、翻訳装置1は、第2言語によるテンプレートに基づた、正確な第2言語の文例を得ることができる。
また、翻訳装置1では、上述したように、第1言語によるテンプレートの可変部と、当該可変部に対応した第2言語によるテンプレートの可変部とには、語句の活用形に関する情報が対応付けられている。そして、置換部24が、この活用形に関する情報に基づいて、上記置換した語句について語形を変化させる。それゆえ、翻訳装置1は、第1言語による文例と第2言語による文例とのそれぞれについて、語形を変化させない場合に比べ、より正確な文例とすることができる。
また、翻訳装置1では、上述したように、第2言語によるテンプレートには可変部として、スロット部と共起部とが含まれており、置換部24は、スロット部を第2言語による語句に置換するとともに、当該置換後の語句に応じて共起部の語句を決定する。それゆえ、スロット部において置換された語句に対応した語句を用いて、共起部を置換可能となる。したがって、翻訳装置1は、置換後の語句に応じて共起部の語句を決定しない構成に比べ、より正確な文例を作成することができる。
ところで、図29BのステップS814およびステップS815についての具体例を挙げた説明においては、共起置換部42が、テンポラリ第1共起バッファ81に書き込んだ共起情報(CX)に基づき、共起関係対応データベースから共起関係対応データを読み出す構成を説明した。ここでは、共起置換部42が、テンポラリ第1共起バッファ81に書き込んだ共起情報(CX)と、テンポラリ第2共起バッファ82に書き込んだ共起情報(CHX)とに基づき、共起関係対応データベースから共起関係対応データを読み出す構成を図41から図45に基づいて説明する。
図41は、テンプレートデータベース60に記憶されているテンプレートデータの構成を示したものである。説明の便宜上、日本語テンプレートと英語テンプレートとを示している。同図に示すとおり、日本語テンプレートには、「{1:NOUN}」といったスロット部が含まれている。また、英語テンプレートには、「{1-i:NOUN}」といったスロット部と、「{-i:DET_A}」および「{-i#CLASSIFIER}」といった共起部とが含まれている。
ここで、「{-i#CLASSIFIER}」に関する共起情報が共起情報(CHX)に該当する。つまり、以下では、「{1:NOUN}」に関するスロット情報と「{-i#CLASSIFIER}」に関する共起情報とに基づき、「{-i:DET_A}」に置換される語句が決定される。
図42は、図41に示したテンプレートデータにおける日本語テンプレートのスロット部において置換される語句の例を示した図である。なお、図41においては、入力例Aと入力例Bと入力例Cと入力例Dとは、それぞれ、「{1:NOUN}」といったスロット部において置換された語句の例を挙げたものである。例えば入力例Aは、「{1:NOUN}」といったスロット部が「コーヒー」で置換された場合を示している。
図43は、辞書データベース61に記憶されておる辞書データを示した図である。同図に示すとおり、辞書データには、日本語の語句と当該語句に対応する英語の語句とが対応付けて記憶されている。また、辞書データにおいては、当該英語の各語句に対して、助数詞に関する情報が対応付けて記憶されている。
図44は、このようなテンプレートデータと辞書データとを用いて、英語の文例を作成する際のフローを示したフローチャートである。
まず、日本語テンプレートのスロット部「{1:NOUN}」において置換された語句に応じて、スロット置換部41が、辞書データを参照することにより、英語テンプレートのスロット部「{1-i:NOUN}」を、例えば「coffee」といった語句に置換する(S901)。ステップS901の後は、共起置換部42が、英語テンプレートの共起部「{-i#CLASSIFIER}」に関し、置換する語句を決定する(S902)。
例えば入力例Aの場合には、ステップS902においては、共起置換部42は、辞書データを参照することにより、共起部「{-i#CLASSIFIER}」を「cup of」といった語句で置換することを決定する。また、入力例Bの場合には、同様に、共起置換部42は、共起部「{-i#CLASSIFIER}」を「order of」といった語句で置換することを決定する。一方、入力例Cの場合には、辞書データを参照すると、「ペン」といった語句に対応する助数詞の情報が「(NULL)」であるため、共起置換部42は、共起部「{-i#CLASSIFIER}」を「(NULL)」で置換することを決定する。入力例Dの場合についても、「入力例C」の場合と同様である。
ステップS902の後は、共起置換部42が、辞書データに基づいて、共起部「{-i#CLASSIFIER}」に関し、決定された語句の訳があるか否かを判断する(S903)。
ステップS903において訳があると判断された場合、共起置換部42が、当該決定された語句の読みに基づき、共起部「{-i:DET_A}」を「a」で置換するか、それとも「an」で置換するかを決定する(S904)。例えば、入力例Aの場合には、共起置換部42は、共起部「{-i:DET_A}」を「a」で置換することを決定する。また、入力例Bの場合には、共起置換部42は、共起部「{-i:DET_A}」を「an」で置換することを決定する。
一方、ステップS903において訳がないと判断された場合、共起置換部42が、「{1-i:NOUN}」といったスロット部において置換されることが決定した語句の読みに基づき、共起部{-i:DET_A}」を「a」で置換するか、それとも「an」で置換するかを決定する(S905)。例えば、入力例Cの場合には、共起置換部42は、共起部「{-i:DET_A}」を「a」で置換することを決定する。また、入力例Dの場合には、共起置換部42は、共起部「{-i:DET_A}」を「an」で置換することを決定する。
ステップS904とステップS905の後は、制御部12は、処理をステップS906に進める。ステップS906においては、共起置換部42は、共起部「{-i#CLASSIFIER}」において置換する語句として決定するされた語句と、共起部「{-i:DET_A}」において置換する語句として決定するされた語句を用いて、それぞれの共起部を置換する。ただし、「(NULL)」とは、上述したとおり、何も記さないことを意味する記号であるため、共起置換部42は「-i#CLASSIFIER」を消去する。
その結果、翻訳装置1は、図45に示すとおり、入力例A〜入力例Dのそれぞれについて、スロット部と2つの共起部とが語句で置換された英語文例を生成する。
ところで、上記の説明においては、スロット部において置換する語句は、スロット部同士の間で独立して決定可能な構成を例に挙げて説明した。つまり、例えば図3において、「{1:&HUMAN-SUBJ}」と「{2:&VB_EAT+v.ren1}」との何れを先に決定しても問題ない構成について説明した。以下では、スロット部間において共起関係を形成する2つの例について、図46から図55に基づいて説明する。
まず、一つ目の例を、図46から図50に基づいて説明する。
図46は、テンプレートデータベース60に記憶されているテンプレートデータの構成を示したものである。説明の便宜上、日本語テンプレートと英語テンプレートとを示している。同図に示すとおり、日本語テンプレートには、「{1:THIS-THAT}」と「{2:GOODS}」といった2つのスロット部が含まれている。また、英語テンプレートには、「{1-i:THIS-THAT}」と「{2-i:GOODS}」といった2つのスロット部が含まれている。この英語テンプレートの両方のスロット部においては、「-i」といった符号が付されている。つまり、両スロット部は互いに共起関係を有している。
図47は、図46に示したテンプレートデータにおける日本語テンプレートのスロット部において置換された語句の例を示した図である。なお、図47においては、入力例Aと入力例Bと入力例Cと入力例Dとは、それぞれ、「{1:THIS-THAT}」と「{2:GOODS}」といったスロット部において置換された語句の例を挙げたものである。例えば入力例Aは、「{1-i:THIS-THAT}」といったスロット部が語句W40(指示代名詞)で置換され、「{2-i:GOODS}」といったスロット部が語句W41(名詞)で置換された場合を示している。
図48は、辞書データベース61に記憶されておる辞書データを示した図である。同図に示すとおり、辞書データには、日本語の語句と当該語句に対応する英語の語句とが対応付けて記憶されている。また、辞書データにおいては、当該英語の各語句に対して、当該各語句の複数形に関する情報が対応付けて記憶されている。
図49は、このようなテンプレートデータと辞書データとを用いて、英語の文例を作成する際のフローを示したフローチャートである。なお、以下では、日本語テンプレートのスロット部における置換処理は終了しているものとし、英語テンプレートのスロット部における置換処理を説明する。
まず、スロット置換部41が、英語テンプレートのスロット部「{1-i:THIS-THAT}」において置換される語句が、複数形であるか否かを判断する(S1001)。ここで、語句が複数形であるか否かの判断は、スロット置換部41が辞書データベース61を参照することにより行う。なお、辞書データベース61には、語句が単数あるいは複数形であることを示す情報が記憶されている。
例えば入力例Aと入力例Bと入力例Cとの場合には、ステップS1001において、スロット置換部41は、複数形でないと判断する。一方、入力例Dと入力例Eと入力例Fとの場合には、ステップS1001において、スロット置換部41は、複数形であると判断する。
ステップ1001において複数形であると判断された場合には、スロット置換部41が、英語テンプレートのスロット部「{2-i:GOODS}」において置換される語句が複数形を有するか否かを判断する(S1002)。一方、ステップS1001において複数形ではないと判断された場合には、制御部12は、処理をステップS1004に進める。
ステップS1002において複数形を有すると判断された場合には、スロット置換部41が、図48に示した辞書データを参照することにより、上記英語テンプレートのスロット部「{2-i:GOODS}」に用いられる英語の語句を複数形に変換する(S1003)。一方、ステップS1002において複数形を有しないと判断された場合には、制御部12は、処理をステップS1004に進める。
例えば入力例Dの場合には、ステップS1003において、スロット置換部41は、「book」という語句を「books」といった複数形の語句に変換する。また、同様に、入力例Eの場合には、スロット置換部41は、「trousers」という語句を「trousers」といった複数形(この場合、単数形と複数形とで同一)の語句に変換する。一方、例えば、入力例Fの場合には、図48にも示すとおり「luggage」という語句に複数形は存在しないので、この場合には、制御部12は、処理をステップS1004に進める。
ステップS1004においては、スロット置換部41が、再度、英語テンプレートのスロット部「{2-i:GOODS}」において置換される語句が複数形を有するか否かを判断する。ステップS1004において複数形を有すると判断された場合には、スロット置換部41が、英語テンプレートのスロット部「{2-i:GOODS}」において置換される語句が複数形であるか否かを判断する(S1005)。一方、ステップS1004において複数形を有しないと判断された場合には、スロット置換部41が、辞書データを参照することにおより、英語テンプレートのスロット部「{1-i:THIS-THAT}」に用いられる語句を単数形に変換する(S1006)。そして、ステップS1006の後は、ステップS1008に進む。
例えば、入力例Aと入力例Bと入力例Dと入力例Eとの場合には、ステップS1004において、スロット置換部41は、英語テンプレートのスロット部「{2-i:GOODS}」において置換される語句が複数形を有すると判断する。一方、入力例Cと入力例Fとの場合には、ステップS1006において、スロット置換部41は、スロット部「{2-i:GOODS}」を単数形に変換する。具体的には、入力例Cの場合には、実質的な変更はないが、スロット置換部41は「this」を「this」に変換する。また、入力例Fの場合には、スロット置換部41は、「these」を「this」に変換する。
そして、ステップS1005においては、スロット置換部41は、入力例Aと入力例Bと入力例Dと入力例Eとのうち、入力例Bと入力例Dと入力例Eとについては、スロット部「{2-i:GOODS}」において置換される語句が複数形であると判断する。一方、同ステップにおいては、スロット置換部41は、入力例Aについては、スロット部「{2-i:GOODS}」において置換される語句が複数形でないと判断する。
ステップS1005において複数形であると判断された場合には、スロット置換部41が、英語テンプレートのスロット部「{1-i:THIS-THAT}」に用いられる語句を複数形に変換する(S1007)。そして、ステップS1007の後は、制御部12は、処理をステップS1008に進める。一方、ステップS1005において複数形でないと判断された場合には、語句を複数形に変換することなく、制御部12は、処理をステップS1008に進める。
例えば、入力例Bと入力例Dと入力例Eとの場合には、ステップS1007において、スロット置換部41は、英語テンプレートのスロット部「{1-i:THIS-THAT}」において置換される語句を複数形に変換する。具体的には、入力例Bの場合には、スロット置換部41は、「this」を「these」に変換する。また、入力例Dと入力例Eとの場合には、実質的な変更はないが、スロット置換部41は、「these」を「these」に変換する。
ステップS1008においては、スロット置換部41が、上述した変換処理後の語句を用いて、スロット部「{1-i:THIS-THAT}」とスロット部「{2-i:GOODS}」とを置換する。
以上の結果、図50に示すとおり、入力例A〜入力例Fのそれぞれについて、2つのスロットが語句で置換された英語文例が生成される。
次に、二つ目の例を、図51から図55に基づいて説明する。
図51は、テンプレートデータベース60に記憶されているテンプレートデータの構成を示したものである。説明の便宜上、日本語テンプレートと英語テンプレートとを示している。同図に示すとおり、日本語テンプレートには、「{1-i:NOUN}」と「{2:NUM}」と「{3-i:CLASSIFIER}」といった3つのスロット部が含まれている。また、英語テンプレートには、「{2-j:NUM}」と「{3-j:CLASSIFIER}」と「{1-j:NOUN}」といった3つのスロット部が含まれている。この英語テンプレートの3つスロット部においては、共起関係を示す「-j」といった符号が付されている。つまり、3つのスロット部は互いに共起関係を有している。
図52は、図51に示したテンプレートデータにおける日本語テンプレートのスロット部において置換される語句の例を示した図である。なお、図52においては、入力例Aと入力例Bとは、それぞれ、「{1-i:NOUN}」と「{2:NUM}」と「{3-i:CLASSIFIER}」といったスロット部において置換される語句の例を挙げたものである。例えば入力例Aは、「{1-i:NOUN}」といったスロット部が語句W42(名詞)で置換され、「{2:NUM}」といったスロット部が「2」で置換され、「{3-i:CLASSIFIER}」といったスロット部が語句W43(名詞)で置換された場合を示している。
図53は、辞書データベース61に記憶されておる辞書データを示した図である。同図に示すとおり、辞書データには、日本語の語句と当該語句に対応する英語の語句とが対応付けて記憶されている。
図54は、このようなテンプレートデータと辞書データとを用いて、英語の文例を作成する際のフローを示したフローチャートである。
まず、スロット置換部41が、辞書データを参照し、日本語テンプレートのスロット部「{1-i:NOUN}」において置換された語句に応じて、日本語テンプレートのスロット部「{3-i:CLASSIFIER}」において置換可能な語句の候補を選定する(S1101)。例えば、図52に示す入力例Aの場合には、スロット置換部41は、上記候補として、語句W43と語句W41(図53参照)とを選定する。また、同図に示す入力例Bの場合には、スロット置換部41は、上記候補として、語句W44(名詞)を選定する。
ステップS1101の後は、スロット置換部41は、スロット部{3-i:CLASSIFIER}」において一旦置換された語句に基づき、上記候補のうちから一つの語句を決定する(S1102)。スロット置換部41は、例えば、入力例Aの場合には、日本語テンプレートのスロット部「{3-i:CLASSIFIER}」において置換可能な語句を語句W43に決定し、入力例Bの場合には、当該スロット部「{3-i:CLASSIFIER}」において置換可能な語句を語句W44に決定する。
そして、ステップS1102の後は、制御部12は、処理を英語テンプレートの処理に移行する。
ステップS1102の後は、スロット置換部41により、日本語テンプレートのスロット部「{2:NUM}」が「2」以上であるか否かが判断される(S1103)。ステップS1103において「2」以上であると判断された場合には、スロット置換部41が、日本語テンプレートのスロット部{3-i:CLASSIFIER}」における語句の訳が存在するか否かを判断する(S1104)。一方、ステップS1103において「2」以上でないと判断された場合には、ステップS1107に進む。
ステップS1104において訳が存在すると判断された場合には、スロット置換部41は、英語テンプレートのスロット部「{3-j:CLASSIFIER}」の語句を複数形に変換する(S1105)。そして、ステップS1105の後は、制御部12は、処理をステップS1107に進める。一方、ステップS1104において訳が存在しないと判断された場合には、スロット置換部41は、英語テンプレートのスロット部「{2-j:NOUN}」の語句を複数形に変換する(S1106)。そして、ステップS1106の後は、制御部12は、処理をステップS1107に進める。
例えば入力例Aの場合には、ステップS1105において、スロット置換部41は、「glass of」を「glasses of」に変換する。また、入力例Bの場合には、ステップS1106において、スロット置換部41は、「magazine」を「magazines」に変換する。
そして、ステップS1107においては、翻訳装置1は、変換後の語句を用いて置換処理を行なう。
以上の結果、図55に示すとおり、翻訳装置1は、入力例Aおよび入力例Bのそれぞれについて、各スロットが語句で置換された英語文例を生成する。
なお、上記の実施の形態においては、図13のフローにも示すとおり、テンプレートデータベース内の全てのテンプレートデータを検索対象とし、抽出した語句が固定部または可変部に含まれるようなテンプレートを検索する構成を例に挙げて説明した。しかしながら、これに限定されるものではなく、テンプレートデータの一部のテンプレートを検索の対象としてもよい。
また、上記においては、図3に示すとおり、複数の言語のテンプレートが1つのテンプレートデータに含まれる構成を例に挙げて説明したが、これに限定されるものではない。例えば、一つのテンプレートデータには一つの言語のテンプレートデータが含まれている構成としてもよい。この場合、上記一つの言語のテンプレートデータと対応関係にある他の言語のテンプレートデータが、当該一つの言語のテンプレートデータと関連付けられて記憶装置13に記憶されていればよい。
また、上記においては、図7に示すとおり、シソーラスデータを用いた例を挙げて説明したが、これに限定されるものではない。
あくまでも、可変部において置換可能な上記予め定められた複数の語句は、所定の識別標識により特定される語句であればよい。つまり、シソーラスデータにおける区分としてのラベルで特定される語句に限定されず、予め区分が設けられたデータにおける或る区分を表す識別標識で特定される語句であればよい。
例えば、記憶装置13に記憶された第1言語の辞書データでは、当該辞書データに含まれる語句のうち全部または一部の語句が、それぞれ、少なくとも一つのグループに属するように分類しておき、上記所定の識別標識を、前記複数のグループのうちの所定のグループを示す標識としてもよい。つまり、ある語句「A」を、少なくとも一つのグループ(例えば、グループAおよびグループB)に含まれるようにしておき、例えば上記所定の識別標識としてグループBを示す標識を用いた場合には、グループBに含まれる語句全てが、一つの可変部において置換対象となるようにすればよい。
また、翻訳装置1は、出力部11において画像を出力する構成であったが、これに限定されるものではない。例えば、翻訳装置1を、画像を出力すると共に、得られた各言語の文例を音声出力する構成としてもよい。また、翻訳装置1を、当該文例を画像出力することなく、単に、音声出力するだけの構成としてもよい。
以上述べてきたように、本実施の形態に係る翻訳装置1を用いることにより、入力文とテンプレートとのマッチングの際に、同一意味概念の言葉(語句)は同定される。その結果、翻訳装置1は、適切な文例(ベースとなる文例)の選択が可能となる。また、テンプレートにおける一文中の可変部の数が増えても、不当に類似度(マッチ度合い)が低下することはない。さらに、テンプレートにおいて、予め可変部となる箇所がスロット化されて特定されているため、翻訳装置1は、非マッチ部分の特定を誤ることがない。また、可変部で置換可能な語句が予め対訳辞書に指定されているため、翻訳装置1は、確実な訳語置換を行うことができる。さらに、共起関係を記したテンプレート、共起関係対応データ、活用形に関する情報等のデータを用いるため、翻訳装置1は、従来の用例主導型方式をはじめとする各種方式の翻訳装置では実現できなかった「100%正しい」といえる翻訳結果を得ることがきる。
<翻訳装置1の変形例>
ところで、上記においては、翻訳装置1は、翻訳処理を実行しない場合であっても、図3に示した形式の日本語テンプレートや英語テンプレートを、記憶装置13のテンプレートデータベース60に記憶している。以下では、翻訳装置が、翻訳処理を実行する際に、記憶装置13のテンプレートデータベースに予め記憶されたテンプレートに基づいて、日本語テンプレートおよび英語テンプレートを生成する構成について説明する。なお、以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図56は、翻訳装置1Aの概略構成を示した図である。図56を参照して、翻訳装置1Aは、入力部10と、出力部11と、制御部12Aと、記憶装置13Aと、メモリ14Aとを備えている。つまり、翻訳装置1Aが制御部12Aおよび記憶装置13Aを有する点において、制御部12および記憶装置13を有する翻訳装置1とは異なる。
記憶装置13Aは、テンプレートデータベース60Aと、辞書データベース61と、日本語活用形テーブル62と、カテゴリデータベース63と、シソーラスデータ64と、共起関係データベース65とを記憶している。
テンプレートデータベース60Aは、日本語テンプレートデータの代わりに、当該日本語テンプレートを生成するためのテンプレート(以下、「第1テンプレート」と称する)を記憶している。また、記憶装置13Aは、英語テンプレートの代わりに、当該英語テンプレートを生成するためのテンプレート(以下、「第2テンプレート」と称する)を記憶している。また、記憶装置13Aは、中国語テンプレートの代わりに、当該中国語テンプレートを生成するためのテンプレート(以下、「第3テンプレート」と称する)を記憶している。第1テンプレート、第2テンプレート、および第3テンプレートの概要については、後述する(図57参照)。
メモリ14Aは、抽出語句バッファ70と、検索結果テンプレートバッファ71と、スロット部用バッファ72と、共起部用バッファ73と、優先共起バッファ74と、処理文格納バッファ75と、翻訳結果バッファ76と、テンポラリーテンプレートバッファ77と、テンポラリー辞書バッファ78と、テンポラリー語句バッファ79と、テンポラリースロットバッファ80と、テンポラリー第1共起バッファ81と、テンポラリー第2共起バッファ82と、入力文バッファ83と、展開データ格納バッファ(図示せず)と、処理待ちバッファ(図示せず)と、要素バッファ(図示せず)とを備えている。
制御部12Aは、抽出部20と、データ読出部21Aと、判定部22と、選択部23と、置換部24と、表示制御部25と、出力文整形部26と、生成部27とを備えている。
データ読出部21Aは、記憶装置13Aから上記第1テンプレートと上記第2テンプレートとを読み出す。
生成部27は、読み出された第1テンプレートと第2テンプレートと第3テンプレートとに基づき、日本語テンプレートと当該日本語テンプレートと対応関係にある英語テンプレートおよび中国語テンプレートとをそれぞれ複数生成する。生成部27は、当該生成した日本語テンプレートと英語テンプレートと中国語テンプレートとを記憶装置13Aに記憶させる。
以上の処理により、翻訳装置1Aは、記憶装置13Aに、日本語テンプレートと英語テンプレートと中国語テンプレートとを記憶させることができる。以下、第1テンプレート、第2テンプレート、および第3テンプレートの構成を説明しつつ、生成部27の詳細な処理を説明する。
図57は、テンプレートデータベース60Aに含まれる一つのテンプレートデータの構成を示した図である。図57を参照して、テンプレートデータは、テンプレートIDと、第1テンプレートと、第2テンプレートと、第3テンプレートとを含んでいる。
第1テンプレートは、所定の語句で構成された第1部と、予め定められた複数の語句のうちの何れかの語句に置換可能な可変部と、予め定められた複数の要素のうちの何れかの要素を選択可能な第2部とを含んでいる。
図57においては、語句W36、語句W45(否定を示す文字)、および語句W46(句点)が第1部に該当する。また、{1:&LANGUAGE}が可変部に該当する。さらに、文字列W47と、{2:(&VB_EXPLAIN+v.kanou)|(&VB_PRONOUNCE+v.kanou)|(&VB_INTERPRET+v.kanou)}とが、第2部に該当する。
第2テンプレートは、第1テンプレートと同様に、第1部と可変部と第2部とを含んでいる。図57においては、「I」と「can't」とが第1部に該当する。また、{1:&LANGUAGE}が可変部に該当する。さらに、{2:(&VB_EXPLAIN+inf) it in|(&VB_PRONOUNCE+inf) it in|(&VB_INTERPRET+inf) it in}が第2部に該当する。
第3テンプレートについても、図57に示すとおり、第1テンプレートと第2テンプレートと同様に、第1部と可変部と第2部とを含んでいる。
以上のように、第1テンプレートと第2テンプレート(あるいは第3テンプレート)とは、所定の語句で構成された第1部と予め定められた複数の要素のうちの何れかの要素を選択可能な第2部とを含んでいる。
翻訳装置1Aにおける処理の概略は、図12に示したフローチャートと同じである。ただし、翻訳装置1Aにおけるテンプレート検索(ステップS2)の処理は、図13に示したフローチャートとは異なる。
図58は、テンプレート検索における前半の処理の流れを示したフローチャートである。図59は、当該テンプレート検索における後半の処理の流れを示したフローチャートである。図58を参照して、ステップS202とステップS203との間に、新たに2つのステップS2001,S2002を含む点で、図58の処理は図13の処理(ステップS201〜ステップS204)とは異なる。図59を参照して、ステップS207とステップS208との間に、新たにステップS2003を含む点で、図59の処理は図13の処理(ステップS205〜ステップS208)とは異なる。
再び図58を参照して、ステップS2001において、生成部27は、記憶装置13Aから読み出されたテンプレートデータ(図57参照)を展開し、当該展開して得られたテンプレートデータを上記展開データ格納バッファに書き込む。生成部27は、テンプレートデータの展開により、少なくとも1つ以上のテンプレートデータを展開データ格納バッファに書き込む。ステップS2002において、生成部27は、展開データ格納バッファからテンプレートデータを1つ読み出す。
再び図59を参照して、ステップS2003において、生成部27は、未だ読み出していないテンプレートデータが展開データ格納バッファに存在するか否かを判断する。テンプレートデータが存在すると判断された場合(ステップS2003においてYES)、翻訳装置1Aは、処理をステップS2002に戻す。一方、テンプレートデータが存在しないと判断された場合(ステップS2003においてNO)、翻訳装置1Aは、処理をステップS208に進める。ステップS208においては、制御部12が、テンプレートデータベース60A内に、未だ読み出していないテンプレートデータがテンプレートデータベースに存在するか否かを判断する。
図60は、図58におけるステップS2001の詳細の一部を示したフローチャートである。図61は、図58におけるステップS2001の詳細の残りの部分を示したフローチャートである。
図60を参照して、ステップS2101において、翻訳装置1Aは、ステップS202にて読み出した一つのテンプレートデータを、処理待ちバッファに格納する。例えば、翻訳装置1Aは、図57に示したテンプレートデータを処理待ちバッファに格納する。以下では、図57に示したテンプレートデータ(以下、「テンプレートデータ(ID1971−1)」と称する)が処理待ちバッファに格納された場合を例に挙げて説明する。
ステップS2103において、翻訳装置1Aは、処理待ちバッファから、テンプレートデータを1件読み出す。処理待ちバッファにテンプレートデータ(ID1971−1)のみが格納されているため、翻訳装置1Aは、このテンプレートデータ(ID1971−1)を読み出す。
ステップS2105において、翻訳装置1Aは、読み出したテンプレートデータ内に「|」といった区分けを示す記号が存在するか否かを判断する。記号「|」が存在すると判断された場合(ステップS2105においてYES)、翻訳装置1Aは、処理をステップS2111(図61参照)に進める。
記号「|」が存在しないと判断された場合(ステップS2105においてNO)、ステップS2107において、翻訳装置1Aは、テンプレートデータを展開データ格納バッファに書き込む。そして、ステップS2109において、翻訳装置1Aは、処理待ちバッファ内に読み出していないテンプレートデータが存在するか否かを判断する。テンプレートデータが存在すると判断された場合(ステップS2109においてYES)、翻訳装置1Aは、処理をステップS2103に戻す。一方、テンプレートデータが存在しないと判断された場合(ステップS2109においてNO)、翻訳装置1Aは、処理をステップS2002(図58参照)に進める。
テンプレートデータ(ID1971−1)は記号「|」を含んでいるため、翻訳装置1Aは、ステップS2105の後、ステップS2111を実行する。図61を参照して、ステップS2111において、翻訳装置1Aは、記号「|」を含む第2部を1つ読み出す。たとえば、翻訳装置1Aは、テンプレートデータ(ID1971−1)の第1テンプレートから、文字列W47(図57参照)を読み出す。
ステップS2113において、翻訳装置1Aは、読み出した第2部の「{}」内において「|」で仕切られて存在している各要素を、要素バッファに書き込む。具体的には、翻訳装置1Aは、図62に示すとおり、語句W48(副詞)と語句W49(副詞)と「 」(つまり空白)とを要素バッファの日本語の欄に書き込む。なお、図62は、1度目のステップS2113の処理において、要素が書き込まれた後の要素バッファの状態を示した図である。なお、第2テンプレートおよび第3テンプレートには、文字列W47に対応する第2部が存在しないため、翻訳装置1Aは、要素バッファの英語および中国語の欄について、「Null」の状態を維持する。
ステップS2115において、翻訳装置1Aは、要素内にラベルが存在するか否かを判断する。ラベルが存在すると判断された場合(ステップS2115においてYES)、ステップS2117において、翻訳装置1Aは、読み出した要素内に、「()」が存在するか否かを判断する。「()」が存在すると判断された場合(ステップS2117においてYES)、ステップS2119において、翻訳装置1Aは、まず、要素バッファにおいて、「(」を「{」に変更するとともに、「)」を「}」に変更する。さらに、ステップS2119において、翻訳装置1Aは、「{」の後にスロット番号を追記する。一方、「()」が存在しないと判断された場合(ステップS2117においてNO)、翻訳装置1Aは、要素バッファにおいて、要素全体を「()」で括るとともに、「{」の後にスロット番号を追記する。
一方、ラベルが存在しないと判断された場合(ステップS2115においてNO)、翻訳装置1Aは、処理をステップS2123に進める。ステップS2123において、翻訳装置1Aは、テンプレートデータを要素バッファ内の各要素を用いて書き換え、当該書き換えたテンプレートデータを処理待ちバッファに格納する。
上記のように、要素バッファに、語句W48と語句W49と「 」(つまり空白)とが書き込まれている場合(図62参照)、ステップS2115において、翻訳装置1Aは、ラベルが存在しないと判断する。このため、ステップS2123の処理の結果、翻訳装置1Aは、図63に示すテンプレートデータ、図64に示すテンプレートデータ、および図65に示すテンプレートデータを、処理待ちバッファに格納する。
なお、図63は、処理待ちバッファに格納した後の1つのテンプレートデータ(以下、「テンプレートデータ(1971−1_1)」と称する)を示した図である。なお、テンプレートデータ(1971−1_1)は、翻訳装置1Aが、テンプレートデータ(ID1971−1)の文字列W47を、語句W48(要素)を用いて書き換えることにより得られらデータである。
また、図64は、処理待ちバッファに格納した後の他のテンプレートデータ(以下、「テンプレートデータ(1971−1_2)」と称する)を示した図である。なお、テンプレートデータ(1971−1_2)は、翻訳装置1Aが、テンプレートデータ(ID1971−1)の文字列W47を、語句W49(要素)を用いて書き換えることにより得られるデータである。
さらに、図65は、処理待ちバッファに格納した後のさらに他のテンプレートデータ(以下、「テンプレートデータ(1971−1_3)」と称する)を示した図である。なお、テンプレートデータ(1971−1_3)は、翻訳装置1Aが、テンプレートデータ(ID1971−1)の文字列W47を、「 」(つまり空白)といった要素を用いて書き換えることにより得られらデータである。
翻訳装置1Aが、テンプレートデータ(1971−1_1)、テンプレートデータ(1971−1_2)、およびテンプレートデータ(1971−1_3)を処理待ちバッファに格納した場合、ステップS2103において、翻訳装置1Aは、当該格納した3つのテンプレートデータから、1つのテンプレートデータを読み出す。ここで、翻訳装置1Aが、テンプレートデータ(ID1971−1_1)を読み出したとする。この場合、翻訳装置1Aは、ステップS2105においては肯定的な判断をし、翻訳装置1Aは、処理をステップS2111に進める。
図66は、2度目のステップS2113の処理において、要素が書き込まれた後の要素バッファの状態を示した図である。図66を参照して、翻訳装置1Aは、「(&VB_EXPLAIN+v.kanou)」と「(&VB_PRONOUNCE+v.kanou)」と「(&VB_INTERPRET+v.kanou)」とを、要素バッファの日本語の欄に書き込む。また、翻訳装置1Aは、「(&VB_EXPLAIN+inf) it in」と「(&VB_PRONOUNCE+inf) it in」と「(&VB_INTERPRET+inf) it in」とを、要素バッファの英語の欄に書き込む。なお、翻訳装置1Aは、要素バッファの中国語の欄についても、日本語の欄および英語の欄と同様の処理を行なう。
要素バッファの状態が、ステップS2113の処理により図66に示す状態となった場合、要素内にラベルが存在するため、翻訳装置1Aは、ステップS2115において肯定的な判断を行い、処理をステップS2117に進める。さらに、読み出した要素内に「()」が存在するため、翻訳装置1Aは、ステップS2117において肯定的な判断を行い、処理をステップS2119に進める。
1度目のステップS2117の処理を行なった後、翻訳装置1Aは、要素バッファの各言語の欄において、まず、「(」を「{」に変更するとともに、「)」を「}」に変更する。さらに、翻訳装置1Aは、「{」の後にスロット番号「2」を追記する。なお、図67は、当該1度目のステップS2117の処理を行なった後の、要素バッファの状態を示した図である。
当該ステップS2117の後、翻訳装置1AがステップS2123の処理を行なうことにより、処理待ちバッファには、テンプレートデータ(ID1971−1_2)と、テンプレートデータ(ID1971−1_3)と、図68に示すテンプレートデータと、図69に示すテンプレートデータと、図70に示すテンプレートデータとが格納される。
なお、図68は、テンプレートデータ(ID1971−1_1)を、図67に示す要素1を用いて書き換えたテンプレートデータ(以下、「テンプレートデータ(ID1971−1_11)」と称する)を示した図である。また、図69は、テンプレートデータ(ID1971−1_1)を、図67に示す要素2を用いて書き換えたテンプレートデータ(以下、「テンプレートデータ(ID1971−1_12)」と称する)を示した図である。図70は、テンプレートデータ(ID1971−1_1)を、図67に示す要素3を用いて書き換えたテンプレートデータ(以下、「テンプレートデータ(ID1971−1_13)」と称する)を示した図である。
ステップS2123の後は、ステップS2103において、翻訳装置1Aは、処置待ちバッファから、上記5つのテンプレートデータのうち、1つのテンプレートデータを読み出す。
図60および図61に示す一連の処理が完了した時点において、展開データ格納バッファには、図68から図76に示す9つのテンプレートデータが書き込まれている。
なお、図71は、テンプレートデータ(ID1971−1_2)を、図67に示す要素1を用いて書き換えたテンプレートデータを示した図である。図72は、テンプレートデータ(ID1971−1_2)を、図67に示す要素2を用いて書き換えたテンプレートデータを示した図である。図73は、テンプレートデータ(ID1971−1_2)を、図67に示す要素3を用いて書き換えたテンプレートデータを示した図である。
また、図74は、テンプレートデータ(ID1971−1_3)を、図67に示す要素1を用いて書き換えたテンプレートデータを示した図である。図75は、テンプレートデータ(ID1971−1_3)を、図67に示す要素2を用いて書き換えたテンプレートデータを示した図である。図76は、テンプレートデータ(ID1971−1_3)を、図67に示す要素3を用いて書き換えたテンプレートデータを示した図である。
このように、翻訳装置1Aは、図57に示した1つのテンプレートデータに基づいて、図63から図65、および図71から図76に示した9つのテンプレートを生成することができる。
なお、上記においては、図57に示すとおり、複数の言語のテンプレートが1つのテンプレートデータに含まれる構成を例に挙げて説明したが、これに限定されるものではない。例えば、一つのテンプレートデータには一つの言語のテンプレートデータが含まれている構成としてもよい。この場合、上記一つの言語のテンプレートデータと対応関係にある他の言語のテンプレートデータが、当該一つの言語のテンプレートデータと関連付けられて記憶装置13Aに記憶されていればよい。
以上説明したように、翻訳装置1Aの記憶装置13Aには、少なくとも、日本語テンプレートを生成するための第1テンプレートと、当該日本語テンプレートと対応関係にある英語テンプレートとを生成するための第2テンプレートとが記憶されている。データ読出部21Aは、記憶装置13Aから第1テンプレートと第2テンプレートとを読出す。生成部27は、読出された第1テンプレートと第2テンプレートとに基づき、日本語テンプレートと当該テンプレートと対応関係にある英語テンプレートとをそれぞれ複数生成する。さらに、生成部27は、当該生成した日本語テンプレートと英語テンプレートとを記憶装置13Aに記憶させる。
したがって、翻訳装置1Aは、第1テンプレートから日本語テンプレートを複数生成できる。さらに、翻訳装置1Aは、第2テンプレートから当該日本語テンプレートと対応関係にある英語テンプレートを複数生成することができる。
それゆえ、翻訳装置1のように予め日本語テンプレートおよび英語テンプレートを記憶装置13に記憶しておく構成に比べ、翻訳装置1Aは、予め記憶しておくテンプレートの数を少なくすることができる。このため、翻訳装置1Aは、翻訳装置1に比べて、テンプレートを記憶させておく領域の容量を小さくすることができる。
また、第1テンプレートと第2テンプレートとは、所定の語句で構成された第1部と予め定められた複数の要素のうちの何れかの要素を選択可能な第2部とを含む。生成部27は、第1テンプレートおよび第2テンプレートにおいて互いに対応する位置の要素を、第1テンプレートおよび第2テンプレートにおいて順に選択することにより、日本語テンプレートと当該テンプレートに対応する英語テンプレートとをそれぞれ複数生成する。
したがって、翻訳装置1Aは、第2部に含まれる要素の数に応じた、日本語テンプレートおよび英語テンプレートを生成することができる。
また、図57に示したように、要素は可変部であってもよい。要素が可変部である場合には、翻訳装置1Aは、要素が可変部でない場合よりも、数多くの文例を作成することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。