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

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

Info

Publication number
JP5298833B2
JP5298833B2 JP2008326703A JP2008326703A JP5298833B2 JP 5298833 B2 JP5298833 B2 JP 5298833B2 JP 2008326703 A JP2008326703 A JP 2008326703A JP 2008326703 A JP2008326703 A JP 2008326703A JP 5298833 B2 JP5298833 B2 JP 5298833B2
Authority
JP
Japan
Prior art keywords
unit
input sentence
sentence
character string
example sentence
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
JP2008326703A
Other languages
English (en)
Other versions
JP2010152419A (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 JP2008326703A priority Critical patent/JP5298833B2/ja
Publication of JP2010152419A publication Critical patent/JP2010152419A/ja
Application granted granted Critical
Publication of JP5298833B2 publication Critical patent/JP5298833B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Description

本発明は、翻訳装置及び翻訳プログラムに関する。
従来から、翻訳作業の効率を向上させるために、翻訳対象とする文と類似した文を検索する類似文検索装置が知られている(例えば、特許文献1)。
この類似文検索装置は、例文を記憶する記憶手段と、翻訳対象とする文を受け付ける受付手段と、受付手段が受け付けた文と記憶手段が記憶する文とが類似する程度を表す類似度に基づいて記憶手段が記憶する例文を出力する出力手段とを具備することを特徴とする。
尚、類似度は、翻訳対象とする文に含まれる単語のうちで記憶手段が記憶する例文の中に出現する単語数を、翻訳対象とする文に含まれる単語数で除した値をいう。
また、翻訳対象とする原文を構成する形態素間の意味構造に近似した例文を検索し、検索した例文に基づいて原文を翻訳できる自動翻訳装置が知られている(例えば、特許文献2)。
この自動翻訳装置は、翻訳対象とする原文を入力する入力手段と、入力した原文を構成する形態素間の意味構造が近似する例文を選択する選択手段と、選択された例文に基づいて原文を翻訳する翻訳手段と、翻訳手段が翻訳した結果を表示する表示手段とを備えることを特徴としている。
更に、日本語で表された文と日本語で表された文を翻訳した文とを共通の特徴に基づいて類型した対訳パタンを用いて翻訳する翻訳処理装置が知られている(例えば、特許文献3)。
この翻訳処理装置は、入力文を構成する所定の文字列である定型部、及びそれ以外の任意の文字列である自由部で表される対訳パタンを用いて文を翻訳するパタン翻訳手段と、パタン翻訳手段が一つの対訳パタンを用いて複数の文を翻訳するように、自由部が文に存在せずとも定型部が一致する文に対してには対訳パタンを照合するパタン照合手段とを備えることを特徴としている。
特開2005−107597号公報 特開平06−83864号公報 特開平08−87506号公報
本発明の目的とするところは、少ない計算量で精度良く翻訳できる翻訳装置、翻訳システム及び翻訳プログラムを提供することにある。
本発明の請求項1に係る翻訳装置は、入力文の示す単語で区切られた文字列を候補の例文パタンに対応させて単語および節を含む文字列に変換する変換手段と、前記変換手段が変換した文字列を、前記候補の例文パタンとの相違値を算出する算出手段と、前記算出手段が算出した相違値に基づいて、前記変換された入力文と、候補の例文パタンとの写像を抽出する抽出手段と、前記抽出手段で複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、前記選択手段で選択された写像について修正が必要か判定する判定手段と、前記判定手段で修正判定のとき、当該入力文に対応する候補の例文パタンに対応して入力文の単語および節の区切りを修正し、修正した入力文に基づいて、前記算出手段による相違値の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記修正手段の修正結果に対応して抽出された写像に基づいて、前記入力文を翻訳する翻訳手段とを備えることを特徴とするものである。
上記構成において、前記変換手段は、候補の例文パタンに対応して入力文の単語および節の不適切な区切りを排除することを特徴とするものである。
上記構成において、前記修正手段の修正結果に対応して得られた対応関係を優先順位に基づいて選択する第2の選択手段を備えることを特徴とするものである。
本発明の請求項4に係る翻訳システムは、入力文を示す情報入力する入力手段と、入力文の示す単語で区切られた文字列を候補の例文パタンに対応させて単語および節を含む文字列に変換する変換手段と、前記変換手段が変換した文字列を、前記候補の例文パタンとの相違値を算出する算出手段と、前記算出手段が算出した相違値に基づいて、前記変換された入力文と、候補の例文パタンとの写像を抽出する抽出手段と、前記抽出手段で複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、前記選択手段で選択された写像について修正が必要か判定する判定手段と、前記判定手段で修正判定のとき、当該入力文に対応する候補の例文パタンに対応して入力文の単語および節の区切りを修正し、修正した入力文に基づいて、前記算出手段による相違値の算出と前記抽出手段による写像の抽出をさせる修正手段と、前記修正手段の修正結果に対応して抽出された写像に基づいて、前記入力文を翻訳する翻訳手段と、前記翻訳手段の翻訳結果を出力する出力手段と、を備えることを特徴とするものである。
本発明の請求項5に係る翻訳プログラムは、コンピュータを、入力文の示す単語で区切られた文字列を候補の例文パタンに対応させて単語および節を含む文字列に変換する変換手段、前記変換手段が変換した文字列を、前記候補の例文パタンとの相違値を算出する算出手段、前記算出手段が算出した相違値に基づいて、前記変換された入力文と、候補の例文パタンとの写像を抽出する抽出手段、前記抽出手段で複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段、前記選択手段で選択された写像について修正が必要か判定する判定手段、前記判定手段で修正判定のとき、当該入力文に対応する候補の例文パタンに対応して入力文の単語および節の区切りを修正し、修正した入力文に基づいて、前記算出手段による相違値の算出と前記抽出手段による写像の抽出をさせる修正手段、前記修正手段の修正結果に対応して抽出された写像に基づいて、前記入力文を翻訳する翻訳手段として機能させるためのものである。
請求項1の構成によれば、複雑な入力文書についても、少ない計算量で精度良く翻訳できる。
請求項2の構成によれば、不適切な対応関係をあらかじめ排除できるので、精度良く入力文を翻訳できる。
請求項3の構成によれば、適切な対応関係が選択でき、精度良く入力文を翻訳することができる。
請求項4の構成によれば、複雑な入力文書についても、少ない計算量で精度良く翻訳できる。
請求項5の構成によれば、複雑な入力文書についても、少ない計算量で精度良く翻訳できる。
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図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は、検索したレコードが保存する例文パタンを識別する識別情報(つまり、例文パタン対訳ペアの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 0005298833
表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 0005298833
表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 0005298833
表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を参照して、関係特定部1620が実行する関係選択処理の一例について概説する。
関係特定部1620は、例文パタンAが、互いに隣接した固定部分(つまり、共通文字列)と可変部分(つまり、非共通文字列)とで構成される場合に、同じ様に隣接する共通部分及び非共通部分と、固定部分及び可変部分とを対応付ける対応関係情報F1を対応関係集合SFの要素(つまり、対応関係情報F11及び12)から選択する。
本実施例では、関係特定部1620は、関係選択処理の実行により、対応関係集合SFの要素から、1つの対応関係情報F1を選択するとして説明するが、これに限定される訳ではない。例えば、削除する規則よりも置換する規則を優先して適用する等といった適用規則の優先順位を予め定め、定めた規則に従って対応関係情報F1を選択する構成を採用できる。
本実施例では、例文パタンAが、互いに隣接した固定部分と可変部分とで構成される場合を例に挙げて説明するが、これに限定される訳ではなく、例えば、例文パタンが、所定の文字数、単語数、又は節の数だけ離れた固定部分と可変部分とで構成される場合についても、ほぼ同様の処理によって、対応関係情報を選択できる。
尚、関係特定部1620が、関係特定処理で特定した対応関係情報F1が表す対応関係(n:m)は、少なくとも文字列が例文パタンAで使用される順番に基づいて昇順にソートされている。
次に、図23及び24を参照して、関係特定部1620が実行する関係選択処理について説明を行う。図23は、関係特定部1620が実行する関係選択処理の一例を表すフローチャートの一部であり、図24は、関係特定部1620が実行する関係選択処理の一例を表すフローチャートの他部である。
先ず、図示を省略するが、関係選択部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番目の)に対して、
S’に二つの“吃/v”がある。
左側の“吃/v”がパタンAとの対応関係を持っている。
“吃/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)。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
上記実施形態では、外部記憶装置はハードディスク(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)で構成される実施形式を採用できる。
本発明の翻訳装置で構成される翻訳システムの一実施形態を示す構成図である。 本発明の翻訳装置の一構成例を表す図である。 このソフトウェア制御を実現するための翻訳装置のハードウェアの一構成例を表す図である。 例文パタンの一例を表す図である。 記憶部が記憶する例文パタン対訳辞書の一構成例を表す図である。 記憶部が記憶する検索ツリーの一例を表す図である。 検索部の一構成例を表す機能ブロック図である。 変換部が変換対象とする入力文を構成する文字列と、変換後の文字列とを表す図である。 変換部が実行する変換処理の一例を表すフローチャートの一部である。 変換部が実行する変換処理の一例を表すフローチャートの他部である。 変換部が重みを算出するために実行する重み算出処理の一例を表すフローチャートの一部である。 変換部が重みを算出するために実行する重み算出処理の一例を表すフローチャートの他部である。 算出部が実行する距離算出処理の一例を表すフローチャートの一部である。 算出部が実行する距離算出処理の一例を表すフローチャートの他部である。 算出部が実行する距離算出処理の一例を表すフローチャートの他部である。 算出部が実行する距離算出処理の一例を表すフローチャートの他部である。 抽出部の一構成例を表す機能ブロック図である。 関係特定部が実行する関係特定処理の一例について概説するための図である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの一部である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの他部である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの一部である。 関係特定部が実行する関係特定処理の一例を表すフローチャートの他部である。 関係選択部が実行する関係選択処理の一例を表すフローチャートの一部である。 関係選択部が実行する関係選択処理の一例を表すフローチャートの他部である。 翻訳部が翻訳に用いる写像を説明するための図である。 実施例2において単語検索部が実行するハッシュ処理の一例を表すフローチャートである。 本発明の第3の実施例に係る翻訳システムの機能的な構成を示すブロック図である。 本発明の第3の実施例に係る翻訳装置の要部の詳細構成を示すブロック図である。 述語を修飾する副詞がある場合の不整合例を示す説明図である。 一単語だけに対応させた場合の不整合例を示す説明図である。 固定部分が複数回出現する場合の不整合例を示す説明図である。 句として対応させた場合の不整合例を示す説明図である。 形態素解析の誤りの場合の不整合例を示す説明図である。 選択部を説明する対応関係の説明図である。 判定部を説明する対応関係の説明図である。 修正部を説明する対応関係の説明図である。 具体的な関係例を示す説明図である。 最初のマッチング結果の一部を示す対応関係図である。 最初のマッチング結果の残りを示す対応関係図である。 マッチング(1)(2)の修正による再マッチング結果を示す対応関係図である。 マッチング(3)(8)の修正による再マッチング結果を示す対応関係図である。 実施例3の要部構成での動作処理部分を示すフローチャートである。 実施例3の要部構成での動作処理の残部を示すフローチャートである。
符号の説明
10…翻訳システム 1000,1001…翻訳装置
1001…演算部 1002…ROM
1003…RAM 1004…外部記憶部
1005…バス 1100…記憶部(記憶手段)
1110…線形例文パタン対訳辞書
1120…検索ツリー 1130…インデクス配列
1200…解析部 1300…検索部(検索手段)
1310…単語検索部 1320…例文パタン検索部
1400,1401変換部(変換手段)1500…算出部(算出手段)
1600…抽出部(抽出手段) 1510…実抽出部
1520…関係特定部 1530…関係選択部
1700…翻訳部(翻訳手段) 1800…判定修正部
1810…判定部(判定手段) 1820…修正部(修正手段)
1830…最適関係選択部(第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 (5)

  1. 入力文の示す単語で区切られた文字列を候補の例文パタンに対応させて単語および節を含む文字列に変換する変換手段と、
    前記変換手段が変換した文字列を、前記候補の例文パタンとの相違値を算出する算出手段と、
    前記算出手段が算出した相違値に基づいて、前記変換された入力文と、候補の例文パタンとの写像を抽出する抽出手段と、
    前記抽出手段で複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
    前記選択手段で選択された写像について修正が必要か判定する判定手段と、
    前記判定手段で修正判定のとき、当該入力文に対応する候補の例文パタンに対応して入力文の単語および節の区切りを修正し、修正した入力文に基づいて、前記算出手段による相違値の算出と前記抽出手段による写像の抽出をさせる修正手段と、
    前記修正手段の修正結果に対応して抽出された写像に基づいて、前記入力文を翻訳する翻訳手段と
    を備えることを特徴とする翻訳装置。
  2. 前記変換手段は、候補の例文パタンに対応して入力文の単語および節の不適切な区切りを排除することを特徴とする請求項1に記載の翻訳装置
  3. 前記修正手段の修正結果に対応して得られた対応関係を優先順位に基づいて選択する第2の選択手段を備えることを特徴とする請求項1又は2に記載の翻訳装置。
  4. 入力文を示す情報入力する入力手段と、
    入力文の示す単語で区切られた文字列を候補の例文パタンに対応させて単語および節を含む文字列に変換する変換手段と、
    前記変換手段が変換した文字列を、前記候補の例文パタンとの相違値を算出する算出手段と、
    前記算出手段が算出した相違値に基づいて、前記変換された入力文と、候補の例文パタンとの写像を抽出する抽出手段と、
    前記抽出手段で複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段と、
    前記選択手段で選択された写像について修正が必要か判定する判定手段と、
    前記判定手段で修正判定のとき、当該入力文に対応する候補の例文パタンに対応して入力文の単語および節の区切りを修正し、修正した入力文に基づいて、前記算出手段による相違値の算出と前記抽出手段による写像の抽出をさせる修正手段と、
    前記修正手段の修正結果に対応して抽出された写像に基づいて、前記入力文を翻訳する翻訳手段と、
    前記翻訳手段の翻訳結果を出力する出力手段と、
    を備えることを特徴とする翻訳システム。
  5. コンピュータを、
    入力文の示す単語で区切られた文字列を候補の例文パタンに対応させて単語および節を含む文字列に変換する変換手段、
    前記変換手段が変換した文字列を、前記候補の例文パタンとの相違値を算出する算出手段、
    前記算出手段が算出した相違値に基づいて、前記変換された入力文と、候補の例文パタンとの写像を抽出する抽出手段、
    前記抽出手段で複数の写像が抽出された場合、各写像を構成する構成要素である複数の対応関係のうち、第1の対応関係を構成する第1の入力文と第2の対応関係を構成する第2の入力文とが隣接し、かつ、前記第1の入力文に対応する第1の例文パタンと前記第2の入力文に対応する第2の例文パタンとが隣接する写像に対し、該写像が優先的に選択される度数を示す選択優先度を加算し、加算した前記選択優先度が一番高い写像を選択する選択手段、
    前記選択手段で選択された写像について修正が必要か判定する判定手段、
    前記判定手段で修正判定のとき、当該入力文に対応する候補の例文パタンに対応して入力文の単語および節の区切りを修正し、修正した入力文に基づいて、前記算出手段による相違値の算出と前記抽出手段による写像の抽出をさせる修正手段、
    前記修正手段の修正結果に対応して抽出された写像に基づいて、前記入力文を翻訳する翻訳手段
    として機能させるための翻訳プログラム。
JP2008326703A 2008-12-23 2008-12-23 翻訳装置及び翻訳プログラム Expired - Fee Related JP5298833B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008326703A JP5298833B2 (ja) 2008-12-23 2008-12-23 翻訳装置及び翻訳プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008326703A JP5298833B2 (ja) 2008-12-23 2008-12-23 翻訳装置及び翻訳プログラム

Publications (2)

Publication Number Publication Date
JP2010152419A JP2010152419A (ja) 2010-07-08
JP5298833B2 true JP5298833B2 (ja) 2013-09-25

Family

ID=42571478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008326703A Expired - Fee Related JP5298833B2 (ja) 2008-12-23 2008-12-23 翻訳装置及び翻訳プログラム

Country Status (1)

Country Link
JP (1) JP5298833B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5391867B2 (ja) * 2009-06-26 2014-01-15 富士ゼロックス株式会社 翻訳装置及び翻訳プログラム
JP5747508B2 (ja) * 2011-01-05 2015-07-15 富士ゼロックス株式会社 対訳情報検索装置、翻訳装置及びプログラム

Family Cites Families (2)

* 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 富士ゼロックス株式会社 単語アライメント装置、単語アライメント方法、単語アライメントプログラム

Also Published As

Publication number Publication date
JP2010152419A (ja) 2010-07-08

Similar Documents

Publication Publication Date Title
JP5239307B2 (ja) 翻訳装置及び翻訳プログラム
JP5870790B2 (ja) 文章校正装置、及び文章校正方法
US5895446A (en) Pattern-based translation method and system
US9342499B2 (en) Round-trip translation for automated grammatical error correction
US5442546A (en) System and method for automatically generating translation templates from a pair of bilingual sentences
US20070055493A1 (en) String matching method and system and computer-readable recording medium storing the string matching method
US8874433B2 (en) Syntax-based augmentation of statistical machine translation phrase tables
JP6817556B2 (ja) 類似文生成方法、類似文生成プログラム、類似文生成装置及び類似文生成システム
JP5391867B2 (ja) 翻訳装置及び翻訳プログラム
JP4304268B2 (ja) 複数言語対訳テキスト入力による第3言語テキスト生成アルゴリズム及び装置、プログラム
Way et al. wEBMT: developing and validating an example-based machine translation system using the world wide web
Francisca et al. Adapting rule based machine translation from english to bangla
JP5298833B2 (ja) 翻訳装置及び翻訳プログラム
JP2017010274A (ja) 対応付け装置及びプログラム
Kumar et al. Punjabi deconverter for generating Punjabi from universal networking language
JP2018072979A (ja) 対訳文抽出装置、対訳文抽出方法およびプログラム
Taji et al. The columbia university-new york university abu dhabi sigmorphon 2016 morphological reinflection shared task submission
Rahat et al. Parsa: An open information extraction system for Persian
JP5298834B2 (ja) 例文マッチング翻訳装置、およびプログラム、並びに翻訳装置を含んで構成された句翻訳装置
JP6564709B2 (ja) 文書き換え装置、方法、及びプログラム
Nahar et al. Evaluation of machine translation approaches to translate English to Bengali
JP5528376B2 (ja) 文書平易化装置およびプログラム
JP2006127405A (ja) バイリンガルパラレルテキストをアライメントする方法及びそのためのコンピュータで実行可能なプログラム
JP4314271B2 (ja) 単語間関連度算出装置、単語間関連度算出方法及び単語間関連度算出プログラム並びにそのプログラムを記録した記録媒体
JP2006243976A (ja) 頻度情報付き単語集合生成方法、プログラムおよびプログラム記憶媒体、ならびに、頻度情報付き単語集合生成装置、テキスト索引語作成装置、全文検索装置およびテキスト分類装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

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: 20130521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130603

R150 Certificate of patent or registration of utility model

Ref document number: 5298833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees