JP5391867B2 - 翻訳装置及び翻訳プログラム - Google Patents

翻訳装置及び翻訳プログラム Download PDF

Info

Publication number
JP5391867B2
JP5391867B2 JP2009151682A JP2009151682A JP5391867B2 JP 5391867 B2 JP5391867 B2 JP 5391867B2 JP 2009151682 A JP2009151682 A JP 2009151682A JP 2009151682 A JP2009151682 A JP 2009151682A JP 5391867 B2 JP5391867 B2 JP 5391867B2
Authority
JP
Japan
Prior art keywords
sentence
pattern
input sentence
input
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009151682A
Other languages
English (en)
Other versions
JP2011008553A (ja
Inventor
紹明 劉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2009151682A priority Critical patent/JP5391867B2/ja
Publication of JP2011008553A publication Critical patent/JP2011008553A/ja
Application granted granted Critical
Publication of JP5391867B2 publication Critical patent/JP5391867B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、翻訳装置及び翻訳プログラムに関する。
従来から、翻訳作業の効率を向上させるために、翻訳対象とする文と類似した文を検索する類似文検索装置が知られている(例えば、特許文献1)。
この類似文検索装置は、例文を記憶する記憶手段と、翻訳対象とする文を受け付ける受付手段と、受付手段が受け付けた文と記憶手段が記憶する文とが類似する程度を表す類似度に基づいて記憶手段が記憶する例文を出力する出力手段とを具備することを特徴とする。
尚、類似度は、翻訳対象とする文に含まれる単語のうちで記憶手段が記憶する例文の中に出現する単語数を、翻訳対象とする文に含まれる単語数で除した値をいう。
また、翻訳対象とする原文を構成する形態素間の意味構造に近似した例文を検索し、検索した例文に基づいて原文を翻訳できる自動翻訳装置が知られている(例えば、特許文献2)。
この自動翻訳装置は、翻訳対象とする原文を入力する入力手段と、入力した原文を構成する形態素間の意味構造が近似する例文を選択する選択手段と、選択された例文に基づいて原文を翻訳する翻訳手段と、翻訳手段が翻訳した結果を表示する表示手段とを備えることを特徴としている。
更に、日本語で表された文と日本語で表された文を翻訳した文とを共通の特徴に基づいて類型した対訳パタンを用いて翻訳する翻訳処理装置が知られている(例えば、特許文献3)。
この翻訳処理装置は、入力文を構成する所定の文字列である定型部、及びそれ以外の任意の文字列である自由部で表される対訳パタンを用いて文を翻訳するパタン翻訳手段と、パタン翻訳手段が一つの対訳パタンを用いて複数の文を翻訳するように、自由部が文に存在せずとも定型部が一致する文に対しては対訳パタンを照合するパタン照合手段とを備えることを特徴としている。
特開2005−107597号公報 特開平06−83864号公報 特開平08−87506号公報
本発明の目的とするところは、少ない計算量で精度良く翻訳できる翻訳装置、翻訳システム及び翻訳プログラムを提供することにある。
本発明の請求項1に係る翻訳装置は、類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、翻訳を行う対象として入力された第1の入力文に対し、形態素解析を実行する解析手段と、前記解析手段によって形態素解析が実行された前記第1の入力文と前記例文パタンの類似度と前記例文パタンが前記第1の入力文をカバーしている割合を示すカバー率大小関係に基づいて、前記記憶手段から前記第1の入力文に応じた例文パタンを検索する検索手段と、前記解析手段によって形態素解析が実行された第1の入力文前記検索手段によって検索された例文パタンとに基づいて、前記第1の入力文を、前記第1の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第2の入力文へ変換する変換手段と、前記例文パタンと前記第2の入力文と前記距離を求める所定の処理に基づいて、記例文パタンと前記第2の入力文との前記距離例文パタン毎に算出する算出手段と、前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第2の入力文の形態素前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする像を抽出する抽出手段と、前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、前記判定手段で修正判定のとき、第2の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第2の入力文の形態素の区切りを修正し、修正した第2の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第1の入力文を翻訳する翻訳手段とを備えることを特徴とするものである。
本発明の請求項に係る翻訳システムは、類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、入力文を示す情報入力する入力手段と、翻訳を行う対象として前記入力手段により入力された第1の入力文に対し、形態素解析を実行する解析手段と、前記解析手段によって形態素解析が実行された前記第1の入力文と前記例文パタンの類似度と前記例文パタンが前記第1の入力文をカバーしている割合を示すカバー率大小関係に基づいて、前記記憶手段から前記第1の入力文に応じた例文パタンを検索する検索手段と、前記解析手段によって形態素解析が実行された第1の入力文前記検索手段によって検索された例文パタンとに基づいて、前記第1の入力文を、前記第1の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第2の入力文へ変換する変換手段と、前記例文パタンと前記第2の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、記例文パタンと前記第2の入力文との前記距離例文パタン毎に算出する算出手段と、前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第2の入力文の形態素前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする像を抽出する抽出手段と、前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、前記判定手段で修正判定のとき、第2の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第2の入力文の形態素の区切りを修正し、修正した第2の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第1の入力文を翻訳する翻訳手段とを備えることを特徴とするものである。
本発明の請求項に係る翻訳プログラムは、類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と接続されたコンピュータを、翻訳を行う対象として入力された第1の入力文に対し、形態素解析を実行する解析手段と、前記解析手段によって形態素解析が実行された前記第1の入力文と前記例文パタンの類似度と前記例文パタンが前記第1の入力文をカバーしている割合を示すカバー率大小関係に基づいて、前記記憶手段から前記第1の入力文に応じた例文パタンを検索する検索手段と、前記解析手段によって形態素解析が実行された第1の入力文前記検索手段によって検索された例文パタンとに基づいて、前記第1の入力文を、前記第1の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第2の入力文へ変換する変換手段と、前記例文パタンと前記第2の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、記例文パタンと前記第2の入力文との前記距離例文パタン毎に算出する算出手段と、前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第2の入力文の形態素前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする像を抽出する抽出手段と、前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、前記判定手段で修正判定のとき、第2の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第2の入力文の形態素の区切りを修正し、修正した第2の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第1の入力文を翻訳する翻訳手段として機能させることを特徴とするものである。
請求項1の構成によれば、複雑な入力文書についても、少ない計算量で精度良く効率的に翻訳できる。
請求項の構成によれば、複雑な入力文書についても、少ない計算量で精度良く効率的に翻訳できる。
請求項の構成によれば、複雑な入力文書についても、少ない計算量で精度良く効率的に翻訳できる。
本発明の翻訳装置で構成される翻訳システムの一実施形態を示す構成図である。 本発明の翻訳装置の一構成例を表す図である。 このソフトウェア制御を実現する翻訳装置のハードウェアの一構成例を表す図である。 例文パタンの一例を表す図である。 記憶部が記憶する例文パタン対訳辞書の一構成例を表す図である。 記憶部が記憶する検索ツリーの一例を表す図である。 検索部の一構成例を表す機能ブロック図である。 変換部が変換対象とする入力文を構成する文字列と、変換後の文字列とを表す図である。 変換部が実行する変換処理の一例を表すフローチャートの一部である。 変換部が実行する変換処理の一例を表すフローチャートの他部である。 変換部が重みを算出するために実行する重み算出処理の一例を表すフローチャートの一部である。 変換部が重みを算出するために実行する重み算出処理の一例を表すフローチャートの他部である。 算出部が実行する距離算出処理の一例を表すフローチャートの一部である。 算出部が実行する距離算出処理の一例を表すフローチャートの他部である。 算出部が実行する距離算出処理の一例を表すフローチャートの他部である。 算出部が実行する距離算出処理の一例を表すフローチャートの他部である。 抽出部の一構成例を表す機能ブロック図である。 関係特定部が実行する関係特定処理の一例について概説するための図である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの一部である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの他部である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの一部である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの他部である。 関係選択部が実行する関係選択処理の一例を表すフローチャートの一部である。 関係選択部が実行する関係選択処理の一例を表すフローチャートの他部である。 翻訳部が翻訳に用いる写像を説明するための図である。 実施例2において単語検索部が実行するハッシュ処理の一例を表すフローチャートである。 本発明の第3の実施例に係る翻訳システムの機能的な構成を示すブロック図である。 本発明の第3の実施例に係る翻訳装置の要部の詳細構成を示すブロック図である。 述語を修飾する副詞がある場合の不整合例を示す説明図である。 一単語だけに対応させた場合の不整合例を示す説明図である。 固定部分が複数回出現する場合の不整合例を示す説明図である。 句として対応させた場合の不整合例を示す説明図である。 形態素解析誤りの場合の不整合例を示す説明図である。 選択部を説明する対応関係の説明図である。 判定部を説明する対応関係の説明図である。 修正部を説明する対応関係の説明図である。 具体的な関係例を示す説明図である。 最初のマッチング結果の一部を示す対応関係図である。 最初のマッチング結果の残りを示す対応関係図である。 マッチング(1)(2)の修正による再マッチング結果を示す対応関係図である。 マッチング(3)(8)の修正による再マッチング結果を示す対応関係図である。 実施例3の要部構成での動作処理部分を示すフローチャートである。 実施例3の要部構成での動作処理の残部を示すフローチャートである。 本発明の第4の実施例に係る翻訳システムの機能的な構成を示すブロック図である。 翻訳装置1002の主要部の構成を示す詳細ブロック図である。 最小距離値により最適候補が除外される場合の入力文と候補の例文パタンとの対応関例を示す図である。 優先条件により最適候補が除外されるの入力文と候補の例文パタンとの対応関例を示す図である。 例文パタンを入力文との類似度とカバー率の関係で範囲を絞る例を示すグラフである。 実施例4における句の評価処理の手順を示すフローチャートである。 実施例4の要部構成での動作処理部分を示すフローチャートである。 実施例4の要部構成での動作処理の残部を示すフローチャートである。
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図1は、本発明の第1の実施例に係る翻訳装置を含む翻訳システムの基本的な実施形態を示す構成図である。図1に示す翻訳システム10は、翻訳装置1000、表示装置2000、及び入力装置3000で構成される。翻訳装置1000は、例えば、パーソナル・コンピュータで構成され、表示装置2000及び入力装置3000に接続している。
翻訳装置1000は、入力装置3000から第1の言語で表された文を取得し、取得した文を第2の言語で表された文へ翻訳し、翻訳した文を表示装置2000に表示させる。
本実施例において、言語は、中国語、日本語、及び英語等の自然言語のみならず、エスペラント等の人工言語を含む。また、本実施例では、第1の言語は日本語であり、かつ第2の言語は中国語であるとして説明を行う。しかしこれに限定される訳ではなく、例えば、第1の言語は中国語であり、かつ第2の言語は日本語であるように、第1の言語と第2の言語とが相違すれば良い。
ここで図2を参照して、翻訳装置1000の構成について説明をする。図2は、翻訳装置1000の一構成例を表す図である。図2に示す翻訳装置1000は、記憶部1100、解析部1200、検索部1300、変換部1400、算出部1500、抽出部1600、及び翻訳部1700で構成される。解析部1200、検索部1300、変換部1400、算出部1500、抽出部1600、及び翻訳部1700が有する機能は、翻訳装置1000が実行するソフトウェア制御により実現される。
ここで図3を参照して、ソフトウェア制御を実行するための翻訳装置1000のハードウェア構成について説明する。図3は、このソフトウェア制御を実現する翻訳装置1000のハードウェアの一構成例を表す図である。
翻訳装置1000は、例えば、CPU(Central Processing Unit)等の演算部1001、EPROM(Erasable Programmable Read-Only Memory)又はEEPROM(Electrically Erasable Programmable Read-Only Memory)等の読み出し専用メモリであるROM1002(Read-Only Memory )、DRAM(Dynamic RAM)又はSRAM(Static RAM)等の揮発性メモリ及びNVRAM(Non Volatile RAM)等の不揮発性メモリで構成されるRAM1003(Random Access Memory)、並びにハードディスク等の外部記憶装置で構成される外部記憶部1004で構成され、演算部1001、ROM1002、RAM1003、及び外部記憶部1004は互いにバス1005によって接続している。
ソフトウェア制御は、ROM1002又は外部記憶部1004に格納したプログラムであるアプリケーションを演算部1001が読込み、読込んだアプリケーションに従って演算部1001が演算を行うことにより上記各部の機能を実現する。なお、RAM1003には、演算結果のデータが書き込まれ、特にNVRAMには、電源オフ時にバックアップが必要なデータが保存される。
次に図2に戻り、引き続き翻訳装置1000の構成について説明する。記憶部1100は、例えば、RAM1003又は外部記憶部1004で構成され、検索部1300及び翻訳部1700に接続している。記憶部1100は、文を構成する文字列に基づいて例文を類別した例文パタンを記憶する。
ここで図4を参照して、例文パタンについて説明を行う。図4は、例文パタンの一例を表す図である。図4において、例文パタンPEは、例文SE1から4を類別するパタンである。
例文パタンPEは、類別される例文に共通な単語、又は節で構成される固定部分PFと、固定部分PFではない単語又は節であるが、類別される例文間で品詞が共通する単語又は節で構成される可変部分PVとで構成される。可変部分PVは、それらの品詞が共通する単語又は節を、例えば、V1及びV2といった記号を用いて表す。
よって、例文パタンPEは類別される例文に共通な文字列(以下単に、共通文字列という)で構成され、可変部分PVは類別される例文に共通しない文字列を表す記号(以下単に、非共通文字列という)で構成される。つまり、非共通文字列は、例文パタンを構成する共通文字列以外の文字列をいう。
ここで、節とは、文法上、従位接続詞や関係詞が導く文であって、主語と述語とが一組になり完結した文をいう。しかし本実施例では、動詞、形容詞、及び形容動詞である単語とそれらに付随して使用される助詞、助動詞、及び補助動詞である単語とを合わせて節といい、それぞれ動詞節、形容詞節、及び形容動詞節という。また、節の品詞とは、動詞節、形容詞節、及び形容動詞節のいずれかへ節を分類した区分けをいう。
具体的には、図4に示すように、「渡してください」という節SC1から4及びPCは、「渡す」という動詞である単語、「て」という接助詞である単語、及び「くださる」という補助動詞である単語で構成される。また、動詞である単語「渡す」とそれに付随して使用される単語「て」及び「くださる」とで構成される節SC1から4及びPCの品詞を動詞節という。
固定部分PFは、例文に共通な単語又は節のみならず、その同義語を表すFIX内容情報、可変部分であるか固定部分であるかを表すTYPE情報、並びに固定部分を構成する単語の品詞を表す品詞情報、固定部分を構成する単語が属している語彙体系を表す情報である言語体系属性名等で構成される。
可変部分PVは、共通する品詞を表す情報である変数名情報、及び可変部分であるか固定部分であるかを表すTYPE情報、可変部分の語彙体系属性名等で構成される。
本記実施例において、変数名情報は、共通する品詞が名詞であることを表す名詞フレーズ、形容詞であることを表す形容詞フレーズ、及び副詞であることを表す副詞フレーズを含む。また、本実施例において、可変部分PVは、類別される例文間で品詞が共通する単語又は節で構成されるとして説明したが、これに限定される訳ではなく、共通する性質の内容を表す単語又は節で構成される実施例を採用できる。共通する性質の内容を表す単語又は節の具体例としては、例えば、時間、数量、地名、又は人名を表す単語又は節を挙げることができる。
次に図2に戻り、引き続き翻訳装置1000の構成について説明する。
記憶部1100は、第1の言語で表された例文パタンと、第1の言語で表された例文パタンを第2の言語へ翻訳した例文パタンである対訳例文パタンとを対応付けて記憶する。
また、記憶部1100は、例文パタンを構成する単語、節、又は記号(以下単に、単語等という)である文字列と、例文パタンを翻訳した対訳例文パタンを構成する単語等である文字列とを、それぞれの文字列が意味する内容に基づいて対応付けて記憶する。尚、例文パタンと対訳例文パタンとを関連付けた情報を、例文パタン対訳辞書という。例文パタン対訳辞書は、検索部1300及び翻訳部1700によって参照される。
ここで、図5を参照して、記憶部1100が記憶する例文パタン対訳辞書について説明を行う。図5は、記憶部1100が記憶する例文パタン対訳辞書の一構成例を表す図である。
図に示す例文パタン対訳辞書1110は、レコード1からnで構成される。レコード1からnは、第1言語で表された例文パタンAと、例文パタンAを第2の言語に翻訳した例文パタンである対訳例文パタンBと、例文パタンA及び対訳例文パタンBの対(以下単に、パタン対訳ペアという)を識別するIDと、例文パタンA及びBを構成する単語等である文字列の対応関係を表す対応関係情報F2とを関連付けて保存する。尚、レコード1からnは、同じパタン対訳ペアを保存することはない。
次に、図5を参照したまま、レコード1からnが保存する対応関係情報F2について説明する。ここでは、例文パタンAが単語等である5つの文字列 a1 から a5 で構成され、かつ対訳例文パタンBが単語等である6つの文字列 b1 から b6 で構成されている場合を例に挙げて説明を行う。
対応関係情報F2は、文字列が例文パタンA及び対訳例文パタンBにおいて使用される順番を用いて文字列の対応関係を表す。
具体的には、例文パタンAで n 番目に使用される文字列 an が表す意味と、対訳例文パタンBで m 番目に使用される文字列 bm が表す意味とが同じである場合には、対応関係を「(n:m)」として表す。
また、例文パタンAで n 番目に使用される文字列 an が表す意味と、対訳例文パタンBで m 番目及び m+1 番目に使用される2つの文字列が表す意味とが同じ意味を表す場合には、「(n:m,m+1)」として表す。
逆に、例文パタンAで n 番目及び n+1 番目に使用される2つの文字列 an 及び an+1が表す意味と、対訳例文パタンBで m 番目に使用される文字列 bm が表す意味とが同じ意味を表す場合には、「(n,n+1:m)」として表す。
同様に、例文パタンAで n 番目及び n+1 番目に使用される2つの文字列 an 及び an+1が表す意味と、対訳例文パタンBで m 番目及び m+1 番目に使用される2つの文字列が表す意味とが同じ意味を表す場合には、「(n,n+1:m,m+1)」として表す。
本実施例では、例文パタンAで使用される1つの文字列と対訳例文パタンBで使用される1つの文字列とが同じ意味を表す場合、1つの文字列と2つの文字列とが同じ意味を表す場合、2つの文字列と1つの文字列とが同じ意味を表す場合、2つの文字列と2つの文字列とが同じ意味を表す場合の対応関係を表す表記方法について説明したが、これに限定される訳ではない。
例えば、j個(j>=1)の文字列とk個(k>=1)の文字列とが同じ意味を表す場合には、一般的に、「(n,n+1,…,n+j:m,m+1,…,m+k)」として表す構成を採用できる。
更に、例文パタンAで n 番目に使用される文字列 an が表す意味と同じ意味を表す文字列が対訳例文パタンBで使用されない場合には、「(n:0)」として表す。また逆に、対訳例文パタンBで m 番目に使用される文字列 bm が表す意味と同じ意味を表す文字列が例文パタンAで使用されない場合には、「(0:m)」として表す。
よって一例として、図6に示す対応関係情報
F2(A,B) =「(1:1),(2:3),(3:4,5),(5:6),(4:0),(0:2)」
を挙げて説明する。対応関係情報 F2(A,B) は、例文パタンAで1番目に使用される文字列 a1 の表す意味が対訳例文パタンBで1番目に使用される文字列 b1 の意味と同じであり、例文パタンAで2番目に使用される文字列 a2 の表す意味が対訳例文パタンBで3番目に使用される文字列 b3 の意味と同じであり、例文パタンAで3番目に使用される文字列 a3 の表す意味が対訳例文パタンBで4番目及び5番目に使用される文字列 b4 及び b5 の意味と同じであり、例文パタンAで5番目に使用される文字列 a5 の表す意味が対訳例文パタンBで6番目に使用される文字列 b6 の意味と同じであり、例文パタンAで4番目に使用されるa4 と同じ意味を表す文字列が対訳例文パタンBで使用されず、かつ対訳例文パタンBで2番目に使用される文字列 b2 と同じ意味を表す文字列が例文パタンAで使用されないという対応関係を表す。
また、記憶部1100は、例文パタンを構成する単語に基づいて例文パタンを検索するために用いるツリー(以下単に、検索ツリーという)を記憶する。検索ツリーは、例文パタンを構成する単語と、例文パタンを識別する識別情報とを関連付けたトライ構造を有するツリーである。
ここで、トライ構造(TRIE structure)を有するツリーは、言語情報処理分野において、検索キーの共通する文字列を併合して得られる木構造をいう。検索ツリーは、後述する検索部1300によって参照される。
ここで図6を参照して、記憶部1100が記憶する検索ツリーについて説明を行う。図6は、記憶部1100が記憶する検索ツリーの一例を表す図である。
図6に表す検索ツリー1120は、それぞれ1つの文字を表すノードN、及びノード同士を、有向性を持って接続するリンクLとで構成される。
検索ツリー1120は、3つの検索キー「あい」、「あいさい」、及び「あいさつ」から得られたツリーである。
具体的には、検索キー「あい」、「あいさい」、及び「あいさつ」に共通する部分の文字列「あい」を、文字「あ」を表すノードN00と、文字「い」を表すノードN01と、ノードN00からノードN01へ向かって接続するリンクL01とを用いて併合して表す。
同様に、検索キー「あいさい」及び「あいさつ」に共通する部分の文字列「あいさ」を、文字「あ」を表すノードN00と、文字「い」を表すノードN01と文字「さ」を表すノードN11と、ノードN00からノードN01へ向かって接続するリンクL01と、ノードN01からノードN11へ向かって接続するリンクL11とを用いて併合して表す。
尚、ノードN00をルート(根)という。よって、検索キーは、ルートであるノードN00からリンクLが表す方向に従って後述する単語フラグが立ったノードNに到達するまでに辿ったノードNが表す文字を順に並べた文字列として表される。
具体例として検索キー「あいさい」を挙げると、このキーは、ルートN00からリンクL01、11、及び12が表す方向に従って単語フラグが立ったノードN12に到達するまでに辿ったノードN00、01、N11、及びN12が表す文字を順に並べた文字列として表される。
また、検索ツリー1120を構成するあるノードNに対して、直近上位の階層に属し、かつリンクLが張られたノードNを親ノードといい、直近下位の階層に属し、かつリンクLが張られたノードNを子ノードといい、同位の階層に属し、かつ張られたリンクLが向かう先のノードNを右兄弟ノードという。
具体例として、ノードN11を挙げると、ノードN11に対してノードN01は親ノードであり、ノードN21は子ノードであり、ノードN12は右兄弟ノードである。
次に、記憶部1100が記憶する情報であって、検索ツリー1120を表す情報について説明を行う。
検索ツリー1120を表す情報は、検索ツリー1120を構成するノードNを表す情報で構成される。ノードNを表す情報は、ノードNを識別する情報であるノードID、ノードNが有する文字を表す文字情報、検索キーの終端の文字であることを表す単語フラグ、ノードNの子ノードのノードIDを表す子ノードID、ノードNの親ノードのノードIDを表す親ノードID、ノードNの右兄弟ノードのノードIDを表す右兄弟ノードID、及びレコードIDとで構成される。尚、ノードNを表す情報を構成するレコードIDは、インデックス配列の要素であるレコードを識別する情報を表す。
ここで、記憶部1100は、インデックス配列1130を記憶する。インデックス配列1130は、後述する検索部1300によって参照される。
インデックス配列1130の要素であるレコードは、同じ単語(つまり、同じ検索キー)で構成される例文パタンを識別する情報(つまり、パタン対訳ペアのID)と、同じ単語で構成される例文パタンを識別する他の情報を保存したレコードIDとを関連付けて保存することで、リスト構造を実現している。
よって、ノードNを表す情報を構成するレコードIDは、ルートN00からノードNまでに辿ったノードが表す文字で構成される検索キーを含む例文パタンを識別する情報を保存したレコードの識別情報を表す。
具体例としては、図6に示すように、ノードN12を表す情報IN12を構成するレコードIDは、ルートN00からノードN12までに辿ったノードが表す文字で構成される検索キー「あいさつ」を含む例文パタンを識別する情報を保存したレコード2の識別情報を表す。
また具体例としては、インデックス配列1130の要素であるレコード2は、同じ単語「あいさつ」で構成される例文パタンを識別するパタン対訳ペアのIDと、同じ単語「あいさつ」で構成される例文パタンを識別する他の情報を保存したレコード7のレコードIDとを関連付けて保存し、レコード7は、単語「あいさつ」で構成される例文パタンのパタン対訳ペアのIDと、同じ単語「あいさつ」で構成される例文パタンの他の識別情報を保存したレコード12のレコードIDとを関連付けて保存することで、リスト構造を実現している。
本実施例において、ノードNは検索キーを構成する1文字を表すとして説明したが、これに限定される訳ではなく、検索キーを構成する1文字が1バイトで表される文字である場合に、ノードNは検索キーを構成する1文字の高バイト(High Byte)及び低バイト(Low Byte)を表す実施例を採用できる。この構成によれば、少ない計算量で情報を検索できる。
更に、記憶部1100は、第1の言語で表された単語と、第2の言語で表された単語とを単語が表す意味に基づいて関連付けた単語辞書、及び第1の言語で表された節又は文と、第2の言語で表された節又は文とを節又は文が表す意味に基づいて関連付けた例文対訳辞書を記憶する。単語辞書及び例文対訳辞書は、後述する翻訳部1700によって参照される。
ここで図2に戻り、引き続き翻訳装置1000の構成について説明を行う。
解析部1200は、検索部1300及び入力装置3000に接続している。解析部1200は、後述する解析処理を実行することで、入力装置3000が翻訳対象として入力した入力文を形態素解析することで、入力文を構成する形態素を取得する。
ここで、解析部1200が実行する解析処理の一例について説明を行う。
先ず、解析部1200は、入力装置3000から第1の言語で表された入力文を取得する。次に、解析部1200は、取得した入力文に対して、形態素解析を実行して形態素を取得する。
その後、解析部1200は、動詞、形容詞、及び形容動詞と、それに付随する助詞、助動詞、及び補助動詞である形態素を纏めて1つの節とする。
次に、解析部1200は、取得した形態素で構成される単語及び節を検索部1300へ出力する。次に、解析部1200は、解析処理の実行を終了する。
尚、本実施例において、解析部1200が処理対象とする文は第1の言語である日本語で表されるため、解析部1200が実行する形態素解析は、奈良先端科学技術大学院大学のChasen(茶筌) を用いて実行できる。
また、第1の言語が中国語である場合には、清華大学の Seg & POS ツール、又は中国東北大学の CiPosSDK を用いて形態素解析することができる。
検索部1300は、記憶部1100、解析部1200、及び変換部1400に接続している。検索部1300は、後述する検索処理を実行することで、入力文を構成する単語で構成される例文パタンを検索する。
ここで図7を参照して、検索部1300の構成について説明を行う。図7は、検索部1300の一構成例を表す機能ブロック図である。
図7に示す検索部1300は、単語検索部1310及び例文パタン検索部1320で構成される。
単語検索部1310は、記憶部1100、解析部1200、及び例文パタン検索部1320に接続する。単語検索部1310は、後述する単語検索処理を実行することで、インデックス配列の要素であるレコードを識別するレコードIDを取得する。尚、単語検索部1310が検索するレコードIDで識別されるレコードは、入力文を構成する単語で構成される例文パタンを識別する識別情報を保存している。
ここで、単語検索部1310が実行する単語検索処理の一例について説明を行う。
先ず、単語検索部1310は、解析部1200から、入力文を構成する単語及び節を取得する。次に、単語検索部1310は、取得した単語及び節から入力文を構成する単語を抽出する。
その後、単語検索部1310は、抽出した単語に一致する検索キーを、記憶部1100が記憶する検索ツリーから検索する。次に、単語検索部1310は、検索した検索キーの終端の文字を表すノードを特定する。
その後、単語検索部1310は、特定したノードを表す情報を取得し、インデックス配列1130のレコードIDを取得する。次に、単語検索部1310は、取得したレコードIDを例文パタン検索部1320へ出力する。
尚、単語検索部1310は、解析部1200から取得した単語及び節をも例文パタン検索部1320へ出力する。その後、単語検索部1310は、単語検索処理の実行を終了する。
例文パタン検索部1320は、記憶部1100、単語検索部1310、及び変換部1400に接続する。例文パタン検索部1320は、後述する例文パタン検索処理を実行することで、入力文を構成する単語で構成される例文パタンを検索する。
ここで、例文パタン検索部1320が実行する例文パタン検索処理の一例について説明する。
先ず、例文パタン検索部1320は、単語検索部1310からレコードIDを取得する。尚、例文パタン検索部1320は、入力文の単語及び節をも取得する。
次に、例文パタン検索部1320は、記憶部1100が記憶するインデックス配列の要素であるレコードをレコードIDに基づいて検索する。
次に、例文パタン検索部1320は、記憶部1100が記憶するインデックス配列の要素であるレコードをレコードIDに基づいて検索する。
その後、例文パタン検索部1320は、検索したレコードが保存する例文パタンを識別する識別情報(つまり、例文パタン対訳ペアのID)と、他のレコードを識別するレコードIDとを取得する。次に、例文パタン検索部1320は、取得した識別情報に基づいて対になる例文パタンと対訳例文と対応関係情報F2とを検索する。
その後、例文パタン検索部1320は、検索したレコードが他のレコードを識別するレコードIDを保存するか否か判断する。例文パタン検索部1320は、他のレコードIDを保存すると判断する場合には、他のレコードIDに対して上記処理を繰り返し、そうで無い場合には、検索した全ての例文パタン、対訳例文パタン、及び対応関係情報F2を変換部1400へ出力する。
尚、例文パタン検索部1320は、取得した入力文及び入力文の単語及び節をも出力する。次に、例文パタン検索処理の実行を終了する。
ここで図2に戻り、翻訳装置1000の構成について引き続き説明を行う。
変換部1400は、検索部1300、及び算出部1500に接続している。変換部1400は、後述する変換処理を実行することで、入力文を構成する文字列が表す意味と、記憶手段が記憶する例文パタンを構成する文字列が表す意味とが相違する程度を表す第1の指標を用いて、例文パタンが類別する例文に共通する共通文字列に対応する共通部分と共通部分以外の非共通部分とで構成される文へ入力文を変換する。その後、変換部1400は、変換した入力文を算出部1500へ出力する。
ここで、図8を参照して、変換部1400が変換対象とする入力文を構成する単語及び節で構成される文字列と、変換後の入力文を構成する文字列とについて説明を行う。図8は、変換部1400が変換対象とする入力文を構成する文字列と、変換後の文字列とを表す図である。
図8は、変換部1400が変換対象とする文字列 s1 から s9 で構成される入力文Sと、変換後の文字列 s'1 から s'5 で構成される変換後の入力文S'と、入力文Sを構成する単語と同じ単語で構成される例文パタンAとを表す図である。
変換後の入力文S'は、変換部1400が例文パタンAに基づいて変換処理を実行することで入力文Sを構成する単語 s1 及び s2 を結合した単語 s'1、 s4 から s7 を結合した単語 s'3、並びに結合対象としなかった単語 s'2、s'4、及び節 s'5 で構成される。尚、単語 s'2、s'4、及び節 s'5 は、単語 s3、s8、及び節 s9 に等しい。
尚、変換部1400は、例文パタンAを構成する固定部分 a2, a4, 及び a5 で構成される集合に含まれる単語 s3 に基づいて、単語 s1 及び s2 を結合し、単語 s8 に基づいて、単語 s4 から s7 を結合する。
この変換処理によって、変換部1400は、固定部分を構成する共通文字列 a2、a4、及び a5 に対応する文字列s'2、s'4、及び s'5を共通部分とし、共通部分以外の文字列s'1及びs'3を非共通部分することで、入力文Sを共通部分と非共通部分とで構成される文へ変換する。
次に図9及び10を参照して、変換部1400が実行する変換処理について説明を行う。図9及び10は、変換部1400が実行する変換処理の一例を表すフローチャートである。
先ず、変換部1400は、例文パタンAと例文パタンAを構成する単語等である文字列を検索部1300から取得する(ステップST0001)。尚、例文パタンAは、文字列 a1 から an で構成されているとし、文字列 ai は例文パタンAにおいて i 番目に使用される文字列であるとする。
次に、変換部1400は、入力文Sと入力文Sを構成する単語及び節である文字列とを検索部1300から取得する(ステップST0002)。尚、入力文Sは、文字列 s1 から sm で構成されているとし、文字列 sj は入力文Sにおいて j 番目に使用される文字列であるとする。
尚、図示を省略するが、変換部1400は、例文パタンAに対応付けられた対訳例文パタン及び対応関係情報F2をも検索部1300から取得する。
その後、変換部1400は、文字列 ai が可変部分となるように、カウンタ i に適切な任意の値を入力する(ステップST0003)。
次に、変換部1400は、入力文Sを構成する文字列が文で使用される順番を表すカウンタ j に値「1」を代入して初期化する(ステップST0004)。
その後、変換部1400は、かつカウンタ j が値 m 以下であるか否か判断する(ステップST0005)。変換部1400は、カウンタ j が値 m 以下であると判断する場合にはステップST0006の処理を実行し、そうで無い場合には変換処理の実行を終了する。
ステップST0005において、変換部1400は、カウンタ j が値 m 以下であると判断した場合には、テンポラリバッファをクリアする(ステップST0006)。
次に、変換部1400は、例文パタンAで i 番目に使用される文字列 ai と、入力文Sで j 番目に使用される文字列 sj との第1の指標(以下単に、重みともいう)が値「0」であり、かつ変数 j が値「m 」以下であるか否かを判断する(ステップST0007)。
尚、重みとは、翻訳を行う対象として入力された入力文Sを構成する文字列 sj が表す意味と、記憶部1100が記憶する例文パタンAを構成する文字列 ai が表す意味とが相違する程度を表す指標をいう。また、重みの計算方法については後述する。
変換部1400は、文字列 ai と文字列 sj との重み(以下記号を用いて、w(ai, sj)とも表す)が値「0」であり、かつ変数 j が値「m」以下であると判断する場合にはステップST0008の処理を、そうで無い場合にはステップST0010の処理を実行する。
ステップST0007において、変換部1400は、文字列 aj と文字列 si との重みが値「0」であり、かつ変数 j が値「m」以下であると判断した場合には、テンポラリバッファが記憶する文字列に単語又は節である文字列 sj を追加する(ステップST0008)。
次に、変換部1400は、変数 j を1だけインクリメントする(ステップST0009)。その後、変換部1400は、ステップST0007に戻り、上記処理を繰り返す。
ステップST0007において、変換部1400は、文字列aj と文字列si との重みが値「0」でない、又は変数 j が値「m」より大きいと判断した場合には、テンポラリバッファが空であるか否かを判断する(ステップST0010)。変換部1400は、テンポラリバッファが空であると判断する場合にはステップST0011の処理を、そうで無い場合にはステップST0013の処理を実行する。
ステップST0010において、変換部1400は、テンポラリバッファが空であると判断した場合には、文字列 sj を1つの共通部分又は非共通部分である文字列として出力する(ステップST0011)。次に、変換部1400は、変数 j を1だけインクリメントする(ステップST0012)。その後、変換部1400は、ステップST0005に戻り、上記処理を繰り返す。
ステップST0010において、変換部1400は、テンポラリバッファが空でないと判断した場合には、テンポラリバッファが記憶する文字列を1つの共通部分又は非共通部分である文字列として出力する(ステップST0013)。次に、変換部1400は、ステップST0005に戻り、上記処理を繰り返す。
尚、図示を省略するが、変換部1400は、変換した入力文、例文パタンA、対訳例文パタン、及び対応関係情報F2を算出部1500へ出力する。
ここで表1を参照して、例文パタンAで使用される文字列 ai と、入力文Sで使用される文字列 sj との重みの算出方法の一例について説明を行う。表1は、算出される重みの値とその値を算出する条件の一例を示す表である。
Figure 0005391867
表1が示すように、例文パタンを構成する文字列 ai が可変部分であり、sj が単語又は節であり、かつ sj が例文パタンAの固定部分を要素とする集合に含まれていない場合に、変換部1400は、重みを値「0」として計算する。
また、ai が可変部分であり、sj が単語又は節であり、かつ sj が例文パタンAの固定部分を要素とする集合に含まれている場合に、変換部1400は、重みを値「p」として計算する。尚、値「p」は、正の定数である。また、本実施例では、値「1.5」とするが、これに限定される訳ではない。
更に、ai が固定部分であり、sj が単語又は節であり、かつ ai と sj とが等しい場合に、変換部1400は、重みを値「0」として計算する。
また更に、ai が固定部分であり、sj が単語又は節であり、かつ sj が固定部分の同義語である場合に、変換部1400は、重みを値「0」として計算する。
尚、本実施例において、単語 sj が、固定部分の同義語であるか否かは、図4を参照して説明した固定部分PFを構成するFIX内容に基づいて変換部1400が判断できるとして説明を行うが、これに限定されるわけではない。例えば、記憶部1100が単語とその単語の同義語とを関連付けた同義語辞書を記憶し、変換部1400は、記憶部1100が記憶する辞書を参照することで、単語 sj が固定部分の同義語であるか否かを判断する構成を採用できる。
また更に、ai が固定部分であり、sj が単語又は節であり、ai と sj とが等しく無く、かつ sj が固定部分の同義語でない場合に、変換部1400は、重みを値「p」として計算する。
次に、表2並びに、図11及び12を参照して、動詞節 ai と節 sj との重みの算出方法の他例について説明を行う。表2は、算出される重みの値とその値を算出する条件の他例を示す表であり、図11は、変換部1400が重みを算出するために実行する重み算出処理の一例を表すフローチャートの一部であり、図12は、変換部1400が重みを算出するために実行する重み算出処理の一例を表すフローチャートの他部である。
Figure 0005391867
表2が示すように、例文パタンを構成する文字列 ai が固定部分であり、sj が動詞節であり、かつ ai と sj とが等しい場合に、変換部1400は、重みを値「0」として計算する。
また、例文パタンを構成する文字列 ai が固定部分であり、sj が動詞節であり、かつ文字列 ai を構成する全ての形態素単語と、形態素 sj を構成する全ての形態素単語が等しい場合に、変換部1400は、重みを値「0」として計算する。ここで、節を構成する全ての形態素単語又は形態素の中に、単語「ます」がある場合には、単語「ます」を取り除いてから重みを計算する。
ここで、変換部1400が、上記表2が表す重みを算出するために実行する重み算出処理について説明を行う。
先ず、変換部1400は、固定部分 ai の形態素単語列を取得する(ステップST0101)。尚、固定部分 ai の形態素単語列は、形態素単語 u1 から uk で構成されているとし、形態素単語 uh は形態素単語列 ai において h 番目に使用されるとする。
次に、変換部1400は、動詞節 sj の形態素単語列を取得する(ステップST0102)。尚、動詞節 sj の形態素単語列は、形態素単語 v1 から vl で構成されているとし、形態素単語 vh は形態素単語列 sj において h 番目に使用されるとする。
その後、変換部1400は、固定部分 ai の形態素単語数 k と、動詞節 sj の形態素単語数 l とが等しいか否かを判断する(ステップST0103)。変換部1400は、 k と l とが等しいと判断する場合にはステップST0104の処理を、そうで無い場合にはステップST0109の処理を実行する。
ステップST0103において、変換部1400は、k と l とが等しいと判断した場合には、形態素単語が形態素単語列で使用される順番を表すカウンタ h に値「1」を代入して初期化する(ステップST0104)。
次に、変換部1400は、カウンタ変数 h の値が、固定部分 ai の形態素単語数 k 以下であるか否かを判断する(ステップST0105)。変換部1400は、変数 h の値が k 以下であると判断する場合にはステップST0106の処理を、そうで無い場合にはステップST0110の処理を実行する。
ステップST0105において、変換部1400は、変数 h の値が k 以下であると判断した場合には、節 ai において h 番目に使用される形態素単語 uh と、節 sj において h 番目に使用される形態素単語 vh とが等しいか否かを判断する(ステップST0106)。変換部1400は、形態素単語 uh と形態素単語 vh とが等しいと判断する場合にはステップST0108の処理を、そうで無い場合にはステップST0107の処理を実行する。
ステップST0106において、変換部1400は、形態素単語 uh と形態素単語 vh とが等しくないと判断した場合には、形態素単語 uh が形態素単語 vh の同義語であるか否かを判断する(ステップST0107)。変換部1400は、形態素単語 uh が形態素単語 vh の同義語であると判断する場合にはステップST0108の処理を、そうで無い場合はステップST0109の処理を実行する。
ステップST0106において、変換部1400は、形態素単語 uh と形態素単語 vh とが等しいと判断した場合、又はステップST0107において、形態素単語 uh が形態素単語 vh の同義語であると判断した場合には、ループ変数 h の値を1だけインクリメントする(ステップST0108)。その後、変換部1400は、ステップST0105に戻り、上記処理を繰り返す。
ステップST0103において、変換部1400は、k と l とが等しくないと判断した場合、又はステップST0107において、形態素単語 uh が形態素単語 vh の同義語でないと判断した場合には、節 ai と節 sj との重みを「p」と算出する(ステップST0109)。尚、pは、正の定数である。その後、変換部1400は、変換処理の実行を終了する。
ステップST0105において、変換部1400は、変数 h の値が k より大きいと判断した場合には、節 ai と節 sj との重みを「0」と算出する(ステップST0110)。その後、変換部1400は、変換処理の実行を終了する。
ここで図2に戻り、翻訳装置1000の構成について引き続き説明を行う。
算出部1500は、変換部1400及び抽出部1600に接続している。算出部1500は、後述する算出処理を実行することで、変換部1400が変換した文を構成する非共通部分を、例文パタンAを構成する非共通文字列へ対応させる規則と、非共通部分と非共通文字列との相違を表す第1の指標(つまり重み)とに基づいて、入力文Sと例文パタンAとが相違する程度を表す第2の指標(以下単に、距離ともいう)を算出する。
ここで、算出部1500が実行する算出処理は、例文パタンを構成する共通文字列及び非共通文字列のいずれか1つ以上を変換部1400が変換した文を構成する共通部分及び非共通部分のいずれか1つ以上に写像するために適用する規則であり、かつ1対1であると共に交差せずに共通文字列を前記共通部分に置換する規則、1対1であると共に交差せずに非共通文字列を非共通部分に置換する規則、共通文字列及び非共通文字列のいずれか1つ以上を削除する規則、及び共通部分及び非共通部分のいずれか1つ以上を挿入する規則のいずれか1つ以上の適用に基づいて第2の指標を算出する処理である。
ここで図13から16を参照して、算出部1500が実行する距離算出処理について説明を行う。図13は、算出部1500が実行する距離算出処理の一例を表すフローチャートの一部であり、図14から16は、算出部1500が実行する距離算出処理の一例を表すフローチャートの他部である。
先ず、算出部1500は、例文パタンAを変換部1400から取得する(ステップST0201)。尚、例文パタンAは、単語等である文字列 a1からanで構成されているとする。
次に、算出部1500は、変換後の入力文S'を変換部1400から取得する(ステップST0202)。尚、変換後の入力文S'は、変換された単語又は節である文字列 s'1からs'm' で構成されているとする。
その後、算出部1500は、変数 d(0,0) に値「0」を代入することで初期化する(ステップST0203)。
尚、図示を省略するが、算出部1500は、例文パタンAに対応付けた対訳例文パタン及び対応関係情報F2をも変換部1400から取得する。
ここで、変数 d(i, j) は、例文パタンAを構成する文字列 a1からaiを例文パタンAで使用する順番に並べた文字列a1a2…aiと、入力文S'を構成する変換後の単語又は節s'1からs'jを入力文S'で使用する順番に並べた文字列 s'1s'2…s'j との相違を表す第2の指標(つまり距離)である。
また特に、変数 d(0, 0)は、全く文字列を有しない入力文(つまり、空文字列)と、全く単語等の文字列を有しない例文パタンとの相違を表す第2の指標である。
次に、算出部1500は、文字列が例文パタンAで使用される順番を表す変数 i に値「1」を代入して初期化する(ステップST0204)。その後、算出部1500は、変数 i が例文パタンAを構成する文字列の数「n」以下であるか否かを判断する(ステップST0205)。算出部1500は、変数 i が「n」以下であると判断する場合にはステップST0206の処理を、そうで無い場合にはステップST0209の処理を実行する。
ステップST0205において、算出部1500は、変数 i が「n」以下であると判断した場合には、d(i,0)の値を、「d(i-1,0)+ r)とする(ステップST0206)。
次に、算出部1500は、変数 PathFlag(i, 0)の値を「(1,0,0)」とする(ステップST0207)。その後、算出部1500は、変数 i の値を1だけインクリメントする(ステップST0208)。その後、算出部1500は、ステップST0205に戻り上記処理を繰り返す。
ここで、変数 PathFlag(i, 0)と距離 d(i,j)との関係について説明する。
例文パタンAである a1a2…aiと、変換された入力文S'である s'1 s'2…s'j との距離 d(i,j) は、例文パタン a1a2…ai を構成する文字列 a1 から ai を変換された入力文S' 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 に対応付ける写像と、例文パタンAを構成する文字列 ai が入力文S'を構成する文字列に写像していない場合は、例文パタンを構成する ai を削除する規則を定める写像とを合成した写像を用いることができる。
またこの距離 d(i,j) を定める写像として、1対1であり、互いに交差せず、かつ文字列 a1 から ai を文字列 s'1 から s'j-1 に対応付ける写像と、例文パタンAを構成する文字列が入力文S'を構成する文字列に写像しない場合に、入力文S'を構成する文字列 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) を算出したことを表す。
更に、1対1であり、互いに交差せず、かつ文字列 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 で定まる値を返す関数であり、図9を参照して説明した第1の指標をいう。
本実施例においては、「q = r = 1, p = 1.5」として以下説明を行うが、これに限定される訳ではなく、実験又は論理により定まる他の好適な値を設定できる。
ここで図13に戻り、算出部1500が実行する距離算出処理の一例について引き続き説明を行う。
ステップST0205において、算出部1500は、変数 i が「n」より大きいと判断した場合には、変換後の文字列が入力文S'で使用される順番を表す変数 j に値「1」を代入して初期化する(ステップST0209)。
次に、算出部1500は、変数 j が入力文S'を構成する変換後の文字列の数「m'」以下であるか否かを判断する(ステップST0210)。算出部1500は、変数 j が「m'」以下であると判断する場合にはステップST0211の処理を、そうで無い場合にはステップST0214の処理を実行する。
ステップST0210において、算出部1500は、変数 j が「m'」以下であると判断した場合には、d(0,j)の値を、「d(0,j-1)+ q)とする(ステップST0211)。
次に、算出部1500は、変数 PathFlag(0, j)の値を「(0,1,0)」とする(ステップST0212)。その後、算出部1500は、変数 j の値を1だけインクリメントする(ステップST0213)。その後、算出部1500は、ステップST0210に戻り上記処理を繰り返す。
ステップST0210において、算出部1500は、変数 j が「m'」より大きいと判断した場合には、変数 i に値「1」を代入する(ステップST0214)。次に、算出部1500は、変数 i が「n」以下であるか否かを判断する(ステップST0215)。算出部1500は、変数 i が「n」以下であると判断する場合にはステップST0216の処理を、そうで無い場合にはステップST0228の処理を実行する。
ステップST0215において、算出部1500は、変数 j が「n」以下であると判断した場合には、変数 j に値「1」を代入する(ステップST0216)。次に、変数 j が「m'」以下であるか否かを判断する(ステップST0217)。算出部1500は、変数 j が「m'」以下であると判断する場合にはステップST0218の処理を、そうで無い場合にはステップST0227の処理を実行する。
ステップST0217において、算出部1500は、変数 j が「m'」以下であると判断した場合には、d(i,j)の値を、「d(i-1,j-1)+ w(ai, s'j)」とする(ステップST0218)。次に、算出部1500は、変数 PathFlag(i, j)の値を「(0,0,1)」とする(ステップST0219)。
その後、算出部1500は、文字列 s'i を 挿入をする写像に基づいて算出する距離 d(i, j-1) + q が、ステップST0218で単語又は節 ai を s'j に置換をする写像に基づいて算出した距離 d(i, j) より小さいか否かを判断する(ステップST0220)。算出部1500は、距離 d(i, j-1) + q が、距離 d(i, j) より小さいと判断する場合にはステップST0221の処理を、そうで無い場合にはステップST0223の処理を実行する。
ステップST0220において、算出部1500は、距離 d(i, j-1) + q が距離 d(i, j) よりも小さいと判断した場合には、距離 d(i, j)を「d(i, j-1) + q」とする(ステップST0221)
次に、算出部1500は、変数 PathFlag(i, j) の値を 現在のPathFlag(i, j)の座標値毎に、値「(0,1,0)」の座標値とOR演算した値とする(ステップST0222)。
ステップST0220において、算出部1500は、距離 d(i, j-1) + q が 距離 d(i, j) 以上であると判断した場合、又はステップST0222を実行した後に、算出部1500は、文字列 ai を、削除をする写像に基づいて算出する距離 d(i-1, j) + r が、ステップST0218又はステップST0221で算出した距離 d(i, j) よりも小さいか否かを判断する(ステップST0223)。算出部1500は、距離 d(i-1, j) + r が距離 d(i, j) より小さいと判断する場合にはステップST0224の処理を、そうで無い場合にはステップST0226の処理を実行する。
ステップST0223において、算出部1500は、距離 d(i-1, j) + r が距離 d(i, j) よりも小さいと判断した場合には、距離 d(i, j)を「d(i-1, j) + r」とする(ステップST0224)
次に、算出部1500は、変数 PathFlag(i, j) の値を 現在のPathFlag(i, j)の座標値毎に、値「(1,0,0)」の座標値とOR演算した値とする(ステップST0225)。
ステップST0223において、算出部1500は、距離 d(i-1, j) + r が距離 d(i, j) 以上であると判断した場合、又はステップST0225を実行した後には、算出部1500は、変数 j を1だけインクリメントする(ステップST0226)。その後、算出部1500は、ステップST0217に戻り、上記処理を繰り返す。
ステップST0217において、算出部1500は、変数 j が「m'」より大きいと判断した場合には、変数 i を1だけインクリメントする(ステップST0227)。その後、ステップST0215に戻り、上記処理を繰り返す。
ステップST0215において、算出部1500は、変数 j が「n」より大きいと判断した場合には、例文パタンAと入力文S'との距離を Distance(A,S')とし、その値を d(n,m') の値とする(ステップST0228)。
尚、図示を省略するが、算出部1500は、算出した例文パタンAと入力文S'との距離Distance(A,S')、その他の距離d(i,j)(ただし、1<=i<=n, 1<=j<=m')、例文パタンA、対訳例文パタン、対応関係情報F2、及び入力文S'を抽出部1600へ出力する。その後、算出部1500は、指標計算処理の実行を終了する。
ここで表3を参照して、算出部1500が算出する第2の指標について説明を行う。表3は、算出部1500が算出した第2の指標の一例を示す表である。
Figure 0005391867
表3が有する列は、空文字列、及び変換後の入力文S’を構成する文字列を表し、表3が有する行は、空文字列、及び例文パタンAを構成する文字列を表す。
また、表3が有する要素は、要素を保存する列が表す空文字列又は文字列とそれよりも左の列が表す空文字列又は文字列を、要素を保存する行が表す空文字列又は文字列とそれよりも上の行が表す空文字列又は文字列に対応付ける写像で定まる距離及び PathFlag を表す。
具体的には、3行2列の要素「1(0,0,1)」は、2列が表す文字列「FXの田中さん」とそれよりも左の列が表す空文字列を、3行が表す記号「V1」とそれよりも上の列が表す空文字列及び「必ず」という文字列にそれぞれ対応付ける写像で定まる距離が値「1」であり、PathFlag(2,1)の値が「(0, 0, 1)」であることを表す。
よって表3の7行5列の要素が表すように、変換後の入力文S’と例文パタンAとの距離は、算出部1500によって、値「4」と計算されたことを表す。
ここで図2に戻り、翻訳装置1000の構成について引き続き説明を行う。
抽出部1600は、算出部1500及び翻訳部1700に接続している。抽出部1600は、算出部1500が算出した第2の指標に基づいて入力文を類別する例文パタンを抽出すると共に、変換部1400が変換した文を構成する非共通部分と抽出した例文パタンを構成する非共通文字列とを対応付ける。
ここで図17を参照して、抽出部1600の構成について説明を行う。図17は、抽出部1600の一構成例を表す機能ブロック図である。
抽出部1600は、実抽出部1610、関係特定部1620、及び関係選択部1630で構成される。
実抽出部1610は、算出部1500及び関係特定部1620に接続している。実抽出部1610は、後述する実抽出処理を実行することで、検索部1300が検索した例文パタンのから1つのパタンを抽出する。
ここで、実抽出部1610が実行する実抽出処理の一例について説明を行う。
先ず、実抽出部1610は、算出部1500が計算した第2の指標(つまり、距離)を取得する。次に、実抽出部1610は、算出部1500から検索部1300が検索した例文パタンAを取得する。
その後、実抽出部1610は、算出部1500が計算した第2の指標である入力文と例文パタンとの距離が最も近い例文パタンを抽出する。次に、実抽出部1610は、抽出した例文パタンを、入力文を類別するパタンであるとして関係特定部1620へ出力する。
また、実抽出部1610は、算出部1500から、選択した例文パタンとの距離を算出する際に作成した PathFlag 変数、及び変換後の入力文S’、並びに抽出した例文パタンAに対応付けた対訳例文パタン、及び対応関係情報F2とを取得し、取得した入力文S’、 PathFlag 変数、対訳例文パタン、及び対応関係情報F2を関係特定部1620へ出力する。その後、実抽出部1610は、実抽出処理の実行を終了する。
関係特定部1620は、実抽出部1610及び関係選択部1630に接続している。関係特定部1620は、後述する関係特定処理を実行することで、入力文S’を構成する変換後の文字列と入力文Sを類別する例文パタンAを構成する文字列との対応関係を特定する。
ここで図18を参照して、関係特定部1620が実行する関係特定処理について概説する。図18は、関係特定部1620が実行する関係特定処理の一例について概説するための図である。
先ず、関係特定部1620は、入力文S’と例文パタンAとの距離、及び PathFlag 変数の値を表す7行5列の要素を取得する。次に、関係特定部1620は、取得した PathFlag(6,4) の値が「(0,0,1)」であるため、7行5列の要素が表す距離は、入力文S’を構成する第2列から4列までが表す文字列と、例文パタンAを構成する第2行から6行までが表す文字列とを対応付ける写像と、例文パタンAを構成する第7行が表す文字列を、入力文S'を構成する第5列が表す文字列に置換する規則を定める写像とを合成した写像により定まると判断する。
よって、関係特定部1620は、第7行があらわす文字列 a6 と第5列があらわす文字列 s4 との対応関係は置換関係であると判断し、対応関係情報F1に値「(6:4)」を追加する。
次に、関係特定部1620は、PathFlag(5,3) を表す6行4列の要素を取得する。
その後、関係特定部1620は、6行4列の要素が表す PathFlag(5,3)の値が「0,1,0」であるため、6行4列の要素が表す距離は、入力文S’を構成する第2列から3列までが表す文字列と、例文パタンAを構成する第2行から5行までが表す文字列とを対応付ける写像と、入力文S’を構成する第4列が表す文字列を、例文パタンAに挿入する規則を定める写像とを合成した写像により定まると判断する。
よって、関係特定部1620は、第4列があらわす文字列 s3を例文パタンAに挿入すると判断し、対応関係情報F1に値「(0:3)」を追加する。
以下同様に、上記処理を繰り返すことで、関係特定部1620は、入力文S’を構成する文字列と入力文S’を類別した例文パタンAを構成する文字列との対応関係を特定する。
ここで、特に、5行2列に対する関係特定部1620の処理について説明する。
5行2列の要素が表す PathFlag(4,1) の値は、「1,0,1」であるため、関係特定部1620は、5行2列の要素が表す距離が、入力文S’を構成する第1列が表す空文字列と、例文パタンAを構成する第2行から4行までが表す文字列とを対応付ける写像と、例文パタンAを構成する第5行が表す文字列を、入力文S'を構成する第2列が表す文字列に置換する規則を定める写像、又は例文パタンAを構成する第5行が表す文字列を削除する規則を定める写像のいずれか1方とを合成した写像により定まると判断する。
よって、関係特定部1620は、第5行があらわす文字列 a4 と第2列があらわす文字列 s1 との対応関係は置換関係であると判断する場合には、値「(4:1)」を追加してすることで対応関係情報F11を生成し、第5列があらわす文字列 a4を例文パタンAから削除すると判断する場合には、値「(4:0)」を追加することで対応関係情報F12を生成する。
尚、例えば、1又は複数の対応関係情報F1で構成される集合を、対応関係集合SFという。尚、対応関係集合SFに属する対応関係情報F11及びF12の表記は、対応関係情報F2と同様であるため説明を省略する。
ここで図19から22を参照して、関係特定部1620が実行する関係特定処理について説明を行う。図19は、関係特定部1620が実行する関係特定処理の一例を表すフローチャートの一部であり、図20から22は、関係特定部1620が実行する関係特定処理の一例を表すフローチャートの他部である
先ず、関係特定部1620は、対応関係集合SFを空集合とすることで初期化する(ステップST0301)。
次に、関係特定部1620は、カウンタ変数 h に対して値「0」を代入することで初期化する(ステップST0302)。その後、関係特定部1620は、カウンタ変数 h が値「-100」であるか否かを判断する(ステップST0303)。関係特定部1620は、カウンタ変数 h が値「-100」であると判断する場合には関係特定処理の実行を終了し、そうで無い場合にはステップST0304の処理を実行する。
ステップST0303において、関係特定部1620は、カウンタ変数 h が値「-100」でないと判断した場合には、例文パタンAを構成する文字列が文で使用される順番を表すカウンタ変数 i に例文パタンAを構成する文字列の数「n」を代入して初期化し、入力文S’を構成する文字列が文で使用される順番を表すカウンタ j に入力文S’を構成する文字列の数「m'」を代入して初期化する(ステップST0304)。
次に、関係特定部1620は、変数 h を、例文パタンAを構成する文字列の数 n と入力文S’を構成する文字列の数 m' の内で大きい方の値とする(ステップST0305)。
その後、関係特定部1620は、変数 h が値「1」以上である否かを判断する(ステップST0306)。関係特定部1620は、変数 h が値「1」以上であると判断する場合にはステップST0307の処理を、そうで無い場合にはステップST0321の処理を実行する。
ステップST0306において、関係特定部1620は、変数 h が値「1」以上であると判断した場合には、PathFlag(i, j) のz座標の値が値「1」以上であり、z座標の値がx座標の値以上であり、かつz座標の値がy座標の値以上であるという条件(以下単に、条件1という)を満たすか否かを判断する(ステップST0307)。関係特定部1620は、条件1を満たすと判断する場合にはステップST0308の処理を、そうで無い場合にはステップST0311の処理を実行する。
ステップST0307において、関係特定部1620は、条件1を満たすと判断した場合には、2次元配列である変数 Path(i, j) に値「(i-1, j-1)」を代入する(ステップST0308)。尚、Path変数は、文字列の対応関係を表す2次元配列である。
次に、関係特定部1620は、変数 PatFlag(i, j) のz座標を値「1」だけインクリメントする(ステップST0309)。その後、関係特定部1620は、変数 i 及び j の値を1だけデクリメントする(ステップST0310)。次に、関係特定部1620は、ステップST0320の処理を実行する。
ステップST0307において、関係特定部1620は、条件1を満たさないと判断した場合には、y座標の値が値「1」以上であり、y座標の値がx座標の値以上であり、かつy座標の値がz座標の値より大きいという条件(以下単に、条件2という)を満たすか否かを判断する(ステップST0311)。関係特定部1620は、条件2を満足すると判断する場合にはステップST0312の処理を、そうで無い場合にはステップST0315の処理を実行する。
ステップST0311において、関係特定部1620は、条件2を満足すると判断した場合には、2次元配列である変数 Path(i, j) に値「(i, j-1)」を代入する(ステップST0312)。尚、Path(i, j) の値は、xy座標を用いて表す。
次に、関係特定部1620は、変数 PathFlag(i, j) のy座標を値「1」だけインクリメントする(ステップST0313)。その後、関係特定部1620は、j の値を1だけデクリメントする(ステップST0314)。次に、関係特定部1620は、ステップST0320の処理を実行する。
ステップST0311において、関係特定部1620は、条件2を満たさないと判断した場合には、x座標の値が値「1」以上であり、x座標の値がy座標の値以上であり、かつx座標の値がz座標の値より大きいという条件(以下単に、条件3という)を満たすか否かを判断する(ステップST0315)。関係特定部1620は、条件3を満たすと判断する場合にはステップST0316の処理を、そうで無い場合にはステップST0319の処理を実行する。
ステップST0315において、関係特定部1620は、条件3を満たすと判断した場合には、2次元配列である変数 Path(i, j) に値「(i-1, j)」を代入する(ステップST0316)。
次に、関係特定部1620は、変数 Path(i, j) のx座標を値「1」だけインクリメントする(ステップST0317)。その後、関係特定部1620は、i の値を1だけデクリメントする(ステップST0318)。次に、関係特定部1620は、ステップST0320の処理を実行する。
ステップST0315において、関係特定部1620は、条件3を満たさないと判断した場合には、変数 h の値を 「-100」 とする(ステップST0319)。その後、関係特定部1620は、ステップST0320の処理を実行する。
ステップST0310、ステップST0314、ステップST0318、又はステップST0319を実行した後に、関係特定部1620は、変数 h の値を1だけデクリメントする(ステップST0320)。その後、関係特定部1620は、ステップST0306に戻り、上記処理を繰り返す。
ステップST0306において、関係特定部1620は、変数 h が値「1」より小さいと判断した場合には、関係特定部1620は、対応関係情報を保存する変数F1を初期化する(ステップST0321)。次に、関係特定部1620は、カウンタ変数 h の値を「0」とすることで初期化する(ステップST0322)。
次に、関係特定部1620は、例文パタンAを構成する文字列が文で使用される順番を表すカウンタ変数 i に例文パタンAを構成する文字列の数「n」を代入して初期化し、入力文S’を構成する文字列が文で使用される順番を表すカウンタ j に入力文S’を構成する文字列の数「m'」を代入して初期化する(ステップST0323)。
次に、関係特定部1620は、変数 h を、例文パタンAを構成する単語又は節の数 n と入力文S’を構成する単語又は節の数 m' の内で大きいほうの値とする(ステップST0324)。
その後、関係特定部1620は、変数 h が値「1」以上である否かを判断する(ステップST0325)。関係特定部1620は、変数 h が値「1」以上であると判断する場合にはステップST0326の処理を、そうで無い場合にはステップST0334の処理を実行する。
ステップST0325において、関係特定部1620は、変数 h が値「1」以上であると判断した場合には、変数 Path(i, j) の値が 「(i-1, j-1)」であるか否かを判断する(ステップST0326)。関係特定部1620は、変数 Path(i, j) の値が 「(i-1, j-1)」であると判断する場合にはステップST0327の処理を、そうで無い場合にはステップST0328の処理を実行する。
ステップST0326において、関係特定部1620は、変数 Path(i, j) の値が 「(i-1, j-1)」であると判断した場合には、対応関係情報F1 に対して左側から「(i:j)」を追加する(以下単に、F1 = (i:j) U F1 と表記する)(ステップST0327)。その後、関係特定部1620は、ステップST0332の処理を実行する。
ステップST0326において、関係特定部1620は、変数 Path(i, j) の値が 「(i-1, j-1)」でないと判断した場合には、変数 Path(i, j) の値が 「(i, j-1)」であるか否かを判断する(ステップST0328)。関係特定部1620は、変数 Path(i, j) の値が 「(i, j-1)」であると判断する場合にはステップST0329の処理を、そうで無い場合にはステップST0330の処理を実行する。
ステップST0328において、関係特定部1620は、変数 Path(i, j) の値が 「(i, j-1)」であると判断した場合には、対応関係情報F1 に対して左側から「(0:j)」を追加する(以下単に、F1 = (0:j) U F1 と表記する)(ステップST0329)。その後、関係特定部1620は、ステップST0332の処理を実行する。
ステップST0328において、関係特定部1620は、変数 Path(i, j) の値が 「(i, j-1)」でないと判断した場合には、変数 Path(i, j) の値が 「(i-1, j)」であるか否かを判断する(ステップST0330)。関係特定部1620は、変数 Path(i, j) の値が 「(i-1, j)」であると判断する場合にはステップST0331の処理を、そうで無い場合にはステップST0332の処理を実行する。
ステップST0330において、関係特定部1620は、変数 Path(i, j) の値が 「(i-1, j)」であると判断した場合には、対応関係情報F1に対して、「(i:0)」を追加する(以下単に、F1 = (i:0) U F1 と表記する)(ステップST0331)。その後、関係特定部1620は、ステップST0332の処理を実行する。
ステップST0327、ステップST0329、又はステップST0331を実行した後、若しくはステップST0330において、関係特定部1620は、変数 Path(i, j) の値が 「(i-1, j)」でないと判断した場合には、変数 i の値を変数 Path のx座標値とし、かつ変数 j の値を変数 Path のy座標値とする(ステップST0332)。
次に、関係特定部1620は、変数 h の値を1だけデクリメントする(ステップST0333)。その後に、関係特定部1620は、ステップST0325に戻り上記処理を繰り返す。
ステップST0325において、変数 h の値が「1」より小さいと判断した場合には、関係特定部1620は、変数F1が保存する対応関係情報が、変数SFが表す対応関係集合に属するか否かを判断する(ステップST0334)。関係特定部1620は、変数F1が保存する対応関係情報が、変数SFが表す対応関係集合に属すると判断する場合にはステップST0336の処理を、そうで無い場合にはステップST0335の処理を実行する。
ステップST0325において、変数F1が保存する対応関係情報が、変数SFが表す対応関係集合に属しないと判断した場合には、関係特定部1620は、変数F1が保存する対応関係情報を、変数SFが表す対応関係集合の要素として追加する(ステップST0335)。その後、関係特定部1620は、ステップST0303に戻り上記処理を繰り返す。
ステップST0325において、変数F1が保存する対応関係情報が、変数SFが表す対応関係集合に属すると判断した場合には、関係特定部1620は、変数 h の値を値「-100」とする(ステップST0336)。その後、関係特定部1620は、ステップST0303に戻り上記処理を繰り返す。
尚、図示は、省略するが、関係特定部1620は、関係選択部1630へ、特定した対応関係を表す対応関係情報を要素とする対応関係集合SFを出力する。
また、関係特定部1620は、変換した入力文S’、抽出した例文パタンA、対訳例文パタン、及び対応関係情報F2をも関係選択部1630へ出力する。
ここで図17に戻り、抽出部1500の構成について引き続き説明を行う。
関係選択部1630は、関係特定部1620及び翻訳部1700に接続している。関係選択部1630は、後述する関係選択処理を実行することで、関係特定部1620が特定した対応関係の内から、共通文字列及び非共通文字列の例文パタンAにおいて使用される順番と、共通部分及び非共通部分の入力文において使用される順番とに基づいて、非共通文字列と非共通部分とを対応付ける対応関係を1つ選択する。
ここで、再度図18を参照して、関係選択部160が実行する関係選択処理の一例について概説する。
関係選択部160は、例文パタンAが、互いに隣接した固定部分(つまり、共通文字列)と可変部分(つまり、非共通文字列)とで構成される場合に、同じ様に隣接する共通部分及び非共通部分と、固定部分及び可変部分とを対応付ける対応関係情報F1を対応関係集合SFの要素(つまり、対応関係情報F11及び12)から選択する。
本実施例では、関係選択部160は、関係選択処理の実行により、対応関係集合SFの要素から、1つの対応関係情報F1を選択するとして説明するが、これに限定される訳ではない。例えば、削除する規則よりも置換する規則を優先して適用する等といった適用規則の優先順位を予め定め、定めた規則に従って対応関係情報F1を選択する構成を採用できる。
本実施例では、例文パタンAが、互いに隣接した固定部分と可変部分とで構成される場合を例に挙げて説明するが、これに限定される訳ではなく、例えば、例文パタンが、所定の文字数、単語数、又は節の数だけ離れた固定部分と可変部分とで構成される場合についても、ほぼ同様の処理によって、対応関係情報を選択できる。
尚、関係選択部160が、関係選択処理で選択した対応関係情報F1が表す対応関係(n:m)は、少なくとも文字列が例文パタンAで使用される順番に基づいて昇順にソートされている。
次に、図23及び24を参照して、関係選択部160が実行する関係選択処理について説明を行う。図23は、関係選択部160が実行する関係選択処理の一例を表すフローチャートの一部であり、図24は、関係選択部160が実行する関係選択処理の一例を表すフローチャートの他部である。
先ず、図示を省略するが、関係選択部1630は、関係特定部1620から対応関係集合SFを取得する。また、関係選択部1630は、変換された入力文、例文パタン、対訳例文パタン、及び対応関係情報F2を関係特定部1620から取得する。
次に、関係選択部1630は、取得した集合SFに、ステップST0402からST0411までの処理の対象としていない対応関係情報F1(以下単に、未処理の対応関係情報という)が存在するか否かを判断する(ステップST0401)。関係選択部1630は、未処理の対応関係情報F1が存在すると判断する場合にはステップST0402の処理を、そうで無い場合にはステップST0412の処理を実行する。
ステップST0401において、関係選択部1630は、未処理の対応関係情報F1が存在すると判断した場合には、未処理の対応関係情報F1を処理対象情報FTとする(ステップST0402)。
次に、関係選択部1630は、処理対象情報FTに割り当てるスコアの値を値「0」とすることで初期化する(ステップST0403)。
その後、関係選択部1630は、処理対象情報FTに、ステップST0405からST0411の処理対象としていない対応関係(i,j)(以下単に、未処理の対応関係という)が存在するか否かを判断する(ステップST0404)。関係選択部1630は、未処理の対応関係(i,j)が存在すると判断する場合にはステップST0405の処理を、そうで無い場合にはステップST0401に戻り上記処理を繰り返す。尚、記号「i」 は、関係する文字列が変換された入力分S’で使用される順番を、記号「j」 は、関係する文字列が例文パタンAで使用される順番を表す。
ステップST0404において、関係選択部1630は、未処理の対応関係(i,j)が存在すると判断した場合には、未処理の対応関係の内で最も右の1つを処理対象関係 (i1, j1) とする(ステップST0405)。尚、記号「i1」は、処理対象関係が関係を表す文字列が変換された入力分S’で使用される順番を、記号「j1」 は、処理対象関係が関係を表す文字列が例文パタンAで使用される順番を表す。
次に、関係選択部1630は、記号「j1」が表す例文パタンAを構成する文字列 aj1 が固定部であるか否かを判断する(ステップST0406)。関係選択部1630は、文字列 aj1 が固定部であると判断する場合はステップST0407の処理を、そうで無い場合にはステップST0404に戻り上記処理を繰り返す。
ステップST0406において、関係選択部1630は、文字列 aj1 が固定部であると判断した場合には、未処理の対応関係 (i, j) が存在するか否かを判断する(ステップST0407)。関係選択部1630は、未処理の対応関係 (i, j) が存在すると判断する場合にはステップST0408の処理を実行し、そうで無い場合にはステップST0401に戻り上記処理の実行を繰り返す。
ステップST0407において、関係選択部1630は、未処理の対応関係(i,j)が存在すると判断した場合には、未処理の対応関係の内で最も右の1つを新たに処理対象関係 (i2, j2) とする(ステップST0408)。尚、記号「i2」及び「j2」については、記号「i1」及び「j1」と同様であるので説明を省略する。
次に、関係選択部1630は、記号「j2」が表す例文パタンAを構成する文字列 aj2 が可変部であるか否かを判断する(ステップST0409)。関係選択部1630は、文字列 aj2 が可変部であると判断する場合はステップST0410の処理を、そうで無い場合にはステップST0404に戻り上記処理を繰り返す。
ステップST0409において、関係選択部1520は、文字列 aj2 が可変部であると判断した場合には、「i2」の値 が 「i1」の値に対して値「1」を足した値であり、かつ「j2」の値 が 「j1」の値に対して値「1」を足した値である条件(以下単に、条件4という)を満足するか否かを判断する(ステップST0410)。
つまり、例文パタンAにおいて「j1」番目に使用される文字列 aj1 と、入力文S’において「i1」番目に使用される文字列 s'i1 とが対応し、かつ例文パタンAにおいて「j2」番目に使用される文字列 aj2 と、入力文S’において「i2」番目に使用される文字列 s'i2 とが対応する場合に、例文パタンAにおいて「j1」番目に使用される文字列が「j2」番目に使用される文字列の右隣に位置し、かつ入力文S’において「i1」番目に使用される文字列が「i2」番目に使用される文字列の右隣に位置するか否かを判断する。
関係選択部1630は、条件4を満足すると判断する場合には、ステップST0411の処理を、そうで無い場合にはステップST0404に戻り上記処理を繰り返す。
ステップST0410において、関係選択部1630は、条件4を満足すると判断した場合には、処理対象情報FTに割り当てたスコアを値「1」だけインクリメントする(ステップST0411)。その後、ステップST0404に戻り上記処理を繰り返す。
ステップST0401において、未処理の対応関係情報F1が存在しないと判断した場合には、関係選択部1630は、割り当てたスコアが最大の値をとる対応関係情報F1を選択する(ステップST0412)。
その後、図示を省略するが、関係選択部1630は、選択した対応関係情報F1を翻訳部1700へ出力する。また、関係選択部1630は、変換された入力文、抽出された例文パタン、対訳例文パタン、及び対応関係情報F2をも翻訳部1700へ出力する。次に、関係選択部1630は、関係選択処理の実行を終了する。
ここで図2に戻り、翻訳装置1000の構成について引き続き説明を行う。
翻訳部1700は、記憶部1100、抽出部1600、及び表示装置2000に接続している。翻訳部1700は、後述する翻訳処理を実行することで、入力文を構成する非共通部分を含む文字列と、抽出部1600が抽出した例文パタンを構成する非共通文字列を含む文字列に対応付けて記憶部1100が記憶する対訳例文パタンを構成する文字列とを対応させる写像に基づいて、入力文を翻訳する。
ここで図25を参照して、翻訳部1700が翻訳に用いる写像について説明を行う。図25は、翻訳部1700が翻訳に用いる写像を説明するための図である。
図25に示すように、翻訳部1700が翻訳に用いる写像 F(S,B) は、入力文Sを変換した文S’を構成する文字列と、入力文Sを類別する例文パタンAを構成する文字列との対応関係を定める写像 F1(S,A) と、例文パタンAを構成する文字列と、例文パタンAを翻訳した対訳例文パタンBを構成する文字列との対応関係を定める写像 F2(A,B) との合成写像である。尚、写像 F1(S,A)及びF2(A,B)は、それぞれ対応関係情報F1及びF2が表す対応関係を定める写像である。
ここで、翻訳部1700が実行する翻訳処理の一例について説明を行う。
先ず、翻訳部1700は、抽出部1600から、変換後の入力文S'と、抽出部1600が抽出した例文パタンAとの対応関係情報F1を取得し、取得した情報が表す写像 F1(S, A) を特定する。
次に、翻訳部1700は、記憶部1100が記憶する例文パタンAと対訳例文パタンBとの対応関係情報F2を取得するか、抽出部1600から情報F2を取得し、取得した情報が表す写像 F2(A, B) を特定する。
また、翻訳部1700は、記憶部1100又は抽出部1600から、例文パタンAに対応付けた対訳例文パタンを取得する。
その後、翻訳部1700は、写像 F1(S, A)と写像 F2(A, B)とを合成し、合成した写像 F(S, B) と、対訳例文パタンとを用いて入力文Sを翻訳する。次に、翻訳部1700は、翻訳した文を表示装置2000が表示するよう制御する。その後、翻訳部1700は、翻訳処理の実行を終了する。
尚、翻訳部1700は、例文パタンA及び対訳例文パタンBの可変部分に対応する入力文S’を構成する変換後の文字列を、記憶部1100が記憶する単語辞書、又は例文辞書を用いて翻訳する。
ここで図1に戻り、翻訳システム10の構成について引き続き説明を行う。
表示装置2000は、例えば、CRT(Cathode Ray Tube)、液晶ディスプレイ、又はプラズマディスプレイで構成され、翻訳装置1000に接続している。
表示装置2000は、翻訳装置1000に制御されて第1の言語で表された入力文を表示する。次に、表示装置2000は、翻訳装置1000が翻訳した翻訳文を表示する。
入力装置3000は、例えば、キーボード、ポインティング・ディバイス(いわゆるマウス)、又はタッチパネルで構成され、翻訳装置1000に接続している。入力装置3000は、翻訳装置1000の使用者に操作されて、第1の言語で表された入力文を入力する。
本実施例においては、記憶部1100が記憶手段に相当し、検索部1300が検索手段に相当し、変換部1400が変換手段に相当し、算出部1500が算出手段に相当し、抽出部1600が類別手段に相当し、翻訳部1700が翻訳手段に相当する。
以下、本発明の第2の実施例に係る翻訳システムの実施形態について説明する。
第2の実施例において、翻訳装置を構成する単語検索部は、ハッシュ関数を用いて例文パタンを検索する。この単語検索部は、トライ構造を有するツリーを用いて検索する実施例1において説明した単語検索部と異なる。
実施例2における翻訳システムを構成する翻訳装置、表示装置、及び入力装置の接続、構成、及び機能については、実施例1における翻訳装置1000、表示装置2000、及び入力装置3000の接続、構成、及び機能と同様であるため、以下主に、相違点についてのみ説明する。また、説明の便宜のため、実施例1で用いた符号と同じ符号を用いて説明を行う。
ここで、実施例2において、単語検索部1310が実行する単語検索処理の一例について説明を行う。
先ず、単語検索部1310は、解析部1200から、入力文を構成する形態素を取得する。次に、単語検索部1310は、取得した形態素から入力文を構成する単語を抽出する。
その後、単語検索部1310は、抽出した単語に基づいて、ハッシュ処理を実行することで、ハッシュ値を計算する。次に、単語検索部1310は、計算したハッシュ値と関連付けて記憶部1100が記憶するインデックス配列1130のレコードIDを取得する。
尚、記憶部1100は、単語検索部1310が計算するハッシュ値と、ハッシュ値を計算する基礎とした単語を用いた例文パタンの識別情報を保存したインデックス配列の要素であるレコードを識別するレコードIDとを関連付けて記憶している。
次に、単語検索部1310は、取得したレコードIDを例文パタン検索部1320へ出力する。尚、単語検索部1310は、解析部1200から取得した単語及び節をも例文パタン検索部1320へ出力する。その後、単語検索部1310は、単語検索処理の実行を終了する。
ここで図26を参照して、実施例2において単語検索部1310が実行するハッシュ処理について説明を行う。図26は、実施例2において単語検索部1310が実行するハッシュ処理の一例を表すフローチャートである。
先ず、単語検索部1310は、ハッシュ値を格納する変数Hを初期化する(ステップST0501)。次に、ハッシュ値を計算する対象とする単語Wを取得する(ステップST0502)。ここで、単語Wは、文字w1からwLで構成されるとする。
その後、単語検索部1310は、カウンタ変数 i に値「1」を代入して初期化する(ステップST0503)。次に、単語検索部1310は、カウンタ変数の値 i が文字数 L 以下であるかを判断する(ステップST0504)。単語検索部1310は、カウンタ変数の値 i が文字数L 以下であると判断する場合にはステップST0505の処理を、そうで無い場合にはハッシュ処理の実行を終了する。
ステップST0504において、単語検索部1310は、カウンタ変数の値 i が文字数 L 以下であると判断した場合には、変数Hに対して、数式「 H | (wi << (i & 0x0F))」を用いて計算される値を代入する(ステップST0505)。尚、記号「&」、「<<」、及び「|」は、AND演算子、左シフト演算子、及びOR演算子を表す。
次に、単語検索部1310は、変数Hに対して、数式「 H = H % L 」を用いて計算される値を代入する(ステップST0506)。尚、記号「%」は、モジュロ演算子を表す。その後、単語検索部1310は、上記ステップST0504に戻り上記処理を繰り返す。
翻訳装置1000は、演算部1001がROM1002、RAM1003、及び外部記憶部1004の少なくともひとつに格納されたプログラムを実行することによって実現される。また、このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
以下に、第1の実施例で使用可能な入力文に対して比較的複雑な入力文も翻訳可能な第3の実施例に係る翻訳システムについて説明する。
図27は本発明の第3の実施例に係る翻訳システムの機能的な構成を示すブロック図である。同図において、翻訳システム10aは、翻訳装置1001、出力装置2000および入力装置3000を含んで構成される。図28は翻訳装置1001の主要部の構成を示す詳細ブロック図である。図1、図2で説明した第1の実施例の翻訳システム10と同一の構成要素には、同一の参照符号を付与した。
以下相違部分に重点をおいて説明する。
まず、解析部1200は、入力装置3000から入力された第1言語の文書情報を形態素解析し、入力文を構成する単語を切り分け,単語の品詞を付与するなどの処理をする。
検索部1300は、解析部1200の解析結果および記憶部1100の記憶内容を参照して、入力文と類似な第1言語の例文パタン候補(1または複数ある)を抽出する。
変換部1401は、第1言語の入力文と抽出された第1言語の例文パタンの候補を用いて,入力文の節を求める。第1言語入力文を第1言語例文パタンとの間の相違を求めるために,第1言語例文パタンに基づいて第1言語入力文を変換する。第1の実施例の変換部1400との相違点は、後述する。
算出部1500は変換部1401で変換された第1言語入力文の単語/節の列と第1言語例文パタンの候補間の相違として距離を求める。最小な相違を決める第1言語入力文の単語/節の列と、抽出された第1言語の例文パタン候補間の変換写像を求める。ここで,最小な相違値としての距離値を与える例文パタン候補が複数ある場合があるし、最小な相違値を決める例文パタン候補と入力文の単語/節の列間の変換写像が複数ある場合もある。
抽出部1600は、第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を求める。第1言語入力文の単語/節の列と抽出された第1言語の例文パタン候補間の対応関係(写像)を求める。抽出部1600は第1の実施例と同様の詳細構成を有し、最終段の関係選択部1630は第1言語入力文の単語/節の列と抽出された第1言語の例文パタン候補間の対応関係が複数ある場合は,適切な対応関係を選択する。
判定修正部1800は、判定部1810、修正部1820および最適関係選択部1830を含んで構成される。判定修正部1800は、関係選択部1630の選択結果および記憶部1100の記憶内容を参照して、選択結果を判定し、修正が必要な場合は、修正して算出部1500に戻すことにより、再度対応関係を得るものである。
判定部1810は、関係選択部1630の選択結果について、第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を再計算するかどうかを判定する。
修正部1820は、第1言語入力文の単語/節の列を修正して,修正後の第1言語入力文の単語/節の列と第1言語例文パタン間の相違をもう一度計算し,新しい距離値を定めるために第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を求める。
最適関係選択部1830は、すべての例文パタンの候補と第1言語入力文の単語/節の列間の対応関係集合から,最適な対訳関係選択する。この選択により求められた例文パタン対訳ベアの番号と第1言語入力文の単語/節の列と抽出された第1言語の例文パタン間の対応関係を出力する。
記憶部1100は、第1の実施例と同様なデータ構成を有し、記憶内容としては、例文対訳辞書および例文パタン対訳辞書を含む。例文パタン対訳辞書は、例えば、例文パタン、訳文パタン、および例文パタンと訳文パタン間の対応関係を一組として記憶している.これを例文パタン対訳ペアと呼ぶ。
翻訳部1700は、最適関係選択部1830で選択された第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係、第1言語例文パタンとそのパタンに対応している訳語言語の例文パタン間の対応関係を用いて、第1言語入力文の単語/節の列と訳語言語の例文パタン間の対応関係を求め,可変部分を翻訳して,訳文を生成する。
次に、第1の実施例の入力文は、比較的構成の簡単な基本的なものを対象としているのに対し、第3の実施例では、下記に例1乃至例5に示すような比較的複雑な入力文も翻訳可能とするものである。
図29に例1を示す。例1は、述語を修飾する副詞がある場合は,不適切なマッチングが起こりうることを示す。入力された第1言語の文Sが、「必ず xxx に渡してください」であり、抽出された第1言語の例文パタンの候補Aは、「NPに渡してください」である。“必ず”は“渡す”を修飾しているが、“xxx”を修飾しているではない。従って、“必ずxxx”が名詞句(NP)として処理するのは適切ではない。この場合、翻訳するとき,訳文の生成が難しくなる。例えば、入力された第1言語の文Sが、「必ずFXの田中さんに渡してください」、抽出された第1言語の例文パタンの候補Aは、Vに渡してください。“必ず”は“渡す”を修飾しているが、“FXの田中さん”を修飾しているわけではない。従って、“必ずFXの田中さん”が名詞句として処理するのは適切ではない。この場合、翻訳するとき,訳文の生成が難しくなる。中国語の場合も同様である。「私はリンゴを食べている」の例である。「私は」「ている」は名詞句ではないので、「ている」を示す単語が、私を示す単語を修飾するのは好ましくない。
図30に例2を示す。同図に示すように、入力文「私は子供が食べ残したリンゴを食べている」には、”子供が食べ残したリンゴ”が、動詞“食べる”の対象であり、パタンのNP2にマッチングするべきであるが、実際には、その一単語だけNP2にマッチングしてしまった場合を示す。同図に示すように、中国語の場合の同様である。
図31に例3を示す。同図に示すように、入力文S「海外市場の進出をめぐって、全社計画を立てた」であり、例文パタンAは、「NP1の進出をめぐって、NP2を立てた」である。“全社/2の/71計画/17”は一つの名詞句として、パタンとマッチングしたほうが望ましいが,第1の実施例のアルゴリズムには,“の”がパタンの固定項目であるため,入力文の二つの“の”がパタンの可変項目(つまり、NP)に写像できない。つまり、“全社/2 の/71 計画/17”をひとつの可変項目として、NP2にマッチングできない。中国語の場合も同様である。同図では、日本語の「の」が中国語では、「的」に相当し、同様な問題が起きる。
図32に例4を示す。同図に示すように、入力文Sが、「私は子供が飲み残したジュースを捨てた」と例文パタンAは、「NPを捨てた」の間に完全にマッチングしてしまう。しかし、“私は子供が飲み残したジュース”が一つの句ではないので,パタンのNPにマッチングすることが不適切である。中国語の場合も同様である。入力文が「私は今大学を受験している王さんと友達になりました」を示し、例文パタンは「NPはNPを受験する」を示す例である。
図33に例5を示す。同図に示すように、入力文Sが、「分かる よう に 報告 書 を 書いてください」であり、例文パタンAは「分かる ように NP を 書いてください」である。形態素解析の結果“よう/に”は、例文パタンの固定項目“ように”にマッチングできない。中国語の場合も同様である。入力文の「偏/移」は、例文パタンの固定項目「偏移」にはマッチングできない。
以上のような例の入力文と例文パタンの不適切なマッチングに対応するための詳細構成を説明する。
変換部1401の構成は、第1の実施例での変換部1400の機能に加えて下記の変換ルール(規則)による機能を持つ。
即ち、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可能)、かつ、次の条件C1を満たさない場合は、skをS’の一つの固定項目とする。同時に、例文パタンA のaiai+1…ajを一つの固定項目に変換する。
(2)入力文Sのある連続している単語列shsh+1…sm=ahが例文パタンAのある固定項目asに等しい。即ち、shsh+1…sm=as、かつ、次の条件C1を満たさない場合は、shsh+1…smをS’の一つの固定項目とする。
(3)入力文Sに,次の条件C2を満たすすべての単語とskをS’の固定項目とする(ここで、skが動詞,或いは形容詞であり、skが例文パタンAに対応している固定項目をakとする)。
(4)入力文Sに固定できない連続部分をS’の可変項目とする。
条件C1:
・入力文の言語が中国語かつ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は、対応しているパタンを持っている。
条件C2:ここで,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)は、例5に示した場合の不整合を解消する。しかし、C1の条件を満たす場合は,例外として処理する。つまり、(1)skは入力文の句の要素、かつ、パタンにはその句のパタンが存在しない場合は,固定項目としない。(2) skはパタンの句パタンの要素,かつ,文にはskを含むその句が存在しない場合は,固定項目としない。註:示したC1の内容は全部ではない。
変換ルール(3)について、
C2の次の条件は,例1に示した場合の不整合を解消する。
・入力文の言語が中国語かつskが動詞の場合:入力文に,skの左の一番近い動詞までの副詞と可能動詞。
・入力文の言語が日本語かつskが動詞の場合:入力文に,skの左の一番近い動詞までの副詞。
C2の次の条件は、動詞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)は、入力文に固定できない連続部分(つまり残りの部分)を可変項目として求める。連体節、連用節に対応する。
選択部1630の選択機能例について説明する。それを実現するルール(規則)例を述べる。
選択ルールは下記の通りである。
・集合F1set(S’,A)は、第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を求める抽出部で求められた第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係の集合とする。
・集合F1set(S’,A)の各写像F11に対して、
・F11にある任意の二つの対応関係 (si-ak) ∈ F11, (sj-ah) ∈F11に対して,もし,siがsjと近隣, akがahと近隣なら,F11の選択優先度を+1とする。
・集合F1set(S’,A)に選択優先度が一番高い写像を選択する(複数可能)。
図34を参照して具体例で説明すると、同図に示すように、
「入力された第1言語の文Sは「FXの田中さんに必ず渡してください」であり、
抽出された第1言語の例文パタンでの一つの候補Aは、「必ずV1をV2に渡してください」である。
この例で二つの写像がある。一つ目のF11について,“FXの田中さん”が、“に”と近隣(この例では隣接)しているが,それぞれ対応しているV1と“に”が近隣していないので、+1されず、選択優先度は0である。
二つ目のF12については、“FXの田中さん”が、“に”と近隣している。かつ、それぞれ対応しているV2と“に”が近隣しているので、+1され、選択優先度は、1である。
従って、選択優先度が大きいF12が選択される。
次に、判定部1810について説明する。以下のようなルール(規則)を持つ。
・各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が可変項目である。
図35を参照して具体例で説明すると、同図に示すように、パタンAとの対応関係を持っていない入力文の「食べる」を示す固定項目“吃/v”(2番目の)に対して、
1.S’に二つの“吃/v”がある。
2.左側の“吃/v”がパタンAとの対応関係を持っている。
3.“吃/v”の左側の項目は「子供」を示す可変項目“孩子/n”であり,右側の項目は「残したリンゴ」を示す可変項目“剩下/v的/u苹果/n”である。従って,S’は修正する必要がある。
次に修正部1820について説明する。
以下のようなルールを持つ。判定部1810で再計算が必要な写像を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がsjと近隣するなら、si,sjをS’の一つの可変項目に修正する。
図36に示す例では、例文パタンAとの対応関係を持っていない入力文S’の固定項目“吃/v”(2番目の)に対して、“吃/v”の左側の項目は、可変項目“孩子/n”であり,右側の項目は可変項目“剩下/v的/u苹果/n”である。従って、“孩子/n”、“ 吃/v”と“ 剩下/v的/u苹果/n”をS’の一つの可変項目に修正する。つまり、入力文S’は図36に示すように「子供が食べ残したリンゴ」を意味する部分を一つの可変項目として修正された。
このような修正と、再マッチング(算出部1500、抽出部1600の処理)をすることにより、例2および例3で述べた不整合を解消することができる。
次に、最適関係選択部1830について説明する。以下に述べる選択ルールで、選択条件の優先順位により入力文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位の条件で選択した写像が複数の場合は,任意一つを選択する。
このような最適な対応関係(写像)の選択により、例4で述べた不整合を解消することができる
次に図37乃至図41を参照して具体例で説明する。図37に示すように、具体例として、入力された第1言語の文Sの単語列として、「アイスを食べている山崎さんはリンゴとミカンを食べている田中さんと一緒に映画を見る」であり、形態素解析の結果の文Sは、「アイス/を/食べている/山崎/さん/は/リンゴ/と/ミカン/を/食べている/田中/さん/と/一緒/に/映画/を/見る」である。例文パタンAは、「NP1はNP2と一緒NP3を見る」であり、例文パタンAにより,文Sを変換する(通常の黒字は可変項目,太文字が固定項目)。変換結果の文S’は、「アイス/を/食べている山崎さん/は/リンゴ/と/ミカン/を/食べている田中さん/と/一緒/に/映画/を/見る」となる。
1回目で求めるS’とAの間のマッチングは、図38および図39に示すように、(1)乃至(8)の八つのマッチング結果である。いずれも距離D1=6である。図40に示すように、マッチング(1)とマッチング(2)から修正部1820により修正処理と、算出部1500および抽出部1600による再マッチング処理により、距離D1=1の対応関係(写像)が得られる。
また、図41に示すように、マッチング(3)とマッチング(8)から同様に、修正処理と再マッチング処理により、距離D1=0の対応関係(写像)が得られる。この結果距離が小さい後者が最適対応関係として選ばれる。
次に図42および図43のフローチャートを参照して、翻訳装置1001の要部の動作を説明する。
形態素解析済みの入力文Sが検索部1300に入力されと、検索部1300は、入力文sに対応する例文パタン候補Aset、即ち、Dmin, F1set(S),F1set(S’), F1set(S’,A)などを初期化する(S301、S302)。更に例文パタン候補Asetから例文パタン候補Aが取り出され、変換部1401により、パタンAに対応する入力文SをS’とする(S303、S304)。この入力文S’とAの間の距離D1を算出部1500により求める。求めた距離D1がDmin最小値より小さいかどうか判断する(S306)。小さい場合には、F1set(S’,A)およびF1set(S’)をヌル値(NULL)即ち空値とし、D1をDminとした後、抽出部1600で文S’と例文パタンAの間の対応関係(写像)を求める(S307、S309)。
更に、求めた距離値Dimを定める写像をF1set(S’,A)に格納する。選択部1630で、F1set(S’,A)にある不適切な写像を削除する(S310)。得られたF1set(S’,A)をF1set(S’)に入れる。
即ち、F1set(S’)= F1set(S’)+F1set(S’,A)
その後、または、ステップS306で大きいと判断した場合には、Asetの候補をすべて処理したかどうかを判断し、未処理があれば、候補Aを取り出し上記処理を行い、すべて処理済みであれば、次のステップに進む。
次に、判定部1810で、F1set(S’)の中から一つの写像F1i(S’,A)を取り出し、F1i(S’,A)に対して,再計算する必要があるかどうかを判定する(S311、S312)。再計算する必要がある場合には、修正部1820で、F1i(S’,A)と候補Aを参考して、文S’を修正し、これを修正後の文S’’とする(S313
)。
即ち、F1set(S’,A)=F1set(S’,A)-F1i(S’,A)
修正後の文S’’と候補Aの間の相違を算出部1500で求める(S314)。求めた相違としての距離値をD2とする。距離値D2が最小値Dminより小さいかどうかを判断する(S315)。小さい場合には、文S’’と候補Aの間の対応関係(写像)F1set(S’’,A)を求める(S316)。その後、Dmin=D2であれば、F1set(S)=F1set(S)+F1set(S’’,A)とし、Dmin>D2であれば、F1set(S)=F1set(S’,A)およびDmin=D2とする(S317)。
ステップS317の処理の終了後、ステップS315で、大きいと判断した場合、およびステップS312で再計算の必要がないと判断した場合には、F1set(S’)の写像をすべて処理したかどうかを判断する(S318)。未処理があれば、ステップS312に戻り処理を行う。処理済であれば、F1set(S)がNULLであれば、F1set(S)= F1set(S’,A)とした後、最適関係選択部1830で、F1set(S)から最適な写像(対応関係)を求め、求めた写像をF1res(S,A)に入れる(S319、S320)。
以下、第3の実施例を改良した第4の実施例に係る翻訳システムについて説明する。
図44は本発明の第4の実施例に係る翻訳システムの機能的な構成を示すブロック図である。同図において、翻訳システム10bは、翻訳装置1002、出力装置2000および入力装置3000を含んで構成される。図45は翻訳装置1002の主要部の構成を示す詳細ブロック図である。図27、図28で説明した第3の実施例の翻訳システム10aと同一の構成要素には、同一の参照符号を付与した。以下相違部分について説明する。
検索部1301(図44参照)は、第3の実施例の検索部1300と同様に、解析部1200の解析結果および記憶部1100の記憶内容を参照して、入力文と類似な第1言語の例文パタン候補(1または複数ある)を抽出する。この際に、入力文と候補の例文パタンの類似度およびカバー率の関係から対象とする候補の範囲を絞って候補の例文パタンを検索する。詳細は後述する。
判定修正部1801(図45参照)は、第3の実施例の判定修正部1800と同様に、判定部1810および修正部1820を含むが、判定部1810の後段に第2判定部1815が追加され、その後段に最適関係選択部1831が接続されて構成される。判定修正部1801は、第3の実施例の判定修正部1800と同様に、関係選択部1630の選択結果および記憶部1100の記憶内容を参照して、選択結果を判定し、修正が必要な場合は、修正して算出部1500に戻すことにより、再度対応関係を得るものである。
追加された第2判定部1815は、まず、判定部1810により、関係選択部1630の選択結果について、第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係を再計算するかどうかが判定され、この判定の結果、再計算が不要な場合の対応関係と距離値について、所定の規則を満たすか判定し、得られた候補の例文パタンを翻訳用パタンとして選出する。次に、再計算が必要で、修正部1820により、第1言語入力文の単語/節の列が修正され、算出部1500を介して、修正後の第1言語入力文の単語/節の列と第1言語例文パタン間の相違がもう一度計算され、更に抽出部1600を介して得られた、新しい距離値を定める第1言語入力文の単語/節の列と第1言語例文パタン間の対応関係と距離値について、所定の規則を満たすか判定し、得られた候補の例文パタンを翻訳用パタンとして選出する。詳細は後述する。
最適関係選択部1831は、第2判定部1815から得られたすべての例文パタンの候補と第1言語入力文の単語/節の列間の対応関係集合から、最適な対訳関係選択する。この選択により求められた例文パタン対訳ベアの番号と第1言語入力文の単語/節の列と抽出された第1言語の例文パタン間の対応関係を出力する。第3の実施例の最適関係選択部1830とは、選択手法が異なり、最適関係選択部1830が優先順を付けた選択条件で選択していたのに対し、最適関係選択部1831は優先順位を付けず、総合的に判断して選択する点で異なる。詳細は後述する。
図42および図43のフローチャートで示すように、第3の実施例の処理フローでは、入力文と候補の例文パタンの写像(対応関係)が間違いとなる間違いマッチングを防ぐために、再計算が必要かどうか判定し、入力文の変換を修正し、2回目以降の再マッチングを行っている。その際、その前半の1回目のマッチング処理(図42:ステップS301〜S310まで)で、相違値としての距離値が最小となる写像を求め、その最小となる候補の例文パタンから2日目のマッチング処理(図43:ステップS311〜S319)が行われる。しかし、本来、候補として選出すべき例文パタンであっても、1回目で距離値が最小とならないとき、最適な候補の例文パタンとならない場合がある。
この場合の入力文と候補の例文パタンとの対応関例を図46に示す。同図に示すように、入力文Sが「私/14 は/65 子供/2が/61 食べ[食べる/47]/47 残した[残す/47 た/74]/47 リンゴ/2 を/61 食べている[食べる/47 て/64 いる/48]/47」である。これに対し、最初の候補の例文パタンA1が、「NP1 はNP2 を食べている[食べる て いる]」であり、二つ目の候補の例文パタンA2が、「NP1 はNP2 が食べ[食べる/47]/47残した[残す/47 た/74]/47 NP3です」である。最初の例文パタンA1の名詞句NP2 に対して、入力文Sのうち、「子供/2が/61」を誤って対応させているため、最初の候補の例文パタンA1との距離値が大きくなり2である。一方、二つ目の候補の例文パタンA2では、図46に示すように各項目を対応させ、距離値が1となっている。この結果、本来候補として残るべき最初の例文パタンA1が除外され、候補として相応しくない二つ目の候補の例文パタンA2が残ることになる。中国語の場合も同様になる。
次に、第3の実施例の最適関係選択部1830では、すでに述べたように、選択ルール(規則)で、選択条件の優先順位により入力文Sとマッチングした例文パタンAの対応関係(写像)を選択する。最優先の第1位の条件として、対象となるすべての写像について,置換項目(パタンAの項目に対応関係を持っている入力文Sの項目)が一番多い写像を選択している。本来、候補として選出すべき例文パタンであっても、置換項目の項目数が小さいとき、最適な候補の例文パタンとならない場合がある。
この場合の入力文と候補の例文パタンとの対応関例を図47に示す。入力文Sに対して、同じ距離値を持つ例文パタンが複数ある(同図の場合2個)。その中には、一般論として、マッチングした項目数が多ければ多いほど、例文パタンが入力文とのマッチング具合はよいと考えられる。しかし、図47に示すような例外がある。
同図は、最初の入力文Sと候補の例文パタンA1は、図46と同様であるが、その対応関係では、例文パタンA1の名詞句NP2 対して入力文Sの「子供/2が/61 食べ[食べる/47]/47 残した[残す/47 た/74]/47 リンゴ/2 」に正しく対応させており、距離値が0で、置換項目数(マッチング数)は5である。これに対し、二つ目の対応関係は、入力文Sは最初の例と同じで、候補の例文パタンA3は、「NP1 が食べ[食べる/47]/47 残した[残す/47 た/74]/47 NP2 を食べている[食べる て いる]」である。その対応関係では、例文パタンの名詞句NP2 に対して入力文Sの「私/14は/65子供/2」を誤って対応させているが、距離値0で、置換項目数(マッチング数)は7である。
このような場合に対応して改良した本実施例の翻訳システム10bにおける翻訳装置1002の第3の実施例との相違部分の詳細について説明する。
まず、検索部1301では、例文パタンの候補範囲を絞ることにより、以降の処理の効率化による高速化が期待できる。候補の例文パタンを入力文との類似度とカバー率で範囲を絞る場合の例を図48に示す。同図(a)(b)は、横軸を類似度Sim(S,A)、縦軸をカバー率Cov(S,A)としたグラフである。例えば、同図(a)に示すように、入力文との類似度とカバー率がそれぞれある閾値(G2、G1)を超えると、例文パタンを候補とする。右の矩形領域に属している例文パタンが候補となる。ここで、検索部1301で検索するとき、入力文Sと例文パタンAの間の類似度とカバー率が次のように定義されている。
Sim(S,A)=(2 *|S∩A|)/(|S|+ |A|); Cov(S,A)= |S∩A|/|S|
|S|:Sのバイグラム(Bi-gram:2グラムとも云う)の数であり、|A|:AのBi-gramの数でS∩A|: SとAの共通Bi-gramの数である。
さらに、効率よく範囲を絞る例について述べる。レンマ1(Lemma1)およびレンマ2(Lemma1)を導入する。レンマ1、レンマ2は、以下のように定義される。
Lemma1: Sim(S,A)≧Cov(S,A)
Lemma2: Sim(S,A)<2*Cov(S,A)
レンマ1は、次のように証明される。
証明: Sim(S,A)/Cov(S,A) = 2* |S|/(|S|+ |A|); |A|> |S|
の場合には、例文パタンのBi-gram数が入力文のBi-gram数より多い。もし、この例文パタンを用いて入力文Sを翻訳するときに、例文パタンAには、入力文と対応できない項目がある。従って、例文パタンAから対応できない項目を削除する必要がある。しかし、例文パタンの項目を削除すると、例文パタンが崩れるため、翻訳が困難になる。従って、|A|<= |S|の場合だけ考えれば十分である。従って、
Sim(S,A)/Cov(S,A) = 2* |S|/(|S|+ |A|)≧1;
となる。
レンマ2は、次のように証明される。
証明: Sim(S,A)/Cov(S,A) = 2* |S|/(|S|+ |A|); |S| >> |A|
の場合は、入力文Sが例文パタンAより大きければ大きいほど、 Sim(S,A)/Cov(S,A)は2に接近する。つまり、 Sim(S,A)/Cov(S,A)の最大値が2より小さい。従って、
Sim(S,A)/Cov(S,A)<2.
となる。
図48(b)は、図48(a)の矩形領域で示す範囲に対してレンマ1の境界線(45度の傾きの線)以下で、かつレンマ2の境界線(類似度に対してカバー率が2分の1となる線)以上の領域で示す範囲となる。この結果、無駄なマッチングを減らすことができ、効率よくマッチング処理をおこなうことができる。従って、その処理を高速化できる。
次に判定修正部1801の第2判定部1815の詳細について述べる。
第2判定部1815は、以下の判定規則を持つ。
判定規則1:例文パタンの可変部分にマッチングした入力文の部分文字列には、句読点を含まないこと。
判定規則2: Sim(S,A)/Cov(S,A) > G3(閾値)_Lemma3を満たさないこと。
判定規則3: 距離値 <= Dmin(現段階の距離最小値) + Dis(距離範囲を定める距離変動値)、
and 距離値 < Dmax(最大距離値)であること。
判定規則2に示すレンマ3(Lemma3)は、下記のように定義される。
Lemma3: Sim(S,A)/Cov(S,A) > G3
ここで、G3の範囲は、例えば1.5〜1.8である。例文パタンAが小さく、かつ入力文(変換後)は大きいと言える。つまり、小さい例文パタンが大きい入力文にマッチングしたことである。
レンマ3は、下記のように証明される。
証明:Lemma2より、 Sim(S,A)/Cov(S,A)) < 2、入力文 Sの文字数が例文パタンAの文字数より多ければ多いほど、 Sim(S,A)/Cov(S,A))が2に近くなる。つまり、Sim(S,A)/Cov(S,A))がある閾値を超えると、小さい例文パタンが大きい入力文にマッチングしたことが言える。従って、結論は、下記の通りである。
結論:候補の例文パタンがLemma3の条件を満たすときに、小さい例文パタンが大きい入力文にマッチングしたことが言える。このようなマッチングは間違いやすいので、翻訳候補の例文パタンとして選択しない。
第2判定部1815は、判定部1810で再計算(修正)の必要がないと判定されたとき、入力文と候補の例文パタンの距離値および写像(対応関係)について、下記の判定1の処理を行い、判定部1810で再計算(修正)の必要がありと判定されたとき、修正部1820の入力文の修正(再変換)後に対して算出部1500および抽出部1600から得られた入力文(再変換)と候補の例文パタンの距離値および写像(対応関係)について、下記の判定2の処理を行う。判定1および判定2は、下記の処理を行う。
判定1:
入力文(変換後)と類似する候補の例文パタン間のマッチングと距離値D1が判定規則1、判定規則2、判定規則3を満たすときに、当該例文パタンを翻訳用候補とする。そのとき、
if 距離値D1 <= Dmin then Dmin = 距離値D1
とする。
判定2:
入力文(再変換後)と類似する候補の例文パタン間のマッチングと距離値D2が判定規則1、判定規則2、判定規則3を満たすときに、当該例文パタンを翻訳用候補とする。そのとき、
if 距離値D2 <= Dmin then Dmin = 距離値D2
とする。
次に、最適写像選択部1831の詳細について述べる。
図47を参照して述べたように、入力文Sの「私は子供」を例文パタンのNP1 にマッチング(対応)させているので、得られた候補としての例文パタンは間違ったものとなる。もし、「私は子供」が名詞句ではないとする判断が可能なら、「私は子供」がNP1 にマッチングできなくなる。しかし、まだ、句の判断技術は未熟なので、実用的ではない。従って、句の判断技術を使用しない判断手段が必要である。最適な翻訳用候補の例文パタンを選択する基本的な考え方として、
(1) 例文パタンの可変部分にマッチングしている入力文の部分文字列は意味のある句である。
(2) マッチングした項目数ができるだけ多い。
(3) 距離値が小さい。
(4) 上記(1)(2)(3)の評価結果を融合して、総合的に判定する。
このような基本的な考え方に従った具体的例について説明する。まず、(1)項の例文パタンの可変部分に対応する句の評価処理手順について、図49のフローチャートを参照して説明する。なお、本実施例の翻訳システム10bは、公知の図示しない翻訳メモリ(TM)やパタン対訳辞書を備えているものとする。ここでは、これらの要素は、句の評価のために参照するが、翻訳自体は行わないものとする。
まず、句Pが翻訳メモリ(TM)に存在するか判断し、存在する場合には、句の評価値を1.0とする(S11a、S11b)。存在しないならば、パタン対訳辞書に句Pと完全にマッチングするパタンがあるか判断し、ある場合には、句の評価値を0.8とする(S12a、S12b)。この場合、少なくとも句の構造は保証できる。パタン対訳辞書に句Pと完全にマッチングするパタンがないならば次に句を構成する単語だけで判断する。ここでは、単語の数が少ないほど評価を良くし、名詞を含む句は、良い評価をし、動詞等を含む句の場合には、評価を下げている。すなわち、句Pには、動詞、助詞、助動詞、感動詞があるか判断し、ない場合には、名詞を含むと判断し、句の評価値を1.0/(単語数)1/2とする(S13a、S13b)。これらの品詞を含むとき、動詞等を含む句と判断し、句の評価値を0.5/(単語数)1/2 とし(S14)、句の評価手順を終了する。
先に述べた基本的な考え方を採用した最適な翻訳用候補の写像を選択するための計算例について説明する。
・入力文(変換後)と翻訳用候補の例文パタン間のマッチング集合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の計算方法1について説明する。
Fun1とFun2の計算方法1:
Fun1は、次式で与えられる。
Fun1(F1(S’,A)) =
( (Σ句の評価値)/句の数 * k1 + マッチングした項目の総数 * k2 - 距離値*K3 )
* F1(例文パタンAのマッチングした固定項目数) * F2(例文パタンAのマッチングした可変項目数)
Fun2は、次式で与えられる。
Fun2(F1(S’,A)) = (Σ句の評価値) / 句の数
ここで,例えば,K1 =10, k2=1, K3=1である。
次に、Fun1とFun2の計算方法2について説明する。
Fun1とFun2の計算方法2:
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(閾値)より小さいとき0であり、それ以外は1である。F2の場合、例文パタンにマッチングしていなかった可変項目数があるとき0であり、それ以外のとき1である。
以上二つの計算例について説明したが、先に述べた基本的な考え方を採用するならば、他の計算方法でも良い。
次に、以上述べた改良された構成要素を含む第4の実施例における翻訳装置1002の要部の動作を図50および図51のフローチャートを参照して説明する。
形態素解析済みの入力文Sが検索部1300に入力されと、検索部1300は、入力文sに対応する例文パタン候補Asetを検索する(S401、S402)。この際、
(1) Sim(S,A)>=Con(S,A);
(2) Sim(S,A)<2*Cov(S,A) ;
(3) 例文パタンの個数を所定の最大値に限定 、
となる条件で、例文パタンの候補範囲を絞り込んで検索を行い、
F1set(S)=F1set(S’,A)=NULL; Dmin =Dmax;
とする。
次に、例文パタン候補Asetから例文パタン候補Aが取り出され、変換部1401により、パタンAに対応する入力文SをS’とする(S403、S404)。この入力文S’とAの間の距離D1を算出部1500により求める(S405)。さらに、抽出部1600で、距離D1を定める文S’と例文パタンAの間の対応関係(写像)、F1set(S’,A)を求める(S406)。選択部1630で、F1set(S’,A)にある不適切な写像を削除する(S407)。F1set(S’,A)から一つの写像F1i(S’,A)を取り出し、
F1set(S’,A)= F1set(S’,A) - F1i(S’,A)
とする(S408)。
次に、判定部1810で、取り出した写像F1i(S’,A)に対して距離再計算を判定する必要があるかどうかを判定する(S409)。再計算する必要がある場合には、修正部1820で、写像F1i(S’,A)と候補Aを参考して、文S’を修正し、これを修正後の文S’’とする(S410)。修正後の文S’’と候補Aの間の相違を算出部1500で求める(S411)。求めた相違としての距離値をD2とする。次に文S’’と候補Aの間の対応関係(写像)F1set(S’’,A)を求める(S412)。
次に、第2判定部1815で、再計算が不要と判断された写像F1i(S’,A)に対して判定1の処理が行われ、再計算が必要と判断されて得られた写像F1set(S’’,A)に対して判定2の処理が行われる(S413a、S413b)。
すなわち、判定1の処理では、
判定規則1として、可変項目の中に句読点がなし、
判定規則2として、Sim(S,A)/Cov(S,A) > Sim_G3を満足しない、
判定規則3として、D1 <= Dmin + Dis, and D1<Dmax
の3つ規則を満たすとき、
F1rest(S)=F1res(S)+F1set(S’’,A)
とする。また、
D1 <= Dminのとき、Dmin = D1
とし、F1rest(S)に、距離値<=Dmin+DisのすべてのF1set(S’,A)を削除する。
判定2の処理では、
判定規則1として、可変項目の中に句読点がなし
判定規則2として、Sim(S,A)/Cov(S,A) > Sim_G3を満足しない、
判定規則3として、D2 <= Dmin + Dis, and D2<Dmax
の3つ規則を満たすとき、
F1rest(S)=F1res(S)+F1set(S’’,A)
とする。また、
D2 <= Dmin のとき、Dmin = D2
とし、F1rest(S)に,距離値<=Dmin+DisのすべてのF1set(S’,A)を削除する。
判定1または判定2の処理が終了すると、F1set(S’,A)が、ヌル値(NULL)即ち空値かどうか判断し、ヌル値でない場合には、ステップS408に戻って処理を行い、ヌル値の場合には、例文パタン候補Asetの候補の全てを処理したかどうか判断する(S415)。未処理があれば、ステップS403に戻って処理をし、処理済みであれば、最適関係選択部1831で、F1set(S)から最適な写像(対応関係)を求め、求めた写像をF1res(S,A)に入れる(S416)。
最後に、図46で述べた文Sと候補の例文パタンA1、A2を使用してA1、A2の計算の順番が変わっても問題ないことを示す簡単な計算例について説明する。初期値は、Dis=1 、Dmax=Dmin=9999とし、F1rest(S)=NULLとする。
まず、計算順が例文パタンA1、A2の場合として、文S’と例文パタンA1の間の距離とマッチングを求める。例文パタンA1により、文Sを変換し文S’とする。文S’は、図46の最初のSと同様に対応させたものとする。この結果、文S’とA1間の距離は、
D(S’,A1)=2
である。しかし、判定部1810で当該マッチングが修正する必要があると判明し、文S’を修正し、文S”する。ここで、修正された文S”は、図47で示した最初の例の文Sと同様に、例文パタンA1の名詞句NP2と正しく対応させたものとすると、文S”と例文パタンA1間の距離は、
D(S”,A1)=0
である。そこで、第2判定部1815が判定2で例文パタンA1が翻訳用候補の例文パタンと選択され、Dmin=0 となり、F1rest(S)にF1set(S”,A1)を追加する。
次に、例文パタンA2間の距離とマッチングを求める、例文パタンA2により、文Sを変換し文S’とする。文S’は、図46の二つ目の例のSと同様に対応させたものとする。この結果、文S’と例文パタンA2間の距離は、
D(S’,A2)=1
である。これは、例文パタンA2の「です」固定項目が挿入された重みである。第2判定部1815は、判定1で求められたマッチングを判定して、D(S’,A2)=1がDmin+Dis=0+1=1より小さくないので、当該パタンA2が翻訳用の候補パタンと選択されない。
計算順が例文パタンA2、A1の場合も、文S’と例文パタンA2間の距離は、上記と同様に、 D(S’,A2)=1
である。しかし、第2判定部1815の判定1で、求められたマッチングを判定して、例文パタンA2が翻訳候補用の例文パタンとなる。Dmin=1 、F1rest(S)にF1set(S’,A1)を追加する。
次に文S’と例文パタンA1間の距離は、
D(S’,A1)=2
であり、再変換後の文S”と例文パタンA1間の距離は、
D(S”,A1)=0
である。第2判定部1815が判定2で例文パタン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)で構成されるとして説明したが、これに限定されるわけではなく、例えば、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)、DVD−RAM(Digital Versatile Disk Random Access Memory)、MO(magneto-optic)、及び、フラッシュメモリ(flash memory)で構成される実施形式を採用できる。
10…翻訳システム 1000,1001,1002…翻訳装置
1001…演算部 1002…ROM
1003…RAM 1004…外部記憶部
1005…バス 1100…記憶部(記憶手段)
1110…線形例文パタン対訳辞書
1120…検索ツリー 1130…インデクス配列
1200…解析部 1300,1301…検索部(検索手段)
1310…単語検索部 1320…例文パタン検索部
1400,1401変換部(変換手段)1500…算出部(算出手段)
1600…抽出部(抽出手段) 1510…実抽出部
1520…関係特定部 1530…関係選択部
1700…翻訳部(翻訳手段) 1800…判定修正部
1810…判定部(判定手段) 1815…第2判定部(第2の判定部)
1820…修正部(修正手段)
1830,1831…最適関係選択部(第2の選択手段)
2000…表示装置 3000…入力装置
A…第1言語の例文パタン a1〜5…例文パタンAを構成する単語又は節
B…第2言語の例文パタン
b1〜6…対訳例文パタンBを構成する単語又は節
F…入力文Sを、対訳例文パタンBへ変換する写像
F1…入力文Sを、例文パタンAへ変換する写像
F2…例文パタンAを、対訳例文パタンBへ変換する写像
ID…例文パタン対訳ペアのID IN12…ノードN12を表す情報
PE…例文パタン PF…固定部分(共通文字列)
PV…可変部分(非共通文字列) S…入力文
S’…変換後の入力文 SE1〜4…例文

