(57)【特許請求の範囲】
【請求項１】
類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、
翻訳を行う対象として入力された第１の入力文に対し、形態素解析を実行する解析手段と、
前記解析手段によって形態素解析が実行された前記第１の入力文と前記例文パタンとの類似度と前記例文パタンが前記第１の入力文をカバーしている割合を示すカバー率との大小関係に基づいて、前記記憶手段から前記第１の入力文に応じた例文パタンを検索する検索手段と、
前記解析手段によって形態素解析が実行された第１の入力文と前記検索手段によって検索された例文パタンとに基づいて、前記第１の入力文を、前記第１の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第２の入力文へ変換する変換手段と、
前記例文パタンと前記第２の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、前記例文パタンと前記第２の入力文との前記距離を例文パタン毎に算出する算出手段と、
前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第２の入力文の形態素と前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする写像を抽出する抽出手段と、
前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第１の対応関係を構成する第１の入力文と第２の対応関係を構成する第２の入力文とが隣接し、かつ、前記第１の入力文に対応する第１の例文パタンと前記第２の入力文に対応する第２の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、
前記判定手段で修正判定のとき、第２の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第２の入力文の形態素の区切りを修正し、修正した第２の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、
前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第１の入力文を翻訳する翻訳手段と、
を備えることを特徴とする翻訳装置。
【請求項２】
類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、
入力文を示す情報を入力する入力手段と、
翻訳を行う対象として前記入力手段により入力された第１の入力文に対し、形態素解析を実行する解析手段と、
前記解析手段によって形態素解析が実行された前記第１の入力文と前記例文パタンとの類似度と前記例文パタンが前記第１の入力文をカバーしている割合を示すカバー率との大小関係に基づいて、前記記憶手段から前記第１の入力文に応じた例文パタンを検索する検索手段と、
前記解析手段によって形態素解析が実行された第１の入力文と前記検索手段によって検索された例文パタンとに基づいて、前記第１の入力文を、前記第１の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第２の入力文へ変換する変換手段と、
前記例文パタンと前記第２の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、前記例文パタンと前記第２の入力文との前記距離を例文パタン毎に算出する算出手段と、
前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第２の入力文の形態素と前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする写像を抽出する抽出手段と、
前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第１の対応関係を構成する第１の入力文と第２の対応関係を構成する第２の入力文とが隣接し、かつ、前記第１の入力文に対応する第１の例文パタンと前記第２の入力文に対応する第２の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、
前記判定手段で修正判定のとき、第２の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第２の入力文の形態素の区切りを修正し、修正した第２の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、
前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第１の入力文を翻訳する翻訳手段と、を備えることを特徴とする翻訳システム。
【請求項３】
類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と接続されたコンピュータを、
翻訳を行う対象として入力された第１の入力文に対し、形態素解析を実行する解析手段と、
前記解析手段によって形態素解析が実行された前記第１の入力文と前記例文パタンとの類似度と前記例文パタンが前記第１の入力文をカバーしている割合を示すカバー率との大小関係に基づいて、前記記憶手段から前記第１の入力文に応じた例文パタンを検索する検索手段と、
前記解析手段によって形態素解析が実行された第１の入力文と前記検索手段によって検索された例文パタンとに基づいて、前記第１の入力文を、前記第１の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第２の入力文へ変換する変換手段と、
前記例文パタンと前記第２の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、前記例文パタンと前記第２の入力文との前記距離を例文パタン毎に算出する算出手段と、
前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第２の入力文の形態素と前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする写像を抽出する抽出手段と、
前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第１の対応関係を構成する第１の入力文と第２の対応関係を構成する第２の入力文とが隣接し、かつ、前記第１の入力文に対応する第１の例文パタンと前記第２の入力文に対応する第２の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、
前記判定手段で修正判定のとき、第２の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第２の入力文の形態素の区切りを修正し、修正した第２の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、
前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第１の入力文を翻訳する翻訳手段と、して機能させることを特徴とする翻訳プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、翻訳装置及び翻訳プログラムに関する。
【背景技術】
【０００２】
従来から、翻訳作業の効率を向上させるために、翻訳対象とする文と類似した文を検索する類似文検索装置が知られている（例えば、特許文献１）。
【０００３】
この類似文検索装置は、例文を記憶する記憶手段と、翻訳対象とする文を受け付ける受付手段と、受付手段が受け付けた文と記憶手段が記憶する文とが類似する程度を表す類似度に基づいて記憶手段が記憶する例文を出力する出力手段とを具備することを特徴とする。
【０００４】
尚、類似度は、翻訳対象とする文に含まれる単語のうちで記憶手段が記憶する例文の中に出現する単語数を、翻訳対象とする文に含まれる単語数で除した値をいう。
【０００５】
また、翻訳対象とする原文を構成する形態素間の意味構造に近似した例文を検索し、検索した例文に基づいて原文を翻訳できる自動翻訳装置が知られている（例えば、特許文献２）。
【０００６】
この自動翻訳装置は、翻訳対象とする原文を入力する入力手段と、入力した原文を構成する形態素間の意味構造が近似する例文を選択する選択手段と、選択された例文に基づいて原文を翻訳する翻訳手段と、翻訳手段が翻訳した結果を表示する表示手段とを備えることを特徴としている。
【０００７】
更に、日本語で表された文と日本語で表された文を翻訳した文とを共通の特徴に基づいて類型した対訳パタンを用いて翻訳する翻訳処理装置が知られている（例えば、特許文献３）。
【０００８】
この翻訳処理装置は、入力文を構成する所定の文字列である定型部、及びそれ以外の任意の文字列である自由部で表される対訳パタンを用いて文を翻訳するパタン翻訳手段と、パタン翻訳手段が一つの対訳パタンを用いて複数の文を翻訳するように、自由部が文に存在せずとも定型部が一致する文に対しては対訳パタンを照合するパタン照合手段とを備えることを特徴としている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１０７５９７号公報
【特許文献２】特開平０６−８３８６４号公報
【特許文献３】特開平０８−８７５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的とするところは、少ない計算量で精度良く翻訳できる翻訳装置、翻訳システム及び翻訳プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の請求項１に係る翻訳装置は、類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、翻訳を行う対象として入力された第１の入力文に対し、形態素解析を実行する解析手段と、前記解析手段によって形態素解析が実行された前記第１の入力文と前記例文パタンとの類似度と前記例文パタンが前記第１の入力文をカバーしている割合を示すカバー率との大小関係に基づいて、前記記憶手段から前記第１の入力文に応じた例文パタンを検索する検索手段と、前記解析手段によって形態素解析が実行された第１の入力文と前記検索手段によって検索された例文パタンとに基づいて、前記第１の入力文を、前記第１の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第２の入力文へ変換する変換手段と、前記例文パタンと前記第２の入力文と前記距離を求める所定の処理に基づいて、前記例文パタンと前記第２の入力文との前記距離を例文パタン毎に算出する算出手段と、前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第２の入力文の形態素と前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする写像を抽出する抽出手段と、前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第１の対応関係を構成する第１の入力文と第２の対応関係を構成する第２の入力文とが隣接し、かつ、前記第１の入力文に対応する第１の例文パタンと前記第２の入力文に対応する第２の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、前記判定手段で修正判定のとき、第２の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第２の入力文の形態素の区切りを修正し、修正した第２の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第１の入力文を翻訳する翻訳手段と、を備えることを特徴とするものである。
【００１５】
本発明の請求項２に係る翻訳システムは、類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、入力文を示す情報を入力する入力手段と、翻訳を行う対象として前記入力手段により入力された第１の入力文に対し、形態素解析を実行する解析手段と、前記解析手段によって形態素解析が実行された前記第１の入力文と前記例文パタンとの類似度と前記例文パタンが前記第１の入力文をカバーしている割合を示すカバー率との大小関係に基づいて、前記記憶手段から前記第１の入力文に応じた例文パタンを検索する検索手段と、前記解析手段によって形態素解析が実行された第１の入力文と前記検索手段によって検索された例文パタンとに基づいて、前記第１の入力文を、前記第１の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第２の入力文へ変換する変換手段と、前記例文パタンと前記第２の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、前記例文パタンと前記第２の入力文との前記距離を例文パタン毎に算出する算出手段と、前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第２の入力文の形態素と前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする写像を抽出する抽出手段と、前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第１の対応関係を構成する第１の入力文と第２の対応関係を構成する第２の入力文とが隣接し、かつ、前記第１の入力文に対応する第１の例文パタンと前記第２の入力文に対応する第２の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、前記判定手段で修正判定のとき、第２の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第２の入力文の形態素の区切りを修正し、修正した第２の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第１の入力文を翻訳する翻訳手段と、を備えることを特徴とするものである。
【００１６】
本発明の請求項３に係る翻訳プログラムは、類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と接続されたコンピュータを、翻訳を行う対象として入力された第１の入力文に対し、形態素解析を実行する解析手段と、前記解析手段によって形態素解析が実行された前記第１の入力文と前記例文パタンとの類似度と前記例文パタンが前記第１の入力文をカバーしている割合を示すカバー率との大小関係に基づいて、前記記憶手段から前記第１の入力文に応じた例文パタンを検索する検索手段と、前記解析手段によって形態素解析が実行された第１の入力文と前記検索手段によって検索された例文パタンとに基づいて、前記第１の入力文を、前記第１の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第２の入力文へ変換する変換手段と、前記例文パタンと前記第２の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、前記例文パタンと前記第２の入力文との前記距離を例文パタン毎に算出する算出手段と、前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第２の入力文の形態素と前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする写像を抽出する抽出手段と、前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第１の対応関係を構成する第１の入力文と第２の対応関係を構成する第２の入力文とが隣接し、かつ、前記第１の入力文に対応する第１の例文パタンと前記第２の入力文に対応する第２の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、前記判定手段で修正判定のとき、第２の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第２の入力文の形態素の区切りを修正し、修正した第２の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第１の入力文を翻訳する翻訳手段と、して機能させることを特徴とするものである。
【発明の効果】
【００１７】
請求項1の構成によれば、複雑な入力文書についても、少ない計算量で精度良く効率的に翻訳できる。
請求項２の構成によれば、複雑な入力文書についても、少ない計算量で精度良く効率的に翻訳できる。
請求項３の構成によれば、複雑な入力文書についても、少ない計算量で精度良く効率的に翻訳できる。
【図面の簡単な説明】
【００１８】
【図１】本発明の翻訳装置で構成される翻訳システムの一実施形態を示す構成図である。
【図２】本発明の翻訳装置の一構成例を表す図である。
【図３】このソフトウェア制御を実現する翻訳装置のハードウェアの一構成例を表す図である。
【図４】例文パタンの一例を表す図である。
【図５】記憶部が記憶する例文パタン対訳辞書の一構成例を表す図である。
【図６】記憶部が記憶する検索ツリーの一例を表す図である。
【図７】検索部の一構成例を表す機能ブロック図である。
【図８】変換部が変換対象とする入力文を構成する文字列と、変換後の文字列とを表す図である。
【図９】変換部が実行する変換処理の一例を表すフローチャートの一部である。
【図１０】変換部が実行する変換処理の一例を表すフローチャートの他部である。
【図１１】変換部が重みを算出するために実行する重み算出処理の一例を表すフローチャートの一部である。
【図１２】変換部が重みを算出するために実行する重み算出処理の一例を表すフローチャートの他部である。
【図１３】算出部が実行する距離算出処理の一例を表すフローチャートの一部である。
【図１４】算出部が実行する距離算出処理の一例を表すフローチャートの他部である。
【図１５】算出部が実行する距離算出処理の一例を表すフローチャートの他部である。
【図１６】算出部が実行する距離算出処理の一例を表すフローチャートの他部である。
【図１７】抽出部の一構成例を表す機能ブロック図である。
【図１８】関係特定部が実行する関係特定処理の一例について概説するための図である。
【図１９】関係特定部が実行する関係特定処理の一例を表すフローチャートの一部である。
【図２０】関係特定部が実行する関係特定処理の一例を表すフローチャートの他部である。
【図２１】関係特定部が実行する関係特定処理の一例を表すフローチャートの一部である。
【図２２】関係特定部が実行する関係特定処理の一例を表すフローチャートの他部である。
【図２３】関係選択部が実行する関係選択処理の一例を表すフローチャートの一部である。
【図２４】関係選択部が実行する関係選択処理の一例を表すフローチャートの他部である。
【図２５】翻訳部が翻訳に用いる写像を説明するための図である。
【図２６】実施例２において単語検索部が実行するハッシュ処理の一例を表すフローチャートである。
【図２７】本発明の第３の実施例に係る翻訳システムの機能的な構成を示すブロック図である。
【図２８】本発明の第３の実施例に係る翻訳装置の要部の詳細構成を示すブロック図である。
【図２９】述語を修飾する副詞がある場合の不整合例を示す説明図である。
【図３０】一単語だけに対応させた場合の不整合例を示す説明図である。
【図３１】固定部分が複数回出現する場合の不整合例を示す説明図である。
【図３２】句として対応させた場合の不整合例を示す説明図である。
【図３３】形態素解析誤りの場合の不整合例を示す説明図である。
【図３４】選択部を説明する対応関係の説明図である。
【図３５】判定部を説明する対応関係の説明図である。
【図３６】修正部を説明する対応関係の説明図である。
【図３７】具体的な関係例を示す説明図である。
【図３８】最初のマッチング結果の一部を示す対応関係図である。
【図３９】最初のマッチング結果の残りを示す対応関係図である。
【図４０】マッチング（１）（２）の修正による再マッチング結果を示す対応関係図である。
【図４１】マッチング（３）（８）の修正による再マッチング結果を示す対応関係図である。
【図４２】実施例３の要部構成での動作処理部分を示すフローチャートである。
【図４３】実施例３の要部構成での動作処理の残部を示すフローチャートである。
【図４４】本発明の第４の実施例に係る翻訳システムの機能的な構成を示すブロック図である。
【図４５】翻訳装置１００２の主要部の構成を示す詳細ブロック図である。
【図４６】最小距離値により最適候補が除外される場合の入力文と候補の例文パタンとの対応関例を示す図である。
【図４７】優先条件により最適候補が除外されるの入力文と候補の例文パタンとの対応関例を示す図である。
【図４８】例文パタンを入力文との類似度とカバー率の関係で範囲を絞る例を示すグラフである。
【図４９】実施例４における句の評価処理の手順を示すフローチャートである。
【図５０】実施例４の要部構成での動作処理部分を示すフローチャートである。
【図５１】実施例４の要部構成での動作処理の残部を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
【実施例１】
【００２０】
図１は、本発明の第1の実施例に係る翻訳装置を含む翻訳システムの基本的な実施形態を示す構成図である。図１に示す翻訳システム１０は、翻訳装置１０００、表示装置２０００、及び入力装置３０００で構成される。翻訳装置１０００は、例えば、パーソナル・コンピュータで構成され、表示装置２０００及び入力装置３０００に接続している。
【００２１】
翻訳装置１０００は、入力装置３０００から第１の言語で表された文を取得し、取得した文を第２の言語で表された文へ翻訳し、翻訳した文を表示装置２０００に表示させる。
【００２２】
本実施例において、言語は、中国語、日本語、及び英語等の自然言語のみならず、エスペラント等の人工言語を含む。また、本実施例では、第１の言語は日本語であり、かつ第２の言語は中国語であるとして説明を行う。しかしこれに限定される訳ではなく、例えば、第１の言語は中国語であり、かつ第２の言語は日本語であるように、第１の言語と第２の言語とが相違すれば良い。
【００２３】
ここで図２を参照して、翻訳装置１０００の構成について説明をする。図２は、翻訳装置１０００の一構成例を表す図である。図２に示す翻訳装置１０００は、記憶部１１００、解析部１２００、検索部１３００、変換部１４００、算出部１５００、抽出部１６００、及び翻訳部１７００で構成される。解析部１２００、検索部１３００、変換部１４００、算出部１５００、抽出部１６００、及び翻訳部１７００が有する機能は、翻訳装置１０００が実行するソフトウェア制御により実現される。
【００２４】
ここで図３を参照して、ソフトウェア制御を実行するための翻訳装置１０００のハードウェア構成について説明する。図３は、このソフトウェア制御を実現する翻訳装置１０００のハードウェアの一構成例を表す図である。
【００２５】
翻訳装置１０００は、例えば、ＣＰＵ（Central Processing Unit）等の演算部１００１、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の読み出し専用メモリであるＲＯＭ１００２（Read-Only Memory ）、ＤＲＡＭ（Dynamic  RAM）又はＳＲＡＭ（Static  RAM）等の揮発性メモリ及びＮＶＲＡＭ（Non Volatile RAM）等の不揮発性メモリで構成されるＲＡＭ１００３（Random Access Memory）、並びにハードディスク等の外部記憶装置で構成される外部記憶部１００４で構成され、演算部１００１、ＲＯＭ１００２、ＲＡＭ１００３、及び外部記憶部１００４は互いにバス１００５によって接続している。
【００２６】
ソフトウェア制御は、ＲＯＭ１００２又は外部記憶部１００４に格納したプログラムであるアプリケーションを演算部１００１が読込み、読込んだアプリケーションに従って演算部１００１が演算を行うことにより上記各部の機能を実現する。なお、ＲＡＭ１００３には、演算結果のデータが書き込まれ、特にＮＶＲＡＭには、電源オフ時にバックアップが必要なデータが保存される。
【００２７】
次に図２に戻り、引き続き翻訳装置１０００の構成について説明する。記憶部１１００は、例えば、ＲＡＭ１００３又は外部記憶部１００４で構成され、検索部１３００及び翻訳部１７００に接続している。記憶部１１００は、文を構成する文字列に基づいて例文を類別した例文パタンを記憶する。
【００２８】
ここで図４を参照して、例文パタンについて説明を行う。図４は、例文パタンの一例を表す図である。図４において、例文パタンＰＥは、例文ＳＥ１から４を類別するパタンである。
【００２９】
例文パタンＰＥは、類別される例文に共通な単語、又は節で構成される固定部分ＰＦと、固定部分ＰＦではない単語又は節であるが、類別される例文間で品詞が共通する単語又は節で構成される可変部分ＰＶとで構成される。可変部分ＰＶは、それらの品詞が共通する単語又は節を、例えば、Ｖ１及びＶ２といった記号を用いて表す。
【００３０】
よって、例文パタンＰＥは類別される例文に共通な文字列（以下単に、共通文字列という）で構成され、可変部分ＰＶは類別される例文に共通しない文字列を表す記号（以下単に、非共通文字列という）で構成される。つまり、非共通文字列は、例文パタンを構成する共通文字列以外の文字列をいう。
【００３１】
ここで、節とは、文法上、従位接続詞や関係詞が導く文であって、主語と述語とが一組になり完結した文をいう。しかし本実施例では、動詞、形容詞、及び形容動詞である単語とそれらに付随して使用される助詞、助動詞、及び補助動詞である単語とを合わせて節といい、それぞれ動詞節、形容詞節、及び形容動詞節という。また、節の品詞とは、動詞節、形容詞節、及び形容動詞節のいずれかへ節を分類した区分けをいう。
【００３２】
具体的には、図４に示すように、「渡してください」という節ＳＣ１から４及びＰＣは、「渡す」という動詞である単語、「て」という接助詞である単語、及び「くださる」という補助動詞である単語で構成される。また、動詞である単語「渡す」とそれに付随して使用される単語「て」及び「くださる」とで構成される節ＳＣ１から４及びＰＣの品詞を動詞節という。
【００３３】
固定部分ＰＦは、例文に共通な単語又は節のみならず、その同義語を表すＦＩＸ内容情報、可変部分であるか固定部分であるかを表すＴＹＰＥ情報、並びに固定部分を構成する単語の品詞を表す品詞情報、固定部分を構成する単語が属している語彙体系を表す情報である言語体系属性名等で構成される。
【００３４】
可変部分ＰＶは、共通する品詞を表す情報である変数名情報、及び可変部分であるか固定部分であるかを表すＴＹＰＥ情報、可変部分の語彙体系属性名等で構成される。
【００３５】
本記実施例において、変数名情報は、共通する品詞が名詞であることを表す名詞フレーズ、形容詞であることを表す形容詞フレーズ、及び副詞であることを表す副詞フレーズを含む。また、本実施例において、可変部分ＰＶは、類別される例文間で品詞が共通する単語又は節で構成されるとして説明したが、これに限定される訳ではなく、共通する性質の内容を表す単語又は節で構成される実施例を採用できる。共通する性質の内容を表す単語又は節の具体例としては、例えば、時間、数量、地名、又は人名を表す単語又は節を挙げることができる。
【００３６】
次に図２に戻り、引き続き翻訳装置１０００の構成について説明する。
記憶部１１００は、第１の言語で表された例文パタンと、第１の言語で表された例文パタンを第２の言語へ翻訳した例文パタンである対訳例文パタンとを対応付けて記憶する。
【００３７】
また、記憶部１１００は、例文パタンを構成する単語、節、又は記号（以下単に、単語等という）である文字列と、例文パタンを翻訳した対訳例文パタンを構成する単語等である文字列とを、それぞれの文字列が意味する内容に基づいて対応付けて記憶する。尚、例文パタンと対訳例文パタンとを関連付けた情報を、例文パタン対訳辞書という。例文パタン対訳辞書は、検索部１３００及び翻訳部１７００によって参照される。
【００３８】
ここで、図５を参照して、記憶部１１００が記憶する例文パタン対訳辞書について説明を行う。図５は、記憶部１１００が記憶する例文パタン対訳辞書の一構成例を表す図である。
【００３９】
図に示す例文パタン対訳辞書１１１０は、レコード１からｎで構成される。レコード１からｎは、第１言語で表された例文パタンＡと、例文パタンＡを第２の言語に翻訳した例文パタンである対訳例文パタンＢと、例文パタンＡ及び対訳例文パタンＢの対（以下単に、パタン対訳ペアという）を識別するＩＤと、例文パタンＡ及びＢを構成する単語等である文字列の対応関係を表す対応関係情報Ｆ２とを関連付けて保存する。尚、レコード１からｎは、同じパタン対訳ペアを保存することはない。
【００４０】
次に、図５を参照したまま、レコード１からｎが保存する対応関係情報Ｆ２について説明する。ここでは、例文パタンＡが単語等である５つの文字列 a1 から a5 で構成され、かつ対訳例文パタンＢが単語等である６つの文字列 b1 から b6 で構成されている場合を例に挙げて説明を行う。
【００４１】
対応関係情報Ｆ２は、文字列が例文パタンＡ及び対訳例文パタンＢにおいて使用される順番を用いて文字列の対応関係を表す。
【００４２】
具体的には、例文パタンＡで n 番目に使用される文字列 an が表す意味と、対訳例文パタンＢで m 番目に使用される文字列 bm が表す意味とが同じである場合には、対応関係を「(n:m)」として表す。
【００４３】
また、例文パタンＡで n 番目に使用される文字列 an が表す意味と、対訳例文パタンＢで m 番目及び m+1 番目に使用される２つの文字列が表す意味とが同じ意味を表す場合には、「(n:m,m+1)」として表す。
【００４４】
逆に、例文パタンＡで n 番目及び n+1 番目に使用される２つの文字列 an 及び an+1が表す意味と、対訳例文パタンＢで m 番目に使用される文字列 bm が表す意味とが同じ意味を表す場合には、「(n,n+1:m)」として表す。
【００４５】
同様に、例文パタンＡで n 番目及び n+1 番目に使用される２つの文字列 an 及び an+1が表す意味と、対訳例文パタンＢで m 番目及び m+1 番目に使用される２つの文字列が表す意味とが同じ意味を表す場合には、「(n,n+1:m,m+1)」として表す。
【００４６】
本実施例では、例文パタンＡで使用される１つの文字列と対訳例文パタンＢで使用される１つの文字列とが同じ意味を表す場合、１つの文字列と２つの文字列とが同じ意味を表す場合、２つの文字列と１つの文字列とが同じ意味を表す場合、２つの文字列と２つの文字列とが同じ意味を表す場合の対応関係を表す表記方法について説明したが、これに限定される訳ではない。
【００４７】
例えば、j個（j>=1）の文字列とk個（k>=1）の文字列とが同じ意味を表す場合には、一般的に、「(n,n+1,…,n+j:m,m+1,…,m+k)」として表す構成を採用できる。
【００４８】
更に、例文パタンＡで n 番目に使用される文字列 an が表す意味と同じ意味を表す文字列が対訳例文パタンＢで使用されない場合には、「(n:0)」として表す。また逆に、対訳例文パタンＢで m 番目に使用される文字列 bm が表す意味と同じ意味を表す文字列が例文パタンＡで使用されない場合には、「(0:m)」として表す。
【００４９】
よって一例として、図６に示す対応関係情報
F2(A,B) =「(1:1),(2:3),(3:4,5),(5:6),(4:0),(0:2)」
を挙げて説明する。対応関係情報 F2(A,B) は、例文パタンＡで１番目に使用される文字列 a1 の表す意味が対訳例文パタンＢで１番目に使用される文字列 b1 の意味と同じであり、例文パタンＡで２番目に使用される文字列 a2 の表す意味が対訳例文パタンＢで３番目に使用される文字列 b3 の意味と同じであり、例文パタンＡで３番目に使用される文字列 a3 の表す意味が対訳例文パタンＢで４番目及び５番目に使用される文字列 b4 及び b5 の意味と同じであり、例文パタンＡで５番目に使用される文字列 a5 の表す意味が対訳例文パタンＢで６番目に使用される文字列 b6 の意味と同じであり、例文パタンＡで４番目に使用されるa4 と同じ意味を表す文字列が対訳例文パタンＢで使用されず、かつ対訳例文パタンＢで２番目に使用される文字列 b2 と同じ意味を表す文字列が例文パタンＡで使用されないという対応関係を表す。
【００５０】
また、記憶部１１００は、例文パタンを構成する単語に基づいて例文パタンを検索するために用いるツリー（以下単に、検索ツリーという）を記憶する。検索ツリーは、例文パタンを構成する単語と、例文パタンを識別する識別情報とを関連付けたトライ構造を有するツリーである。
【００５１】
ここで、トライ構造(TRIE structure)を有するツリーは、言語情報処理分野において、検索キーの共通する文字列を併合して得られる木構造をいう。検索ツリーは、後述する検索部１３００によって参照される。
【００５２】
ここで図６を参照して、記憶部１１００が記憶する検索ツリーについて説明を行う。図６は、記憶部１１００が記憶する検索ツリーの一例を表す図である。
【００５３】
図６に表す検索ツリー１１２０は、それぞれ１つの文字を表すノードＮ、及びノード同士を、有向性を持って接続するリンクＬとで構成される。
【００５４】
検索ツリー１１２０は、３つの検索キー「あい」、「あいさい」、及び「あいさつ」から得られたツリーである。
【００５５】
具体的には、検索キー「あい」、「あいさい」、及び「あいさつ」に共通する部分の文字列「あい」を、文字「あ」を表すノードＮ００と、文字「い」を表すノードＮ０１と、ノードＮ００からノードＮ０１へ向かって接続するリンクＬ０１とを用いて併合して表す。
【００５６】
同様に、検索キー「あいさい」及び「あいさつ」に共通する部分の文字列「あいさ」を、文字「あ」を表すノードＮ００と、文字「い」を表すノードＮ０１と文字「さ」を表すノードＮ１１と、ノードＮ００からノードＮ０１へ向かって接続するリンクＬ０１と、ノードＮ０１からノードＮ１１へ向かって接続するリンクＬ１１とを用いて併合して表す。
【００５７】
尚、ノードＮ００をルート（根）という。よって、検索キーは、ルートであるノードＮ００からリンクＬが表す方向に従って後述する単語フラグが立ったノードＮに到達するまでに辿ったノードＮが表す文字を順に並べた文字列として表される。
【００５８】
具体例として検索キー「あいさい」を挙げると、このキーは、ルートＮ００からリンクＬ０１、１１、及び１２が表す方向に従って単語フラグが立ったノードＮ１２に到達するまでに辿ったノードＮ００、０１、Ｎ１１、及びＮ１２が表す文字を順に並べた文字列として表される。
【００５９】
また、検索ツリー１１２０を構成するあるノードＮに対して、直近上位の階層に属し、かつリンクＬが張られたノードＮを親ノードといい、直近下位の階層に属し、かつリンクＬが張られたノードＮを子ノードといい、同位の階層に属し、かつ張られたリンクＬが向かう先のノードＮを右兄弟ノードという。
【００６０】
具体例として、ノードＮ１１を挙げると、ノードＮ１１に対してノードＮ０１は親ノードであり、ノードＮ２１は子ノードであり、ノードＮ１２は右兄弟ノードである。
【００６１】
次に、記憶部１１００が記憶する情報であって、検索ツリー１１２０を表す情報について説明を行う。
【００６２】
検索ツリー１１２０を表す情報は、検索ツリー１１２０を構成するノードＮを表す情報で構成される。ノードＮを表す情報は、ノードＮを識別する情報であるノードＩＤ、ノードＮが有する文字を表す文字情報、検索キーの終端の文字であることを表す単語フラグ、ノードＮの子ノードのノードＩＤを表す子ノードＩＤ、ノードＮの親ノードのノードＩＤを表す親ノードＩＤ、ノードＮの右兄弟ノードのノードＩＤを表す右兄弟ノードＩＤ、及びレコードＩＤとで構成される。尚、ノードＮを表す情報を構成するレコードＩＤは、インデックス配列の要素であるレコードを識別する情報を表す。
【００６３】
ここで、記憶部１１００は、インデックス配列１１３０を記憶する。インデックス配列１１３０は、後述する検索部１３００によって参照される。
【００６４】
インデックス配列１１３０の要素であるレコードは、同じ単語（つまり、同じ検索キー）で構成される例文パタンを識別する情報（つまり、パタン対訳ペアのＩＤ）と、同じ単語で構成される例文パタンを識別する他の情報を保存したレコードＩＤとを関連付けて保存することで、リスト構造を実現している。
【００６５】
よって、ノードＮを表す情報を構成するレコードＩＤは、ルートＮ００からノードＮまでに辿ったノードが表す文字で構成される検索キーを含む例文パタンを識別する情報を保存したレコードの識別情報を表す。
【００６６】
具体例としては、図６に示すように、ノードＮ１２を表す情報ＩＮ１２を構成するレコードＩＤは、ルートＮ００からノードＮ１２までに辿ったノードが表す文字で構成される検索キー「あいさつ」を含む例文パタンを識別する情報を保存したレコード２の識別情報を表す。
【００６７】
また具体例としては、インデックス配列１１３０の要素であるレコード２は、同じ単語「あいさつ」で構成される例文パタンを識別するパタン対訳ペアのＩＤと、同じ単語「あいさつ」で構成される例文パタンを識別する他の情報を保存したレコード７のレコードＩＤとを関連付けて保存し、レコード７は、単語「あいさつ」で構成される例文パタンのパタン対訳ペアのＩＤと、同じ単語「あいさつ」で構成される例文パタンの他の識別情報を保存したレコード１２のレコードＩＤとを関連付けて保存することで、リスト構造を実現している。
【００６８】
本実施例において、ノードＮは検索キーを構成する１文字を表すとして説明したが、これに限定される訳ではなく、検索キーを構成する１文字が１バイトで表される文字である場合に、ノードＮは検索キーを構成する１文字の高バイト（High Byte）及び低バイト（Low Byte）を表す実施例を採用できる。この構成によれば、少ない計算量で情報を検索できる。
【００６９】
更に、記憶部１１００は、第１の言語で表された単語と、第２の言語で表された単語とを単語が表す意味に基づいて関連付けた単語辞書、及び第１の言語で表された節又は文と、第２の言語で表された節又は文とを節又は文が表す意味に基づいて関連付けた例文対訳辞書を記憶する。単語辞書及び例文対訳辞書は、後述する翻訳部１７００によって参照される。
【００７０】
ここで図２に戻り、引き続き翻訳装置１０００の構成について説明を行う。
解析部１２００は、検索部１３００及び入力装置３０００に接続している。解析部１２００は、後述する解析処理を実行することで、入力装置３０００が翻訳対象として入力した入力文を形態素解析することで、入力文を構成する形態素を取得する。
【００７１】
ここで、解析部１２００が実行する解析処理の一例について説明を行う。
【００７２】
先ず、解析部１２００は、入力装置３０００から第１の言語で表された入力文を取得する。次に、解析部１２００は、取得した入力文に対して、形態素解析を実行して形態素を取得する。
【００７３】
その後、解析部１２００は、動詞、形容詞、及び形容動詞と、それに付随する助詞、助動詞、及び補助動詞である形態素を纏めて１つの節とする。
【００７４】
次に、解析部１２００は、取得した形態素で構成される単語及び節を検索部１３００へ出力する。次に、解析部１２００は、解析処理の実行を終了する。
【００７５】
尚、本実施例において、解析部１２００が処理対象とする文は第１の言語である日本語で表されるため、解析部１２００が実行する形態素解析は、奈良先端科学技術大学院大学のChasen（茶筌） を用いて実行できる。
【００７６】
また、第１の言語が中国語である場合には、清華大学の Seg & POS ツール、又は中国東北大学の CiPosSDK を用いて形態素解析することができる。
【００７７】
検索部１３００は、記憶部１１００、解析部１２００、及び変換部１４００に接続している。検索部１３００は、後述する検索処理を実行することで、入力文を構成する単語で構成される例文パタンを検索する。
【００７８】
ここで図７を参照して、検索部１３００の構成について説明を行う。図７は、検索部１３００の一構成例を表す機能ブロック図である。
【００７９】
図７に示す検索部１３００は、単語検索部１３１０及び例文パタン検索部１３２０で構成される。
【００８０】
単語検索部１３１０は、記憶部１１００、解析部１２００、及び例文パタン検索部１３２０に接続する。単語検索部１３１０は、後述する単語検索処理を実行することで、インデックス配列の要素であるレコードを識別するレコードＩＤを取得する。尚、単語検索部１３１０が検索するレコードＩＤで識別されるレコードは、入力文を構成する単語で構成される例文パタンを識別する識別情報を保存している。
【００８１】
ここで、単語検索部１３１０が実行する単語検索処理の一例について説明を行う。
【００８２】
先ず、単語検索部１３１０は、解析部１２００から、入力文を構成する単語及び節を取得する。次に、単語検索部１３１０は、取得した単語及び節から入力文を構成する単語を抽出する。
【００８３】
その後、単語検索部１３１０は、抽出した単語に一致する検索キーを、記憶部１１００が記憶する検索ツリーから検索する。次に、単語検索部１３１０は、検索した検索キーの終端の文字を表すノードを特定する。
【００８４】
その後、単語検索部１３１０は、特定したノードを表す情報を取得し、インデックス配列１１３０のレコードＩＤを取得する。次に、単語検索部１３１０は、取得したレコードＩＤを例文パタン検索部１３２０へ出力する。
【００８５】
尚、単語検索部１３１０は、解析部１２００から取得した単語及び節をも例文パタン検索部１３２０へ出力する。その後、単語検索部１３１０は、単語検索処理の実行を終了する。
【００８６】
例文パタン検索部１３２０は、記憶部１１００、単語検索部１３１０、及び変換部１４００に接続する。例文パタン検索部１３２０は、後述する例文パタン検索処理を実行することで、入力文を構成する単語で構成される例文パタンを検索する。
【００８７】
ここで、例文パタン検索部１３２０が実行する例文パタン検索処理の一例について説明する。
【００８８】
先ず、例文パタン検索部１３２０は、単語検索部１３１０からレコードＩＤを取得する。尚、例文パタン検索部１３２０は、入力文の単語及び節をも取得する。
【００８９】
次に、例文パタン検索部１３２０は、記憶部１１００が記憶するインデックス配列の要素であるレコードをレコードＩＤに基づいて検索する。
【００９０】
次に、例文パタン検索部１３２０は、記憶部１１００が記憶するインデックス配列の要素であるレコードをレコードＩＤに基づいて検索する。
【００９１】
その後、例文パタン検索部１３２０は、検索したレコードが保存する例文パタンを識別する識別情報（つまり、例文パタン対訳ペアのＩＤ）と、他のレコードを識別するレコードＩＤとを取得する。次に、例文パタン検索部１３２０は、取得した識別情報に基づいて対になる例文パタンと対訳例文と対応関係情報Ｆ２とを検索する。
【００９２】
その後、例文パタン検索部１３２０は、検索したレコードが他のレコードを識別するレコードＩＤを保存するか否か判断する。例文パタン検索部１３２０は、他のレコードＩＤを保存すると判断する場合には、他のレコードＩＤに対して上記処理を繰り返し、そうで無い場合には、検索した全ての例文パタン、対訳例文パタン、及び対応関係情報Ｆ２を変換部１４００へ出力する。
【００９３】
尚、例文パタン検索部１３２０は、取得した入力文及び入力文の単語及び節をも出力する。次に、例文パタン検索処理の実行を終了する。
【００９４】
ここで図２に戻り、翻訳装置１０００の構成について引き続き説明を行う。
変換部１４００は、検索部１３００、及び算出部１５００に接続している。変換部１４００は、後述する変換処理を実行することで、入力文を構成する文字列が表す意味と、記憶手段が記憶する例文パタンを構成する文字列が表す意味とが相違する程度を表す第１の指標を用いて、例文パタンが類別する例文に共通する共通文字列に対応する共通部分と共通部分以外の非共通部分とで構成される文へ入力文を変換する。その後、変換部１４００は、変換した入力文を算出部１５００へ出力する。
【００９５】
ここで、図８を参照して、変換部１４００が変換対象とする入力文を構成する単語及び節で構成される文字列と、変換後の入力文を構成する文字列とについて説明を行う。図８は、変換部１４００が変換対象とする入力文を構成する文字列と、変換後の文字列とを表す図である。
【００９６】
図８は、変換部１４００が変換対象とする文字列 s1 から s9 で構成される入力文Ｓと、変換後の文字列 s'1 から s'5 で構成される変換後の入力文Ｓ'と、入力文Ｓを構成する単語と同じ単語で構成される例文パタンＡとを表す図である。
【００９７】
変換後の入力文Ｓ'は、変換部１４００が例文パタンＡに基づいて変換処理を実行することで入力文Ｓを構成する単語 s1 及び s2 を結合した単語 s'1、 s4 から s7 を結合した単語 s'3、並びに結合対象としなかった単語 s'2、s'4、及び節 s'5 で構成される。尚、単語 s'2、s'4、及び節 s'5 は、単語 s3、s8、及び節 s9 に等しい。
【００９８】
尚、変換部１４００は、例文パタンＡを構成する固定部分 a2, a4, 及び a5 で構成される集合に含まれる単語 s3 に基づいて、単語 s1 及び s2 を結合し、単語 s8 に基づいて、単語 s4 から s7 を結合する。
【００９９】
この変換処理によって、変換部１４００は、固定部分を構成する共通文字列 a2、a4、及び a5 に対応する文字列s'2、s'4、及び s'5を共通部分とし、共通部分以外の文字列s'1及びs'3を非共通部分することで、入力文Ｓを共通部分と非共通部分とで構成される文へ変換する。
【０１００】
次に図９及び１０を参照して、変換部１４００が実行する変換処理について説明を行う。図９及び１０は、変換部１４００が実行する変換処理の一例を表すフローチャートである。
【０１０１】
先ず、変換部１４００は、例文パタンＡと例文パタンＡを構成する単語等である文字列を検索部１３００から取得する（ステップＳＴ０００１）。尚、例文パタンＡは、文字列 a1 から an で構成されているとし、文字列 ai は例文パタンＡにおいて i 番目に使用される文字列であるとする。
【０１０２】
次に、変換部１４００は、入力文Ｓと入力文Ｓを構成する単語及び節である文字列とを検索部１３００から取得する（ステップＳＴ０００２）。尚、入力文Ｓは、文字列 s1 から sm で構成されているとし、文字列 sj は入力文Ｓにおいて j 番目に使用される文字列であるとする。
【０１０３】
尚、図示を省略するが、変換部１４００は、例文パタンＡに対応付けられた対訳例文パタン及び対応関係情報Ｆ２をも検索部１３００から取得する。
【０１０４】
その後、変換部１４００は、文字列 ai が可変部分となるように、カウンタ i に適切な任意の値を入力する（ステップＳＴ０００３）。
【０１０５】
次に、変換部１４００は、入力文Ｓを構成する文字列が文で使用される順番を表すカウンタ j に値「1」を代入して初期化する（ステップＳＴ０００４）。
【０１０６】
その後、変換部１４００は、かつカウンタ j が値 m 以下であるか否か判断する（ステップＳＴ０００５）。変換部１４００は、カウンタ j が値 m 以下であると判断する場合にはステップＳＴ０００６の処理を実行し、そうで無い場合には変換処理の実行を終了する。
【０１０７】
ステップＳＴ０００５において、変換部１４００は、カウンタ j が値 m 以下であると判断した場合には、テンポラリバッファをクリアする（ステップＳＴ０００６）。
【０１０８】
次に、変換部１４００は、例文パタンＡで i 番目に使用される文字列 ai と、入力文Ｓで j 番目に使用される文字列 sj との第１の指標（以下単に、重みともいう）が値「0」であり、かつ変数 j が値「m 」以下であるか否かを判断する（ステップＳＴ０００７）。
【０１０９】
尚、重みとは、翻訳を行う対象として入力された入力文Ｓを構成する文字列 sj が表す意味と、記憶部１１００が記憶する例文パタンＡを構成する文字列 ai が表す意味とが相違する程度を表す指標をいう。また、重みの計算方法については後述する。
【０１１０】
変換部１４００は、文字列 ai と文字列 sj との重み（以下記号を用いて、w(ai, sj)とも表す）が値「0」であり、かつ変数 j が値「m」以下であると判断する場合にはステップＳＴ０００８の処理を、そうで無い場合にはステップＳＴ００１０の処理を実行する。
【０１１１】
ステップＳＴ０００７において、変換部１４００は、文字列 aj と文字列 si との重みが値「0」であり、かつ変数 j が値「m」以下であると判断した場合には、テンポラリバッファが記憶する文字列に単語又は節である文字列 sj を追加する（ステップＳＴ０００８）。
【０１１２】
次に、変換部１４００は、変数 j を１だけインクリメントする（ステップＳＴ０００９）。その後、変換部１４００は、ステップＳＴ０００７に戻り、上記処理を繰り返す。
【０１１３】
ステップＳＴ０００７において、変換部１４００は、文字列aj と文字列si との重みが値「0」でない、又は変数 j が値「m」より大きいと判断した場合には、テンポラリバッファが空であるか否かを判断する（ステップＳＴ００１０）。変換部１４００は、テンポラリバッファが空であると判断する場合にはステップＳＴ００１１の処理を、そうで無い場合にはステップＳＴ００１３の処理を実行する。
【０１１４】
ステップＳＴ００１０において、変換部１４００は、テンポラリバッファが空であると判断した場合には、文字列 sj を１つの共通部分又は非共通部分である文字列として出力する（ステップＳＴ００１１）。次に、変換部１４００は、変数 j を１だけインクリメントする（ステップＳＴ００１２）。その後、変換部１４００は、ステップＳＴ０００５に戻り、上記処理を繰り返す。
【０１１５】
ステップＳＴ００１０において、変換部１４００は、テンポラリバッファが空でないと判断した場合には、テンポラリバッファが記憶する文字列を１つの共通部分又は非共通部分である文字列として出力する（ステップＳＴ００１３）。次に、変換部１４００は、ステップＳＴ０００５に戻り、上記処理を繰り返す。
【０１１６】
尚、図示を省略するが、変換部１４００は、変換した入力文、例文パタンＡ、対訳例文パタン、及び対応関係情報Ｆ２を算出部１５００へ出力する。
【０１１７】
ここで表１を参照して、例文パタンＡで使用される文字列 ai と、入力文Ｓで使用される文字列 sj との重みの算出方法の一例について説明を行う。表１は、算出される重みの値とその値を算出する条件の一例を示す表である。
【０１１８】
【表１】
0005391867.tif 000002
【０１１９】
表１が示すように、例文パタンを構成する文字列 ai が可変部分であり、sj が単語又は節であり、かつ sj が例文パタンＡの固定部分を要素とする集合に含まれていない場合に、変換部１４００は、重みを値「0」として計算する。
【０１２０】
また、ai が可変部分であり、sj が単語又は節であり、かつ sj が例文パタンＡの固定部分を要素とする集合に含まれている場合に、変換部１４００は、重みを値「p」として計算する。尚、値「p」は、正の定数である。また、本実施例では、値「1.5」とするが、これに限定される訳ではない。
【０１２１】
更に、ai が固定部分であり、sj が単語又は節であり、かつ ai と sj とが等しい場合に、変換部１４００は、重みを値「0」として計算する。
【０１２２】
また更に、ai が固定部分であり、sj が単語又は節であり、かつ sj が固定部分の同義語である場合に、変換部１４００は、重みを値「0」として計算する。
【０１２３】
尚、本実施例において、単語 sj が、固定部分の同義語であるか否かは、図４を参照して説明した固定部分ＰＦを構成するＦＩＸ内容に基づいて変換部１４００が判断できるとして説明を行うが、これに限定されるわけではない。例えば、記憶部１１００が単語とその単語の同義語とを関連付けた同義語辞書を記憶し、変換部１４００は、記憶部１１００が記憶する辞書を参照することで、単語 sj が固定部分の同義語であるか否かを判断する構成を採用できる。
【０１２４】
また更に、ai が固定部分であり、sj が単語又は節であり、ai と sj とが等しく無く、かつ sj が固定部分の同義語でない場合に、変換部１４００は、重みを値「p」として計算する。
【０１２５】
次に、表２並びに、図１１及び１２を参照して、動詞節 ai と節 sj との重みの算出方法の他例について説明を行う。表２は、算出される重みの値とその値を算出する条件の他例を示す表であり、図１１は、変換部１４００が重みを算出するために実行する重み算出処理の一例を表すフローチャートの一部であり、図１２は、変換部１４００が重みを算出するために実行する重み算出処理の一例を表すフローチャートの他部である。
【０１２６】
【表２】
0005391867.tif 000003
【０１２７】
表２が示すように、例文パタンを構成する文字列 ai が固定部分であり、sj が動詞節であり、かつ ai と sj とが等しい場合に、変換部１４００は、重みを値「0」として計算する。
【０１２８】
また、例文パタンを構成する文字列 ai が固定部分であり、sj が動詞節であり、かつ文字列 ai を構成する全ての形態素単語と、形態素 sj を構成する全ての形態素単語が等しい場合に、変換部１４００は、重みを値「0」として計算する。ここで、節を構成する全ての形態素単語又は形態素の中に、単語「ます」がある場合には、単語「ます」を取り除いてから重みを計算する。
【０１２９】
ここで、変換部１４００が、上記表２が表す重みを算出するために実行する重み算出処理について説明を行う。
【０１３０】
先ず、変換部１４００は、固定部分 ai の形態素単語列を取得する（ステップＳＴ０１０１）。尚、固定部分 ai の形態素単語列は、形態素単語 u1 から uk で構成されているとし、形態素単語 uh は形態素単語列 ai において h 番目に使用されるとする。
【０１３１】
次に、変換部１４００は、動詞節 sj の形態素単語列を取得する（ステップＳＴ０１０２）。尚、動詞節 sj の形態素単語列は、形態素単語 v1 から vl で構成されているとし、形態素単語 vh は形態素単語列 sj において h 番目に使用されるとする。
【０１３２】
その後、変換部１４００は、固定部分 ai の形態素単語数 k と、動詞節 sj の形態素単語数 l とが等しいか否かを判断する（ステップＳＴ０１０３）。変換部１４００は、 k と l とが等しいと判断する場合にはステップＳＴ０１０４の処理を、そうで無い場合にはステップＳＴ０１０９の処理を実行する。
【０１３３】
ステップＳＴ０１０３において、変換部１４００は、k と l とが等しいと判断した場合には、形態素単語が形態素単語列で使用される順番を表すカウンタ h に値「1」を代入して初期化する（ステップＳＴ０１０４）。
【０１３４】
次に、変換部１４００は、カウンタ変数 h の値が、固定部分 ai の形態素単語数 k 以下であるか否かを判断する（ステップＳＴ０１０５）。変換部１４００は、変数 h の値が k 以下であると判断する場合にはステップＳＴ０１０６の処理を、そうで無い場合にはステップＳＴ０１１０の処理を実行する。
【０１３５】
ステップＳＴ０１０５において、変換部１４００は、変数 h の値が k 以下であると判断した場合には、節 ai において h 番目に使用される形態素単語 uh と、節 sj において h 番目に使用される形態素単語 vh とが等しいか否かを判断する（ステップＳＴ０１０６）。変換部１４００は、形態素単語 uh と形態素単語 vh とが等しいと判断する場合にはステップＳＴ０１０８の処理を、そうで無い場合にはステップＳＴ０１０７の処理を実行する。
【０１３６】
ステップＳＴ０１０６において、変換部１４００は、形態素単語 uh と形態素単語 vh とが等しくないと判断した場合には、形態素単語 uh が形態素単語 vh の同義語であるか否かを判断する（ステップＳＴ０１０７）。変換部１４００は、形態素単語 uh が形態素単語 vh の同義語であると判断する場合にはステップＳＴ０１０８の処理を、そうで無い場合はステップＳＴ０１０９の処理を実行する。
【０１３７】
ステップＳＴ０１０６において、変換部１４００は、形態素単語 uh と形態素単語 vh とが等しいと判断した場合、又はステップＳＴ０１０７において、形態素単語 uh が形態素単語 vh の同義語であると判断した場合には、ループ変数 h の値を１だけインクリメントする（ステップＳＴ０１０８）。その後、変換部１４００は、ステップＳＴ０１０５に戻り、上記処理を繰り返す。
【０１３８】
ステップＳＴ０１０３において、変換部１４００は、k と l とが等しくないと判断した場合、又はステップＳＴ０１０７において、形態素単語 uh が形態素単語 vh の同義語でないと判断した場合には、節 ai と節 sj との重みを「p」と算出する（ステップＳＴ０１０９）。尚、pは、正の定数である。その後、変換部１４００は、変換処理の実行を終了する。
【０１３９】
ステップＳＴ０１０５において、変換部１４００は、変数 h の値が k より大きいと判断した場合には、節 ai と節 sj との重みを「0」と算出する（ステップＳＴ０１１０）。その後、変換部１４００は、変換処理の実行を終了する。
【０１４０】
ここで図２に戻り、翻訳装置１０００の構成について引き続き説明を行う。
【０１４１】
算出部１５００は、変換部１４００及び抽出部１６００に接続している。算出部１５００は、後述する算出処理を実行することで、変換部１４００が変換した文を構成する非共通部分を、例文パタンＡを構成する非共通文字列へ対応させる規則と、非共通部分と非共通文字列との相違を表す第１の指標（つまり重み）とに基づいて、入力文Ｓと例文パタンＡとが相違する程度を表す第２の指標（以下単に、距離ともいう）を算出する。
【０１４２】
ここで、算出部１５００が実行する算出処理は、例文パタンを構成する共通文字列及び非共通文字列のいずれか１つ以上を変換部１４００が変換した文を構成する共通部分及び非共通部分のいずれか１つ以上に写像するために適用する規則であり、かつ１対１であると共に交差せずに共通文字列を前記共通部分に置換する規則、１対１であると共に交差せずに非共通文字列を非共通部分に置換する規則、共通文字列及び非共通文字列のいずれか１つ以上を削除する規則、及び共通部分及び非共通部分のいずれか１つ以上を挿入する規則のいずれか１つ以上の適用に基づいて第２の指標を算出する処理である。
【０１４３】
ここで図１３から１６を参照して、算出部１５００が実行する距離算出処理について説明を行う。図１３は、算出部１５００が実行する距離算出処理の一例を表すフローチャートの一部であり、図１４から１６は、算出部１５００が実行する距離算出処理の一例を表すフローチャートの他部である。
【０１４４】
先ず、算出部１５００は、例文パタンＡを変換部１４００から取得する（ステップＳＴ０２０１）。尚、例文パタンＡは、単語等である文字列 a1からanで構成されているとする。
【０１４５】
次に、算出部１５００は、変換後の入力文Ｓ'を変換部１４００から取得する（ステップＳＴ０２０２）。尚、変換後の入力文Ｓ'は、変換された単語又は節である文字列 s'1からs'm' で構成されているとする。
【０１４６】
その後、算出部１５００は、変数 d(0,0) に値「０」を代入することで初期化する（ステップＳＴ０２０３）。
【０１４７】
尚、図示を省略するが、算出部１５００は、例文パタンＡに対応付けた対訳例文パタン及び対応関係情報Ｆ２をも変換部１４００から取得する。
【０１４８】
ここで、変数 d(i, j) は、例文パタンＡを構成する文字列 a1からaiを例文パタンＡで使用する順番に並べた文字列a1a2…aiと、入力文Ｓ'を構成する変換後の単語又は節s'1からs'jを入力文Ｓ'で使用する順番に並べた文字列 s'1s'2…s'j との相違を表す第２の指標（つまり距離）である。
【０１４９】
また特に、変数 d(0, 0)は、全く文字列を有しない入力文（つまり、空文字列）と、全く単語等の文字列を有しない例文パタンとの相違を表す第２の指標である。
【０１５０】
次に、算出部１５００は、文字列が例文パタンＡで使用される順番を表す変数 i に値「1」を代入して初期化する（ステップＳＴ０２０４）。その後、算出部１５００は、変数 i が例文パタンＡを構成する文字列の数「n」以下であるか否かを判断する（ステップＳＴ０２０５）。算出部１５００は、変数 i が「n」以下であると判断する場合にはステップＳＴ０２０６の処理を、そうで無い場合にはステップＳＴ０２０９の処理を実行する。
【０１５１】
ステップＳＴ０２０５において、算出部１５００は、変数 i が「n」以下であると判断した場合には、d(i,0)の値を、「d(i-1,0)+ r)とする（ステップＳＴ０２０６）。
【０１５２】
次に、算出部１５００は、変数 PathFlag(i, 0)の値を「(1,0,0)」とする（ステップＳＴ０２０７）。その後、算出部１５００は、変数 i の値を１だけインクリメントする（ステップＳＴ０２０８）。その後、算出部１５００は、ステップＳＴ０２０５に戻り上記処理を繰り返す。
【０１５３】
ここで、変数 PathFlag(i, 0)と距離 d(i,j)との関係について説明する。
例文パタンＡである a1a2…aiと、変換された入力文Ｓ'である s'1 s'2…s'j との距離 d(i,j) は、例文パタン a1a2…ai を構成する文字列 a1 から ai を変換された入力文Ｓ' s'1s'2…s'j を構成する文字列 s'1 から s'j に対応付ける写像に基づいて定まる。
【０１５４】
この距離 d(i,j) を定める写像として、1対1であり、互いに交差せず、かつ例文パタン a1a2…ai-1 を構成する文字列 a1からai-1 を、変換された入力文 s'1s'2…s'j を構成する文字列 s'1からs'j に対応付ける写像と、例文パタンＡを構成する文字列 ai が入力文Ｓ'を構成する文字列に写像していない場合は、例文パタンを構成する ai を削除する規則を定める写像とを合成した写像を用いることができる。
【０１５５】
またこの距離 d(i,j) を定める写像として、1対1であり、互いに交差せず、かつ文字列 a1 から ai を文字列 s'1 から s'j-1 に対応付ける写像と、例文パタンＡを構成する文字列が入力文Ｓ'を構成する文字列に写像しない場合に、入力文Ｓ'を構成する文字列 sj を挿入する規則を定める写像とを合成した写像を用いることができる。
【０１５６】
更にこの距離 d(i,j) を定める写像として、1対1であり、互いに交差せず、かつ 文字列 a1 から ai-1 を文字列 s1 から sj-1 と対応付ける写像と、1対1であり、互いに交差せず、かつ例文パタンを構成する文字列 ai を、入力文を構成する文字列 sj に置換する規則を定める写像とを合成した写像を用いることができる。
【０１５７】
よって、文字列 ai を削除する写像によって定まる距離を r とすれば、距離 d(i,j) は、「d(i,j) = d(i-1,j) + r 」として計算される。よって、距離 d(i,j) を算出する方法を表すフラグ変数 PathFlag(i,j) の値を「(1,0,0)」とすることで、距離 d(i,j)は、文字列 ai を削除する写像を用いて算出したことを表す。
【０１５８】
また、文字列 s'j を挿入する写像によって定まる距離を q とすれば、距離 d(i,j) は、「d(i,j) = d(i,j-1) + q 」として計算される。またここで、フラグ変数 PathFlag(i,j) の値を「(0,1,0)」とすることで、文字列 s'j を挿入する写像を用いて距離 d(i,j) を算出したことを表す。
【０１５９】
更に、１対１であり、互いに交差せず、かつ文字列 ai を文字列 s'j に置換する写像によって定まる距離を w(ai, s'j) とすれば、距離 d(i,j)は、「d(i,j) = d(i-1,j-1) + w(ai, s'j) 」として計算される。更にここで、フラグ変数 PathFlag(i,j) の値を「(0,0,1)」とすることで、文字列 ai を s'j に置換する写像を用いて距離 d(i,j) を算出したことを表す。
【０１６０】
尚、距離 w(ai, s'j) は、文字列 ai 及び s'j で定まる値を返す関数であり、図９を参照して説明した第１の指標をいう。
【０１６１】
本実施例においては、「q = r = 1, p = 1.5」として以下説明を行うが、これに限定される訳ではなく、実験又は論理により定まる他の好適な値を設定できる。
【０１６２】
ここで図１３に戻り、算出部１５００が実行する距離算出処理の一例について引き続き説明を行う。
【０１６３】
ステップＳＴ０２０５において、算出部１５００は、変数 i が「n」より大きいと判断した場合には、変換後の文字列が入力文Ｓ'で使用される順番を表す変数 j に値「1」を代入して初期化する（ステップＳＴ０２０９）。
【０１６４】
次に、算出部１５００は、変数 j が入力文Ｓ'を構成する変換後の文字列の数「m'」以下であるか否かを判断する（ステップＳＴ０２１０）。算出部１５００は、変数 j が「m'」以下であると判断する場合にはステップＳＴ０２１１の処理を、そうで無い場合にはステップＳＴ０２１４の処理を実行する。
【０１６５】
ステップＳＴ０２１０において、算出部１５００は、変数 j が「m'」以下であると判断した場合には、d(0,j)の値を、「d(0,j-1)+ q)とする（ステップＳＴ０２１１）。
【０１６６】
次に、算出部１５００は、変数 PathFlag(0, j)の値を「(0,1,0)」とする（ステップＳＴ０２１２）。その後、算出部１５００は、変数 j の値を１だけインクリメントする（ステップＳＴ０２１３）。その後、算出部１５００は、ステップＳＴ０２１０に戻り上記処理を繰り返す。
【０１６７】
ステップＳＴ０２１０において、算出部１５００は、変数 j が「m'」より大きいと判断した場合には、変数 i に値「1」を代入する（ステップＳＴ０２１４）。次に、算出部１５００は、変数 i が「n」以下であるか否かを判断する（ステップＳＴ０２１５）。算出部１５００は、変数 i が「n」以下であると判断する場合にはステップＳＴ０２１６の処理を、そうで無い場合にはステップＳＴ０２２８の処理を実行する。
【０１６８】
ステップＳＴ０２１５において、算出部１５００は、変数 j が「n」以下であると判断した場合には、変数 j に値「1」を代入する（ステップＳＴ０２１６）。次に、変数 j が「m'」以下であるか否かを判断する（ステップＳＴ０２１７）。算出部１５００は、変数 j が「m'」以下であると判断する場合にはステップＳＴ０２１８の処理を、そうで無い場合にはステップＳＴ０２２７の処理を実行する。
【０１６９】
ステップＳＴ０２１７において、算出部１５００は、変数 j が「m'」以下であると判断した場合には、d(i,j)の値を、「d(i-1,j-1）+ w(ai, s'j)」とする（ステップＳＴ０２１８）。次に、算出部１５００は、変数 PathFlag(i, j)の値を「(0,0,1)」とする（ステップＳＴ０２１９）。
【０１７０】
その後、算出部１５００は、文字列 s'i を 挿入をする写像に基づいて算出する距離 d(i, j-1) + q が、ステップＳＴ０２１８で単語又は節 ai を s'j に置換をする写像に基づいて算出した距離 d(i, j) より小さいか否かを判断する（ステップＳＴ０２２０）。算出部１５００は、距離 d(i, j-1) + q が、距離 d(i, j) より小さいと判断する場合にはステップＳＴ０２２１の処理を、そうで無い場合にはステップＳＴ０２２３の処理を実行する。
【０１７１】
ステップＳＴ０２２０において、算出部１５００は、距離 d(i, j-1) + q が距離 d(i, j) よりも小さいと判断した場合には、距離 d(i, j)を「d(i, j-1) + q」とする（ステップＳＴ０２２１）
【０１７２】
次に、算出部１５００は、変数 PathFlag(i, j) の値を 現在のPathFlag(i, j)の座標値毎に、値「(0,1,0)」の座標値とOR演算した値とする（ステップＳＴ０２２２）。
【０１７３】
ステップＳＴ０２２０において、算出部１５００は、距離 d(i, j-1) + q が 距離 d(i, j) 以上であると判断した場合、又はステップＳＴ０２２２を実行した後に、算出部１５００は、文字列 ai を、削除をする写像に基づいて算出する距離 d(i-1, j) + r が、ステップＳＴ０２１８又はステップＳＴ０２２１で算出した距離 d(i, j) よりも小さいか否かを判断する（ステップＳＴ０２２３）。算出部１５００は、距離 d(i-1, j) + r が距離 d(i, j) より小さいと判断する場合にはステップＳＴ０２２４の処理を、そうで無い場合にはステップＳＴ０２２６の処理を実行する。
【０１７４】
ステップＳＴ０２２３において、算出部１５００は、距離 d(i-1, j) + r が距離 d(i, j) よりも小さいと判断した場合には、距離 d(i, j)を「d(i-1, j) + r」とする（ステップＳＴ０２２４）
【０１７５】
次に、算出部１５００は、変数 PathFlag(i, j) の値を 現在のPathFlag(i, j)の座標値毎に、値「(1,0,0)」の座標値とOR演算した値とする（ステップＳＴ０２２５）。
【０１７６】
ステップＳＴ０２２３において、算出部１５００は、距離 d(i-1, j) + r が距離 d(i, j) 以上であると判断した場合、又はステップＳＴ０２２５を実行した後には、算出部１５００は、変数 j を１だけインクリメントする（ステップＳＴ０２２６）。その後、算出部１５００は、ステップＳＴ０２１７に戻り、上記処理を繰り返す。
【０１７７】
ステップＳＴ０２１７において、算出部１５００は、変数 j が「m'」より大きいと判断した場合には、変数 i を１だけインクリメントする（ステップＳＴ０２２７）。その後、ステップＳＴ０２１５に戻り、上記処理を繰り返す。
【０１７８】
ステップＳＴ０２１５において、算出部１５００は、変数 j が「n」より大きいと判断した場合には、例文パタンＡと入力文Ｓ'との距離を Distance(A,S')とし、その値を d(n,m') の値とする（ステップＳＴ０２２８）。
【０１７９】
尚、図示を省略するが、算出部１５００は、算出した例文パタンＡと入力文Ｓ'との距離Distance(A,S')、その他の距離d(i,j)(ただし、1<=i<=n, 1<=j<=m')、例文パタンＡ、対訳例文パタン、対応関係情報Ｆ２、及び入力文Ｓ'を抽出部１６００へ出力する。その後、算出部１５００は、指標計算処理の実行を終了する。
【０１８０】
ここで表３を参照して、算出部１５００が算出する第２の指標について説明を行う。表３は、算出部１５００が算出した第２の指標の一例を示す表である。
【０１８１】
【表３】
0005391867.tif 000004
【０１８２】
表３が有する列は、空文字列、及び変換後の入力文Ｓ’を構成する文字列を表し、表３が有する行は、空文字列、及び例文パタンＡを構成する文字列を表す。
【０１８３】
また、表３が有する要素は、要素を保存する列が表す空文字列又は文字列とそれよりも左の列が表す空文字列又は文字列を、要素を保存する行が表す空文字列又は文字列とそれよりも上の行が表す空文字列又は文字列に対応付ける写像で定まる距離及び PathFlag を表す。
【０１８４】
具体的には、３行２列の要素「1(0,0,1)」は、２列が表す文字列「ＦＸの田中さん」とそれよりも左の列が表す空文字列を、３行が表す記号「Ｖ１」とそれよりも上の列が表す空文字列及び「必ず」という文字列にそれぞれ対応付ける写像で定まる距離が値「1」であり、PathFlag(2,1)の値が「(0, 0, 1)」であることを表す。
【０１８５】
よって表３の７行５列の要素が表すように、変換後の入力文Ｓ’と例文パタンＡとの距離は、算出部１５００によって、値「4」と計算されたことを表す。
【０１８６】
ここで図２に戻り、翻訳装置１０００の構成について引き続き説明を行う。
【０１８７】
抽出部１６００は、算出部１５００及び翻訳部１７００に接続している。抽出部１６００は、算出部１５００が算出した第２の指標に基づいて入力文を類別する例文パタンを抽出すると共に、変換部１４００が変換した文を構成する非共通部分と抽出した例文パタンを構成する非共通文字列とを対応付ける。
【０１８８】
ここで図１７を参照して、抽出部１６００の構成について説明を行う。図１７は、抽出部１６００の一構成例を表す機能ブロック図である。
【０１８９】
抽出部１６００は、実抽出部１６１０、関係特定部１６２０、及び関係選択部１６３０で構成される。
【０１９０】
実抽出部１６１０は、算出部１５００及び関係特定部１６２０に接続している。実抽出部１６１０は、後述する実抽出処理を実行することで、検索部１３００が検索した例文パタンのから１つのパタンを抽出する。
【０１９１】
ここで、実抽出部１６１０が実行する実抽出処理の一例について説明を行う。
【０１９２】
先ず、実抽出部１６１０は、算出部１５００が計算した第２の指標（つまり、距離）を取得する。次に、実抽出部１６１０は、算出部１５００から検索部１３００が検索した例文パタンＡを取得する。
【０１９３】
その後、実抽出部１６１０は、算出部１５００が計算した第２の指標である入力文と例文パタンとの距離が最も近い例文パタンを抽出する。次に、実抽出部１６１０は、抽出した例文パタンを、入力文を類別するパタンであるとして関係特定部１６２０へ出力する。
【０１９４】
また、実抽出部１６１０は、算出部１５００から、選択した例文パタンとの距離を算出する際に作成した PathFlag 変数、及び変換後の入力文Ｓ’、並びに抽出した例文パタンＡに対応付けた対訳例文パタン、及び対応関係情報Ｆ２とを取得し、取得した入力文Ｓ’、 PathFlag 変数、対訳例文パタン、及び対応関係情報Ｆ２を関係特定部１６２０へ出力する。その後、実抽出部１６１０は、実抽出処理の実行を終了する。
【０１９５】
関係特定部１６２０は、実抽出部１６１０及び関係選択部１６３０に接続している。関係特定部１６２０は、後述する関係特定処理を実行することで、入力文Ｓ’を構成する変換後の文字列と入力文Ｓを類別する例文パタンＡを構成する文字列との対応関係を特定する。
【０１９６】
ここで図１８を参照して、関係特定部１６２０が実行する関係特定処理について概説する。図１８は、関係特定部１６２０が実行する関係特定処理の一例について概説するための図である。
【０１９７】
先ず、関係特定部１６２０は、入力文Ｓ’と例文パタンＡとの距離、及び PathFlag 変数の値を表す７行５列の要素を取得する。次に、関係特定部１６２０は、取得した PathFlag(6,4) の値が「(0,0,1)」であるため、７行５列の要素が表す距離は、入力文Ｓ’を構成する第２列から４列までが表す文字列と、例文パタンＡを構成する第２行から６行までが表す文字列とを対応付ける写像と、例文パタンＡを構成する第７行が表す文字列を、入力文Ｓ'を構成する第５列が表す文字列に置換する規則を定める写像とを合成した写像により定まると判断する。
【０１９８】
よって、関係特定部１６２０は、第７行があらわす文字列 a6 と第５列があらわす文字列 s4 との対応関係は置換関係であると判断し、対応関係情報Ｆ１に値「(6:4)」を追加する。
【０１９９】
次に、関係特定部１６２０は、PathFlag(5,3) を表す６行４列の要素を取得する。
【０２００】
その後、関係特定部１６２０は、６行４列の要素が表す PathFlag(5,3)の値が「0,1,0」であるため、６行４列の要素が表す距離は、入力文Ｓ’を構成する第２列から３列までが表す文字列と、例文パタンＡを構成する第２行から５行までが表す文字列とを対応付ける写像と、入力文Ｓ’を構成する第４列が表す文字列を、例文パタンＡに挿入する規則を定める写像とを合成した写像により定まると判断する。
【０２０１】
よって、関係特定部１６２０は、第４列があらわす文字列 s3を例文パタンＡに挿入すると判断し、対応関係情報Ｆ１に値「(0:3)」を追加する。
【０２０２】
以下同様に、上記処理を繰り返すことで、関係特定部１６２０は、入力文Ｓ’を構成する文字列と入力文Ｓ’を類別した例文パタンＡを構成する文字列との対応関係を特定する。
【０２０３】
ここで、特に、５行２列に対する関係特定部１６２０の処理について説明する。
【０２０４】
５行２列の要素が表す PathFlag(4,1) の値は、「1,0,1」であるため、関係特定部１６２０は、５行２列の要素が表す距離が、入力文Ｓ’を構成する第１列が表す空文字列と、例文パタンＡを構成する第２行から４行までが表す文字列とを対応付ける写像と、例文パタンＡを構成する第５行が表す文字列を、入力文Ｓ'を構成する第２列が表す文字列に置換する規則を定める写像、又は例文パタンＡを構成する第５行が表す文字列を削除する規則を定める写像のいずれか１方とを合成した写像により定まると判断する。
【０２０５】
よって、関係特定部１６２０は、第５行があらわす文字列 a4 と第２列があらわす文字列 s1 との対応関係は置換関係であると判断する場合には、値「(4:1)」を追加してすることで対応関係情報Ｆ１１を生成し、第５列があらわす文字列 a4を例文パタンＡから削除すると判断する場合には、値「(4:0)」を追加することで対応関係情報Ｆ１２を生成する。
【０２０６】
尚、例えば、１又は複数の対応関係情報Ｆ１で構成される集合を、対応関係集合ＳＦという。尚、対応関係集合ＳＦに属する対応関係情報Ｆ１１及びＦ１２の表記は、対応関係情報Ｆ２と同様であるため説明を省略する。
【０２０７】
ここで図１９から２２を参照して、関係特定部１６２０が実行する関係特定処理について説明を行う。図１９は、関係特定部１６２０が実行する関係特定処理の一例を表すフローチャートの一部であり、図２０から２２は、関係特定部１６２０が実行する関係特定処理の一例を表すフローチャートの他部である
【０２０８】
先ず、関係特定部１６２０は、対応関係集合ＳＦを空集合とすることで初期化する（ステップＳＴ０３０１）。
【０２０９】
次に、関係特定部１６２０は、カウンタ変数 h に対して値「0」を代入することで初期化する（ステップＳＴ０３０２）。その後、関係特定部１６２０は、カウンタ変数 h が値「-100」であるか否かを判断する（ステップＳＴ０３０３）。関係特定部１６２０は、カウンタ変数 h が値「-100」であると判断する場合には関係特定処理の実行を終了し、そうで無い場合にはステップＳＴ０３０４の処理を実行する。
【０２１０】
ステップＳＴ０３０３において、関係特定部１６２０は、カウンタ変数 h が値「-100」でないと判断した場合には、例文パタンＡを構成する文字列が文で使用される順番を表すカウンタ変数 i に例文パタンＡを構成する文字列の数「n」を代入して初期化し、入力文Ｓ’を構成する文字列が文で使用される順番を表すカウンタ j に入力文Ｓ’を構成する文字列の数「m'」を代入して初期化する（ステップＳＴ０３０４）。
【０２１１】
次に、関係特定部１６２０は、変数 h を、例文パタンＡを構成する文字列の数 n と入力文Ｓ’を構成する文字列の数 m' の内で大きい方の値とする（ステップＳＴ０３０５）。
【０２１２】
その後、関係特定部１６２０は、変数 h が値「1」以上である否かを判断する（ステップＳＴ０３０６）。関係特定部１６２０は、変数 h が値「1」以上であると判断する場合にはステップＳＴ０３０７の処理を、そうで無い場合にはステップＳＴ０３２１の処理を実行する。
【０２１３】
ステップＳＴ０３０６において、関係特定部１６２０は、変数 h が値「1」以上であると判断した場合には、PathFlag(i, j) のｚ座標の値が値「1」以上であり、ｚ座標の値がｘ座標の値以上であり、かつｚ座標の値がｙ座標の値以上であるという条件（以下単に、条件１という）を満たすか否かを判断する（ステップＳＴ０３０７）。関係特定部１６２０は、条件１を満たすと判断する場合にはステップＳＴ０３０８の処理を、そうで無い場合にはステップＳＴ０３１１の処理を実行する。
【０２１４】
ステップＳＴ０３０７において、関係特定部１６２０は、条件１を満たすと判断した場合には、２次元配列である変数 Path(i, j) に値「(i-1, j-1)」を代入する（ステップＳＴ０３０８）。尚、Path変数は、文字列の対応関係を表す２次元配列である。
【０２１５】
次に、関係特定部１６２０は、変数 PatFlag(i, j) のｚ座標を値「1」だけインクリメントする（ステップＳＴ０３０９）。その後、関係特定部１６２０は、変数 i 及び j の値を１だけデクリメントする（ステップＳＴ０３１０）。次に、関係特定部１６２０は、ステップＳＴ０３２０の処理を実行する。
【０２１６】
ステップＳＴ０３０７において、関係特定部１６２０は、条件１を満たさないと判断した場合には、ｙ座標の値が値「1」以上であり、ｙ座標の値がｘ座標の値以上であり、かつｙ座標の値がｚ座標の値より大きいという条件（以下単に、条件２という）を満たすか否かを判断する（ステップＳＴ０３１１）。関係特定部１６２０は、条件２を満足すると判断する場合にはステップＳＴ０３１２の処理を、そうで無い場合にはステップＳＴ０３１５の処理を実行する。
【０２１７】
ステップＳＴ０３１１において、関係特定部１６２０は、条件２を満足すると判断した場合には、２次元配列である変数 Path(i, j) に値「(i, j-1)」を代入する（ステップＳＴ０３１２）。尚、Path(i, j) の値は、ｘｙ座標を用いて表す。
【０２１８】
次に、関係特定部１６２０は、変数 PathFlag(i, j) のｙ座標を値「1」だけインクリメントする（ステップＳＴ０３１３）。その後、関係特定部１６２０は、j の値を１だけデクリメントする（ステップＳＴ０３１４）。次に、関係特定部１６２０は、ステップＳＴ０３２０の処理を実行する。
【０２１９】
ステップＳＴ０３１１において、関係特定部１６２０は、条件２を満たさないと判断した場合には、ｘ座標の値が値「1」以上であり、ｘ座標の値がｙ座標の値以上であり、かつｘ座標の値がｚ座標の値より大きいという条件（以下単に、条件３という）を満たすか否かを判断する（ステップＳＴ０３１５）。関係特定部１６２０は、条件３を満たすと判断する場合にはステップＳＴ０３１６の処理を、そうで無い場合にはステップＳＴ０３１９の処理を実行する。
【０２２０】
ステップＳＴ０３１５において、関係特定部１６２０は、条件３を満たすと判断した場合には、２次元配列である変数 Path(i, j) に値「(i-1, j)」を代入する（ステップＳＴ０３１６）。
【０２２１】
次に、関係特定部１６２０は、変数 Path(i, j) のｘ座標を値「1」だけインクリメントする（ステップＳＴ０３１７）。その後、関係特定部１６２０は、i の値を１だけデクリメントする（ステップＳＴ０３１８）。次に、関係特定部１６２０は、ステップＳＴ０３２０の処理を実行する。
【０２２２】
ステップＳＴ０３１５において、関係特定部１６２０は、条件３を満たさないと判断した場合には、変数 h の値を 「-100」 とする（ステップＳＴ０３１９）。その後、関係特定部１６２０は、ステップＳＴ０３２０の処理を実行する。
【０２２３】
ステップＳＴ０３１０、ステップＳＴ０３１４、ステップＳＴ０３１８、又はステップＳＴ０３１９を実行した後に、関係特定部１６２０は、変数 h の値を１だけデクリメントする（ステップＳＴ０３２０）。その後、関係特定部１６２０は、ステップＳＴ０３０６に戻り、上記処理を繰り返す。
【０２２４】
ステップＳＴ０３０６において、関係特定部１６２０は、変数 h が値「1」より小さいと判断した場合には、関係特定部１６２０は、対応関係情報を保存する変数Ｆ１を初期化する（ステップＳＴ０３２１）。次に、関係特定部１６２０は、カウンタ変数 h の値を「0」とすることで初期化する（ステップＳＴ０３２２）。
【０２２５】
次に、関係特定部１６２０は、例文パタンＡを構成する文字列が文で使用される順番を表すカウンタ変数 i に例文パタンＡを構成する文字列の数「n」を代入して初期化し、入力文Ｓ’を構成する文字列が文で使用される順番を表すカウンタ j に入力文Ｓ’を構成する文字列の数「m'」を代入して初期化する（ステップＳＴ０３２３）。
【０２２６】
次に、関係特定部１６２０は、変数 h を、例文パタンＡを構成する単語又は節の数 n と入力文Ｓ’を構成する単語又は節の数 m' の内で大きいほうの値とする（ステップＳＴ０３２４）。
【０２２７】
その後、関係特定部１６２０は、変数 h が値「1」以上である否かを判断する（ステップＳＴ０３２５）。関係特定部１６２０は、変数 h が値「1」以上であると判断する場合にはステップＳＴ０３２６の処理を、そうで無い場合にはステップＳＴ０３３４の処理を実行する。
【０２２８】
ステップＳＴ０３２５において、関係特定部１６２０は、変数 h が値「1」以上であると判断した場合には、変数 Path(i, j) の値が 「(i-1, j-1)」であるか否かを判断する（ステップＳＴ０３２６）。関係特定部１６２０は、変数 Path(i, j) の値が 「(i-1, j-1)」であると判断する場合にはステップＳＴ０３２７の処理を、そうで無い場合にはステップＳＴ０３２８の処理を実行する。
【０２２９】
ステップＳＴ０３２６において、関係特定部１６２０は、変数 Path(i, j) の値が 「(i-1, j-1)」であると判断した場合には、対応関係情報Ｆ１ に対して左側から「(i:j)」を追加する（以下単に、F1 = (i:j) U F1 と表記する）（ステップＳＴ０３２７）。その後、関係特定部１６２０は、ステップＳＴ０３３２の処理を実行する。
【０２３０】
ステップＳＴ０３２６において、関係特定部１６２０は、変数 Path(i, j) の値が 「(i-1, j-1)」でないと判断した場合には、変数 Path(i, j) の値が 「(i, j-1)」であるか否かを判断する（ステップＳＴ０３２８）。関係特定部１６２０は、変数 Path(i, j) の値が 「(i, j-1)」であると判断する場合にはステップＳＴ０３２９の処理を、そうで無い場合にはステップＳＴ０３３０の処理を実行する。
【０２３１】
ステップＳＴ０３２８において、関係特定部１６２０は、変数 Path(i, j) の値が 「(i, j-1)」であると判断した場合には、対応関係情報Ｆ１ に対して左側から「(0:j)」を追加する（以下単に、F1 = (0:j) U F1 と表記する）（ステップＳＴ０３２９）。その後、関係特定部１６２０は、ステップＳＴ０３３２の処理を実行する。
【０２３２】
ステップＳＴ０３２８において、関係特定部１６２０は、変数 Path(i, j) の値が 「(i, j-1)」でないと判断した場合には、変数 Path(i, j) の値が 「(i-1, j)」であるか否かを判断する（ステップＳＴ０３３０）。関係特定部１６２０は、変数 Path(i, j) の値が 「(i-1, j)」であると判断する場合にはステップＳＴ０３３１の処理を、そうで無い場合にはステップＳＴ０３３２の処理を実行する。
【０２３３】
ステップＳＴ０３３０において、関係特定部１６２０は、変数 Path(i, j) の値が 「(i-1, j)」であると判断した場合には、対応関係情報Ｆ１に対して、「(i:0)」を追加する（以下単に、F1 = (i:0) U F1 と表記する）（ステップＳＴ０３３１）。その後、関係特定部１６２０は、ステップＳＴ０３３２の処理を実行する。
【０２３４】
ステップＳＴ０３２７、ステップＳＴ０３２９、又はステップＳＴ０３３１を実行した後、若しくはステップＳＴ０３３０において、関係特定部１６２０は、変数 Path(i, j) の値が 「(i-1, j)」でないと判断した場合には、変数 i の値を変数 Path のｘ座標値とし、かつ変数 j の値を変数 Path のｙ座標値とする（ステップＳＴ０３３２）。
【０２３５】
次に、関係特定部１６２０は、変数 h の値を１だけデクリメントする（ステップＳＴ０３３３）。その後に、関係特定部１６２０は、ステップＳＴ０３２５に戻り上記処理を繰り返す。
【０２３６】
ステップＳＴ０３２５において、変数 h の値が「1」より小さいと判断した場合には、関係特定部１６２０は、変数Ｆ１が保存する対応関係情報が、変数ＳＦが表す対応関係集合に属するか否かを判断する（ステップＳＴ０３３４）。関係特定部１６２０は、変数Ｆ１が保存する対応関係情報が、変数ＳＦが表す対応関係集合に属すると判断する場合にはステップＳＴ０３３６の処理を、そうで無い場合にはステップＳＴ０３３５の処理を実行する。
【０２３７】
ステップＳＴ０３２５において、変数Ｆ１が保存する対応関係情報が、変数ＳＦが表す対応関係集合に属しないと判断した場合には、関係特定部１６２０は、変数Ｆ１が保存する対応関係情報を、変数ＳＦが表す対応関係集合の要素として追加する（ステップＳＴ０３３５）。その後、関係特定部１６２０は、ステップＳＴ０３０３に戻り上記処理を繰り返す。
【０２３８】
ステップＳＴ０３２５において、変数Ｆ１が保存する対応関係情報が、変数ＳＦが表す対応関係集合に属すると判断した場合には、関係特定部１６２０は、変数 h の値を値「-100」とする（ステップＳＴ０３３６）。その後、関係特定部１６２０は、ステップＳＴ０３０３に戻り上記処理を繰り返す。
【０２３９】
尚、図示は、省略するが、関係特定部１６２０は、関係選択部１６３０へ、特定した対応関係を表す対応関係情報を要素とする対応関係集合ＳＦを出力する。
【０２４０】
また、関係特定部１６２０は、変換した入力文Ｓ’、抽出した例文パタンＡ、対訳例文パタン、及び対応関係情報Ｆ２をも関係選択部１６３０へ出力する。
【０２４１】
ここで図１７に戻り、抽出部１５００の構成について引き続き説明を行う。
【０２４２】
関係選択部１６３０は、関係特定部１６２０及び翻訳部１７００に接続している。関係選択部１６３０は、後述する関係選択処理を実行することで、関係特定部１６２０が特定した対応関係の内から、共通文字列及び非共通文字列の例文パタンＡにおいて使用される順番と、共通部分及び非共通部分の入力文において使用される順番とに基づいて、非共通文字列と非共通部分とを対応付ける対応関係を１つ選択する。
【０２４３】
ここで、再度図１８を参照して、関係選択部１６３０が実行する関係選択処理の一例について概説する。
【０２４４】
関係選択部１６３０は、例文パタンＡが、互いに隣接した固定部分（つまり、共通文字列）と可変部分（つまり、非共通文字列）とで構成される場合に、同じ様に隣接する共通部分及び非共通部分と、固定部分及び可変部分とを対応付ける対応関係情報Ｆ１を対応関係集合ＳＦの要素（つまり、対応関係情報Ｆ１１及び１２）から選択する。
【０２４５】
本実施例では、関係選択部１６３０は、関係選択処理の実行により、対応関係集合ＳＦの要素から、１つの対応関係情報Ｆ１を選択するとして説明するが、これに限定される訳ではない。例えば、削除する規則よりも置換する規則を優先して適用する等といった適用規則の優先順位を予め定め、定めた規則に従って対応関係情報Ｆ１を選択する構成を採用できる。
【０２４６】
本実施例では、例文パタンＡが、互いに隣接した固定部分と可変部分とで構成される場合を例に挙げて説明するが、これに限定される訳ではなく、例えば、例文パタンが、所定の文字数、単語数、又は節の数だけ離れた固定部分と可変部分とで構成される場合についても、ほぼ同様の処理によって、対応関係情報を選択できる。
【０２４７】
尚、関係選択部１６３０が、関係選択処理で選択した対応関係情報Ｆ１が表す対応関係（n:m）は、少なくとも文字列が例文パタンＡで使用される順番に基づいて昇順にソートされている。
【０２４８】
次に、図２３及び２４を参照して、関係選択部１６３０が実行する関係選択処理について説明を行う。図２３は、関係選択部１６３０が実行する関係選択処理の一例を表すフローチャートの一部であり、図２４は、関係選択部１６３０が実行する関係選択処理の一例を表すフローチャートの他部である。
【０２４９】
先ず、図示を省略するが、関係選択部１６３０は、関係特定部１６２０から対応関係集合ＳＦを取得する。また、関係選択部１６３０は、変換された入力文、例文パタン、対訳例文パタン、及び対応関係情報Ｆ２を関係特定部１６２０から取得する。
【０２５０】
次に、関係選択部１６３０は、取得した集合ＳＦに、ステップＳＴ０４０２からＳＴ０４１１までの処理の対象としていない対応関係情報Ｆ１（以下単に、未処理の対応関係情報という）が存在するか否かを判断する（ステップＳＴ０４０１）。関係選択部１６３０は、未処理の対応関係情報Ｆ１が存在すると判断する場合にはステップＳＴ０４０２の処理を、そうで無い場合にはステップＳＴ０４１２の処理を実行する。
【０２５１】
ステップＳＴ０４０１において、関係選択部１６３０は、未処理の対応関係情報Ｆ１が存在すると判断した場合には、未処理の対応関係情報Ｆ１を処理対象情報ＦＴとする（ステップＳＴ０４０２）。
【０２５２】
次に、関係選択部１６３０は、処理対象情報ＦＴに割り当てるスコアの値を値「0」とすることで初期化する（ステップＳＴ０４０３）。
【０２５３】
その後、関係選択部１６３０は、処理対象情報ＦＴに、ステップＳＴ０４０５からＳＴ０４１１の処理対象としていない対応関係（i,j）（以下単に、未処理の対応関係という）が存在するか否かを判断する（ステップＳＴ０４０４）。関係選択部１６３０は、未処理の対応関係（i,j）が存在すると判断する場合にはステップＳＴ０４０５の処理を、そうで無い場合にはステップＳＴ０４０１に戻り上記処理を繰り返す。尚、記号「i」 は、関係する文字列が変換された入力分Ｓ’で使用される順番を、記号「j」 は、関係する文字列が例文パタンＡで使用される順番を表す。
【０２５４】
ステップＳＴ０４０４において、関係選択部１６３０は、未処理の対応関係（i,j）が存在すると判断した場合には、未処理の対応関係の内で最も右の１つを処理対象関係 (i1, j1) とする（ステップＳＴ０４０５）。尚、記号「i1」は、処理対象関係が関係を表す文字列が変換された入力分Ｓ’で使用される順番を、記号「j1」 は、処理対象関係が関係を表す文字列が例文パタンＡで使用される順番を表す。
【０２５５】
次に、関係選択部１６３０は、記号「j1」が表す例文パタンＡを構成する文字列 aj1 が固定部であるか否かを判断する（ステップＳＴ０４０６）。関係選択部１６３０は、文字列 aj1 が固定部であると判断する場合はステップＳＴ０４０７の処理を、そうで無い場合にはステップＳＴ０４０４に戻り上記処理を繰り返す。
【０２５６】
ステップＳＴ０４０６において、関係選択部１６３０は、文字列 aj1 が固定部であると判断した場合には、未処理の対応関係 (i, j) が存在するか否かを判断する（ステップＳＴ０４０７）。関係選択部１６３０は、未処理の対応関係 (i, j) が存在すると判断する場合にはステップＳＴ０４０８の処理を実行し、そうで無い場合にはステップＳＴ０４０１に戻り上記処理の実行を繰り返す。
【０２５７】
ステップＳＴ０４０７において、関係選択部１６３０は、未処理の対応関係（i,j）が存在すると判断した場合には、未処理の対応関係の内で最も右の１つを新たに処理対象関係 (i2, j2) とする（ステップＳＴ０４０８）。尚、記号「i2」及び「j2」については、記号「i1」及び「j1」と同様であるので説明を省略する。
【０２５８】
次に、関係選択部１６３０は、記号「j2」が表す例文パタンＡを構成する文字列 aj2 が可変部であるか否かを判断する（ステップＳＴ０４０９）。関係選択部１６３０は、文字列 aj2 が可変部であると判断する場合はステップＳＴ０４１０の処理を、そうで無い場合にはステップＳＴ０４０４に戻り上記処理を繰り返す。
【０２５９】
ステップＳＴ０４０９において、関係選択部１５２０は、文字列 aj2 が可変部であると判断した場合には、「i2」の値 が 「i1」の値に対して値「1」を足した値であり、かつ「j2」の値 が 「j1」の値に対して値「1」を足した値である条件（以下単に、条件４という）を満足するか否かを判断する（ステップＳＴ０４１０）。
【０２６０】
つまり、例文パタンＡにおいて「j1」番目に使用される文字列 aj1 と、入力文Ｓ’において「i1」番目に使用される文字列 s'i1 とが対応し、かつ例文パタンＡにおいて「j2」番目に使用される文字列 aj2 と、入力文Ｓ’において「i2」番目に使用される文字列 s'i2 とが対応する場合に、例文パタンＡにおいて「j1」番目に使用される文字列が「j2」番目に使用される文字列の右隣に位置し、かつ入力文Ｓ’において「i1」番目に使用される文字列が「i2」番目に使用される文字列の右隣に位置するか否かを判断する。
【０２６１】
関係選択部１６３０は、条件４を満足すると判断する場合には、ステップＳＴ０４１１の処理を、そうで無い場合にはステップＳＴ０４０４に戻り上記処理を繰り返す。
【０２６２】
ステップＳＴ０４１０において、関係選択部１６３０は、条件４を満足すると判断した場合には、処理対象情報ＦＴに割り当てたスコアを値「1」だけインクリメントする（ステップＳＴ０４１１）。その後、ステップＳＴ０４０４に戻り上記処理を繰り返す。
【０２６３】
ステップＳＴ０４０１において、未処理の対応関係情報Ｆ１が存在しないと判断した場合には、関係選択部１６３０は、割り当てたスコアが最大の値をとる対応関係情報Ｆ１を選択する（ステップＳＴ０４１２）。
【０２６４】
その後、図示を省略するが、関係選択部１６３０は、選択した対応関係情報Ｆ１を翻訳部１７００へ出力する。また、関係選択部１６３０は、変換された入力文、抽出された例文パタン、対訳例文パタン、及び対応関係情報Ｆ２をも翻訳部１７００へ出力する。次に、関係選択部１６３０は、関係選択処理の実行を終了する。
【０２６５】
ここで図２に戻り、翻訳装置１０００の構成について引き続き説明を行う。
翻訳部１７００は、記憶部１１００、抽出部１６００、及び表示装置２０００に接続している。翻訳部１７００は、後述する翻訳処理を実行することで、入力文を構成する非共通部分を含む文字列と、抽出部１６００が抽出した例文パタンを構成する非共通文字列を含む文字列に対応付けて記憶部１１００が記憶する対訳例文パタンを構成する文字列とを対応させる写像に基づいて、入力文を翻訳する。
【０２６６】
ここで図２５を参照して、翻訳部１７００が翻訳に用いる写像について説明を行う。図２５は、翻訳部１７００が翻訳に用いる写像を説明するための図である。
【０２６７】
図２５に示すように、翻訳部１７００が翻訳に用いる写像 F(S,B) は、入力文Ｓを変換した文Ｓ’を構成する文字列と、入力文Ｓを類別する例文パタンＡを構成する文字列との対応関係を定める写像 F1(S,A) と、例文パタンＡを構成する文字列と、例文パタンＡを翻訳した対訳例文パタンＢを構成する文字列との対応関係を定める写像 F2(A,B) との合成写像である。尚、写像 F1(S,A)及びF2(A,B)は、それぞれ対応関係情報Ｆ１及びＦ２が表す対応関係を定める写像である。
【０２６８】
ここで、翻訳部１７００が実行する翻訳処理の一例について説明を行う。
先ず、翻訳部１７００は、抽出部１６００から、変換後の入力文Ｓ'と、抽出部１６００が抽出した例文パタンＡとの対応関係情報Ｆ１を取得し、取得した情報が表す写像 F1(S, A) を特定する。
【０２６９】
次に、翻訳部１７００は、記憶部１１００が記憶する例文パタンＡと対訳例文パタンＢとの対応関係情報Ｆ２を取得するか、抽出部１６００から情報Ｆ２を取得し、取得した情報が表す写像 F2(A, B) を特定する。
【０２７０】
また、翻訳部１７００は、記憶部１１００又は抽出部１６００から、例文パタンＡに対応付けた対訳例文パタンを取得する。
【０２７１】
その後、翻訳部１７００は、写像 F1(S, A)と写像 F2(A, B)とを合成し、合成した写像 F(S, B) と、対訳例文パタンとを用いて入力文Ｓを翻訳する。次に、翻訳部１７００は、翻訳した文を表示装置２０００が表示するよう制御する。その後、翻訳部１７００は、翻訳処理の実行を終了する。
【０２７２】
尚、翻訳部１７００は、例文パタンＡ及び対訳例文パタンＢの可変部分に対応する入力文Ｓ’を構成する変換後の文字列を、記憶部１１００が記憶する単語辞書、又は例文辞書を用いて翻訳する。
【０２７３】
ここで図１に戻り、翻訳システム１０の構成について引き続き説明を行う。
表示装置２０００は、例えば、ＣＲＴ（Cathode Ray Tube）、液晶ディスプレイ、又はプラズマディスプレイで構成され、翻訳装置１０００に接続している。
【０２７４】
表示装置２０００は、翻訳装置１０００に制御されて第１の言語で表された入力文を表示する。次に、表示装置２０００は、翻訳装置１０００が翻訳した翻訳文を表示する。
【０２７５】
入力装置３０００は、例えば、キーボード、ポインティング・ディバイス（いわゆるマウス）、又はタッチパネルで構成され、翻訳装置１０００に接続している。入力装置３０００は、翻訳装置１０００の使用者に操作されて、第１の言語で表された入力文を入力する。
【０２７６】
本実施例においては、記憶部１１００が記憶手段に相当し、検索部１３００が検索手段に相当し、変換部１４００が変換手段に相当し、算出部１５００が算出手段に相当し、抽出部１６００が類別手段に相当し、翻訳部１７００が翻訳手段に相当する。
【０２７７】
以下、本発明の第２の実施例に係る翻訳システムの実施形態について説明する。
【実施例２】
【０２７８】
第２の実施例において、翻訳装置を構成する単語検索部は、ハッシュ関数を用いて例文パタンを検索する。この単語検索部は、トライ構造を有するツリーを用いて検索する実施例１において説明した単語検索部と異なる。
【０２７９】
実施例２における翻訳システムを構成する翻訳装置、表示装置、及び入力装置の接続、構成、及び機能については、実施例１における翻訳装置１０００、表示装置２０００、及び入力装置３０００の接続、構成、及び機能と同様であるため、以下主に、相違点についてのみ説明する。また、説明の便宜のため、実施例１で用いた符号と同じ符号を用いて説明を行う。
【０２８０】
ここで、実施例２において、単語検索部１３１０が実行する単語検索処理の一例について説明を行う。
【０２８１】
先ず、単語検索部１３１０は、解析部１２００から、入力文を構成する形態素を取得する。次に、単語検索部１３１０は、取得した形態素から入力文を構成する単語を抽出する。
【０２８２】
その後、単語検索部１３１０は、抽出した単語に基づいて、ハッシュ処理を実行することで、ハッシュ値を計算する。次に、単語検索部１３１０は、計算したハッシュ値と関連付けて記憶部１１００が記憶するインデックス配列１１３０のレコードＩＤを取得する。
【０２８３】
尚、記憶部１１００は、単語検索部１３１０が計算するハッシュ値と、ハッシュ値を計算する基礎とした単語を用いた例文パタンの識別情報を保存したインデックス配列の要素であるレコードを識別するレコードＩＤとを関連付けて記憶している。
【０２８４】
次に、単語検索部１３１０は、取得したレコードＩＤを例文パタン検索部１３２０へ出力する。尚、単語検索部１３１０は、解析部１２００から取得した単語及び節をも例文パタン検索部１３２０へ出力する。その後、単語検索部１３１０は、単語検索処理の実行を終了する。
【０２８５】
ここで図２６を参照して、実施例２において単語検索部１３１０が実行するハッシュ処理について説明を行う。図２６は、実施例２において単語検索部１３１０が実行するハッシュ処理の一例を表すフローチャートである。
【０２８６】
先ず、単語検索部１３１０は、ハッシュ値を格納する変数Ｈを初期化する（ステップＳＴ０５０１）。次に、ハッシュ値を計算する対象とする単語Ｗを取得する（ステップＳＴ０５０２）。ここで、単語Ｗは、文字ｗ１からｗＬで構成されるとする。
【０２８７】
その後、単語検索部１３１０は、カウンタ変数 i に値「1」を代入して初期化する（ステップＳＴ０５０３）。次に、単語検索部１３１０は、カウンタ変数の値 i が文字数 Ｌ 以下であるかを判断する（ステップＳＴ０５０４）。単語検索部１３１０は、カウンタ変数の値 i が文字数Ｌ 以下であると判断する場合にはステップＳＴ０５０５の処理を、そうで無い場合にはハッシュ処理の実行を終了する。
【０２８８】
ステップＳＴ０５０４において、単語検索部１３１０は、カウンタ変数の値 i が文字数 Ｌ 以下であると判断した場合には、変数Ｈに対して、数式「 H | (wi << (i & 0x0F))」を用いて計算される値を代入する（ステップＳＴ０５０５）。尚、記号「&」、「<<」、及び「|」は、AND演算子、左シフト演算子、及びOR演算子を表す。
【０２８９】
次に、単語検索部１３１０は、変数Ｈに対して、数式「 H = H % L 」を用いて計算される値を代入する（ステップＳＴ０５０６）。尚、記号「%」は、モジュロ演算子を表す。その後、単語検索部１３１０は、上記ステップＳＴ０５０４に戻り上記処理を繰り返す。
【０２９０】
翻訳装置１０００は、演算部１００１がＲＯＭ１００２、ＲＡＭ１００３、及び外部記憶部１００４の少なくともひとつに格納されたプログラムを実行することによって実現される。また、このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
【０２９１】
以下に、第1の実施例で使用可能な入力文に対して比較的複雑な入力文も翻訳可能な第3の実施例に係る翻訳システムについて説明する。
【実施例３】
【０２９２】
図２７は本発明の第3の実施例に係る翻訳システムの機能的な構成を示すブロック図である。同図において、翻訳システム１０aは、翻訳装置１００１、出力装置２０００および入力装置３０００を含んで構成される。図２８は翻訳装置１００１の主要部の構成を示す詳細ブロック図である。図1、図2で説明した第1の実施例の翻訳システム１０と同一の構成要素には、同一の参照符号を付与した。
以下相違部分に重点をおいて説明する。
【０２９３】
まず、解析部１２００は、入力装置３０００から入力された第1言語の文書情報を形態素解析し、入力文を構成する単語を切り分け，単語の品詞を付与するなどの処理をする。
【０２９４】
検索部１３００は、解析部１２００の解析結果および記憶部１１００の記憶内容を参照して、入力文と類似な第1言語の例文パタン候補（1または複数ある）を抽出する。
【０２９５】
変換部１４０１は、第1言語の入力文と抽出された第1言語の例文パタンの候補を用いて，入力文の節を求める。第1言語入力文を第1言語例文パタンとの間の相違を求めるために，第1言語例文パタンに基づいて第1言語入力文を変換する。第1の実施例の変換部１４００との相違点は、後述する。
【０２９６】
算出部１５００は変換部１４０１で変換された第1言語入力文の単語/節の列と第1言語例文パタンの候補間の相違として距離を求める。最小な相違を決める第1言語入力文の単語/節の列と、抽出された第1言語の例文パタン候補間の変換写像を求める。ここで，最小な相違値としての距離値を与える例文パタン候補が複数ある場合があるし、最小な相違値を決める例文パタン候補と入力文の単語/節の列間の変換写像が複数ある場合もある。
【０２９７】
抽出部１６００は、第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を求める。第1言語入力文の単語/節の列と抽出された第1言語の例文パタン候補間の対応関係(写像)を求める。抽出部１６００は第1の実施例と同様の詳細構成を有し、最終段の関係選択部１６３０は第1言語入力文の単語/節の列と抽出された第1言語の例文パタン候補間の対応関係が複数ある場合は，適切な対応関係を選択する。
【０２９８】
判定修正部１８００は、判定部１８１０、修正部１８２０および最適関係選択部１８３０を含んで構成される。判定修正部１８００は、関係選択部１６３０の選択結果および記憶部１１００の記憶内容を参照して、選択結果を判定し、修正が必要な場合は、修正して算出部１５００に戻すことにより、再度対応関係を得るものである。
【０２９９】
判定部１８１０は、関係選択部１６３０の選択結果について、第１言語入力文の単語/節の列と第１言語例文パタン間の対応関係を再計算するかどうかを判定する。
【０３００】
修正部１８２０は、第1言語入力文の単語/節の列を修正して，修正後の第1言語入力文の単語/節の列と第1言語例文パタン間の相違をもう一度計算し，新しい距離値を定めるために第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を求める。
【０３０１】
最適関係選択部１８３０は、すべての例文パタンの候補と第1言語入力文の単語/節の列間の対応関係集合から，最適な対訳関係選択する。この選択により求められた例文パタン対訳ベアの番号と第1言語入力文の単語/節の列と抽出された第1言語の例文パタン間の対応関係を出力する。
【０３０２】
記憶部１１００は、第１の実施例と同様なデータ構成を有し、記憶内容としては、例文対訳辞書および例文パタン対訳辞書を含む。例文パタン対訳辞書は、例えば、例文パタン、訳文パタン、および例文パタンと訳文パタン間の対応関係を一組として記憶している．これを例文パタン対訳ペアと呼ぶ。
【０３０３】
翻訳部１７００は、最適関係選択部１８３０で選択された第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係、第1言語例文パタンとそのパタンに対応している訳語言語の例文パタン間の対応関係を用いて、第1言語入力文の単語/節の列と訳語言語の例文パタン間の対応関係を求め，可変部分を翻訳して，訳文を生成する。
【０３０４】
次に、第１の実施例の入力文は、比較的構成の簡単な基本的なものを対象としているのに対し、第３の実施例では、下記に例１乃至例５に示すような比較的複雑な入力文も翻訳可能とするものである。
【０３０５】
図２９に例１を示す。例１は、述語を修飾する副詞がある場合は，不適切なマッチングが起こりうることを示す。入力された第1言語の文Ｓが、「必ず  xxx  に渡してください」であり、抽出された第1言語の例文パタンの候補Ａは、「NPに渡してください」である。“必ず”は“渡す”を修飾しているが、“xxx”を修飾しているではない。従って、“必ずxxx”が名詞句(ＮＰ)として処理するのは適切ではない。この場合、翻訳するとき，訳文の生成が難しくなる。例えば、入力された第1言語の文Ｓが、「必ずFXの田中さんに渡してください」、抽出された第1言語の例文パタンの候補Ａは、Vに渡してください。“必ず”は“渡す”を修飾しているが、“FXの田中さん”を修飾しているわけではない。従って、“必ずFXの田中さん”が名詞句として処理するのは適切ではない。この場合、翻訳するとき，訳文の生成が難しくなる。中国語の場合も同様である。「私はリンゴを食べている」の例である。「私は」「ている」は名詞句ではないので、「ている」を示す単語が、私を示す単語を修飾するのは好ましくない。
【０３０６】
図３０に例２を示す。同図に示すように、入力文「私は子供が食べ残したリンゴを食べている」には、”子供が食べ残したリンゴ”が、動詞“食べる”の対象であり、パタンのＮＰ２にマッチングするべきであるが、実際には、その一単語だけＮＰ２にマッチングしてしまった場合を示す。同図に示すように、中国語の場合の同様である。
【０３０７】
図３１に例３を示す。同図に示すように、入力文Ｓ「海外市場の進出をめぐって、全社計画を立てた」であり、例文パタンＡは、「ＮＰ１の進出をめぐって、ＮＰ２を立てた」である。“全社/2の/71計画/17”は一つの名詞句として、パタンとマッチングしたほうが望ましいが，第１の実施例のアルゴリズムには，“の”がパタンの固定項目であるため，入力文の二つの“の”がパタンの可変項目(つまり、ＮＰ)に写像できない。つまり、“全社/2 の/71 計画/17”をひとつの可変項目として、ＮＰ２にマッチングできない。中国語の場合も同様である。同図では、日本語の「の」が中国語では、「的」に相当し、同様な問題が起きる。
【０３０８】
図３２に例４を示す。同図に示すように、入力文Ｓが、「私は子供が飲み残したジュースを捨てた」と例文パタンＡは、「ＮＰを捨てた」の間に完全にマッチングしてしまう。しかし、“私は子供が飲み残したジュース”が一つの句ではないので，パタンのＮＰにマッチングすることが不適切である。中国語の場合も同様である。入力文が「私は今大学を受験している王さんと友達になりました」を示し、例文パタンは「ＮＰはＮＰを受験する」を示す例である。
【０３０９】
図３３に例５を示す。同図に示すように、入力文Ｓが、「分かる よう に 報告 書 を 書いてください」であり、例文パタンＡは「分かる ように ＮＰ を   書いてください」である。形態素解析の結果“よう/に”は、例文パタンの固定項目“ように”にマッチングできない。中国語の場合も同様である。入力文の「偏/移」は、例文パタンの固定項目「偏移」にはマッチングできない。
【０３１０】
以上のような例の入力文と例文パタンの不適切なマッチングに対応するための詳細構成を説明する。
【０３１１】
変換部１４０１の構成は、第１の実施例での変換部１４００の機能に加えて下記の変換ルール（規則）による機能を持つ。
【０３１２】
即ち、S=s1s2…sn:入力文、S’=s1’s2’…sn’:変換後の入力文、A=a1a2…am:例文パタンの場合に以下のルール(1)乃至(4)を持つ。
(1)入力文Sのある単語skがパタンのある連続している固定項目aiai+1…aj (i=j可能)と等しい。即ち、sk=aiai+1…aj (i=j可能)、かつ、次の条件Ｃ１を満たさない場合は、skをS’の一つの固定項目とする。同時に、例文パタンA のaiai+1…ajを一つの固定項目に変換する。
(2)入力文Sのある連続している単語列shsh+1…sm=ahが例文パタンAのある固定項目asに等しい。即ち、shsh+1…sm=as、かつ、次の条件Ｃ１を満たさない場合は、shsh+1…smをS’の一つの固定項目とする。
(3)入力文Sに，次の条件Ｃ２を満たすすべての単語とskをS’の固定項目とする(ここで、skが動詞，或いは形容詞であり、skが例文パタンAに対応している固定項目をakとする)。
(4)入力文Sに固定できない連続部分をS’の可変項目とする。
【０３１３】
条件Ｃ１：
・入力文の言語が中国語かつskが動詞の場合：入力文Sがパタン“sk +的”(or“sk +n+的”，or“的+ sk” , or“所+ sk +的”)を持っているが，例文パタンAは、対応しているパタンを持っていない。
・入力文の言語が中国語かつskが動詞の場合、入力文が、パタン“sk +的”(or“sk +n+的”，or“的+ sk” , or“所+ sk +的”)を持っていないが、逆に、例文パタンAは、対応しているパタンを持っている。
・入力文の言語が日本語かつskが動詞の場合：入力文がパタン“sk +の”(or“sk +のは”， or” sk +こと” ， or” sk +中” ” ， or” sk +という”)を持っているが、例文パタンAは，対応しているパタンを持っていない。
・入力文の言語が日本語かつskが動詞の場合：入力文がパタン“sk +の”(or“sk +のは”、or” sk +こと”、 or” sk +中”、” ， or” sk +という”)を持っていないが、逆に、例文パタンAは、対応しているパタンを持っている。
【０３１４】
条件Ｃ２:ここで，nが名詞，adjが形容詞を表す。
・入力文の言語が中国語かつskが動詞の場合：入力文は、パタン“n+地+sk”(or “adj+sk”， or “adj+地+sk”,or “狠+adj+地+sk”, or “sk +得”)を持っている。
・入力文の言語が中国語かつskが動詞の場合：入力文に、skの左の一番近い動詞までの副詞と可能動詞。
・入力文の言語が中国語かつskが動詞の場合：入力文は、パタン“sk +得+adj”(or “sk+adj”，or  “sk +v”, or “sk +得+v”)を持っている。
・入力文の言語が中国語かつskが形容詞の場合：入力文は、パタン“sk +得”を持っている。
・入力文の言語が日本語かつskが動詞の場合：入力文に、skの左の一番近い動詞までの副詞。
【０３１５】
変換ルール(1)と(2)は、例５に示した場合の不整合を解消する。しかし、C1の条件を満たす場合は，例外として処理する。つまり、（１）skは入力文の句の要素、かつ、パタンにはその句のパタンが存在しない場合は，固定項目としない。（２） skはパタンの句パタンの要素，かつ，文にはskを含むその句が存在しない場合は，固定項目としない。註：示したＣ１の内容は全部ではない。
【０３１６】
変換ルール(3)について、
Ｃ２の次の条件は，例1に示した場合の不整合を解消する。
・入力文の言語が中国語かつskが動詞の場合：入力文に，skの左の一番近い動詞までの副詞と可能動詞。
・入力文の言語が日本語かつskが動詞の場合：入力文に，skの左の一番近い動詞までの副詞。
【０３１７】
Ｃ２の次の条件は、動詞skが名詞句の要素ではないことを判定するためのルールの一部分である。
・入力文の言語が中国語かつskが動詞の場合：入力文は，パタン“n+地+sk”(or “adj+sk”， or “adj+地+sk”,or “狠+adj+地+sk”, or “sk +得”)を持っている。
・入力文の言語が中国語かつskが動詞の場合：入力文は，パタン“sk +得+adj”(or “sk+adj”，or  “sk +v”, or “sk +得+v”)を持っている。
・入力文の言語が中国語かつskが形容詞の場合：入力文は，パタン“sk +得”を持っている。
なお、「地」、「狠」、「得」は、「の」の意味である。
【０３１８】
変換ルール(4)は、入力文に固定できない連続部分（つまり残りの部分）を可変項目として求める。連体節、連用節に対応する。
【０３１９】
選択部１６３０の選択機能例について説明する。それを実現するルール(規則)例を述べる。
【０３２０】
選択ルールは下記の通りである。
・集合F1set(S’,A)は、第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を求める抽出部で求められた第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係の集合とする。
・集合F1set(S’,A)の各写像F11に対して、
・F11にある任意の二つの対応関係 (si-ak) ∈ F11, (sj-ah) ∈F11に対して，もし，siがsjと近隣， akがahと近隣なら，F11の選択優先度を＋１とする。
・集合F1set(S’,A)に選択優先度が一番高い写像を選択する(複数可能)。
【０３２１】
図３４を参照して具体例で説明すると、同図に示すように、
「入力された第1言語の文Ｓは「ＦＸの田中さんに必ず渡してください」であり、
抽出された第1言語の例文パタンでの一つの候補Ａは、「必ずV1をV2に渡してください」である。
【０３２２】
この例で二つの写像がある。一つ目のF11について，“FXの田中さん”が、“に”と近隣(この例では隣接)しているが，それぞれ対応しているV1と“に”が近隣していないので、+１されず、選択優先度は0である。
【０３２３】
二つ目のＦ１２については、“FXの田中さん”が、“に”と近隣している。かつ、それぞれ対応しているV2と“に”が近隣しているので、+１され、選択優先度は、１である。
【０３２４】
従って、選択優先度が大きいF12が選択される。
【０３２５】
次に、判定部１８１０について説明する。以下のようなルール(規則)を持つ。
・各F1(S’,A) ∈F1set(S’,A)に対して、
・F1(S’,A)において、もし、S’の中には，パタンAとの対応関係をもっていない固定項目siがあり、かつ、次の条件を満たすとき、
・S’にある固定項目skが存在し，かつsi=sk
・(sk,as) ∈ F1(S’,A)
・si-1,or si+1が可変項目である。
【０３２６】
図３５を参照して具体例で説明すると、同図に示すように、パタンAとの対応関係を持っていない入力文の「食べる」を示す固定項目“吃/v”(2番目の)に対して、
１．S’に二つの“吃/v”がある。
２．左側の“吃/v”がパタンAとの対応関係を持っている。
３．“吃/v”の左側の項目は「子供」を示す可変項目“孩子/n”であり，右側の項目は「残したリンゴ」を示す可変項目“剩下/v的/u苹果/n”である。従って，S’は修正する必要がある。
【０３２７】
次に修正部１８２０について説明する。
【０３２８】
以下のようなルールを持つ。判定部１８１０で再計算が必要な写像をF1(S’,A) ∈F1set(S’,A)とする。例文パタンAとの対応関係をもっていないS’の固定項目をsiに対して、
a.si-1とsi+1が可変項目の場合は，si-1,si, si+1をS’の一つの可変項目に修正する。
b.si-1だけが可変項目の場合は，si-1,siをS’の一つの可変項目に修正する。
c.si+1だけが可変項目の場合は，si, si+1をS’の一つの可変項目に修正する．
・修正後のS’における任意の二つの可変項目siとsjについて，もし，siがsｊと近隣するなら、si,sｊをS’の一つの可変項目に修正する。
【０３２９】
図３６に示す例では、例文パタンAとの対応関係を持っていない入力文S’の固定項目“吃/v”(2番目の)に対して、“吃/v”の左側の項目は、可変項目“孩子/n”であり，右側の項目は可変項目“剩下/v的/u苹果/n”である。従って、“孩子/n”、“ 吃/v”と“ 剩下/v的/u苹果/n”をS’の一つの可変項目に修正する。つまり、入力文S’は図３６に示すように「子供が食べ残したリンゴ」を意味する部分を一つの可変項目として修正された。
【０３３０】
このような修正と、再マッチング(算出部１５００、抽出部１６００の処理)をすることにより、例２および例３で述べた不整合を解消することができる。
【０３３１】
次に、最適関係選択部１８３０について説明する。以下に述べる選択ルールで、選択条件の優先順位により入力文Sとマッチングした例文パタンAの対応関係(写像)を選択する。
【０３３２】
F1set(S)が入力文Sとマッチングした例文パタンAの集合を表すとする。
・第1位の条件：F1set(S)にあるすべての写像F1i(S’,A)について，置換項目(パタンAの項目に対応関係を持っているS’の項目)が一番多い写像を選択する。
・第2位の条件：第1位の条件で選択した写像が複数の場合は，選択された複数の写像に対して、パタンAの挿入項目(S’と対応関係を持っていないパタンAの項目)数が一番少ない写像を選択する。
・第3位の条件：第2位の条件で選択した写像が複数の場合は，選択された複数の写像に対して、入力文S’の脱落項目(Aと対応関係をもっていないS’の項目)数が一番少ない写像を選択する。
・第4位の条件：第3位の条件で選択した写像が複数の場合は，マッチング範囲が一番狭い写像を選択する。
・第4.1位の条件：パタンAの一番左の置換項目(S’との対応関係を持っている項目)から一番右の置換項目(S’との対応関係を持っている項目)の間に，Aの挿入項目(S’との対応関係が持っていない項目)数が一番少ない。
・第4.2位の条件：S’の一番左の置換項目(Aとの対応関係をもっている項目)から一番右の置換項目の間に，S’の脱落項目数が一番少ない。
・第4位の条件で選択した写像が複数の場合は，任意一つを選択する。
【０３３３】
このような最適な対応関係(写像)の選択により、例４で述べた不整合を解消することができる
【０３３４】
次に図３７乃至図４１を参照して具体例で説明する。図３７に示すように、具体例として、入力された第1言語の文Sの単語列として、「アイスを食べている山崎さんはリンゴとミカンを食べている田中さんと一緒に映画を見る」であり、形態素解析の結果の文Sは、「アイス／を／食べている／山崎／さん／は／リンゴ／と／ミカン／を／食べている／田中／さん／と／一緒／に／映画／を／見る」である。例文パタンAは、「NP1はNP2と一緒NP3を見る」であり、例文パタンAにより，文Sを変換する(通常の黒字は可変項目，太文字が固定項目)。変換結果の文S’は、「アイス／を／食べている山崎さん／は／リンゴ／と／ミカン／を／食べている田中さん／と／一緒／に／映画／を／見る」となる。
【０３３５】
1回目で求めるS’とAの間のマッチングは、図３８および図３９に示すように、（１）乃至（８）の八つのマッチング結果である。いずれも距離D1=6である。図４０に示すように、マッチング(1)とマッチング(2)から修正部１８２０により修正処理と、算出部１５００および抽出部１６００による再マッチング処理により、距離D1=1の対応関係(写像)が得られる。
【０３３６】
また、図４１に示すように、マッチング(3)とマッチング(8)から同様に、修正処理と再マッチング処理により、距離D1=0の対応関係(写像)が得られる。この結果距離が小さい後者が最適対応関係として選ばれる。
【０３３７】
次に図４２および図４３のフローチャートを参照して、翻訳装置１００１の要部の動作を説明する。
形態素解析済みの入力文Sが検索部１３００に入力されと、検索部１３００は、入力文ｓに対応する例文パタン候補Aset、即ち、Dmin, F1set(S)，F1set(S’), F1set(S’,A)などを初期化する（Ｓ３０１、Ｓ３０２）。更に例文パタン候補Asetから例文パタン候補Aが取り出され、変換部１４０１により、パタンAに対応する入力文SをS’とする（Ｓ３０３、Ｓ３０４）。この入力文S’とAの間の距離D１を算出部１５００により求める。求めた距離D1がDmin最小値より小さいかどうか判断する（Ｓ３０６）。小さい場合には、F1set(S’,A)およびF1set(S’)をヌル値（NULL）即ち空値とし、D1をDminとした後、抽出部１６００で文S’と例文パタンAの間の対応関係(写像)を求める（Ｓ３０７、Ｓ３０９）。
【０３３８】
更に、求めた距離値Dimを定める写像をF1set(S’,A)に格納する。選択部１６３０で、F1set(S’,A)にある不適切な写像を削除する（Ｓ３１０）。得られたF1set(S’,A)をF1set(S’)に入れる。
即ち、F1set(S’)＝ F1set(S’)＋F1set(S’,A)
【０３３９】
その後、または、ステップＳ３０６で大きいと判断した場合には、Asetの候補をすべて処理したかどうかを判断し、未処理があれば、候補Ａを取り出し上記処理を行い、すべて処理済みであれば、次のステップに進む。
【０３４０】
次に、判定部１８１０で、F1set(S’)の中から一つの写像F1i(S’,A)を取り出し、F1i(S’,A)に対して，再計算する必要があるかどうかを判定する（Ｓ３１１、Ｓ３１２）。再計算する必要がある場合には、修正部１８２０で、F1i(S’,A)と候補Ａを参考して、文S’を修正し、これを修正後の文S’’とする（Ｓ３１３
）。
即ち、F1set(S’,A)＝F1set(S’,A)-F1i(S’,A)
【０３４１】
修正後の文S’’と候補Aの間の相違を算出部１５００で求める（Ｓ３１４）。求めた相違としての距離値をD2とする。距離値D2が最小値Dminより小さいかどうかを判断する（Ｓ３１５）。小さい場合には、文S’’と候補Aの間の対応関係(写像)F1set(S’’,A)を求める（Ｓ３１６）。その後、Dmin=D2であれば、F1set(S)=F1set(S)+F1set(S’’,A)とし、Dmin>D2であれば、F1set(S)=F1set(S’,A)およびDmin=D2とする（Ｓ３１７）。
【０３４２】
ステップＳ３１７の処理の終了後、ステップＳ３１５で、大きいと判断した場合、およびステップＳ３１２で再計算の必要がないと判断した場合には、F1set(S’)の写像をすべて処理したかどうかを判断する（Ｓ３１８）。未処理があれば、ステップＳ３１２に戻り処理を行う。処理済であれば、F1set(S)がNULLであれば、F1set(S)= F1set(S’,A)とした後、最適関係選択部１８３０で、F1set(S)から最適な写像（対応関係）を求め、求めた写像をF1res(S,A)に入れる（Ｓ３１９、Ｓ３２０）。
【０３４３】
以下、第３の実施例を改良した第４の実施例に係る翻訳システムについて説明する。
【実施例４】
【０３４４】
図４４は本発明の第４の実施例に係る翻訳システムの機能的な構成を示すブロック図である。同図において、翻訳システム１０ｂは、翻訳装置１００２、出力装置２０００および入力装置３０００を含んで構成される。図４５は翻訳装置１００２の主要部の構成を示す詳細ブロック図である。図２７、図２８で説明した第３の実施例の翻訳システム１０aと同一の構成要素には、同一の参照符号を付与した。以下相違部分について説明する。
【０３４５】
検索部１３０１(図４４参照)は、第３の実施例の検索部１３００と同様に、解析部１２００の解析結果および記憶部１１００の記憶内容を参照して、入力文と類似な第1言語の例文パタン候補（1または複数ある）を抽出する。この際に、入力文と候補の例文パタンの類似度およびカバー率の関係から対象とする候補の範囲を絞って候補の例文パタンを検索する。詳細は後述する。
【０３４６】
判定修正部１８０１(図４５参照)は、第３の実施例の判定修正部１８００と同様に、判定部１８１０および修正部１８２０を含むが、判定部１８１０の後段に第２判定部１８１５が追加され、その後段に最適関係選択部１８３１が接続されて構成される。判定修正部１８０１は、第３の実施例の判定修正部１８００と同様に、関係選択部１６３０の選択結果および記憶部１１００の記憶内容を参照して、選択結果を判定し、修正が必要な場合は、修正して算出部１５００に戻すことにより、再度対応関係を得るものである。
【０３４７】
追加された第２判定部１８１５は、まず、判定部１８１０により、関係選択部１６３０の選択結果について、第１言語入力文の単語/節の列と第１言語例文パタン間の対応関係を再計算するかどうかが判定され、この判定の結果、再計算が不要な場合の対応関係と距離値について、所定の規則を満たすか判定し、得られた候補の例文パタンを翻訳用パタンとして選出する。次に、再計算が必要で、修正部１８２０により、第1言語入力文の単語/節の列が修正され、算出部１５００を介して、修正後の第1言語入力文の単語/節の列と第1言語例文パタン間の相違がもう一度計算され、更に抽出部１６００を介して得られた、新しい距離値を定める第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係と距離値について、所定の規則を満たすか判定し、得られた候補の例文パタンを翻訳用パタンとして選出する。詳細は後述する。
【０３４８】
最適関係選択部１８３１は、第２判定部１８１５から得られたすべての例文パタンの候補と第1言語入力文の単語/節の列間の対応関係集合から、最適な対訳関係選択する。この選択により求められた例文パタン対訳ベアの番号と第1言語入力文の単語/節の列と抽出された第1言語の例文パタン間の対応関係を出力する。第３の実施例の最適関係選択部１８３０とは、選択手法が異なり、最適関係選択部１８３０が優先順を付けた選択条件で選択していたのに対し、最適関係選択部１８３１は優先順位を付けず、総合的に判断して選択する点で異なる。詳細は後述する。
【０３４９】
図４２および図４３のフローチャートで示すように、第３の実施例の処理フローでは、入力文と候補の例文パタンの写像(対応関係)が間違いとなる間違いマッチングを防ぐために、再計算が必要かどうか判定し、入力文の変換を修正し、２回目以降の再マッチングを行っている。その際、その前半の１回目のマッチング処理(図４２：ステップＳ３０１〜Ｓ３１０まで)で、相違値としての距離値が最小となる写像を求め、その最小となる候補の例文パタンから２日目のマッチング処理(図４３：ステップＳ３１１〜Ｓ３１９)が行われる。しかし、本来、候補として選出すべき例文パタンであっても、１回目で距離値が最小とならないとき、最適な候補の例文パタンとならない場合がある。
【０３５０】
この場合の入力文と候補の例文パタンとの対応関例を図４６に示す。同図に示すように、入力文Ｓが「私/14 は/65 子供/2が/61 食べ[食べる/47]/47 残した[残す/47 た/74]/47 リンゴ/2 を/61 食べている[食べる/47 て/64 いる/48]/47」である。これに対し、最初の候補の例文パタンＡ１が、「NP1 はNP2 を食べている[食べる て いる]」であり、二つ目の候補の例文パタンＡ２が、「NP1 はNP2 が食べ[食べる/47]/47残した[残す/47 た/74]/47 NP3です」である。最初の例文パタンＡ１の名詞句NP2 に対して、入力文Ｓのうち、「子供/2が/61」を誤って対応させているため、最初の候補の例文パタンＡ１との距離値が大きくなり２である。一方、二つ目の候補の例文パタンＡ２では、図４６に示すように各項目を対応させ、距離値が１となっている。この結果、本来候補として残るべき最初の例文パタンＡ１が除外され、候補として相応しくない二つ目の候補の例文パタンＡ２が残ることになる。中国語の場合も同様になる。
【０３５１】
次に、第３の実施例の最適関係選択部１８３０では、すでに述べたように、選択ルール(規則)で、選択条件の優先順位により入力文Ｓとマッチングした例文パタンＡの対応関係(写像)を選択する。最優先の第1位の条件として、対象となるすべての写像について，置換項目(パタンＡの項目に対応関係を持っている入力文Ｓの項目)が一番多い写像を選択している。本来、候補として選出すべき例文パタンであっても、置換項目の項目数が小さいとき、最適な候補の例文パタンとならない場合がある。
【０３５２】
この場合の入力文と候補の例文パタンとの対応関例を図４７に示す。入力文Ｓに対して、同じ距離値を持つ例文パタンが複数ある(同図の場合２個)。その中には、一般論として、マッチングした項目数が多ければ多いほど、例文パタンが入力文とのマッチング具合はよいと考えられる。しかし、図４７に示すような例外がある。
【０３５３】
同図は、最初の入力文Ｓと候補の例文パタンＡ１は、図４６と同様であるが、その対応関係では、例文パタンＡ１の名詞句NP2 対して入力文Ｓの「子供/2が/61 食べ[食べる/47]/47 残した[残す/47 た/74]/47 リンゴ/2 」に正しく対応させており、距離値が０で、置換項目数(マッチング数)は５である。これに対し、二つ目の対応関係は、入力文Ｓは最初の例と同じで、候補の例文パタンＡ３は、「NP1 が食べ[食べる/47]/47   残した[残す/47 た/74]/47 NP2 を食べている[食べる て いる]」である。その対応関係では、例文パタンの名詞句NP2 に対して入力文Ｓの「私/14は/65子供/2」を誤って対応させているが、距離値０で、置換項目数(マッチング数)は７である。
【０３５４】
このような場合に対応して改良した本実施例の翻訳システム１０bにおける翻訳装置１００２の第３の実施例との相違部分の詳細について説明する。
【０３５５】
まず、検索部１３０１では、例文パタンの候補範囲を絞ることにより、以降の処理の効率化による高速化が期待できる。候補の例文パタンを入力文との類似度とカバー率で範囲を絞る場合の例を図４８に示す。同図(ａ)(ｂ)は、横軸を類似度Sim(S,A)、縦軸をカバー率Cov(S,A)としたグラフである。例えば、同図(ａ)に示すように、入力文との類似度とカバー率がそれぞれある閾値(Ｇ２、Ｇ１)を超えると、例文パタンを候補とする。右の矩形領域に属している例文パタンが候補となる。ここで、検索部１３０１で検索するとき、入力文Sと例文パタンAの間の類似度とカバー率が次のように定義されている。
Sim(S,A)=(2 *|S∩A|)/(|S|+ |A|);  Cov(S,A)= |S∩A|/|S| 
|S|:Sのバイグラム(Bi-gram：２グラムとも云う)の数であり、|A|:AのBi-gramの数でS∩A|: SとAの共通Bi-gramの数である。
【０３５６】
さらに、効率よく範囲を絞る例について述べる。レンマ１(Lemma1)およびレンマ２(Lemma1)を導入する。レンマ１、レンマ２は、以下のように定義される。
Lemma1: Sim(S,A)≧Cov(S,A) 
Lemma2: Sim(S,A)<2*Cov(S,A) 
【０３５７】
レンマ１は、次のように証明される。
証明： Sim(S,A)/Cov(S,A) = 2* |S|/(|S|+ |A|);   |A|> |S|
の場合には、例文パタンのBi-gram数が入力文のBi-gram数より多い。もし、この例文パタンを用いて入力文Ｓを翻訳するときに、例文パタンAには、入力文と対応できない項目がある。従って、例文パタンAから対応できない項目を削除する必要がある。しかし、例文パタンの項目を削除すると、例文パタンが崩れるため、翻訳が困難になる。従って、|A|<= |S|の場合だけ考えれば十分である。従って、
Sim(S,A)/Cov(S,A) = 2* |S|/(|S|+ |A|)≧1;
となる。
【０３５８】
レンマ２は、次のように証明される。
証明：  Sim(S,A)/Cov(S,A) = 2* |S|/(|S|+ |A|);    |S| >> |A|
の場合は、入力文Ｓが例文パタンAより大きければ大きいほど、 Sim(S,A)/Cov(S,A)は2に接近する。つまり、 Sim(S,A)/Cov(S,A)の最大値が2より小さい。従って、
Sim(S,A)/Cov(S,A)<2. 
となる。
【０３５９】
図４８(ｂ)は、図４８(ａ)の矩形領域で示す範囲に対してレンマ１の境界線(４５度の傾きの線)以下で、かつレンマ２の境界線(類似度に対してカバー率が２分の１となる線)以上の領域で示す範囲となる。この結果、無駄なマッチングを減らすことができ、効率よくマッチング処理をおこなうことができる。従って、その処理を高速化できる。
【０３６０】
次に判定修正部１８０１の第２判定部１８１５の詳細について述べる。
【０３６１】
第２判定部１８１５は、以下の判定規則を持つ。
判定規則１：例文パタンの可変部分にマッチングした入力文の部分文字列には、句読点を含まないこと。
判定規則２： Sim(S,A)/Cov(S,A) > G3(閾値)_Lemma3を満たさないこと。
判定規則３： 距離値 <= Dmin(現段階の距離最小値) + Dis（距離範囲を定める距離変動値）、
and   距離値 < Dmax(最大距離値)であること。
判定規則２に示すレンマ３(Lemma3)は、下記のように定義される。
Lemma3: Sim(S,A)/Cov(S,A) > G3 
ここで、G3の範囲は、例えば1.5〜1.8である。例文パタンAが小さく、かつ入力文(変換後)は大きいと言える。つまり、小さい例文パタンが大きい入力文にマッチングしたことである。
【０３６２】
レンマ３は、下記のように証明される。
証明：Lemma2より、 Sim(S,A)/Cov(S,A)) < 2、入力文 Sの文字数が例文パタンAの文字数より多ければ多いほど、 Sim(S,A)/Cov(S,A))が2に近くなる。つまり、Sim(S,A)/Cov(S,A))がある閾値を超えると、小さい例文パタンが大きい入力文にマッチングしたことが言える。従って、結論は、下記の通りである。
結論：候補の例文パタンがLemma3の条件を満たすときに、小さい例文パタンが大きい入力文にマッチングしたことが言える。このようなマッチングは間違いやすいので、翻訳候補の例文パタンとして選択しない。
【０３６３】
第２判定部１８１５は、判定部１８１０で再計算(修正)の必要がないと判定されたとき、入力文と候補の例文パタンの距離値および写像(対応関係)について、下記の判定1の処理を行い、判定部１８１０で再計算(修正)の必要がありと判定されたとき、修正部１８２０の入力文の修正(再変換)後に対して算出部１５００および抽出部１６００から得られた入力文(再変換)と候補の例文パタンの距離値および写像(対応関係)について、下記の判定２の処理を行う。判定1および判定２は、下記の処理を行う。
判定１：
入力文（変換後）と類似する候補の例文パタン間のマッチングと距離値D1が判定規則１、判定規則２、判定規則３を満たすときに、当該例文パタンを翻訳用候補とする。そのとき、
if 距離値D1 <= Dmin   then  Dmin = 距離値D1
とする。
判定２：
入力文（再変換後）と類似する候補の例文パタン間のマッチングと距離値D2が判定規則１、判定規則２、判定規則３を満たすときに、当該例文パタンを翻訳用候補とする。そのとき、
if 距離値D2 <= Dmin   then  Dmin = 距離値D2
とする。
【０３６４】
次に、最適写像選択部１８３１の詳細について述べる。
【０３６５】
図４７を参照して述べたように、入力文Sの「私は子供」を例文パタンのNP1 にマッチング(対応)させているので、得られた候補としての例文パタンは間違ったものとなる。もし、「私は子供」が名詞句ではないとする判断が可能なら、「私は子供」がNP1 にマッチングできなくなる。しかし、まだ、句の判断技術は未熟なので、実用的ではない。従って、句の判断技術を使用しない判断手段が必要である。最適な翻訳用候補の例文パタンを選択する基本的な考え方として、
(１) 例文パタンの可変部分にマッチングしている入力文の部分文字列は意味のある句である。
(２) マッチングした項目数ができるだけ多い。
(３) 距離値が小さい。
(４) 上記(１)(２)(３)の評価結果を融合して、総合的に判定する。
【０３６６】
このような基本的な考え方に従った具体的例について説明する。まず、(１)項の例文パタンの可変部分に対応する句の評価処理手順について、図４９のフローチャートを参照して説明する。なお、本実施例の翻訳システム１０ｂは、公知の図示しない翻訳メモリ(ＴＭ)やパタン対訳辞書を備えているものとする。ここでは、これらの要素は、句の評価のために参照するが、翻訳自体は行わないものとする。
【０３６７】
まず、句Ｐが翻訳メモリ(ＴＭ)に存在するか判断し、存在する場合には、句の評価値を1.0とする(Ｓ１１a、Ｓ１１ｂ)。存在しないならば、パタン対訳辞書に句Ｐと完全にマッチングするパタンがあるか判断し、ある場合には、句の評価値を0.8とする(Ｓ１２ａ、Ｓ１２b)。この場合、少なくとも句の構造は保証できる。パタン対訳辞書に句Ｐと完全にマッチングするパタンがないならば次に句を構成する単語だけで判断する。ここでは、単語の数が少ないほど評価を良くし、名詞を含む句は、良い評価をし、動詞等を含む句の場合には、評価を下げている。すなわち、句Ｐには、動詞、助詞、助動詞、感動詞があるか判断し、ない場合には、名詞を含むと判断し、句の評価値を1.0/(単語数)1/2とする(Ｓ１３ａ、Ｓ１３b)。これらの品詞を含むとき、動詞等を含む句と判断し、句の評価値を0.5/(単語数)1/2 とし(Ｓ１４)、句の評価手順を終了する。
【０３６８】
先に述べた基本的な考え方を採用した最適な翻訳用候補の写像を選択するための計算例について説明する。
・入力文(変換後)と翻訳用候補の例文パタン間のマッチング集合F1set(S’)にある各マッチングF1(S’,A)について、Fun1(F1(S’,A))と Fun2(F1(S’,A))を計算する。
・Fun2(F1(S’,A)) < G4(このG4は閾値で0.1〜0.3の値をとる) の場合は、F1set(S’)集合から当該マッチングF1(S’,A)を削除する。F1set(S’)集合に残ったすべてのマッチングに対して，最大のFun1(F1(S’,A))を決めるマッチングを求める。Fun1とFun2の計算方法について、以下にその例を二つ述べる。
【０３６９】
次に、Fun1とFun2の計算方法１について説明する。
Fun1とFun2の計算方法１：
Fun1は、次式で与えられる。
Fun1(F1(S’,A)) = 
( (Σ句の評価値)/句の数 * k1  +   マッチングした項目の総数 * k2  - 距離値*K3 )
* F1(例文パタンAのマッチングした固定項目数) * F2（例文パタンAのマッチングした可変項目数）
Fun2は、次式で与えられる。
Fun2(F1(S’,A)) = (Σ句の評価値) / 句の数 
ここで，例えば，K1 =10,   k2=１, K3=1である。
【０３７０】
次に、Fun1とFun2の計算方法２について説明する。
Fun1とFun2の計算方法２：
Fun1は、次式で与えられる。
Fun1(F1(S’,A)) = 
((Σ句の評価値)/句の数 * k1  +  
+  マッチングした項目の総数 *マッチングした項目の総数 /|A| * k2   
+   (|S’|*q+|A|*r -距離値)/2)
* F1(パタンAのマッチングした固定項目数) * F2（パタンAのマッチングした可変項目数）
ここで、例えば，K1 =10,   k2=3,    qとrはそれぞれ、マッチングするときの挿入重みと脱落重みである。
F1 = 0 ： 例文パタンのマッチングした固定項目数がG5(閾値)より小さい  ;   other 1
F2 = 0 ： 例文パタンにマッチングしていなかった可変項目数がある       ;   other 1
上記F1、F2は、0か1の値をとり、F1の場合、例文パタンのマッチングした固定項目数がG5(閾値)より小さいとき０であり、それ以外は１である。F2の場合、例文パタンにマッチングしていなかった可変項目数があるとき０であり、それ以外のとき１である。
【０３７１】
以上二つの計算例について説明したが、先に述べた基本的な考え方を採用するならば、他の計算方法でも良い。
【０３７２】
次に、以上述べた改良された構成要素を含む第４の実施例における翻訳装置１００２の要部の動作を図５０および図５１のフローチャートを参照して説明する。
【０３７３】
形態素解析済みの入力文Sが検索部１３００に入力されと、検索部１３００は、入力文ｓに対応する例文パタン候補Asetを検索する（Ｓ４０１、Ｓ４０２）。この際、
(１) Sim(S,A)>=Con(S,A); 
(２) Sim(S,A)<2*Cov(S,A) ; 
(３) 例文パタンの個数を所定の最大値に限定 、
となる条件で、例文パタンの候補範囲を絞り込んで検索を行い、
F1set(S)=F1set(S’,A)=NULL; Dmin =Dmax;
とする。
【０３７４】
次に、例文パタン候補Asetから例文パタン候補Aが取り出され、変換部１４０１により、パタンAに対応する入力文SをS’とする（Ｓ４０３、Ｓ４０４）。この入力文S’とAの間の距離D１を算出部１５００により求める（Ｓ４０５）。さらに、抽出部１６００で、距離D１を定める文S’と例文パタンAの間の対応関係(写像)、F1set(S’,A)を求める（Ｓ４０６）。選択部１６３０で、F1set(S’,A)にある不適切な写像を削除する（Ｓ４０７）。F1set(S’,A)から一つの写像F1i(S’,A)を取り出し、
F1set(S’,A)＝ F1set(S’,A) - F1i(S’,A)
とする（Ｓ４０８）。
【０３７５】
次に、判定部１８１０で、取り出した写像F1i(S’,A)に対して距離再計算を判定する必要があるかどうかを判定する（Ｓ４０９）。再計算する必要がある場合には、修正部１８２０で、写像F1i(S’,A)と候補Aを参考して、文S’を修正し、これを修正後の文S’’とする（Ｓ４１０）。修正後の文S’’と候補Aの間の相違を算出部１５００で求める（Ｓ４１１）。求めた相違としての距離値をD2とする。次に文S’’と候補Aの間の対応関係(写像)F1set(S’’,A)を求める（Ｓ４１２）。
【０３７６】
次に、第２判定部１８１５で、再計算が不要と判断された写像F1i(S’,A)に対して判定１の処理が行われ、再計算が必要と判断されて得られた写像F1set(S’’,A)に対して判定２の処理が行われる（Ｓ４１３a、Ｓ４１３b）。
【０３７７】
すなわち、判定１の処理では、
判定規則１として、可変項目の中に句読点がなし、
判定規則２として、Sim(S,A)/Cov(S,A) > Sim_G3を満足しない、
判定規則３として、D1 <= Dmin + Dis,  and D1<Dmax 
の３つ規則を満たすとき、
F1rest(S)=F1res(S)+F1set(S’’,A) 
とする。また、
D1 <= Dminのとき、Dmin = D1
とし、F1rest(S)に、距離値<=Dmin+DisのすべてのF1set(S’,A)を削除する。
【０３７８】
判定２の処理では、
判定規則１として、可変項目の中に句読点がなし
判定規則２として、Sim(S,A)/Cov(S,A) > Sim_G3を満足しない、
判定規則３として、D2 <= Dmin + Dis,  and D2<Dmax 
の３つ規則を満たすとき、
F1rest(S)=F1res(S)+F1set(S’’,A)
とする。また、
D2 <= Dmin のとき、Dmin = D2
とし、F1rest(S)に，距離値<=Dmin+DisのすべてのF1set(S’,A)を削除する。
【０３７９】
判定１または判定２の処理が終了すると、F1set(S’,A)が、ヌル値（NULL）即ち空値かどうか判断し、ヌル値でない場合には、ステップS４０８に戻って処理を行い、ヌル値の場合には、例文パタン候補Asetの候補の全てを処理したかどうか判断する（Ｓ４１５）。未処理があれば、ステップＳ４０３に戻って処理をし、処理済みであれば、最適関係選択部１８３１で、F1set(S)から最適な写像（対応関係）を求め、求めた写像をF1res(S,A)に入れる（Ｓ４１６）。
【０３８０】
最後に、図４６で述べた文Ｓと候補の例文パタンA1、A2を使用してA1、A2の計算の順番が変わっても問題ないことを示す簡単な計算例について説明する。初期値は、Dis=1 、Dmax=Dmin=9999とし、F1rest(S)=NULLとする。
【０３８１】
まず、計算順が例文パタンA1、A2の場合として、文Ｓ’と例文パタンA1の間の距離とマッチングを求める。例文パタンA1により、文Ｓを変換し文Ｓ’とする。文Ｓ’は、図４６の最初のＳと同様に対応させたものとする。この結果、文S’とA1間の距離は、
D(S’,A1)＝2
である。しかし、判定部１８１０で当該マッチングが修正する必要があると判明し、文Ｓ’を修正し、文Ｓ”する。ここで、修正された文Ｓ”は、図４７で示した最初の例の文Ｓと同様に、例文パタンA1の名詞句NP2と正しく対応させたものとすると、文S”と例文パタンA１間の距離は、
D(S”,A１)＝0
である。そこで、第２判定部１８１５が判定２で例文パタンA1が翻訳用候補の例文パタンと選択され、Dmin=0 となり、F1rest(S)にF1set(S”,A1)を追加する。
【０３８２】
次に、例文パタンA2間の距離とマッチングを求める、例文パタンA2により、文Sを変換し文Ｓ’とする。文Ｓ’は、図４６の二つ目の例のＳと同様に対応させたものとする。この結果、文S’と例文パタンA2間の距離は、
D(S’,A2)＝1
である。これは、例文パタンA2の「です」固定項目が挿入された重みである。第２判定部１８１５は、判定1で求められたマッチングを判定して、D(S’,A2)=1がDmin+Dis=0+1=1より小さくないので、当該パタンA2が翻訳用の候補パタンと選択されない。
【０３８３】
計算順が例文パタンA2、A1の場合も、文Ｓ’と例文パタンA2間の距離は、上記と同様に、 D(S’,A2)＝1
である。しかし、第２判定部１８１５の判定1で、求められたマッチングを判定して、例文パタンA2が翻訳候補用の例文パタンとなる。Dmin=1 、F1rest(S)にF1set(Ｓ’,A1)を追加する。
【０３８４】
次に文S’と例文パタンA1間の距離は、
D(S’,A1)＝2
であり、再変換後の文S”と例文パタンA１間の距離は、
D(S”,A１)＝0
である。第２判定部１８１５が判定２で例文パタンA1が翻訳用候補の例文パタンと選択され、Dmin=0 、F1rest(S)にF1set(S”,A1)を追加する。ここで、Dmin=0 、D(S’,A2)=1が、Dmin+Dis(現段階では0+1=1になる)より小さくないので、F1rest(S)からF1set(S’,A2)を削除する。
【０３８５】
従って、いずれの順番でも、不適切な例文パタンA2を排除し、適切な例文パタンA1を選択したことになる。
【０３８６】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【０３８７】
上記実施形態では、外部記憶装置はハードディスク（Hard Disk）で構成されるとして説明したが、これに限定されるわけではなく、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）、ＭＯ（magneto-optic）、及び、フラッシュメモリ（flash memory）で構成される実施形式を採用できる。
【符号の説明】
【０３８８】
１０…翻訳システム                １０００，１００１，１００２…翻訳装置      
１００１…演算部                  １００２…ＲＯＭ                  
１００３…ＲＡＭ                  １００４…外部記憶部              
１００５…バス                    １１００…記憶部（記憶手段）      
１１１０…線形例文パタン対訳辞書
１１２０…検索ツリー              １１３０…インデクス配列          
１２００…解析部                  １３００，１３０１…検索部（検索手段）      
１３１０…単語検索部              １３２０…例文パタン検索部        
１４００，１４０１変換部（変換手段）１５００…算出部（算出手段）      
１６００…抽出部（抽出手段）      １５１０…実抽出部              
１５２０…関係特定部              １５３０…関係選択部              
１７００…翻訳部（翻訳手段）      １８００…判定修正部
１８１０…判定部（判定手段）      １８１５…第２判定部(第2の判定部)
１８２０…修正部（修正手段）      
１８３０，１８３１…最適関係選択部（第２の選択手段）
２０００…表示装置                ３０００…入力装置                
Ａ…第１言語の例文パタン          ａ１〜５…例文パタンＡを構成する単語又は節
Ｂ…第２言語の例文パタン        
ｂ１〜６…対訳例文パタンＢを構成する単語又は節
Ｆ…入力文Ｓを、対訳例文パタンＢへ変換する写像
Ｆ１…入力文Ｓを、例文パタンＡへ変換する写像
Ｆ２…例文パタンＡを、対訳例文パタンＢへ変換する写像
ＩＤ…例文パタン対訳ペアのＩＤ    ＩＮ１２…ノードＮ１２を表す情報  
ＰＥ…例文パタン                  ＰＦ…固定部分（共通文字列）      
ＰＶ…可変部分（非共通文字列）    Ｓ…入力文                        
Ｓ’…変換後の入力文              ＳＥ１〜４…例文                  
【図１】
0005391867.tif 000005
【図２】
0005391867.tif 000006
【図３】
0005391867.tif 000007
【図４】
0005391867.tif 000008
【図５】
0005391867.tif 000009
【図６】
0005391867.tif 000010
【図７】
0005391867.tif 000011
【図８】
0005391867.tif 000012
【図９】
0005391867.tif 000013
【図１０】
0005391867.tif 000014
【図１１】
0005391867.tif 000015
【図１２】
0005391867.tif 000016
【図１３】
0005391867.tif 000017
【図１４】
0005391867.tif 000018
【図１５】
0005391867.tif 000019
【図１６】
0005391867.tif 000020
【図１７】
0005391867.tif 000021
【図１８】
0005391867.tif 000022
【図１９】
0005391867.tif 000023
【図２０】
0005391867.tif 000024
【図２１】
0005391867.tif 000025
【図２２】
0005391867.tif 000026
【図２３】
0005391867.tif 000027
【図２４】
0005391867.tif 000028
【図２５】
0005391867.tif 000029
【図２６】
0005391867.tif 000030
【図２７】
0005391867.tif 000031
【図２８】
0005391867.tif 000032
【図２９】
0005391867.tif 000033
【図３０】
0005391867.tif 000034
【図３１】
0005391867.tif 000035
【図３２】
0005391867.tif 000036
【図３３】
0005391867.tif 000037
【図３４】
0005391867.tif 000038
【図３５】
0005391867.tif 000039
【図３６】
0005391867.tif 000040
【図３７】
0005391867.tif 000041
【図３８】
0005391867.tif 000042
【図３９】
0005391867.tif 000043
【図４０】
0005391867.tif 000044
【図４１】
0005391867.tif 000045
【図４２】
0005391867.tif 000046
【図４３】
0005391867.tif 000047
【図４４】
0005391867.tif 000048
【図４５】
0005391867.tif 000049
【図４６】
0005391867.tif 000050
【図４７】
0005391867.tif 000051
【図４８】
0005391867.tif 000052
【図４９】
0005391867.tif 000053
【図５０】
0005391867.tif 000054
【図５１】
0005391867.tif 000055