本発明は、コンピュータを利用して第一言語(原言語)の文章を第二言語(目的言語)の文章に自動的に翻訳する機械翻訳装置および機械翻訳プログラムに関する。
コンピュータを利用して、第一の自然言語で書かれた文章を第二の自然言語の文章に自動的に翻訳する機械翻訳装置やソフトウェアが実用化されている。例えばパソコン用翻訳ソフトウェアには多くの商品があり、また、インターネットで機械翻訳サービスが提供されている例もある。
翻訳処理は基本的に、まず入力原文を、形態素解析と構文解析によって語句等の所定の翻訳単位に区分する。その際、入力順序どおりに第1行目の左から右、第2行目の左から右というように文字列を順次翻訳処理部に送っている。次に、処理単位ごとに翻訳辞書を検索して、適用する翻訳規則を決定し、対応する訳語句等を決定する。決定した訳語句を所定の訳文生成規則に従って結合して、入力原文に対する訳文を作成するようになっている。
一般に、プレーンテキストに代表されるような、文字のみから成る文書や電子ファイル等の準文書(以下、単に「文書」という。)は、レイアウト情報や修飾情報といった構造情報を有していない。このような文書を非構造化文書という。一方で、文書内の構造を識別する枠組みをもった文書、すなわち構造化文書と呼ばれるものある。具体的には、ワープロ文書やHTML(Hyper Text Markup Language)文書、XML(Extended Markup Language)文書などである。構造化文書では、構造情報を参照すれば、ある部分が表構造か、箇条書き構造か、章もしくは節構造かの判断が容易にできる。従来の機械翻訳方法には、これらの構造情報を用いて特定の翻訳を行うものがある(例えば、特許文献1参照)。
近年は、プレーンテキストのような非構造化文書において、改行文字、タブ文字、スペース文字(以下、それぞれ単に「改行」、「タブ」、「スペース」という。)等の使用により、語句や文が規則的に配置され、かつ縦方向と横方向にそれぞれ共通した概念をもつものを、如何に翻訳するかが重要視されている。非構造化文書におけるこのような部分には、本来、構造化文書における表構造と同等の扱いを受けるべきものがあるといえる。つまり、このような非構造化文書の内部において、または、構造化文書の内部において、構造情報を有してはいないが表や箇条書きであると認識できる部分がありうる。このように表や箇条書きであると認識できる部分については、第二言語に翻訳する際、その構造を考慮すべきではあるが、もともと構造情報を利用できない。よって、解析に失敗する場合もあるし、仮に解析に成功した場合であっても、本来の適切な訳語ではない単なる標準的な訳語(デフォルト訳語)が出力されるという具合である。
例えば、行頭からの開始位置を同一として一行一項目ずつ列挙した表現として、図25に示す英語の原文の例を考える。図25の英語の原文には、第1行目から第12行目までにおいて、それぞれ「Aries」「Taurus」「Gemini」「Cancer」「Leo」「Virgo」「Libra」「Scorpio」「Sagittarius」「Capricorn」「Aquarius」「Pisces」という語が記載されている。それぞれの語の語義を考えると、これらは「星座」という集合に属することが分る。そこで、例えば「Gemini」や「Cancer」は日本語では「ふたご座(双子座)」「かに座(蟹座)」と訳すべきであるといえる。ところが、従来の技術では、語が一つずつ独立に訳されるだけである。つまり、この例のように規則的に配置された語の集合であっても、従来の技術では、その集合に基づいて語を訳したりはしない。そのため、「Gemini」や「Cancer」は例えば「ジェミニ」「癌」などと訳されてしまう。さらに、名詞以外の品詞候補をもつ語が含まれている場合は、その語の翻訳の際に名詞以外の品詞が優先されると、各語の翻訳後の順序が本来の順序と入れ替わることさえある。
次に、非構造化文書において、タブやスペース等を使って複数列の表に似せて語句が配置された表記について述べる。この表記を翻訳する際、一般に、翻訳後において元のレイアウトが崩れる現象が顕著となっている。つまり、プレーンテキスト等における擬似的な表の列間のスペースについては、単なる行単位の翻訳処理を施しても、適切な結果は得られない。従来の技術には、原文のスペースの数を翻訳後の文に引き継ぐものはある。しかし、原語と訳語の各々の長さが同一になることはほぼないといえるため、第1行目のスペースの数を原文と翻訳後とで合わせても、第2行目以降の各列の開始位置は行によってまちまちになる。つまり、本来の開始位置より前になったり後ろになったりするので、翻訳後は、縦方向に垂直に並ばなくなる。このずれが大きいと、他の列にまで開始位置がずれこむこともある。すると、出来上がった訳文は、原文を参照しなければ理解不能になることがある。
さらに、第一の言語が、英語のように単語間にスペースを空けて表記する言語である場合は、表の列間の間隔と単語間のスペースとの区別が、局所的にはできないことがある。したがって、このような部分を翻訳する際は、本来ならば、縦方向での語句または文の並びも見て翻訳する必要があるというべきである。
しかも、表や箇条書きのような規則的な配置では、非常に短い語句がしばしば多用され、前後の要素を参照しなければ意味を決定できないことが多い。語句によっては品詞が複数存在するものもある。さらには単語の省略形が用いられることも少なくない。例えば日本語の原文として、「勝 敗 引 勝率 差」という並びがある場合、「引」は「引き分け」の省略形であるといった具合である。
通常の文ならば、句読点を手がかりに解析を行い、各要素の文内の働きから、語句や文の意味を決定できる。ところが上記したような要素による並びが形成されているものについては、文を成していないので通常の手法は適用できない。しかも、「勝」「敗」「引」のような要素が横にではなく縦に並んでいる場合は、意味を決定するための手がかりはさらに減る。よって、このような要素が縦に並んでいるものについては、各要素が行ごとに分断されて翻訳されたり、各要素が一次元的に繋がったものとして処理されたりする。ここで相互の関係は考慮されていない。
こうしたなか、従来の翻訳技術では、共起情報を利用することが試みられている。これは、翻訳処理中に、該当する共起情報が辞書に格納されていれば、その共起情報を用いて訳語を決定するというものである。共起情報とは、共起に関する情報のことである。共起には、おもに文内共起と文脈内共起がある。前者すなわち文内共起については、文を構成していない上記のような集合要素に対して、誤ってたまたま文としての解析に成功する場合があるとすれば、この文内共起を利用した規則が、その適用条件を満たせば適用される可能性はあると考えられる。しかし実際には、そのような場合はほとんどないといえる。後者すなわち文脈内共起については、集合形成部分以外の部分も含めた文書全体を見ることになるため、適用しようとする対象が広すぎることになる。つまり、文脈内共起の手法も、上記のような部分の翻訳に適用しようとしても、用いるべき共起情報の範囲を正しく限定できないため、うまく適用することは難しい。
特願2004−319708
従来技術においては、共起情報を適用することもなく、各要素を1つずつ取り出すか、各要素が繋がったものとして翻訳しようとするため、訳し分けの手がかりとなる情報を利用できない。手がかりの情報とは、横方向の語の集合や縦方向の語の集合などである。よって、通常の翻訳と同様の方法で文として解析しようとして、結局失敗に終わったり、文脈に合わない訳を出力するなどの翻訳精度の悪化を招いたりするという問題点があった。
つまり、プレーンテキストのような非構造化文書において、語句が規則的に配置され、視覚的には表や箇条書きなどの構造を有する文書と同等の扱いをすべき部分があっても、文書の処理側では表や箇条書きとはみなされていなかったため、意味解析に関わる要素間の関係が用いられないので、高精度に翻訳することができないという問題点があった。
また、このような部分を、周囲の文とは違うものと認識した場合であっても、列間にはタブやスペース(行によってはスペースなし、タブなしもありうる)が任意に用いられ、一定の形式がとられないことがあるため、個々の構成要素の切り出しや相互関係を適切に捉えて翻訳することができないという問題点があった。
さらに、訳文を作成する際に、原文の表記のタブやスペース等を訳文に反映させるための調整がされていないため、表や箇条書きの形式が崩れたり、翻訳結果だけでは意味が不明確になったりするという問題点があった。
そこで、本発明の目的は、表や箇条書きとみなせる形式をもつ部分を抽出し、そこから得られる情報を最大限に利用して訳語の選択を行い、訳文を作成する上でも原文の構成情報を利用して加工することにより、高精度かつ安定した訳文を構成することができる機械翻訳装置および機械翻訳プログラムを提供することである。
本発明に係る機械翻訳装置は、機械翻訳プログラム、翻訳に必要な知識・規則を蓄積した翻訳辞書部を記憶した記憶装置と、翻訳対象の第一の言語の原文をユーザの入力操作に基づきデータとして入力する入力部と、翻訳後の第二の言語の訳文を出力する出力部と、前記機械翻訳プログラムを演算実行する中央処理制御装置とを備えた機械翻訳装置において、前記入力部から入力された第一の言語の原文から文字列と一つ以上連続する空白相当の文字とが交互に配置されている行が一行以上連続する領域を抽出する領域抽出部と、前記領域抽出部で抽出された前記領域の各行に含まれる空白相当の文字数と文字列の語句の文字数との合計が同じであることおよび前記各文字列の開始位置が列方向に整列していることを判定することにより前記領域が表に相当すると判断する配置判定部と、前記配置判定部で判断された前記表に相当する前記領域の各行から文字列を要素として同一行における語句の集合および各列から文字列を要素として各文字列の開始位置が同一の語句の集合を抽出する集合抽出部と、あらかじめ互いに関連する第一の言語の語句の集合および当該語句の集合に属する各語句の第二の言語の訳語を当該語句の集合ごとに定義し格納する翻訳辞書部と、前記各文字列を第二の言語へ翻訳する際に前記領域から前記集合抽出部により抽出された語句の集合の要素が前記翻訳辞書部に定義された語句の集合に含まれるかどうかに基づき前記訳語を選択する翻訳処理部と、前記翻訳処理部による翻訳結果を前記出力部に出力させる制御部とを備えることを特徴とする。
表や箇条書きなどの構造を有する文書と同じ扱いをすべき部分を含むプレーンテキストに代表される非構造化文書または構造化文書内の構造を有しない部分に対し、原文の構成を踏まえた高精度な翻訳を行い、原文に存在する規則性を訳文にも反映する高度な翻訳を行うことができる。
表や箇条書き相当部分を有する文書を、その規則的な配置を考慮することにより、使用すべき文書内の参照範囲を過不足なく適切に限定し、意味の決定や品詞の決定などに役立て、原文の構造性を生かして訳文書を成形するので、精度の高い可読性の高い翻訳結果が得られる。
本発明を実施する最良の形態では、表や箇条書き相当部分を有する文書を、その規則的な配置を考慮することにより、使用すべき文書内の参照範囲を過不足なく適切に限定し、意味の決定や品詞の決定などに役立てるから、精度の高い可読性の高い翻訳結果を得ることができ、また、原文の構造を生かして訳文書を成形することもできる。
以下、本発明の実施例について、図面を参照しながら説明する。
図1は、本発明の第一の実施例に係る機械翻訳装置のブロック図である。機械翻訳装置101は、入力部102と、制御部103と、文書内構造解析部104と、翻訳処理部105と、文書内抽出部分データ格納部106と、翻訳辞書部107と、出力部108とを備える。機械翻訳装置101は、原文109すなわち翻訳対象となる原言語(第一言語)により記載された文書を電子データとして入力とし、その翻訳を行い、訳文110すなわち翻訳結果である第二言語で記載された文書を出力する。
入力部102は、翻訳対象となる文書の原文109を電子データとして取り込んで、制御部103に出力する。
入力部102は、例えばキーボード、マウス等によって構成されており、ユーザの入力操作に基づき文書の入力を処理する。または、入力部102としてOCR(光学式文字読み取り装置)や、フレキシブルディスク、磁気テープ、磁気ディスク、光ディスク等、コンピュータ可読媒体からの読み込み装置を採用してもよい。入力部102はこれらの装置によって取り込んだ文書を制御部103に供給する。また、入力部102は制御部103に対して各種の制御コマンドを与える。例えば、翻訳、編集、辞書参照、辞書登録、印刷、検索、保存、終了などである。
制御部103は、入力部102から供給された原文109の中から規則的な配置を検出し、検出された部分については文書内構造解析部104に参照させるとともに、原文109の全体については翻訳処理部105に渡す。そして、翻訳処理部105から得た翻訳結果を出力部108へ供給する。
ここで、規則的な配置とは、プレーンテキスト内にみられる語句もしくは文の規則的な配置のことである。例えば、表、箇条書き、章、節などがあり、さらに、それらが階層構造をなすこともある。翻訳対象の文書がプレーンテキストでありながら、本文以外に付加情報をもつワープロ文書やHTMLファイルやXMLファイル等のいわゆる構造化文書と同様の効果をもつと認識できる部分があるかどうか、制御部103は翻訳対象の文書の中から検出を行う。
そのためには、原文内において語句同士の間に挿入される空白相当の文字を検出する。空白相当の文字の具体例としては、タブ文字(以下、単に「タブ」という。)やスペース文字(以下、単に「スペース」という。)などがある。そして、タブの数もしくはスペースの数と語句の文字数とを算出し、その合計が同じであるかどうか、または、表中の各要素同士の開始位置に規則性があるかどうかを判断することにより、検出することができる。
このようにして、第一の言語の原文から文字列と一つ以上連続する空白相当の文字とが交互に配置されている行が一行以上連続する領域を抽出する機能は、領域抽出部103aにより実現される。詳しくは後述する。
文書内構造解析部104は、文書内において規則性をもつ部分について、その構造を解析し、当該構造内の語句の集合を抽出するためのものである。さらに、領域の各行に含まれる文字列の個数の均一性および各文字列の開始位置の列方向の整列性を判定することにより領域が表に相当すると判断する配置判定部104aと、表に相当する領域の各行および各列からそれぞれ文字列の集合を抽出する集合抽出部104bとを有する。
翻訳処理部105は、制御部103からの指示により、制御部から渡された原文に対する翻訳処理を、翻訳辞書部107を用いて行い、その翻訳結果を制御部103へ返す。なお、制御部103からの指示とは、翻訳の制御コマンドにより発せられている。また、領域から抽出された文字列の集合が定義された語句の集合に含まれる程度を評価する集合評価部105aをさらに有する。翻訳処理部105は、各文字列を第二の言語へ翻訳する際に集合評価部105aによる評価に基づき訳語を選択する。
出力部108は、制御部103から供給された翻訳結果を訳文109として出力する。例えば、ディスプレイ等の表示装置を備え、制御部110による制御をうけて翻訳結果等をその画面上に表示させる。もしくは、音声出力装置を備え、翻訳結果を音声出力するようにしてもよい。もしくは、印字機等の印刷装置、フレキシブルディスク、磁気テープ、磁気ディスク、光ディスク等のコンピュータ可読媒体への出力装置や、他のメディアに文書を送信する送信装置等を備えてもよい。なお、出力部108は制御部103に与えられた各種の制御コマンドの制御部103からの応答を表示する。
文書内抽出部分データ格納部106は、文書内構造解析部104によって抽出された当該構造内の語句の集合を記憶する。記憶された情報は然るべき時期、例えば当該構造全体の翻訳が終了したときなどに消去される。
翻訳辞書部107は、第一言語から第二言語への翻訳を行うための辞書であり、翻訳処理部105が翻訳処理を行う際に使用する各種辞書データを格納している。
翻訳辞書部107に含まれる辞書として、語尾等に変化のある単語・熟語をその原形に変換するための活用変化辞書107a、第一言語を解析するための文法が記憶された解析文法辞書107b、第一言語の単語・熟語に対応する第二言語の訳語がその品詞情報とともに記憶される単語・熟語辞書107c、訳語の決定と、それに伴なう第一言語から第二言語への構造変換の仕方を示した変換文法辞書107d、第二言語の文の構造を決定する生成文法辞書107e、そして語尾等の語形を変化させて翻訳文を完成させる形態素生成文法辞書107f等が収容されている。
活用変化辞書107aに関して、語尾等の変化とは、例えば動詞における時制による変化、名詞の単数形/複数形といった数による変化のことをいう。原形とは、標準的な形のことをいい、時制でいえば現在形である。
変換文法辞書107dは、第二言語の構造に変換し、見出し語から適切な訳語を選択するための条件をあらわした、いわば翻訳規則の集合である。例えば、文における単語の役割によって訳語を決定したり、主語や目的語との関係によって訳語を決定したりする。
機械翻訳装置101は、例えば一般的なコンピュータに機械翻訳プログラムなどのソフトウェアプログラムがインストールされ、そのソフトウェアプログラムが中央処理制御装置において実行されることにより実現される。
図2に示す機械翻訳装置の構成図のように、本発明の第一の実施例の機械翻訳装置101は、中央処理制御装置201、ROM(Read Only Memory)202、RAM(Random Access Memory)203および入出力インタフェース209が、バス210を介して接続されている。入出力インタフェース209には、入力装置204、表示装置205、通信制御装置206、記憶装置207およびリムーバブルディスク208が接続されている。
中央処理制御装置201は、入力装置204からの入力信号に基づいてROM202から機械翻訳装置101を起動するためのブートプログラムを読み出して実行し、更に記憶装置207に記憶されたオペレーティングシステムを読み出す。更に中央処理制御装置201は、入力装置204や通信制御装置206などの入力信号に基づいて、各種装置の制御を行い、RAM203や記憶装置207などに記憶されたプログラムおよびデータを読み出してRAM203にロードするとともに、RAM203から読み出されたプログラムのコマンドに基づいて、データの計算又は加工など、後述する一連の処理を実現する処理装置である。
入力装置204は、操作者が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を作成し、入出力インタフェース209およびバス210を介して中央処理制御装置201に送信される。表示装置205は、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどであり、中央処理制御装置201からバス210および入出力インタフェース209を介して表示装置205において表示させる出力信号を受信し、例えば中央処理制御装置201の処理結果などを表示する装置である。通信制御装置206は、LANカードやモデムなどの装置であり、機械翻訳装置101をインターネットやLANなどの通信ネットワークに接続する装置である。通信制御装置206を介して通信ネットワークと送受信したデータは入力信号又は出力信号として、入出力インタフェースおよびバス210を介して中央処理制御装置201に送受信される。
記憶装置207は磁気ディスク装置であって、中央処理制御装置201で実行されるプログラムやデータが記憶されている。リムーバブルディスク208は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース209およびバス210を介して中央処理制御装置201に送受信される。
本発明の第一の実施例の機械翻訳装置101の記憶装置207には、機械翻訳プログラムが記憶されるとともに、翻訳辞書部107が記憶される。また、機械翻訳プログラムが機械翻訳装置101の中央処理制御装置201に読み込まれ実行されることによって、制御部103、文書内構造解析部104および翻訳処理部105が機械翻訳装置101に実装される。機械翻訳装置101の文書内抽出部分データ格納部106は、RAM203に格納される。機械翻訳装置101の入力部102は、入力装置204や通信制御装置206にて実装することができ、また、記憶装置207やリムーバブルディスク208からデータを入力するようにしてもよい。機械翻訳装置101の出力部108は、表示装置205や通信制御装置206にて実装することができ、また、記憶装置207やリムーバブルディスク208にデータを出力するようにしても良い。
図3は、表相当の部分を含む文書の原文の一例を示す説明図である。図3の文書301の書式としては、全ての文字が日本語の全角で、一行37文字で書かれており、タブ一つ当たり文字数が6文字となっている。なお、図3において便宜的に、「\n」は改行文字(以下、単に「改行」という。)を、「\t」はタブを、「\S」は全角スペース文字(以下、単に「全角スペース」という。)を、それぞれ表している。
図3の第1行目から第2行目の文には、全角スペースもタブも含まれていない。この文の末尾に句点「。」があり、その直後に改行「\n」により改行されている。改行後にある第3、4行目は、空行であって、改行のみから成っている。第5行目の文字列においては、「月日」で全角2文字を使用し、タブが一つ挿入されている。第5行目7文字目からは「曜日」で全角2文字を使用し、再びタブが一つ挿入されている。第5行目13文字目からは「チーム1」で全角4文字を使用し、再びタブが一つ挿入されている。第5行目19文字目からは「チーム2」で全角4文字を使用し、再びタブが一つ挿入されている。第5行目25文字目からは「球場」で全角2文字を使用し、そして改行となる。第6行目から第11行目までは、第5行目と同様に、基本的に文字列1、タブ1つ、文字列2、タブ1つ、文字列3、タブ1つ、文字列4、タブ1つ、文字列5、タブ一つ、文字列6、改行となっている。ただし例外的に、第6行目の文字列4の「オリックス」の直後はタブではなく、全角スペースが1つ挿入されており、第7行目の文字列3の「オリックス」の直後もタブではなく、全角スペースが1つ挿入されており、第8行目の文字列3の「ソフトバンク」の直後にはタブがなく、そして第11行目の終わりには改行がない。特に、第8行目の文字列3の「ソフトバンク」は、1タブ当たり文字数である全角6文字になっており、次の文字列4「中日」と間を置かずに配列されている。つまり「ソフトバンク中日」となっている。
機械翻訳装置101は、変換文法辞書107dにおいて、文書内抽出部分データ格納部106に格納してあるような語句の集合を、翻訳規則の条件部に記述できるような枠組みを持っている。つまり、あらかじめ互いに関連する第一の言語の語句の集合および当該集合に属する各語句の第二の言語を当該集合ごとに定義する。
例えば図25に示した英語の原文のような「Aries」「Taurus」「Gemini」「Cancer」「Leo」「Virgo」「Libra」「Scorpio」「Sagittarius」「Capricorn」「Aquarius」「Pisces」という集合が、一般知識として12星座という集合であるということを考慮して、「Cancer」の翻訳規則の条件部に、「Aries, Taurus, Gemini, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces」という共起情報を記述することができる。もし必要があれば、Cancerの前後にこれらの単語がどの順番で並んでいるかについて記述してもよい。さらに、「Cancer」の訳語を「かに座」に決定する際にはこれら11単語全部と共起しなくてもよいという規則を追加して記述してもよく、その際、そのための必須要素のみを条件部に記述してもよい。
次に、図4に示す本発明の第一の実施例に係る機械翻訳装置の処理動作のフローチャートについて説明する。ここでは、図3で示した表相当の部分を含む日本語文書を英語に翻訳する場合を例にとり、図1に示した機械翻訳装置の処理動作について説明する。
始めに原文109として図3の文書が機械翻訳装置101の入力部102に入力されると、入力部102はその原文データを制御部103に送信する(S401)。制御部103では、入力された原文が通常の文のみから成る文書か、表相当の部分を含む文書かどうかを判断する。表相当の部分を含むか否かは、主としてスペースやタブなどの使用具合、すなわち単語同士の間にスペースやタブなどが挿入されている部分があるかどうかによって判断する(S402)。図3の原文の場合は、第5行目以降において単語の間にタブまたはスペースが挿入されており、通常の文とみなされる第1−2行目とは異なった形式をしている。
ステップS402の判定で、単語同士の間にスペースやタブなどが挿入されている部分がある場合には(S402:YES)、通常の文と混在しているかどうかを判断する(S403)。通常の文と混在している場合には(S403:YES)、通常の文にあたる部分と表相当の部分(すなわち第5行目1文字目の「月日」から第11行目の最後の文字列「ナゴヤドーム」まで)とを分割する(S404)。分割後、前者の部分のデータ、すなわち通常の文である第1−2行目については翻訳処理部105に送り(S404からS405へ)、通常の翻訳処理を行う(S405)。なお、第5行目には表相当の部分が後続していたことを、文書内抽出データ格納部106へ記憶させておく。一方、後者の部分のデータについては文書内構造解析部104に送信する(S404からS406へ)。
文書内構造解析部104では、送られた表相当の部分のデータについて、表相当部分の文字列の配列を解析する(S406)。
図3の原文の例では、第5行目は文字列1、タブ一つ、文字列2、タブ一つ、文字列3、タブ一つ、文字列4、タブ一つ、文字列5、改行から成っていることがわかる。タブ一つ当たりの文字数から、文字列2、文字列3、文字列4、文字列5の開始位置は、それぞれ、7、13、19、25文字目であることがわかる。このような構成と位置情報を第11行目まで求めていく。すると、第9−10行目は、第5行目と同様に文字列1、タブ一つ、文字列2、タブ一つ、文字列3、タブ一つ、文字列4、タブ一つ、文字列5、改行から成り、1タブ当たり文字数から文字列2、文字列3、文字列4、文字列5の開始位置は、それぞれ、7、13、19、25文字目であることがわかる。
ただし、第6行目は、文字列1、タブ一つ、文字列2、タブ一つ、文字列3、タブ一つ、文字列4、全角スペース一つ、文字列5、改行から成っており、全角スペース一つが用いられているという点で、他の行と構成が違うことがわかる。しかし、タブ一つ当たりの文字数と全角スペースとから、文字列2、文字列3、文字列4、文字列5の開始位置は、第5、9、10行目におけるそれと同様に、それぞれ7、13、19、25文字目であることがわかる。
第7行目については、文字列1、タブ一つ、文字列2、タブ一つ、文字列3、全角スペース一つ、文字列4、タブ一つ、文字列5、改行から成っており、構成が違うことがわかる。しかし、タブ一つ当たりの文字数と全角スペースとから、文字列2、文字列3、文字列4、文字列5の開始位置は、第5、6、9、10行目におけるそれと同様に、それぞれ7、13、19、25文字目であることがわかる。
第8行目については、文字列1、タブ一つ、文字列2、タブ一つ、文字列3、タブ一つ、文字列4、改行から成り、文字列2、文字列3、文字列4の開始位置はそれぞれ7、13、25となっていると判断される点が、上記の他の行の構成と大きく異なる。
第11行目については、改行がない点だけが第5、9、10行目と異なっており、文字列1、タブ一つ、文字列2、タブ一つ、文字列3、タブ一つ、文字列4、タブ一つ、文字列5から成り、文字列2、文字列3、文字列4、文字列5は第5、6、7、8、10行目と同様にそれぞれ7、13、19、25文字目が開始位置となっている点は他の行と同じである。
これらを総合すると、第8行目は、他の行よりも文字列の個数が1つ少なく、第8行目の文字列3を除く各行は規則性をもっており、垂直方向に5列の並びがあることがわかる。
このように規則性に例外が含まれる場合は、解析の変更を試みる。つまり、表相当部分の最上行の第5行目と、例外行である第8行目の直前の第7行目と、例外行の直後の第9行目の配置から、一塊であると解析されていた「ソフトバンク中日」は、その間に全角スペースがなくても、他の行の第3列目の幅が全角6文字であることから、「ソフトバンク」と「中日」とに分割する。
上記は、機械翻訳装置101の配置判定部104aが各文字列の開始位置が列方向に整列しているが文字列の個数については均一性を欠く例外行を検出したときに、一行に含まれる文字列の個数が通常行に含まれる文字列の個数よりも少ない例外行については、通常行においては複数列に跨るべき文字列を各列の開始位置にて分割し、分割後の各文字列をもって各行に含まれる文字列の個数が同一であると判定を修正することにより実現される。
こうして第8行目は文字列1、タブ一つ、文字列2、タブ一つ、文字列3、文字列4、タブ一つ、文字列5、改行から構成されていると解析結果を変更する。この変更により、第6−11行目まで縦方向に5つの列を成していると解析されることになる。
上記の解析を終えると語句の集合を抽出し、文書内抽出部分データ格納部106に記憶させる(S407)。図3の原文の例では、語句の集合は「月日」「曜日」「チーム1」「チーム2」「球場」「5/26」「土」「阪神」「オリックス」「安芸」「5/27」「日」「オリックス」「阪神」「高知市営」「6/1」「火」「ソフトバンク」「中日」「ヤフードーム」「6/3」「木」「日本ハム」「読売」「札幌ドーム」「6/10」「木」「西武」「楽天」「インボイス」「6/24」「木」「中日」「読売」「ナゴヤドーム」となる。
以下、上記の「月日」「曜日」といった語句、すなわち、構造化文書において表とみなされる部分における、当該表を構成する個々の語句を、要素と呼ぶことにする。
文書内抽出部分データ格納部106で、文書内構造解析部104で抽出した要素を格納するとき、要素の文字列の開始位置(X座標値)と行の情報(Y座標値)とがわかるように格納する。例えば図5に示す文書内抽出部分データ格納部に格納されるデータの具体例の説明図のように、文書内抽出部分データ格納部106の構造内解釈データベース501において、「月日」は(1,5)、「ソフトバンク」は(13,8)のように座標形式で格納しておく。そして、横方向であるX座標値と縦方向であるY座標値の各々に着目して、同一行における語句の部分集合と、開始位置が同一の語句の部分集合とが得られる。すなわち、同一行における語句の部分集合としては「月日、曜日、チーム1、チーム2、球場」「5/26、土、阪神、オリックス、安芸」「5/27、日、オリックス、阪神、高知市営」「6/1、火、ソフトバンク、中日、ヤフードーム」「6/3、木、日本ハム、読売、札幌ドーム」「6/10、木、西武、楽天、インボイス」「6/24、木、中日、読売、ナゴヤドーム」が得られ、開始位置が同一の語句の部分集合としては「月日、5/26、5/27、6/3、6/10、6/24」「曜日、土、日、火、木、木、木」「チーム1、阪神、オリックス、ソフトバンク、日本ハム、西武、中日」「チーム2、オリックス、阪神、中日、読売、楽天、読売」「球場、安芸、高知市営、ヤフードーム、札幌ドーム、インボイス、ナゴヤドーム」が得られる。
このように、等価な配置関係を有する要素から成る部分集合を作り、各要素に対し、どの集合に属するかの情報を付与する(S408)。この集合関係の情報は、文書内抽出部分データ格納部106に格納する。例えば、「月日」には、部分集合「月日、曜日、チーム1、チーム2、球場」の一要素であるという情報とともに、部分集合「月日、5/26、5/27、6/3、6/10、6/24」の一要素であるという情報も付与する。また、「中日」には、部分集合「6/1、火、ソフトバンク、中日、ヤフードーム」の一要素であるという情報とともに、部分集合「チーム2、オリックス、阪神、中日、読売、楽天、読売」の一要素であるという情報をも付与する。その他についても同様である。
なお、ここでは縦方向に並ぶ列が検出できた例で説明したが、表相当部分の文字列の配列を解析する際に、要素同士の間にスペースやタブがあっても、各要素の文字列が縦方向に並んでいると解析されるとは限らない。このような場合は、少なくとも横方向に部分集合を形成すると解析する。
そして、制御部103では、図3の第5行目から第11行目の部分の各要素を順番に取り出し、それらに対応する集合関係の情報とともに翻訳処理部105へ送る(S408からS405へ)。
翻訳処理部105では、制御部103から送られた原文に対して、翻訳辞書部107に格納されている知識(活用変化辞書107a、解析文法辞書107b、単語・熟語辞書107c、変換文法辞書107d、生成文法辞書107e、形態素生成文法辞書107f)および文書内抽出部分データ格納部106に格納された集合関係の情報を利用して、目的言語への翻訳処理を行う(S405)。翻訳処理が終われば、終了となる(S409)。
なお、ステップS402において、単語同士の間にスペース、タブなどが挿入されている部分がなく、通常の文のみよりなる文書と判断された場合には(S402:NO)、そのまま翻訳処理部105に送られ、通常の翻訳処理を行う(S405)。
また、ステップS403において、通常の文と混在していない場合には(S403:NO)、そのまま表相当の部分としてデータを文書内構造解析部104に送信する(S403からS406へ)。
さて、S406における表相当部分の文字列の配列を判定する方法について、先の説明では一つの具体例を用いていたので、これを一般化して説明する。図6は、表相当部分の文字列の配列の判定方法を示すフローチャートである。
始めに、表相当部分の文字列の配列の判定処理を開始する(S601)。行内における各文字列と、文字列間の空白相当の文字(スペースやタブなど)の字数から、各文字列の開始位置を特定する(S602)。この処理を、すべての行を解析するまで繰り返す(S603:NO)。すべての行を解析したら(S603:YES)、各行の文字列の開始位置から規則性を特定する(S604)。各文字列の開始位置に例外とみなせる行がある場合は(S605:YES)、通常行の各文字列の開始位置を、例外行の各文字列の開始位置にも適用する(S606)。そして、終了する(S607)。各文字列の開始位置に例外とみなせる行がなければ(S605:NO)、そのまま終了する(S607)。
ここで、規則性を特定する際に、通常行と例外行とを分ける閾値として用いるものには、位置関係、意味関係、そして形態素解析結果がある。
位置関係においては、例外的な開始位置をもった行を除いた行の各要素が縦に垂直に並んでいるかどうかを閾値とする。縦方向の要素の並びとは、たとえば図3の例で、第3列目のように「チーム1」、「阪神」、「オリックス」、「ソフトバンク」、「日本ハム」、「西武」、「中日」の開始位置が同一であるものや、第4列目のように「チーム2」、「オリックス」、「阪神」、「読売」、「楽天」、「読売」の開始位置が同一であるものである。
意味関係においては、たとえば第3列目をみると、「阪神」、「オリックス」、「ソフトバンク」、「日本ハム」、「西武」、「中日」は意味関係として1つの集合を成し、それらの上段にある「チーム1」の「チーム」はこれらの上位概念であることがわかる。第4列目の「オリックス」、「阪神」、「読売」、「楽天」、「読売」は意味関係として1つのグループをなし、それらの上段にある「チーム2」の「チーム」はこれらの上位概念であることがわかる。
形態素解析結果においては、例えば「ソフトバンク中日」は形態素解析で「ソフトバンク」+「中日」と分割され、「ソフトバンク」の後ろで区切りをいれてもよいと判断される。すなわち、形態素の区切りと、表の解析結果による各要素の開始位置とが一致する。しかし、もし仮に、「ソフトバ|ンク中日」のように「ソフトバンク中日」を区切らなければならない場合には、これは例外行であるとみなす。初回の解析で、どの程度規則性から外れた行があるときに、表であるとしての各要素の抽出処理を行わないものとするかは任意に設定できる。例えば行の半数以上が例外とされるならば、表としての認識をしないなどとする。
次に、翻訳処理部105が図3の第8行目、文字列4の「中日」を翻訳する際の処理を説明する。「中日」は、辞書引きによると、単語・熟語辞書107cの見出し語になっている。また、「中日」の読み方としては、いわゆる興行期間の真ん中の日を意味する「なかび」と、「ちゅうにち」との2つの異なる単語をあらわしうることもわかる。後者の「ちゅうにち」は多義であり、1.一定期間の真ん中の日、2.春分の日・秋分の日、3.「中日関係」におけるような「中国と日本」の省略形、4.「中日翻訳」におけるような「中国語から日本語」5.野球球団名の「中日ドラゴンズ」の省略形といった意味をもつ。そして、単語・熟語辞書107cによれば、middle day, day of the equinox, China-Japan, Chinese-Japanese, Chinese-to-Japanese, Chunichiというような各々の意味に対応する訳語をもっている。
これらを利用すれば、例えば、構造を持たない一般的な文章として「中日翻訳」「九州場所の中日」のように他の単語とともに使われているものであれば、原則として、他の単語を手がかりとして一意に意味を決定できる。しかし、図3のような表構造における「中日」は、単独であらわれているため、こうした手がかりは得られない。
そこで、ステップS408で付与された情報を考慮すると、望ましい訳語を決定することができる。まず、「中日」は集合「6/1、火、ソフトバンク、中日、ヤフードーム」の一要素であるとともに、集合「チーム2、オリックス、阪神、中日、読売、楽天、読売」の一要素であるということがわかる。さらに、例えば図7に示すような規則が、翻訳辞書部107の変換文法辞書107dにあるものする。これらの規則では、見出し語を「中日」として、複数の訳語の候補が記述されている。そして、どの訳語が望ましい訳語として選択されるかは、当該訳語の条件部が満たされるかどうかによる。第一番目の条件部には「『関係』と連語をなす」とあり、その際の訳語は「China-Japan, Sino-Japanese」とある。第二番目の条件部には「『興行を意味する名詞+の』という修飾句をもつ」とあり、その際の訳語は「middle day」とある。第三番目の条件部には「『阪神』『ヤクルト』『横浜』『広島』『ロッテ』『ソフトバンク』『西武』『オリックス』『日本ハム』『楽天』とともに集合をなす」とあり、その際の訳語は「Chunichi」とある。そして、最後の条件部には「上記いずれの規則も当てはまらない」とあり、その際の訳語は「China-Japan」とある。なお、これらの規則は一例であり、自由に構成してよい。
上記した例では、第三番目の条件部をみると、横方向の集合では「ソフトバンク」により条件部を満たし、縦方向の集合では「オリックス」「阪神」「読売」「楽天」により条件部を満たす。よって、望ましい訳である「Chunichi」に訳語を決定することができる。
なお、横方向の集合と縦方向の集合がともに条件部を満たすというように、表における両方向の集合が条件を満たす場合は、翻訳の精度が高いといえる。しかし、横方向の集合、縦方向の集合のどちらか一方しか条件部を満たさないこともある。そのようなときは、翻訳の精度は、複数の集合が条件部を満たす場合に比べると、翻訳の精度は高くないといってもよい。
また、横方向の集合と縦方向の集合とで別個の規則が適用可能な場合には、異なる複数の訳語が候補となる。このような場合には、規則間の優先度を考慮して、優先度が高い方の規則を適用するとよい。そのため、各規則に優先度をあらかじめ設定し、訳語選択の際は規則の優先度を参照して考慮する。
あるいは、規則の条件部をより詳細に記述してもよい。例えば、条件部に記述する集合を順序付き集合として定義する。すると、注目している語の原文上の位置から、満たされる条件部の優劣をつけることができる。
上記は、機械翻訳装置101の集合抽出部104bが抽出された集合の各文字列について配置上の順序を有するものと認識し、翻訳辞書部107はあらかじめ定義する語句の集合として順序付き集合を含み、集合評価部104bが抽出された文字列の配置上の順序と定義された順序付き集合における順序との整合性を評価することにより実現される。
もしくは、条件部の集合の要素と一致すべき要素の数によって優劣をつけるようにしても良い。この例では12要素のうち少なくとも何個の要素と一致するかということが基準となる。変換文法辞書107dにはこれらの細部の指定も条件として記述できるようになっている。
こうして表相当部分の翻訳が一通り終了すると、既に翻訳処理部105に送られていた同一文書内の表相当部分以外の部分の訳文と結合する。その際、文書内抽出部分データ格納部106に記憶させておいた後続部分の情報を利用し、例えば、表相当部分の直前に2行分空行があったなどという原文のレイアウトを再現する。
なお、上記の例では、原則として、表相当部分の先頭行を残りの行と同じ扱いにした。しかし、通常の表では先頭行がそれ以降の行の見出しとなっていることもある。
そこで、こうした知識を利用して、ステップS408に以下に説明するような処理を挿入する。図3の例を用いて説明する。第5行目の「月日」「曜日」「チーム1」「チーム2」「球場」は、表の先頭行であるとして、第6行目以降の縦方向に並ぶ文字列と上位語(hypernym)、下位語(hyponym)の関係をなすとみなすのである。例えば月日{5/26、5/27、6/1、6/3、6/10、6/24}、曜日{土、日、火、木、木、木}、チーム1{阪神、オリックス、ソフトバンク、日本ハム、西武、中日}、チーム2{オリックス、阪神、中日、読売、楽天、読売}、球場{安芸、高知市営、ヤフードーム、札幌ドーム、インボイス、ナゴヤドーム}のような形で集合関係を翻訳辞書部107の変換文法辞書107dに格納しておく。これらを利用して、第6行目から第11行目までの各要素には、その上位概念は何となるかの情報を付与する。例えば、「中日」は「チーム1」と「チーム2」の下位概念であるという情報を付与し、「インボイス」は「球場」の下位概念であるという情報を付与する。このような意味上の階層関係をあらかじめ変換文法辞書107dの条件部に記述して翻訳の際に参照することにより、訳語をより正確に決定できる。
ここで、「中日」の訳語決定の際に、その上位概念として「チーム1」「チーム2」という語を構成する単語である「チーム」を考慮するが、単に「チーム」からでは必ずしも“野球の球団”であるとして一意に決定されるわけではない。
一方、「インボイス」の訳語決定の際は、以下に説明するように、こうした上位概念を参照することにより一意に決定できる。「インボイス」は原則として、納品書または送り状を意味するinvoiceのカタカナ読みの語として用いられる。しかし、日本では「インボイス」は会社名すなわち固有名詞でもあり、また、「インボイスSEIBUドーム」の省略形の「インボイス」として用いられることもある。そこで、図3の例の「インボイス」は、それが「球場」の下位概念であることが分かれば、訳語を一意に決定できる。
よって、まず「インボイス」について辞書引きをして、単語・熟語辞書107cの見出し語になっていることをみつける。そして、図8に示すような、翻訳辞書部の変換文法辞書内の規則を参照する。図8では、見出し語に「インボイス」とある。そして、条件部と訳語の組が複数ある。第一番目の条件部には「球場の下位概念」とあり、その際の訳語は「Invoice, Invoice SEIBU Dome」とある。第二番目の条件部には「『ヤフードーム』、『札幌ドーム』、『ナゴヤドーム』、『甲子園』、『東京ドーム』とともに集合をなす」とあり、その際の訳語は「Invoice, Invoice SEIBU Dome」とある。そして、最後の条件部には「上記いずれの規則も当てはまらない」とあり、その際の訳語は「invoice」とある。
このように、「インボイス」に適用される変換文法辞書107dの規則として、上記した会社名「インボイス」や、球場名「インボイスSEIBUドーム」の省略形が、条件部にあらかじめ記述されていれば、訳語を普通名詞としてのinvoiceとするのではなく、固有名詞としてのInvoiceまたはInvoice SEIBU Domeのように翻訳することもできる。
また、「インボイス」について、図8の二番目の条件部にあるように、意味の同位関係として「ヤフードーム」、「札幌ドーム」、「ナゴヤドーム」、「甲子園」、「東京ドーム」とともに集合をなすという情報も、訳語選択の有力な手がかりになる。もちろん、この集合関係が仮に満たされないとしても、先述した「球場」という上位概念の情報が条件部にあり、それが満たされれば、訳語を決定できる。このように、語句によって、意味の同位関係が訳語の決定に効果的なとき、意味の上下関係が訳語の決定に効果的なとき、そして双方が効果的なときがある。そして、多くの集合関係があればあるほど、訳語の精度を向上させることができる。
上記は、機械翻訳装置101の翻訳辞書部107があらかじめ定義する語句の集合において前記各語句の上位概念の語句を定義し、集合評価部105aは集合抽出部104bにより抽出された文字列の集合における第一の文字列が上位概念の語句に相当するときに抽出された文字列の集合における第二以降の各文字列が定義された語句の集合に含まれる程度を評価することにより実現される。
ところで、上記の説明に用いた文書では、原則としてタブ一つ当たりの文字数をもとに各列の開始位置を特定していた。しかし、タブなしでスペースのみを用いて文字列の間を空けた文書や、タブとスペースが無作為に混在している文書も存在する。そこで、前者については要素の文字列の長さとその直後に続くスペースの数の和を考慮すれば、各要素の開始位置を適切に特定することができる。また後者については、上記に加え、列の各要素の長さとタブの設定幅(1タブ当たりの長さ)の大小関係を考慮すれば、各文字列の開始位置を適切に特定することができる。
図9は、スペースにより文字列の間を空けた文書の一例を示す説明図である。便宜的に「*」は半角スペース文字(以下、単に「半角スペース」という。)を表している。また、「5/26」のような日付については半角文字で表されているものとする。この図9では、各要素の長さと、要素の直後の半角スペースの数との和を算出する。例えば第1行目の1列目は「月日」が半角4文字分であり、直後の半角スペースが6文字分なので、合計半角10文字分である。第2行目の1列目は「5/26」が半角4文字分であり、直後の半角スペースが6文字分なので、合計半角10文字分である。第3行目の1列目は「6/1」が半角3文字分であり、直後の半角スペースが7文字分なので、合計半角10文字分である。このように、すべての行の1列目は、要素とその直後のスペースの長さの和が等しいことがわかり、よって、2列目が縦方向に揃っているといえる。つまり、2列目の開始位置を特定することができる。3列目以降についても同様である。
図10は、タブとスペースを無作為に用いて文字列の間を空けた文書の一例を示す説明図である。この図でも「\t」はタブをあらわしているが、ここでのタブの設定幅は半角スペース10文字分であるものとする。タブの設定幅とは、一般的に、タブの実際の長さがとりうる最大の長さのことである。つまり、タブがある部分に入力されると、そのタブの直後の文字の開始位置は、単純にタブ入力位置から数えてタブの設定幅だけ空いた位置になるのではなく、行頭から数えてタブの設定幅の整数倍の位置となるべき最小の幅だけ空いた位置になるのである。
この文書の処理の流れとしては、まず要素同士の間がスペースのみからなる部分を検出し、一時的な幅を設定し、これが全行に当てはまるかどうかを検証するとよい。例えば第1行目は、「月日」が半角4文字分であり、次に半角スペースが6文字あり、次に「曜日」が半角4文字分であり、次に半角スペースが6文字あり、その次に、「チーム1」がある。よって「チーム1」の開始位置は半角21文字目である。第2行目は、「5/26」が半角4文字分であり、次に半角スペースが6文字あり、次に「土」が半角2文字分であり、次に半角スペースが8文字あり、その次に、「阪神」がある。よって「阪神」の開始位置は半角21文字目である。このように、これらは要素同士の間がスペースのみからなる部分として検出されるから、3列目の開始位置を、一時的に、半角21文字目であるとする。
次に、第1行目の3列目の「チーム1」は半角8文字分であり、直後の半角スペースが10文字分だから、長さとしては合計半角18文字分であることがわかる。よって、その次の「チーム2」は39文字目から開始する。ここで、タブの設定幅は半角スペース10文字分であったから、第1行目の「チーム1」の開始位置や第2行目の「阪神」の開始位置は、実際、各行の先頭位置からタブを2回入れたとした場合の直後の位置に等しい。そこで、「阪神」のあとにタブ「\t」を一つ入れると、タブ一つ分相当の設定幅である半角10文字分から「阪神」の半角スペース4文字分を引いて、タブの効果として半角スペースとして6文字分進むことになる。さらにその直後に実際の半角スペースが8文字入っている。よって3列目の長さは、合計すると、半角4スペース+半角6スペース+半角8スペースなので、半角スペース18文字分となる。したがって、第1行目の「チーム2」と第2行目の「オリックス」は開始位置が一致することがわかる。
上記は、空白相当の文字がスペースとタブとを含むとき、機械翻訳装置101の配置判定部104aが文字列の開始位置を判定する際に、直前のタブによる幅のスペースの文字数への換算値として、タブの設定幅からタブの直前にある文字列とスペースとの文字数の和以上となるタブの設定幅の最小の整数倍から、文字列とスペースとの文字数の和を引いた値とすることにより実現される。
以上のような手法により、タブの設定幅と要素の長さとの差も考慮することで、表構造を適切に解析することができる。
もちろん、本手法は、日本語文書ですべて全角スペースを使用する場合でも適用できるし、半角英数字と全角日本語文字と間には半角スペースを使用するというように、全角スペースと半角スペースとを混在させる場合にも適用できる。
上記は、原文の文字が全角文字と半角文字とを含むとき、機械翻訳装置101の配置判定部104aが文字列の開始位置を判定する際に全角文字の1文字分の幅を半角文字の2文字分の幅として計算することにより実現される。
ここまでは第一言語が日本語の場合を例にとったが、第一言語が英語の場合にも、原則として、本発明を応用できる。しかし、表相当の部分があるかどうかの判断基準は多少変更が必要である。つまり、日本語は語の区切りに空白を用いない膠着(こうちゃく)言語である一方で、英語は単語間をスペースで区切る屈折言語であるという違いがある。また、英語ではタイプ上(typographically)は基本的に半角で記述し、単語間にはスペースを一つ使い、文末にはピリオドの後にスペースを2つ使うことになっているという違いもある。
そこで、表形式の要素間の区切りを検出するにあたって、日本語では単にスペースがあるかどうか、いくつあるかを考慮していたが、英語では、スペースが2つ以上あるかどうかを考慮するようにすれば良い。具体的には、まず単語の開始位置を検出し、単語、スペース1つ、単語・・・という連続を検出し、その直後にスペースが2つ以上かもしくはタブが挿入されている部分を検出し、次に行を変えずにさらに単語が続く位置を検出するようにする。
このように各行においてスペース2つとタブとによる任意の組合せが単語間に存在する部分を検出し、その部分の次にまた単語がくることを検出し、その単語の1文字目の位置を、いわゆる要素の開始位置として特定していく。
このように特定された各要素の開始位置が、各行で揃っているかほぼ揃っていれば、まず表相当であると認識する。ほぼ揃っている場合は、図3の「ソフトバンク中日」でみたような例外処理が可能である。図3の「ソフトバンク中日」の例外処理では、要素間にスペースがないような場合であっても、その他の通常行から認識される要素開始位置を類推し適用するものであった。これと同様に、英語の場合は、単語間のスペースが1文字しかない部分であっても、その他の通常行から判断される通常の要素開始位置を類推し適用して、その部分を本来はスペースが1文字以上あるべき要素間の区切りとして検出し、全体として表として各要素の語頭が揃っていると認識することができる。
例えば、表の中の一行に、「African game park」という単語列があるとする。これらの単語間にはスペースが一つあるものとする。原則として、「game」と「park」は熟語をなすから、game と park を要素としては区切らない。しかし、この単語列の行の直上の行や直下の行において、parkのpから単語または単語列が始まっているときには、前述の解釈は適切でない可能性がある。そこで、そのような場合には、たとえgameとparkで熟語をなすとしても、gameとparkを区切って解釈するとよい。
上記は、機械翻訳装置101の配置判定部104aが各文字列の開始位置が列方向に整列しているが文字列の個数については均一性を欠く例外行を検出したときに、一行に含まれる文字列の個数が通常行に含まれる文字列の個数よりも多い例外行については、通常行においては単一列内にあるべき複数の文字列を一組の熟語として結合し、結合後の各文字列をもって各行に含まれる文字列の個数が同一であると判定を修正することにより実現される。
このような手法によれば、通常の翻訳技術ではできなかった単語間の区切りをみつけることができ、訳語の選択を大きく左右して、翻訳の精度を大きく向上することができる。
次に、本発明の第二の実施例について説明する。これまで説明した実施例では原則として、単語間にスペースやタブがあることを利用して、表相当の部分を解析していた。しかし、単語間にスペースやタブがなくても、一種の特殊な表、すなわち一列複数行の「箇条書き」として解釈すべき場合もある。そこで、第二の実施例では、単語間にスペースやタブがなくても、行頭からの空白の数、行間の取り方、その他に着目して要素を抽出することが可能であることを示す。つまり、第一の実施例では複数行複数列の表相当の部分を抽出するようにしていたのに対し、第二の実施例では、それでは対応できない1列複数行の縦の箇条書き相当の部分を抽出する。
図11は、箇条書き相当の部分を含む文書の一例である。この文書は英語で記述されている。第1行目の「Please fill in.\n」には、文頭に空白がなく、ピリオドで終わる通常の文があり、末尾に改行がある。第2行目から第7行目の「***Last name\n」「***First name\n」「***Address\n」「***City\n」「***State\n」「***ZIP code」は、それぞれ、行頭に半角スペースを三つ置いてから文字列が始まり、末尾ではピリオドなしに改行されている。
次に、図12に示す本発明の第二の実施例に係る機械翻訳装置の処理動作のフローチャートについて説明する。ここでは、図11で示した箇条書き表の部分を含む英語文書を日本語に翻訳する場合を例にとり、図1に示した機械翻訳装置の処理動作について説明する。
始めに原文109として図11の文書が機械翻訳装置101の入力部102に入力されると、入力部102はその原文データを制御部103に送信する(S1201)。制御部103では、入力された原文が通常の文のみから成る文書か、箇条書き相当の部分を含む文書かどうかを判断する(S1202)。箇条書き相当の部分、つまり、単語や文の列挙を含むか否かの判断は、主として、行頭の空白の数の規則性、句点もしくはピリオド等のない改行の連続性、または、一行の文字数がその文書に設定されている一行の文字数と比較して短いものの連続があるかどうかによりなされる。
図11の原文の例では、第1行目は、行頭から空白を空けずに、単語列が並び、ピリオドで終わっているので、通常の文であると判断する。第2行目以降は、行頭に複数の空白があり、それらの数、すなわち各行の開始位置が同じであり、また、ピリオドなしに末尾が改行である行が連続しているので、箇条書きであると判断される。
このように、箇条書きとみなせる部分があると判断した場合には(S1202:YES)、通常部分と箇条書き相当の部分が混在しているかどうかを判断する(S1203)。この原文のように、通常の文と混在していると判断される場合には(S1203:YES)、通常の文にあたる第1行目と、箇条書き相当の部分である第2行目から第7行目までとに分割する(S1204)。
分割後、前者の部分のデータ、すなわち通常の文である第1行目については翻訳処理部105に送り(S1204からS1205へ)、通常の翻訳処理を行う(S1205)。なお、第1行目には箇条書き相当の部分が後続していたことを、文書内抽出データ格納部106に記憶させておく。一方、後者の部分のデータ、すなわち箇条書き相当の部分については文書内構造解析部104に送信する(S1204からS1206へ)。
文書内構造解析部104では、送られた箇条書き相当部分のデータを解析する(S1206)。図11の原文の例では、第2行目から第7行目までが縦方向に並んでいることがわかる。そこで、「Last name」「First name」「Address」「City」「State」「Zip Code」という要素を抽出し、これらが一つの集合をなすとみなす。そして、この語句の集合を、文書内抽出部分データ格納部106に記憶させる(S1207)。
このとき、各文字列の開始位置、すなわち列の情報と、行の情報とがわかるように格納する。例えば「Address」は(4,4)、「State」は(4,5)のように座標形式で格納しておく。そして、同一のX座標値をもつ要素から成る集合を作り、各要素に対し、どの集合に属するかの情報を付与する(S1208)。この集合関係の情報は、文書内抽出部分データ格納部106に格納する。
例えば、「Address」には「Last name, First name, Address, City, State, Zip Code」の一要素であるという情報を付与する。同様に、「State」にも「Last name, First name, Address, City, State, Zip Code」の一要素であるという情報を付与する。その他についても同様である。
そして、制御部103では、図11の第2行目から第7行目の各要素を順番に取り出し、それらに対応する集合関係の情報とともに翻訳処理部105へ送る(S1208からS1205へ)。
翻訳処理部105では、制御部103から送られた原文に対して、翻訳辞書部107に格納されている知識(活用変化辞書107a、解析文法辞書107b、単語・熟語辞書107c、変換文法辞書107d、生成文法辞書107e、形態素生成文法辞書107f)および文書内抽出部分データ格納部106に格納された集合関係の情報を利用して、目的言語への翻訳処理を行う(S1205)。翻訳処理が終われば、終了となる(S1209)。
なお、ステップS1202において、通常の文のみよりなる文書と判断された場合には(S1202:NO)、そのまま翻訳処理部105に送られ、通常の翻訳処理を行う(S1205)。また、ステップS1203において、通常の文と混在していない場合には(S1203:NO)、そのまま表相当の部分としてデータを文書内構造解析部104に送信する(S1203からS1206へ)。
上記は、図1の機械翻訳装置101にあっては、第一の言語の原文から各行の行頭部分における特定の文字の複数行に渡る連続性および行末における改行の形式の複数行に渡る連続性を有する領域を抽出する領域抽出部103aと、領域の各行の文字列を集合として抽出する集合抽出部104bと、あらかじめ互いに関連する第一の言語の語句の集合および当該集合に属する各語句の第二の言語の訳語を当該各集合に応じて定義する翻訳辞書部107と、抽出された文字列の集合が定義された語句の集合に含まれる程度を評価する集合評価部105aと、各文字列の第二の言語への翻訳の際に集合評価部105aによる評価に基づき前記訳語を選択する翻訳処理部105とを備えることにより実現される。
さらに、機械翻訳装置101の領域抽出部103aが、行頭部分における特定の文字の複数行に渡る連続性として一つ以上連続する空白相当の文字の数の複数行にわたる連続性を検出し、改行の形式の複数行に渡る連続性として句点およびピリオドを含む第一の言語における文末文字が使用されずに改行されるとともに行の所定の最大幅よりも相当短い位置で改行される行の連続性を検出することによっても実現される。
次に、翻訳処理部105が図11の第4行目にある「Address」を翻訳する際の処理について説明する。「Address」は単語・熟語辞書107cで辞書引きをすると、品詞として名詞と動詞があることがわかる。また、名詞、動詞ともに多くの語義を持つこともわかる。よって、品詞およびその中の適切な語義を選び出す必要がある。そこで、前記したように付与された「Address」が「Last name, First name, Address, City, State, Zip Code」という集合の一要素であるという情報と、箇条書きはお互いの要素が共通の文法的性質をもつという原則とを用いて、その集合の他の要素を考慮する。すると、単語・熟語辞書107cから、品詞に曖昧性のない「Last name」(名詞句)、「First name」(名詞句)、「City」(名詞)、「ZIP code」(名詞句)があることから、「Address」は名詞である可能性が高いと判断する。
このようにして品詞が名詞であると判断した後は、図13に示すような、翻訳辞書部107の変換文法辞書107dの規則を参照し、具体的な訳語を決定する。この図では、見出し語に「address」とあり、品詞は名詞とある。そして、条件部と訳語の組は、複数の候補がある。第1番目の条件部には「deliverの目的語」とあり、その際の訳語は「演説」とある。第2番目の条件部には「『first name』、『last name』、『city』、『ZIP code』、『FAX number』、『phone number』とともに集合をなす」とあり、その際の訳語は「住所」とある。そして、最後の条件部には「上記いずれの規則も当てはまらない」とあり、その際の訳語は「アドレス」とある。上記の例では、第2番目の条件部が満たされるから、訳語を「住所」と決定できる。
同様の処理を各要素について行い、箇条書き相当部分の翻訳が一通り終了すると、先に翻訳処理部105に送られていた同一文書内の箇条書き相当部分以外の部分の訳文と結合する。その際、文書内抽出データ格納部106に記憶させておいた後続部分の情報を用いればよい。
なお、上記の説明例で箇条書きかどうかの判断条件として、さらに、語頭の文字や末尾の文字を考慮するようにしてもよい。
例えば図11の第2行目から第7行目までが「●」などの同じ記号もしくは同じ文字で始まっているときや、または、末尾が:などの同じ記号もしくは文字で終わっているときは、これらの行が集合をなす可能性がより高いとみなす。
さて、これまでは原則として、図3に示したようにX列×Y行の表に各要素がすべて埋まっている例について説明した。しかし、現実にはX列×Y行の表の形に要素が揃っていない様々な変形例もありうる。そこで、以下ではいくつかの表の変形例に対応するための方法について説明する。
例えば図14に示す表の変形例のように、表の右下の部分が欠けているものがある。表の右下の部分とは、座標軸で表せば(X,Y)の要素と、これに隣接する要素も含むものである。このような表については、各要素が左から右へ、そして上から下へ、順序関係があると解釈するとよい。すなわちAAAA→DDDD→GGGG→BBBB→EEEE→HHHH→CCCC→FFFFという順序で文書が記載されていると解釈する。
上記は、機械翻訳装置101の配置判定部104aが領域の行方向かつ列方向の末尾部分において文字列の数を欠くことを判定したときは、集合抽出部104bは行列のすべての文字列を一の集合として抽出することにより実現される。さらに、行ごと、列ごとにではなくこれら全部を含めたものが集合をなすという解釈を加えてもよい。
上記は、機械翻訳装置101の集合抽出部104bが一の集合における各文字列について先頭行の行頭側から行末側へ、および、先頭行から末尾行へとの順序を有するものと認識することにより実現される。また、図15に示すように、表の左上の要素が欠けているものもある。表の左上の要素とは、座標軸で表せば(1,1)の要素である。このような表については、第一行目にある要素が、それ以降の行の要素の上位概念である可能性が高いという解釈をしても良い。例えば、第一行目の2列目の「DDDD」は、その下の行にある「EEEE」「FFFF」「GGGG」の上位概念であるという可能性が高いとみなすことができる。第一行目の3列目の「HHHH」についても同様に、その下の行にある「IIII」「JJJJ」「KKKK」の上位概念であるという可能性が高いとみなすことができる。
上記は、機械翻訳装置101の翻訳辞書部107はあらかじめ定義する語句の集合において各語句の上位概念の語句を定義し、配置判定部104aは領域の行方向かつ列方向の先頭部分において文字列の数を欠くことを判定したときは、集合評価部105aは文字列の数を列方向において欠かない列方向の集合について、第一行の文字列が上位概念の語句に相当するときに第二行以降の各文字列が定義された語句の集合に含まれる程度を評価することにより実現される。
また、図16に示すように、表の最下行が揃わないように要素が欠けているものもある。このような表については、第一行の「AAAA」「FFFF」「IIII」「MMMM」が、それぞれ第二行目以降の行で縦に並ぶ各要素の上位概念である可能性が高く、縦方向の関係を優先して解釈することもできる。
上記は、機械翻訳装置101の翻訳辞書部107はあらかじめ定義する語句の集合において各語句の上位概念の語句を定義し、配置判定部104aは領域の末尾側の行において文字列の数が均一でないことを判定したときは、集合評価部105aは第一行の文字列が上位概念の語句に相当するときに第二行以降の各文字列が定義された語句の集合に含まれる程度を評価することにより実現される。
また、図17に示すように、表の行間または列間の区切りとして罫線が引いてあるように見せかけるものもある。プレーンテキストの表における罫線に相当する文字列は、図17に示すように、全角の「*」記号といった特定の文字を、縦方向又は横方向に揃えておくことにより成る。このような表については、要素を抽出して集合を作成する際、罫線相当の文字列を抽出の対象から除外するようにするとよい。なお、全角の「*」という文字は一例であり、その他「−」「_」「+」「|」などの記号であっても良い。同一種の記号が、行方向または列方向に揃っていれば、それは罫線に相当するとみなすことができる。
上記は、機械翻訳装置101が特定の文字が行方向および列方向に整列されていることを検出したときは特定の文字を罫線と同じ扱いをすることにより実現される。そして、このような記号を連続的に使用して擬似的に罫線とする用法が用いられていれば、むしろ、列や行の区切りの位置の検出は容易になる。
次に、本発明の第三の実施例について説明する。これまで説明した実施例では原則として、表や箇条書きの要素間の関係を訳語の決定に利用するものであった。しかし、翻訳処理においては、訳語を決定するだけでなく、表や箇条書きとして適切に配置された翻訳結果を出力しなければならない。そこで、第三の実施例ではこれらの手法を出力の際にも利用する方法を説明する。
図18は、表相当の部分を含む文書の一例である。この文書の書式では、日本語文字には全角が使用されている。第1行目には「青森\S\S\S帆立貝,即席麺,イカ\n」とある。第2行目には「盛岡\S\S\Sわかめ,豆腐,りんご\n」とある。第3行目には「仙台\S\S\Sかまぼこ,ゼリー,さんま\n」とある。第4行目には「秋田\S\S\Sさんま,ほうれん草,茄子\n」とある。第5行目には「山形\S\S\S里芋,こんにゃく,醤油\n」とある。第6行目には「福島\S\S\Sかつお,納豆,りんご,梨,桃\n」とある。第7行目には「水戸\S\S\Sかつお,しじみ,メロン,納豆\n」とある。第8行目には「宇都宮****大根,煎餅,餃子」とある。なお、便宜的に「\S」は全角スペースを表しており、「*」は半角スペースを表しており、「\n」は改行を表している。
第1行目は、行頭にスペースを置かず全角2文字に続き3文字分の全角スペースがあり、半角カンマを含むスペースなしの文字列が10文字分あり、改行されている。第2行目から第7行目までは、第1行目同様に行頭にスペースを置かずに全角2文字分の文字に続き全角3文字分の全角スペースがあり、次に半角カンマを含みスペースを含まない文字列がそれぞれ第2行目は10文字分、第3行目および第4行目は12文字分、第5行目は11文字分、第6−7行目は14文字分あり、そして改行されている。第8行目は行頭にスペースを置かずに全角3文字分の文字に続き半角スペースが4文字あり、次に半角カンマを含みスペースを含まない文字列が8文字分ある。
次に、図19に示す本発明の第三の実施例に係る機械翻訳装置の処理動作のフローチャートについて説明する。ここでは、図18で示した表相当の部分を含む日本語文書を英語に翻訳する場合を例にとり、図1に示した機械翻訳装置の処理動作について説明する。
始めに原文109として図18の文書が機械翻訳装置101の入力部102に入力されると、入力部102はその原文データを制御部103に送信する(S1901)。制御部103では、入力された原文が通常の文のみから成る文書か、表相当の部分を含む文書かどうかを判断する。表相当の部分を含むか否かは、主としてスペースやタブなどの使用具合、すなわち単語同士の間にスペースやタブなどが挿入されている部分があるかどうかによって判断する(S1902)。図18の原文の場合は、第1行目から第8行目のすべてにおいて単語間に複数のスペースが挿入されており、通常の文とは異なった形式をしているから、単語同士の間にスペースやタブなどが挿入されている部分があると判断する。このように、単語同士の間にスペースやタブなどが挿入されている部分があると判断される場合には(S1902:YES)、通常部分と表相当の部分が混在しているかどうかを判断する(S1903)。この原文のように、混在していないと判断される場合には(S1903:NO)、表相当の部分のデータを文書内構造解析部104に送信する(S1903からS1906へ)。
もし、通常の文にあたる部分が同文書内にある場合には(S1903:YES)、文書を通常の文とそれ以外の部分とに分割する(S1904)。通常の文である部分のデータについては翻訳処理部105に送り(S1904からS1905へ)、通常の翻訳処理を行う(S1905)。一方で、それ以外の部分については文書内構造解析部104へ送信する(S1904からS1906へ)。
文書内構造解析部104では、送られた表相当部分の文字列の配列を解析する(S1906)。図18の原文の例では、第1行目から第7行目までは、文字列1、全角スペース3つ、文字列2、改行からなっていることがわかる。第8行目は、文字列1、半角スペース4つ、文字列2からなっていることがわかる。そこで、各行における文字列1の長さと、文字列1と文字列2の間にある全角スペースの長さから、第1行目から第8行目までの文字列2の開始位置は全角6文字目であると算出する。よって、文字列2は文字列1と同様に縦方向に並んでいることがわかる。
この解析の次に、語句の集合を抽出し、文書内抽出部分データ格納部106に記憶させる(S1907)。図18の原文の例では、語句の集合は「青森」「帆立貝,即席麺,イカ」「盛岡」「わかめ,豆腐,りんご」「仙台」「かまぼこ,ゼリー,さんま」「秋田」「さんま,ほうれん草,茄子」「山形」「里芋,こんにゃく,醤油」「福島」「かつお,納豆,りんご,梨,桃」「水戸」「かつお,しじみ,メロン,納豆」「宇都宮」「大根,煎餅,餃子」となる。
そして、要素の文字列の開始位置(X座標値)と行の情報(Y座標値)と文字列の長さ(値Z)がわかるように、各要素に配置と長さの情報を付与する(S1908)。これらの情報は、文書内抽出部分データ格納部106に格納する。図18の原文の例では、「青森」は(1,1,2)、「かつお,しじみ,メロン,納豆」は(6,7,14)というように、座標形式で格納する。
そして、制御部103では、図18の原文の第1行目から第8行目の各要素を順番に取り出し、それらに対応する集合関係の情報とともに翻訳処理部105へ送る(S1908からS1905へ)。
翻訳処理部105では、制御部103から送られた原文に対して、翻訳辞書部107に格納されている知識(活用変化辞書107a、解析文法辞書107b、単語・熟語辞書107c、変換文法辞書107d、生成文法辞書107e、形態素生成文法辞書107f)および文書内抽出部分データ格納部106に格納された集合関係の情報を利用して、目的言語への翻訳処理を行う(S1905)。
第8行目の「大根,煎餅,餃子」までを翻訳すると、各要素について原語、訳語、配置関係を示す座標を一組にして、出力部108に送る(S1905からS1909へ)。出力部108では要素間の並列性を訳文に反映するための調整を行う(S1909)。まず、各要素の訳語の長さを計算する。例えば、第1行目の「青森」はAomoriと翻訳され、半角6文字となる。「帆立貝,即席麺,イカ」は「scallop, instant noodle, squid」と翻訳され、「scallop」で半角7文字、「, 」で半角2文字、「instant noodle」で半角14文字、「, 」で半角2文字、「squid」で半角5文字となり、合計すると半角30文字となる。この計算が一通り終了すると、次に、第2行目の要素が訳文でも縦方向に並ぶように、1列目と2列目との間のスペースの調整を行う。つまり、「青森」と「帆立貝,即席麺,イカ」との間には全角スペースが3個あるから、訳文で「Aomori」と「scallop, instant noodle, squid」の間のスペースは、原則として、原文の当該部分の全角スペース数との対応により半角3文字または半角6文字にすることが考えられる。しかし、第2行目以降も含めて各行の要素が縦方向に並ぶようにする際、原文の当該行のスペース数だけから訳文でのスペース数を決定すると、縦方向で並ばなくなってしまうことがある。そこで、訳文でのスペース数の決定の際には、各行の第1列目の要素の訳語で最長のものを求めるとよい。
この例における第1列目の要素の訳語の長さは、第1行目では半角6文字、第2行目では半角7文字、第3行目では半角6文字、第4行目では半角5文字、第5行目では半角8文字、第6行目では半角9文字、第7行目では半角4文字、第8行目では半角10文字であるから、最長のものは第8行目にある半角10文字ということがわかる。そして、この半角10文字に、原文の対応部分である全角スペース2文字に対応する半角2文字または半角4文字を足した半角12文字または半角14文字を、訳文での第1列目の幅とすることにする。
以下、訳文での第1列目の幅を半角14文字としたものとして説明を行う。第1行目から第8行目まで、この「半角14文字」から1列目の各要素の訳語の文字列長を引いた値を求めると、第1行目から順に半角で8、7、8、9、6、5、10、4文字となる。これらの数の半角スペースを、訳文の1列目の各要素の訳語の直後に挿入する。すると、訳文では第2列目はすべて15文字目から開始するようになる。
第2列目がすべて同じ位置から開始するようにするためのもう一つの方法として、タブを用いてもよい。その際、各列の要素の文字数の大小によっては、要素間に挿入すべきタブの数は行によって異なることもある。以上により、処理を終了する(S1910)。
なお、ステップS1902において、通常の文のみよりなる文書と判断された場合には(S1902:NO)、そのまま翻訳処理部105に送られ、通常の翻訳処理を行う(S1905)。これまでの説明では、原則として、行の幅については制限がないものとして説明をしてきた。しかし、訳文として出力すべき行の幅に制限がある場合には、行の幅の最大値と、訳文の文字列の長さとの関係も調べないと、文字列の長さが行の最大幅を超過して改行され、原文の要素の行列関係が崩れてしまうおそれがある。
そこで、行の訳文の文字列長が、行の制限幅を超えるときは、当該行の要素のうち最大長のものについて、行を複数にするとよい。例えば図18の原文を翻訳し、第7行目の訳文が、行の最大幅を超えるとした場合は、図20に示すように、第7行目の2列目の訳文を、新たに挿入する第8行目の2列目にもまたがるように出力し、原文の第8行目は訳文の第9行目に出力するとよい。このとき、訳文で新たに挿入した第8行目の2列目には、その旨がわかるように、半角スペースを一つ置いてから実際の訳文の文字列が開始するようにしている。
もしくは、図21に示すように、訳文で新たに行を挿入する場合であっても、とくにスペースを置かずに訳文の文字列が開始するようにしてもよい。図21の訳文で新たに挿入した第8行目の2列目においては、図20と対比して、スペースがなく直ちに訳文の文字列が開始している。
上記は、機械翻訳装置101の配置判定部104aが領域は表に相当すると判定したときは、同一列に属する各文字列のなかで訳語の長さが最長のものを特定し、訳語の長さと文字列の原文において直後にある空白相当の文字の数とを足した長さを訳文における当該列の幅として設定し、当該列のその他の文字列の直後に付すべき空白相当の文字の数は設定幅に合わせ、第二の言語への翻訳後の各文字列の開始位置が列方向において第一の言語の原文と同様に整列させることにより実現される。
なお、このように新たな行を挿入する場合において、訳文として英語を取り扱うときは、英語の場合は任意の位置で改行することができない点を考慮しなければならない。つまり、単語の途中では改行をすることができないことを考慮し、当該単語の前に改行をするとよい。
次に、本発明の第四の実施例について説明する。これまで説明した実施例の原文は、原則として、行方向や列方向に開始位置が揃っていた。しかし、原文には、各要素が位置の上では揃っていないものの、要素間に区切り文字を用いることにより、要素間の区切りを明確としているものもある。区切り文字とは、セパレータとも呼ばれ、文字列を区切って各要素を明確にするために用いられる文字のことである。具体的には、「;」や「:」や「|」といった記号がよく用いられる。そこで、第四の実施例では、このようなセパレータを含む原文を取り扱うための方法を説明する。
図22は、セパレータで区切られた文字列の集合を含む原文の一例である。この原文の書式では、セミコロン「;」と改行「\n」以外はすべて全角文字が使われている。各行の先頭から末尾までスペースは全くない。各行とも文字列1、セミコロン、文字列2、セミコロン、文字列3、セミコロン、文字列4、セミコロン、文字列5、セミコロン、改行というように規則性をもって配列されている。
次に、図23に示す本発明の第四の実施例に係る機械翻訳装置の処理動作のフローチャートについて説明する。ここでは、図22で示したセパレータを含む日本語文書を英語に翻訳する場合を例にとり、図1に示した機械翻訳装置の処理動作について説明する。
始めに原文として図22の原文のデータが機械翻訳装置101の入力部102に入力されると、入力部102はその原文データを制御部103に送信する(S2301)。制御部103では、入力された原文が通常の文のみからなる文書か、セパレータで区切られた文字列を含む文書かどうかを判断する。セパレータで区切られた文字列を含か否かは、主としてセパレータとして用いられやすい記号とスペースの使用具合から判定する(S2302)。図22の原文の例では、前記したような規則性があり、各行ともセミコロンが同数だけ用いられており、セミコロンとセミコロンとの間にはスペースなしに文字列により埋められている。そこで、これはセパレータで区切られた文字列を含む文書であると判断される。このような場合には(S2302:YES)、文書内構造解析部104に送信する(S2302からS2304へ)。
一方、上記のように判断されない場合には(S2302:NO)、そのまま翻訳処理部105に送られ、通常の翻訳を行う(S2303)。文書内構造解析部104では、送られたセパレータ付き原文データを解析する(S2304)。
図22の原文の例では、第1行目は文字列1、セミコロン、文字列2、セミコロン、文字列3、セミコロン、文字列4、セミコロン、文字列5、セミコロン、および改行からなる形式であり、第2行目から第6行目も同一の形式をとっていることから、一行につき5個の要素があるといえる。または、1レコードにつき5個のフィールドがあるといってもよい。
この解析の次に、語句の集合を抽出し、文書内集出部分データ格納部106に記憶させる(S2305)。図22の原文の例では、語句の集合は「5月26日」「土」「阪神」「オリックス」「安芸」「5月27日」「日」「オリックス」「阪神」「高知市営」「6月1日」「火」「ソフトバンク」「中日」「ヤフードーム」「6月3日」「木」「日本ハム」「読売」「札幌ドーム」「6月10日」「木」「西武」「楽天」「インボイス」「6月24日」「木」「中日」「読売」「ナゴヤドーム」となる。
そして、同一行または同一フィールドの関係にあるものの集合を作る。この例では、同一行の関係にある集合としては「5月26日、土、阪神、オリックス、安芸」、「5月27日、日、オリックス、阪神、高知市営」、「6月1日、火、ソフトバンク、中日、ヤフードーム」、「6月3日、木、日本ハム、読売、札幌ドーム」、「6月10日、木、西武、楽天、インボイス」、「6月24日、木、中日、読売、ナゴヤドーム」が作られる。また、同一フィールドの関係にある集合としては「5月26日、5月27日、6月1日、6月3日、6月10日、6月24日」、「土、日、火、木、木、木」、「阪神、オリックス、ソフトバンク、日本ハム、西武、中日」、「オリックス、阪神、中日、読売、楽天、読売」、「安芸、高知市営、ヤフードーム、札幌ドーム、インボイス、ナゴヤドーム」が作られる。そして、これらの集合を、文書内抽出部分データ格納部106に記憶させる(S2305)。
このように、同一行または同一フィールドの関係にある要素から成る部分集合を作り、各要素に対し、どの集合に属するかの情報を付与する(S2306)。この集合関係の情報は、文書内抽出部分データ格納部106に格納する。例えば、「中日」には「6月1日、火、ソフトバンク、中日、ヤフードーム」の一要素であるという情報とともに、「オリックス、阪神、中日、読売、楽天、読売」の一要素であるという情報を付与する。そして、制御部103では、図22の原文の第1行目から第6行目の各要素を順番に取り出し、それらに対応する集合関係の情報とともに翻訳処理部105へ送る(S2306からS2303へ)。
翻訳処理部105では、制御部103から送られた原文に対して、翻訳辞書部107に格納されている知識(活用変化辞書107a、解析文法辞書107b、単語・熟語辞書107c、変換文法辞書107d、生成文法辞書107e、形態素生成文法辞書107f)および文書内抽出部分データ格納部106に格納された集合関係の情報を利用して、目的言語への翻訳処理を行う(S2303)。以降は第一実施例で述べた方法と同様にして各要素の訳語を翻訳していき、データの最後まで翻訳処理が行われると、終了する(S2307)。
上記は、図1の機械翻訳装置101にあっては、第一の言語の原文から文字列と区切り文字とが交互に配置されている行が一行以上連続する領域を抽出する領域抽出部104bと、領域の各行に含まれる区切り文字の個数の均一性を判定する配置判定部104aと、同一行に属する文字列の集合および区切り文字によって区切られる同一区間に属する文字列の集合をそれぞれ抽出する集合抽出部104bと、あらかじめ互いに関連する第一の言語の語句の集合および当該集合に属する各語句の第二の言語の訳語を当該集合ごとに定義する翻訳辞書部107と、領域から抽出された文字列の集合が定義された語句の集合に含まれる程度を評価する集合評価部105aと、各文字列を第二の言語へ翻訳する際に集合評価部105aによる評価に基づき訳語を選択する翻訳処理部105とを備えることにより実現される。
次に、本発明の第五の実施例について説明する。これまで説明した実施例では原則として、表や箇条書きにおいて、多層の階層構造が含まれていなかった。しかし、表や箇条書きにおいて、多層の階層構造が含まれるような原文も存在する。そこで、第五の実施例では、このような原文を取り扱うための方法を説明する。
図24は、階層構造をもつ表を含む原文の一例である。表中の各要素は、すべての行にわたって開始位置が揃ってはいないものの、奇数行同士、偶数行同士では開始位置が一致している。このように、すべての行で要素の開始位置が揃っていないときは、奇数行同士、偶数行同士、あるいは適当な整数の倍数の行同士に着目し、それらの範囲で開始位置が揃っているかどうかを調べる。もし、奇数行同士、偶数行同士、あるいは適当な整数の倍数の行同士の範囲で、開始位置が揃っていると判断できれば、それらの中で集合関係を抽出するとよい。その後の処理は、これまで説明した実施例と同様に行えばよい。
以上説明したように、本発明では、文書内構造解析部104に、表や箇条書き相当部分(例えば、図3に示すような表相当部分や図11に示すような箇条書き相当部分)を有する文書が入力されると、当該文書の該当部分の語句集合を抽出し、文書内抽出部分データ格納部106に格納する。文書内抽出部分データ格納部106は、各要素間の関係を示す集合を取得し、各要素に情報として付与する。翻訳処理部105は、この情報を用いて当該選択された語句を翻訳する。あるいはこの情報を出力の際の成形に利用する。
以上、本発明の実施の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。例えば、実施例1、実施例2、実施例4で説明した訳語の選択と、実施例3で説明した訳語の成形との双方を行うようにしてもよい。また、本発明の機械翻訳装置による処理は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
本発明の第一の実施例に係る機械翻訳装置のブロック図である。
本発明の第一の実施例に係る機械翻訳装置の構成図である。
表相当部分を含む文書の原文の一例を示す説明図である。
本発明の第一の実施例に係る機械翻訳装置の処理動作の例を示すフローチャートである。
文書内抽出部分データ格納部の構造内解釈データベースに格納されるデータの具体例を示す説明図である。
表相当部分の文字列の配列の判定方法を示すフローチャートである。
翻訳辞書部の変換文法辞書内の規則の例を示す説明図である。
翻訳辞書部の変換文法辞書内の規則の例を示す説明図である。
スペースにより文字列の間を空けた文書の一例を示す説明図である。
タブとスペースにより文字列の間を空けた文書の一例を示す説明図である。
箇条書き相当の部分を含む文書の一例を示す説明図である。
本発明の第二の実施例に係る機械翻訳装置の処理動作の例を示すフローチャートである。
翻訳辞書部の変換文法辞書内の規則の例を示す説明図である。
表の変形例を示す説明図である。
表の変形例を示す説明図である。
表の変形例を示す説明図である。
表の変形例を示す説明図である。
表相当部分を含む文書の一例を示す説明図である。
本発明の第三の実施例に係る機械翻訳装置の処理動作の例を示すフローチャートである。
表相当部分を含む文書の翻訳例を示す説明図である。
表相当部分を含む文書の翻訳例を示す説明図である。
セパレータで区切られたデータの集合の例を示す説明図である。
本発明の第四の実施例に係る機械翻訳装置の処理動作の例を示すフローチャートである。
階層構造が含まれる表の例を示す説明図である。
英語の原文の例を示す説明図である。
符号の説明
101…機械翻訳装置、102…入力部、103…制御部、103a…領域抽出部、104…文書内構造解析部、104a…配置判定部、104b…集合抽出部、105…翻訳処理部、105a…集合評価部、106…文書内抽出部分データ格納部、107…翻訳辞書部、107a…活用変化辞書、107b…解析文法辞書、107c…単語・熟語辞書、105d…変換文法辞書、107e…生成文法辞書、107f…形態素生成文法辞書、108…出力部、109…原文、110…訳文