Claims (3)

  1. 類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、
    翻訳を行う対象として入力された第1の入力文に対し、形態素解析を実行する解析手段と、
    前記解析手段によって形態素解析が実行された前記第1の入力文と前記例文パタンの類似度と前記例文パタンが前記第1の入力文をカバーしている割合を示すカバー率大小関係に基づいて、前記記憶手段から前記第1の入力文に応じた例文パタンを検索する検索手段と、
    前記解析手段によって形態素解析が実行された第1の入力文前記検索手段によって検索された例文パタンとに基づいて、前記第1の入力文を、前記第1の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第2の入力文へ変換する変換手段と、
    前記例文パタンと前記第2の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、記例文パタンと前記第2の入力文との前記距離例文パタン毎に算出する算出手段と、
    前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第2の入力文の形態素前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする像を抽出する抽出手段と、
    前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
    写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、
    前記判定手段で修正判定のとき、第2の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第2の入力文の形態素の区切りを修正し、修正した第2の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、
    前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第1の入力文を翻訳する翻訳手段と
    を備えることを特徴とする翻訳装置。
  2. 類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と、
    入力文を示す情報入力する入力手段と、
    翻訳を行う対象として前記入力手段により入力された第1の入力文に対し、形態素解析を実行する解析手段と、
    前記解析手段によって形態素解析が実行された前記第1の入力文と前記例文パタンの類似度と前記例文パタンが前記第1の入力文をカバーしている割合を示すカバー率大小関係に基づいて、前記記憶手段から前記第1の入力文に応じた例文パタンを検索する検索手段と、
    前記解析手段によって形態素解析が実行された第1の入力文前記検索手段によって検索された例文パタンとに基づいて、前記第1の入力文を、前記第1の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第2の入力文へ変換する変換手段と、
    前記例文パタンと前記第2の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、記例文パタンと前記第2の入力文との前記距離例文パタン毎に算出する算出手段と、
    前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第2の入力文の形態素前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする像を抽出する抽出手段と、
    前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
    写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、
    前記判定手段で修正判定のとき、第2の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第2の入力文の形態素の区切りを修正し、修正した第2の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、
    前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第1の入力文を翻訳する翻訳手段とを備えることを特徴とする翻訳システム。
  3. 類別される例文に共通な文字列で構成される固定部分及び前記類別される例文に共通しない文字列を表す記号で構成される可変部分によって構成される例文パタン、並びに前記例文パタンが翻訳された対訳例文パタンを記憶する記憶手段と接続されたコンピュータを、
    翻訳を行う対象として入力された第1の入力文に対し、形態素解析を実行する解析手段と、
    前記解析手段によって形態素解析が実行された前記第1の入力文と前記例文パタンの類似度と前記例文パタンが前記第1の入力文をカバーしている割合を示すカバー率大小関係に基づいて、前記記憶手段から前記第1の入力文に応じた例文パタンを検索する検索手段と、
    前記解析手段によって形態素解析が実行された第1の入力文前記検索手段によって検索された例文パタンとに基づいて、前記第1の入力文を、前記第1の入力文のうち例文パタンの可変部分に相当する部分を一纏めにした第2の入力文へ変換する変換手段と、
    前記例文パタンと前記第2の入力文とが相違する程度を表す距離を求める所定の処理に基づいて、記例文パタンと前記第2の入力文との前記距離例文パタン毎に算出する算出手段と、
    前記算出手段が算出した距離の中で最も距離が近くなる例文パタンに基づいて、前記第2の入力文の形態素前記例文パタンの形態素とのそれぞれの対応関係を構成要素とする像を抽出する抽出手段と、
    前記抽出手段によって複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
    写像について修正が必要か否かを判定する予め定めた規則に基づいて、前記選択手段で選択された写像について修正が必要か否かを判定する判定手段と、
    前記判定手段で修正判定のとき、第2の入力文の形態素の区切りを修正するための予め定めた規則に基づいて、前記第2の入力文の形態素の区切りを修正し、修正した第2の入力文に基づいて、前記算出手段による距離の算出と前記抽出手段による写像の抽出をさせる修正手段と、
    前記判定手段で修正不要判定のときの写像と、前記修正手段の修正結果に対応して抽出された写像とに基づいて、前記第1の入力文を翻訳する翻訳手段として機能させることを特徴とする翻訳プログラム。
JP2009151682A 2009-06-26 2009-06-26 翻訳装置及び翻訳プログラム Expired - Fee Related JP5391867B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009151682A JP5391867B2 (ja) 2009-06-26 2009-06-26 翻訳装置及び翻訳プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009151682A JP5391867B2 (ja) 2009-06-26 2009-06-26 翻訳装置及び翻訳プログラム

Publications (2)

Publication Number Publication Date
JP2011008553A JP2011008553A (ja) 2011-01-13
JP5391867B2 true JP5391867B2 (ja) 2014-01-15

Family

ID=43565127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009151682A Expired - Fee Related JP5391867B2 (ja) 2009-06-26 2009-06-26 翻訳装置及び翻訳プログラム

Country Status (1)

Country Link
JP (1) JP5391867B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5521670B2 (ja) * 2010-03-17 2014-06-18 富士ゼロックス株式会社 パターンマッチング装置、翻訳装置、翻訳システム及び翻訳プログラム
JP5521669B2 (ja) * 2010-03-17 2014-06-18 富士ゼロックス株式会社 パターンマッチング装置、翻訳装置、翻訳システム及び翻訳プログラム
JP2014075073A (ja) 2012-10-05 2014-04-24 Fuji Xerox Co Ltd 翻訳処理装置及びプログラム
JP5628365B2 (ja) * 2013-03-28 2014-11-19 株式会社三菱東京Ufj銀行 検索装置
KR102569264B1 (ko) * 2023-01-17 2023-08-23 주식회사 코딧 캐시모듈을 이용한 인공지능 기반의 고속 번역방법 및 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4502615B2 (ja) * 2003-09-26 2010-07-14 日本電気株式会社 類似文検索装置、類似文検索方法、およびプログラム
JP4961755B2 (ja) * 2006-01-23 2012-06-27 富士ゼロックス株式会社 単語アライメント装置、単語アライメント方法、単語アライメントプログラム
JP2008065395A (ja) * 2006-09-04 2008-03-21 Fuji Xerox Co Ltd 翻訳装置、翻訳方法および翻訳プログラム
JP5239307B2 (ja) * 2007-11-20 2013-07-17 富士ゼロックス株式会社 翻訳装置及び翻訳プログラム
JP5298833B2 (ja) * 2008-12-23 2013-09-25 富士ゼロックス株式会社 翻訳装置及び翻訳プログラム

Also Published As

Publication number Publication date
JP2011008553A (ja) 2011-01-13

Similar Documents

Publication Publication Date Title
JP5239307B2 (ja) 翻訳装置及び翻訳プログラム
US5442546A (en) System and method for automatically generating translation templates from a pair of bilingual sentences
CN110378409B (zh) 一种基于要素关联注意力机制的汉越新闻文档摘要生成方法
US6920419B2 (en) Apparatus and method for adding information to a machine translation dictionary
US20070174040A1 (en) Word alignment apparatus, example sentence bilingual dictionary, word alignment method, and program product for word alignment
JP2013196374A (ja) 文章校正装置、及び文章校正方法
JP5391867B2 (ja) 翻訳装置及び翻訳プログラム
Way et al. wEBMT: developing and validating an example-based machine translation system using the world wide web
JP6186198B2 (ja) 学習モデル作成装置、翻訳装置、学習モデル作成方法、及びプログラム
JP7511381B2 (ja) 文生成装置、文生成方法および文生成プログラム
JP5298833B2 (ja) 翻訳装置及び翻訳プログラム
Taji et al. The columbia university-new york university abu dhabi sigmorphon 2016 morphological reinflection shared task submission
CN116306594A (zh) 一种医学ocr识别纠错方法
JP5298834B2 (ja) 例文マッチング翻訳装置、およびプログラム、並びに翻訳装置を含んで構成された句翻訳装置
JP2009157888A (ja) 音訳モデル作成装置、音訳装置、及びそれらのためのコンピュータプログラム
JP4113204B2 (ja) 機械翻訳装置、その方法およびプログラム
Nahar et al. Evaluation of machine translation approaches to translate English to Bengali
JP5521670B2 (ja) パターンマッチング装置、翻訳装置、翻訳システム及び翻訳プログラム
Seresangtakul et al. Thai-Isarn dialect parallel corpus construction for machine translation
JP4314271B2 (ja) 単語間関連度算出装置、単語間関連度算出方法及び単語間関連度算出プログラム並びにそのプログラムを記録した記録媒体
JP5521669B2 (ja) パターンマッチング装置、翻訳装置、翻訳システム及び翻訳プログラム
Imamura et al. Particle error correction from small error data for japanese learners
Loáiciga et al. It-disambiguation and source-aware language models for cross-lingual pronoun prediction
Boro et al. Romanian-english statistical translation at racai
Zalmout Morphological Tagging and Disambiguation in Dialectal Arabic Using Deep Learning Architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120518

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130930

R150 Certificate of patent or registration of utility model

Ref document number: 5391867

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees