説明

機械翻訳装置、機械翻訳方法および機械翻訳プログラム

【課題】適切な翻訳単位に分割して文書の翻訳を行う機械翻訳装置を提供する。
【解決手段】区間の開始位置を表す開始タグと区間の終了位置を表す終了タグとを含む第1言語による文書の入力を受付ける受付部101と、受付けた文書を翻訳の単位に分割する分割部102と、分割した単位に含まれる第1単位の先頭に終了タグが存在するか否か、および、第1単位の末尾に開始タグが存在するか否かを判断する第1判断部103と、第1単位の先頭に終了タグが存在する場合に、第1単位の直前の単位である第2単位の末尾に終了タグを移動し、第1単位の末尾に開始タグが存在する場合に、第1単位の直後の単位である第3単位の先頭に開始タグを移動する移動部104と、第1単位、第2単位、および第3単位のそれぞれを第2言語で翻訳する翻訳部109と、を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、SGML(Standard Generalized Mark-up Language)、HTML(HyperText Markup Language)、またはXML(Extensible Markup Language)などのタグが付与された文書を翻訳する機械翻訳装置、機械翻訳方法および機械翻訳プログラムに関するものである。
【背景技術】
【0002】
従来、機械翻訳装置、または機械翻訳プログラムは、タグが含まれないプレインテキストと呼ばれる文書を翻訳の対象としていた。しかし、近年のXMLやHTMLなどのタグを含む文書であるタグ文書の普及にともない、タグ文書を翻訳する機能を有する機械翻訳装置が増加している。
【0003】
タグ文書の翻訳に関しては、翻訳文の品質だけでなく、原文書に含まれるタグが正確に翻訳文書に復元されているかが重要になる。タグ文書の翻訳方法としては、例えば、原文中のタグの出現位置を記憶し、タグを除去して通常の翻訳行い、次に原文と訳文の単語対応情報と記憶しておいたタグの位置情報を利用して、除去したタグを訳文に復元する方法が広く知られている。
【0004】
また、通常、機械翻訳では原文書を解析して翻訳単位に分割した後、翻訳単位ごとに翻訳を行う。翻訳単位は通常1文である。タグ文書に対して文の分割を行った場合、不整合タグを含む文が発生することがある。翻訳文書に正確にタグを復元するには、このようなタグ不整合文が発生しないように原文書を分割することが望ましい。またタグ不整合文が発生した場合には、タグ整合文と同等のタグ復元結果が得られることが望ましい。
【0005】
翻訳単位をタグ整合文にすることのメリットは他にも存在する。例えば、HTML文書の一部を翻訳してそれをウェブブラウザ等で出力する場合や、一部を翻訳したXML文書をXMLアプリケーションで出力する場合、翻訳単位がタグ整合文であれば適切に出力することができる。
【0006】
HTML文書などのタグ文書では、ユーザが文書の任意の部分を指定して翻訳を行う場合が多いため、タグの不整合が発生する可能性が高い。このように原文書自体にタグ不整合が発生している場合であっても、翻訳単位を可能な限りタグ整合文とするように分割すること、および、タグ不整合文が発生した場合であっても適切に翻訳することが必要となる。
【0007】
特許文献1では、不整合なタグを含む文の翻訳技術が提案されている。ここでいう不整合なタグを含む文とは、開始タグを含むが終了タグを含まない文、終了タグを含むが開始タグを含まない文、開始タグと終了タグが対応していない文、タグのスコープが重複している文など、SGML/XML/HTMLの各仕様に適合していない文を指す。特許文献1では、不整合を起こすタグを検出する手段を備え、不整合を検出した場合はタグが整合な範囲で原文を分割し、分割した単位で翻訳を行っている。
【0008】
【特許文献1】特許第3477308号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1の方法では、原文のタグが訳文で失われることはないが、翻訳単位をさらに1文以下の小さい単位に分割するため、適切な翻訳単位によって翻訳を実行できないという問題があった。このため、1文以下の単位で翻訳を行うことにより訳文の翻訳品質が低下するという問題があった。
【0010】
本発明は、上記に鑑みてなされたものであって、不整合が発生することのない適切な翻訳単位に分割して文書の翻訳を行うことができる機械翻訳装置、機械翻訳方法および機械翻訳プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するために、本発明は、開始タグと終了タグとにより指定した区間の情報を含む第1言語によるタグ文書の入力を受付ける受付手段と、受付けた前記タグ文書を翻訳の単位に分割する分割手段と、分割された第1部分の先頭に前記終了タグが存在するか否か、および、前記第1部分の末尾に前記開始タグが存在するか否かを判断する第1判断手段と、前記第1部分の先頭に前記終了タグが存在する場合に、前記第1部分の直前の部分である第2部分の末尾に前記終了タグを移動し、前記第1部分の末尾に前記開始タグが存在する場合に、前記第1部分の直後の部分である第3部分の先頭に前記開始タグを移動する移動手段と、前記第1部分、前記第2部分、および前記第3部分のそれぞれを第2言語で翻訳する翻訳手段と、を備えたことを特徴とする。
【0012】
また、本発明は、上記装置を実行することができる機械翻訳方法および機械翻訳プログラムである。
【発明の効果】
【0013】
本発明によれば、分割した翻訳単位の境界に存在するタグを適切な位置に追加することができるため、不整合が発生することなく適切な単位の翻訳単位に分割して文書の翻訳を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【0014】
以下に添付図面を参照して、この発明にかかる機械翻訳装置、機械翻訳方法および機械翻訳プログラムの最良な実施の形態を詳細に説明する。
【0015】
(第1の実施の形態)
第1の実施の形態にかかる機械翻訳装置は、翻訳対象となるタグ文書を1文単位に分割し、分割の境界に存在する終了タグを境界の前に存在する文の末尾に追加し、分割の境界に存在する開始タグを境界の後ろに存在する文の先頭に追加して翻訳を行うものである。
【0016】
ここで、タグ文書とは、SGML、HTML、およびXMLなどのように、開始タグと終了タグとにより指定した区間の情報を含む文書をいう。例えば、開始タグ「<head>」と終了タグ「</head>」とで表される区間は、HTML文書のヘッダに含まれるテキスト情報であることを意味する。
【0017】
なお、タグ文書は、SGML、HTML、またはXMLに限られるものではなく、上述のような区間の情報を含む文書であればあらゆる文書を対象とすることができる。また、以下では、開始タグと終了タグを単にタグという場合がある。また、以下では日本語と英語との間の翻訳を例として説明するが、翻訳の原言語と目的言語の組合せはこれらに限られるものではない。
【0018】
図1は、第1の実施の形態にかかる機械翻訳装置100の構成を示すブロック図である。同図に示すように、機械翻訳装置100は、受付部101と、分割部102と、第1判断部103と、移動部104と、保存部105と、削除部106と、解析部107と、第1追加部108と、翻訳部109と、復元部110と、出力部111と、記憶部120と、を備えている。
【0019】
受付部101は、タグ文書の入力を受付けるものである。例えば、受付部101は、ウェブブラウザ上に表示されたテキストからユーザが選択したテキスト部分に対応するタグ文書の入力を受付ける。また、受付部101は、タグ文書のテキストデータが格納されたファイルからタグ文書の入力を受付ける方法や、ネットワーク経由でタグ文書を受付ける方法など、従来から用いられているあらゆる文書入力方法を適用できる。
【0020】
図2は、入力されるタグ文書の一例を示した説明図である。同図は、タグ文書の一つであるHTML文書の例を示している。同図に示すようにHTML文書は、「<(タグ名称)>」の形式で表される開始タグと、「</(タグ名称)>」の形式で表される終了タグとを含む。また、開始タグと終了タグとの間には、原文のテキストデータが格納されるほか、さらに別のタグについての開始タグおよび終了タグを指定可能である。
【0021】
分割部102は、受付けたタグ文書を翻訳に適した単位に分割するものである。本実施の形態では、分割部102は、タグ文書を1文単位で分割する。
【0022】
第1判断部103は、分割した各翻訳単位の境界に存在するタグを、境界の前後の翻訳単位のいずれに含ませるかを判断するものである。例えば、第1判断部103は、分割部102により分割されたタグ文書の翻訳単位のそれぞれについて、翻訳単位の先頭に終了タグが存在するか否か、および、翻訳単位の末尾に開始タグが存在するか否かを判断する。
【0023】
移動部104は、第1判断部103の判断結果に従い、翻訳単位の境界に存在するタグを境界の前後の翻訳単位のうち適切な翻訳単位に移動するものである。例えば、移動部104は、翻訳単位の先頭に終了タグが存在する場合は、当該翻訳単位の直前の翻訳単位の末尾に終了タグを移動する。また、移動部104は、翻訳単位の末尾に開始タグが存在する場合は、当該翻訳単位の直後の翻訳単位の先頭に開始タグを移動する。
【0024】
保存部105は、受付けたタグ文書内の開始タグおよび終了タグの位置を含むタグ情報を記憶部120に保存するものである。
【0025】
削除部106は、分割した翻訳単位からタグを除去し、タグを除去した原文を出力するものである。タグを削除するのは、タグを翻訳理の対象としないためである。
【0026】
解析部107は、分割した翻訳単位を解析し、翻訳単位がタグ不整合文か否かを判断するものである。具体的には、解析部107は、翻訳単位のそれぞれについて、開始タグと、当該開始タグに対応する終了タグとが翻訳単位内に存在するか否かを解析する。解析部107によるタグ整合性の解析処理では、XMLパーザやHTMLパーザによる解析処理などの従来から用いられているあらゆる技術を適用できる。
【0027】
第1追加部108は、解析部107の解析結果に従い、翻訳単位がタグ整合文になるようにタグを追加するものである。例えば、第1追加部108は、開始タグに対応する終了タグが存在しない場合に、開始タグに対応する終了タグを翻訳単位の末尾に追加する。また、終了タグに対応する開始タグが存在しない場合に、終了タグに対応する開始タグを翻訳単位の先頭に追加する。
【0028】
タグ整合文にするために補うタグおよび補う位置の情報は、タグの整合性解析処理の実行過程で得ることができる。例えば、FILO(First-In-Last-Out)スタックを用いる方法などの従来から用いられているあらゆる技術を適用できる。
【0029】
翻訳部109は、原文に対して翻訳処理を行い、訳文情報を出力するものである。なお、翻訳部109による翻訳処理では、ルールベース機械翻訳、統計ベース機械翻訳、用例ベース機械翻訳などの従来から用いられているあらゆる翻訳技術を適用できる。
【0030】
図3は、訳文情報のデータ構造の一例を示す説明図である。同図に示すように、訳文情報は、訳文に含まれる訳語と、対応する原文の単語である原単語と、原単語の原文中での位置を表す原単語位置とを対応づけて格納している。
【0031】
復元部110は、翻訳部109が出力した訳文情報と、記憶部120に格納されたタグ情報とを利用して、訳文にタグを復元するものである。具体的には、復元部110は、原文内で開始タグの直後に存在した単語に対応する訳語の前に当該開始タグを復元し、原文内で終了タグの直前に存在した単語に対応する訳語の後ろに当該終了タグを復元する。
【0032】
出力部111は、タグを復元した訳文であるタグ付き訳文を逐次出力して翻訳文書を生成するものである。出力部111は、翻訳文書をファイルの形式で出力する方法や、ディスプレイ装置などの表示手段に表示する方法など、従来から用いられているあらゆる方法により翻訳文書を出力することができる。
【0033】
記憶部120は、タグ文書内の開始タグおよび終了タグの位置を含むタグ情報を記憶するタグ情報テーブル121と、タグ文書の分割結果を格納する分割結果テーブル122とを格納するものである。記憶部120は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0034】
図4は、タグ情報テーブル121のデータ構造の一例を示す説明図である。同図に示すように、タグ情報テーブル121は、「タグ」と、タグの指定位置を表す「位置」と、タグの種別を表す「種別」とを対応づけて格納している。
【0035】
位置には、文の先頭からタグまでの文字数を指定する。種別には、入力されたタグ文書内に当初から含まれていたタグを意味する「オリジナル」と、整合性を維持するために追加したタグを意味する「追加タグ」とのいずれかを指定できる。
【0036】
図5は、分割結果テーブル122のデータ構造の一例を示す説明図である。同図に示すように、分割結果テーブル122は、分割の結果である分割単位と、備考とを対応付けて格納している。
【0037】
文分割処理の詳細については後述するが、文分割処理では、翻訳不要なタグ(文外タグ)を分割するとともに、それ以外のタグを含む原文を1文単位に分割し、分割結果テーブル122に格納する。また、備考には翻訳不要であることを示す情報などを格納する。
【0038】
次に、このように構成された第1の実施の形態にかかる機械翻訳装置100による機械翻訳処理について説明する。図6は、第1の実施の形態における機械翻訳処理の全体の流れを示すフローチャートである。
【0039】
まず、受付部101が、翻訳対象となるタグ文書の入力を受付ける(ステップS601)。次に、翻訳のためにタグ文書を適切な翻訳単位に分割する翻訳前処理を実行する(ステップS602)。翻訳前処理の詳細については後述する。
【0040】
次に、解析部107が、分割結果テーブル122を参照し、分割した翻訳単位がタグ不整合文であるか解析する(ステップS603)。例えば、図5の4レコード目の翻訳単位(「彼は彼女が翻訳した本を<u>読んだ。」)は、開始タグ(<u>)のみを含むため、タグ不整合文であると解析される。
【0041】
次に、第1追加部108が、タグ不整合文に不足しているタグを追加する(ステップS604)。上述の例では、開始タグ(<u>)に対応する終了タグ(</u>)を、当該翻訳単位の末尾に追加する。
【0042】
次に、保存部105が、タグ付き原文のタグ情報をタグ情報テーブル121に保存する(ステップS605)。例えば、保存部105は、タグ付き原文内の各タグについて、先頭からの文字数を位置に設定し、種別を「オリジナル」としてタグ情報を保存する。また、保存部105は、第1追加部108が追加したタグについては、種別を「追加タグ」としてタグ情報を保存する。
【0043】
次に、削除部106が、タグ付き原文からタグを削除する(ステップS606)。続いて、翻訳部109が、1文ごとに翻訳を実行し訳文情報を出力する(ステップS607)。
【0044】
次に、復元部110が、訳文情報とタグ情報テーブル121のタグ情報とを参照し、訳文にタグを復元する(ステップS608)。例えば、図3のような訳文情報が出力され、図4のようなタグ情報がタグ情報テーブル121に保存されているとする。この場合、復元部110は、開始タグ(<u>)の位置(12)に対応する原単語(「読んだ」)を訳文情報から取得し、当該原単語に対応する訳語(「read」)の前に当該開始タグ(<u>)を復元する。
【0045】
また、復元部110は、終了タグ(</u>)の位置(16)に対応する原単語が存在しないため、最後の単語(。(日本語の句点))に対応する訳語(.(英語のピリオド))の後ろに当該終了タグ(</u>)を復元する。
【0046】
次に、出力部111が、タグが復元された訳文を出力し、機械翻訳処理を終了する(ステップS609)。
【0047】
次に、ステップS602の翻訳前処理の詳細について説明する。図7は、翻訳前処理の全体の流れを示すフローチャートである。
【0048】
まず、分割部102は、タグ文書中のタグ部分を識別する(ステップS701)。次に、分割部102は、文書全体を、識別したタグ部分と、当該タグ部分以外の非タグ部分からなるテキストデータであるシーケンスとする(ステップS702)。
【0049】
次に、分割部102は、連続する文外タグをセパレータとして当該シーケンスを分割する(ステップS703)。
【0050】
ここで、文外タグとは、文をまたいで設定されることのないタグをいう。例えば、HTML文書の場合、HTML文書のヘッダを表す<head>タグ、文書のうち画面表示する部分であることを表す<body>タグ、段落を設定する<P>タグのように、文より大きな構造を示すタグが文外タグに該当する。一方、リンク先を示す<a>タグ、下線を示す<u>タグ、イタリック書体を示す</i>タグなどは文中で使われることが多いため、このようなタグを文内タグと呼ぶ。
【0051】
1つの文が文外タグをまたぐことはないので、文外タグは必ず翻訳単位の境界とみなすことができる。さらに、文外タグが連続する個所は翻訳する必要がないので、この部分に対しては翻訳を行わず、そのまま出力部111に送出する。これにより、原文中で翻訳が不必要な個所の処理をスキップできるので、翻訳を高速化することができる。なお、文外タグを受けとった出力部111は、復元部110から出力されたタグ付き訳文に、必要な文外タグを付加して出力する。
【0052】
また、XML文書の場合はHTML文書とは異なり、いずれのタグが文外タグでいずれのタグが文内タグであるかを区別することができない。したがって、XML文書に対して適用する場合は、事前にタグの一覧をユーザに示して文外タグ・文内タグの指定をさせる機能などを追加すればよい。
【0053】
次に、分割部102は、文外タグで分割した各シーケンス分割単位について、さらに文単位で分割する文分割処理を実行する(ステップS704)。文分割処理の詳細については後述する。
【0054】
次に、分割部102は、すべてのシーケンス分割単位について文分割処理を実行したか否かを判断し(ステップS705)、実行済みでない場合は(ステップS705:NO)、次のシーケンス分割単位について文分割処理を実行し、処理を繰り返す。
【0055】
すべてのシーケンス分割単位について文分割処理を実行した場合は(ステップS705:YES)、分割部102は、シーケンス全体についての文分割処理結果を出力し(ステップS706)、翻訳前処理を終了する。
【0056】
次に、ステップS704の文分割処理の詳細について説明する。図8は、文分割処理の全体の流れを示すフローチャートである。
【0057】
まず、分割部102は、シーケンス分割単位内の文内タグを識別する(ステップS801)。次に、分割部102は、識別した文内タグの位置をRAMなどの記憶媒体に記憶する(ステップS802)。削除した文内タグを復元する際に参照するためである。
【0058】
次に、分割部102は、文内タグを削除する(ステップS803)。続いて、分割部102は、文内タグを削除した結果である非タグ部分を、句点をセパレータとして分割する(ステップS804)。
【0059】
次に、分割部102は、記憶しておいた文内タグの位置を参照し、ステップS803で削除した文内タグを復元する(ステップS805)。
【0060】
次に、分割部102は、句点で分割した位置である分割地点に、復元した文内タグが存在するか否かを判断する(ステップS806)。存在する場合は(ステップS806:YES)、復元した文内タグを適切な文に移動するタグ移動処理を実行する(ステップS807)。タグ移動処理の詳細については後述する。
【0061】
タグ移動処理実行後、または、ステップS806で分割地点に復元した文内タグが存在しないと判断された場合は(ステップS806:NO)、分割部102は、すべての分割地点を処理したか否かを判断する(ステップS808)。
【0062】
すべての分割地点を処理していない場合は(ステップS808:NO)、つぎの分割地点について処理を繰り返す(ステップS806)。すべての分割地点を処理した場合は(ステップS808:YES)、文分割処理を終了する。
【0063】
次に、ステップS807のタグ移動処理の詳細について説明する。図9は、タグ移動処理の全体の流れを示すフローチャートである。
【0064】
まず、第1判断部103は、分割地点にタグが複数存在するか否かを判断する(ステップS901)。複数存在しない場合は(ステップS901:NO)、第1判断部103は、当該タグが開始タグか否かを判断する(ステップS902)。
【0065】
開始タグである場合は(ステップS902:YES)、移動部104は、そのタグを分割地点の後ろの文の先頭に付加する(ステップS903)。開始タグが文の末尾に存在するとタグ不整合文となるため、それを回避するために開始タグを後ろの文に移動する必要があるからである。
【0066】
開始タグでない場合(ステップS902:NO)、すなわち、終了タグである場合は、移動部104は、そのタグを分割地点の前の文の末尾に付加する(ステップS904)。
【0067】
ステップS901で、分割地点にタグが複数存在すると判断された場合は(ステップS901:YES)、第1判断部103は、Nullスコープタグが存在するか否かを判断する(ステップS905)。
【0068】
ここで、Nullスコープタグとは、開始タグと終了タグとの間に非タグ部分が存在しないタグをいう。例えば、段落を「<P></P>」のように設定した場合が該当する。
【0069】
Nullスコープタグが存在する場合は(ステップS905:YES)、第1判断部103は、Nullスコープタグの位置をRAMなどの記憶媒体に記憶する(ステップS906)。削除したNullスコープタグを復元する際に参照するためである。次に、第1判断部103は、Nullスコープタグを削除する(ステップS907)。
【0070】
Nullスコープタグを削除した後、または、ステップS905でNullスコープタグが存在しないと判断した場合は(ステップS905:NO)、第1判断部103は、複数のタグのすべてが開始タグか否かを判断する(ステップS908)。
【0071】
すべてが開始タグである場合(ステップS908:YES)、移動部104は、すべての開始タグを、後ろの文の先頭に付加する(ステップS909)。すべてが開始タグでない場合は(ステップS908:NO)、第1判断部103は、複数のタグのすべてが終了タグか否かを判断する(ステップS910)。
【0072】
すべてが終了タグである場合は(ステップS910:YES)、移動部104は、すべての終了タグを、前の文の末尾に付加する(ステップS911)。すべてが終了タグでない場合(ステップS910:NO)、すなわち、複数のタグに終了タグと開始タグとが含まれている場合は、移動部104は、複数のタグのうち、終了タグは前の文の末尾に付加し、開始タグは後ろの文の先頭に付加する(ステップS912)。このように、分割地点に終了タグや開始タグが複数存在する場合は、連続する終了タグの最後で、または、連続する開始タグの先頭で文を分割するようにする。
【0073】
次に、第1判断部103は、ステップS906で保存した位置を参照し、削除したNullスコープタグを復元する(ステップS913)。
【0074】
このように、本実施の形態では、句点で文書を分割することにより(ステップS804)、翻訳に適した単位である文単位で翻訳を行うことができる。また、タグ移動処理(ステップS807、図9)により、タグを適切な位置に移動した文に分割することができる。これにより、翻訳単位である文がタグ不整合文となることを回避できる。さらに、不整合なタグが存在した場合であっても、タグ整合となるように適切なタグを追加できるため(ステップS604)、翻訳文書にタグ不整合文が含まれることを回避できる。
【0075】
次に、上述のフローに従った、第1の実施の形態におけるタグ文書の機械翻訳処理の具体例について説明する。以下では、図2に示すようなHTML文書が入力された場合の機械翻訳処理の例について説明する。
【0076】
図2のようなHTML文書が入力された場合、まず、文外タグである「<HTML><head>」、「</head><body>」、「</body></HTML>」をセパレータとして文書のシーケンスが分割される(ステップS703)。この場合、<head>タグ内の文書と、<body>タグ内の文書との2つのシーケンス分割単位に分割される。
【0077】
最初のシーケンス分割単位は1つの文のみが含まれるため、文分割処理は行われない。以下では、2番目のシーケンス分割単位である<body>タグ内の文書の文分割処理について説明する。
【0078】
文分割処理では、タグが削除され(ステップS803)、非タグ部分が句点によって分割される(ステップS804)。この例では、4つの部分に分割される。
【0079】
例えば、3番目の文(「今日は天気だ。」)と4番目の文(「明日は雨だ。」)の分割地点について考えると、この分割地点には、</i>タグと<u>タグとが存在する。このような場合、</i>タグは前の文である3番目の文の末尾に付加され(ステップS904)、<u>タグは次の文である3番目の文の先頭に付加される(ステップS903)。
【0080】
このようにすれば、分割地点の前の文も次の文もタグ整合文となる。すなわち、句点「。」の直後で文分割した場合、前の文も後ろの文もタグ不整合文になるが、上述した処理により、文分割結果のタグ付き原文がタグ不整合文になることを可能な限り回避することができる。
【0081】
このように文書を翻訳単位に分割した後、翻訳単位ごとに、タグ不整合文であるか否かが判断される(ステップS603)。例えば、上述の例の1番目の翻訳単位(「彼は彼女が翻訳した本<u>を読んだ。<P>」)では、開始タグ<u>に対応する終了タグが存在しないため、タグ不整合文であると判断される。
【0082】
タグ不整合文であると判断された場合、第1追加部108が、タグ整合にするために必要なタグを文境界位置に補う。この例の場合、第1追加部108は、終了タグ</u>を文末に補う。
【0083】
タグ整合文とされた翻訳単位は、この後、タグが削除される(ステップS606)。また、翻訳部109が、翻訳単位ごとに翻訳を実行する(ステップS607)。そして、復元部110は、タグ情報テーブル121に記憶されたタグ情報を参照して、訳文にタグを復元する(ステップS608)。
【0084】
上述の例の場合、原文中の<u>〜</u>タグで囲まれた部分(「読んだ。」)に対応する訳語は「read」、および「.」である。このうち、訳文中で先に出現する訳語「read」の前に<u>タグを復元し、訳文中で後ろに出現する「.」の後ろには</u>タグを復元する。このようにして、タグ付き訳文「He<u>read the book which she translated.</u>」が得られる。
【0085】
上述の例の2番目の翻訳単位(「彼女</u>は私が翻訳した本を読んだ。」)についても同様に翻訳が実行され、文頭に<u>タグが追加されたタグ付き訳文「<u>She</u>read the book which I translated.」が得られる。
【0086】
出力部111は、このようにしてタグが復元されたタグ付き訳文を出力する(ステップS609)。なお、出力する際に、挿入したタグを、出力する単位に応じて削除するように構成してもよい。
【0087】
上記の例に関しては、例えば、1番目の翻訳単位(彼は彼女が翻訳した本を<u>読んだ。)と2番目の翻訳単位(<p>彼女</u>は私が翻訳した本を読んだ。)との翻訳結果を一括して出力する場合は、「He <u>read the book which she translated.<p>She</u>read the book which I translated.」のように、挿入したタグを取り除いて出力する。このようにしても、出力単位全体としてタグ整合になるので問題は生じない。
【0088】
すなわち、翻訳される部分が原文書中の連続領域である場合、その翻訳結果に含まれる翻訳時に挿入したタグのうち、互いに対応関係にあるタグは削除しても全体のタグ整合性は失われない。上記の例では、前の文の文末に挿入した終了タグ(</u>)と、次の文の先頭に挿入した開始タグ(<u>)とは対応関係にあるので、削除することができる。これにより、文書の一部の翻訳結果であっても、翻訳時に挿入したタグを最小限に抑えつつ、全体としてタグ整合な翻訳結果を出力することができる。
【0089】
このように、第1の実施の形態にかかる機械翻訳装置では、翻訳対象となるタグ文書を1文単位に分割し、分割の境界に存在する終了タグを境界の前に存在する文の末尾に追加し、分割の境界に存在する開始タグを境界の後ろに存在する文の先頭に追加して翻訳を行うことができる。また、不整合の生じた文には整合性を保つためのタグを追加することができる。このため、不整合が発生することなく適切な単位の翻訳単位に分割して文書の翻訳を行うことができる。また、翻訳単位が1文であるため、翻訳精度を落とさずに翻訳を行うことができる。
【0090】
(第2の実施の形態)
第1の実施の形態では、タグ文書を適切かつタグ不整合の存在しない翻訳単位に分割することができるが、翻訳時のタグのスコープに関する問題を解消することができない。以下に、タグスコープの問題について説明する。
【0091】
図10は、英語によるHTML文書を表示したウェブブラウザの画面の一例を示す説明図である。同図に示すように、画面1000には、下線1001を含む英語の文が表示されている。同図は、「<u>She eats</u> an apple.」のように表されるHTML文をウェブブラウザに表示したときの画面例である。
【0092】
図11は、図10で表示された英語に対応する日本語のHTML文書を表示したウェブブラウザの画面の一例を示す説明図である。同図に示すように、画面1100には、下線1101を含む日本語の文が表示されている。
【0093】
図10と図11とを比較するとわかるように、原文中では英語「an apple」の部分に下線が引かれていないのに対し、訳文では対応する日本語(りんご)にも不要な下線が引かれている。
【0094】
従来技術では、タグを訳文に復元する際に、タグのスコープ内部の単語の訳語のうち訳文中で最初にあらわれる訳語の前に開始タグを復元し、訳文中で最後に現れる訳語の後ろに終了タグを復元する。
【0095】
上記の例ではタグ内部に単語「She」および「eats」が存在し、それらに対応する訳語はそれぞれ日本語1102(彼女は)および日本語1103(食べる)である。訳文中で最初に出現するのは日本語1102(彼女は)であるため、その直前に<u>タグが復元される。また、訳文中で後に出現するのは日本語1103(食べる)であるため、その後ろに</u>タグが復元される。
【0096】
このため、両単語の間に挟まれる日本語の単語も開始タグ<u>と終了タグ</u>との間に含まれることになり、不要な下線が引かれるという問題が生じる。このように、原言語と目的言語では語順が変化する場合があり、従来の方法では訳文にタグを復元したとき、原文ではタグのスコープ外であった単語がタグのスコープ内になる場合がある。
【0097】
第2の実施の形態にかかる機械翻訳装置は、このような問題を解消するため、タグのスコープの不整合が生じた場合に、不整合を解消するようにタグの追加を行うものである。
【0098】
図12は、第2の実施の形態にかかる機械翻訳装置1200の構成を示すブロック図である。同図に示すように、機械翻訳装置1200は、受付部101と、分割部102と、第1判断部103と、移動部104と、保存部105と、削除部106と、解析部107と、第1追加部108と、翻訳部109と、復元部1210と、出力部111と、第2判断部1212と、第2追加部1213と、記憶部120と、を備えている。
【0099】
第2の実施の形態では、第2判断部1212と第2追加部1213とを追加したこと、および、復元部1210の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる機械翻訳装置100の構成を表すブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0100】
復元部1210は、翻訳部109が出力した訳文情報と、記憶部120に格納されたタグ情報とを利用して、訳文にタグを復元し、復元したタグの情報を含むタグ情報リストを出力する。
【0101】
図13は、復元部1210が出力するタグ情報リストのデータ構造の一例を示す説明図である。同図に示すように、タグ情報リストには、原単語と、原単語がそのスコープ範囲内に存在するタグであることを表す原単語スコープタグと、訳語と、訳語がそのスコープ範囲内に存在するタグであることを表す訳語スコープタグとが含まれる。
【0102】
なお、原単語スコープタグまたは訳語スコープタグに示されているタグは、対応する原単語または訳語がどのようなタグのスコープ中に存在するかを表すものである。例えば、同図の訳語スコープタグには3つの訳語に対して<u>タグが指定されているが、これは必ずしも各訳語のそれぞれに<u>タグが付与されていることを意味するものではない。すなわち、例えば、最初の単語の先頭に<u>タグが付加され、最後の単語の末尾に</u>タグが付加されている場合もありうる。この場合も、3つの訳語のすべてがタグ<u>のスコープ内に存在することを意味するからである。
【0103】
同図の例では、原単語「She」と原単語「eats」のみに下線を引くためのタグ(<u>)が付加されているが、訳語では句点を除くすべての単語に下線を引くためのタグが付加されていることが示されている。
【0104】
第2判断部1212は、タグ情報リストを参照し、タグ付き原文とタグ付き訳文との間でタグのスコープが一致するか否かを判断するものである。具体的には、第2判断部1212は、タグ情報リスト内の各訳語のそれぞれについて、対応する原単語に付加されたタグを調べ、訳語に付加されているタグと一致するか否かを判断する。
【0105】
第2追加部1213は、タグ付き原文とタグ付き訳文との間でタグのスコープが一致しない場合に、スコープが一致するようにタグ付き訳文に適切なタグを追加するものである。
【0106】
次に、このように構成された第2の実施の形態にかかる機械翻訳装置1200による機械翻訳処理について説明する。図14は、第2の実施の形態における機械翻訳処理の全体の流れを示すフローチャートである。
【0107】
ステップS1401からステップS1407までの、文書受付処理、翻訳前処理、1文翻訳処理は、第1の実施の形態にかかる機械翻訳装置100におけるステップS601からステップS607までと同様の処理なので、その説明を省略する。
【0108】
翻訳部109が1文翻訳処理を実行後(ステップS1407)、復元部1210が、訳文情報とタグ情報テーブル121のタグ情報とを参照し、訳文にタグを復元するとともに、タグ情報リストを出力する(ステップS1408)。
【0109】
次に、タグ情報リストを参照してスコープの不一致を解消するための不整合補正処理が実行される(ステップS1409)。不整合補正処理の詳細については後述する。
【0110】
不整合補正処理の後、出力部111が、タグを復元し、スコープの不一致を解消した訳文を出力し、機械翻訳処理を終了する(ステップS1410)。
【0111】
次に、ステップS1409の不整合補正処理の詳細について説明する。図15は、不整合補正処理の全体の流れを示すフローチャートである。
【0112】
まず、第2判断部1212が、復元部1210から出力されたタグ情報リストを取得する(ステップS1501)。次に、第2判断部1212が、タグ情報リストから最初の訳語を取得する(ステップS1502)。
【0113】
次に、第2判断部1212は、タグ情報リストを参照し、取得した訳語の訳語スコープタグが、対応する原単語スコープタグと一致するか否かを判断する(ステップS1503)。一致しない場合は(ステップS1503:NO)、第2判断部1212は、当該タグが不要なタグか否かを判断する(ステップS1504)。例えば、第2判断部1212は、図11で説明したように不要な下線を引くタグなどに該当するか否かを判断する。
【0114】
不要なタグである場合は(ステップS1504:YES)、第2追加部1213は、当該タグを打ち消すために必要な対応する終了タグを、訳語の前に追加する(ステップS1505)。不要なタグではない場合(ステップS1504:NO)、または終了タグを追加した後、第2判断部1212は、一致しないタグが訳語内で不足しているタグか否かを判断する(ステップS1506)。
【0115】
不足しているタグである場合は(ステップS1506:YES)、第2追加部1213は、不足しているタグに対応する開始タグを、訳語の前に追加する(ステップS1507)。不足しているタグでない場合(ステップS1506:NO)、または開始タグを追加した後、第2判断部1212は、後続する訳語スコープタグを更新する(ステップS1508)。
【0116】
例えば、終了タグを追加した場合は、後続の訳語にはタグが存在しなくなるため、タグ情報リストの後続の訳語に対応する訳語スコープタグからタグを削除する。また、例えば、開始タグを追加した場合は、後続の訳語にもタグが追加されることになるため、タグ情報リストの後続の訳語に対応する訳語スコープタグに同じタグを追加する。
【0117】
次に、第2判断部1212は、すべての訳語を処理したか否かを判断し(ステップS1509)、すべての訳語を処理していない場合は(ステップS1509:NO)、次の訳語について処理を繰り返す(ステップS1502)。
【0118】
すべての訳語を処理した場合は(ステップS1509:YES)、不整合補正処理を終了する。
【0119】
このように、本実施の形態では、タグの復元時に訳語ごとの原単語とのタグの対応に関する情報であるタグ情報リストを出力し、タグ情報リストを参照して訳語単位でタグのスコープの不一致を確認して不一致を解消することができる。
【0120】
次に、第2の実施の形態におけるタグ文書の機械翻訳処理の具体例について説明する。以下では、図10で示したように、「<u>She eats</u> an apple.」という英文を日本語に翻訳する場合を例に説明する。なお、図16は、この例における処理過程で出力されるタグ付き訳文の一例を示す説明図である。
【0121】
この場合の訳文は、図11の下線1101に対応する日本語の文となる。すなわち、原文と異なり、すべての単語に下線が引かれるようなタグが復元されている。図13は、この場合のタグ情報リストに格納された情報の一例を示す説明図である。同図に示すように、3つの訳語対応する訳語スコープタグのすべてにタグ<u>が設定されている。
【0122】
第2判断部1212は、このタグ情報リストを参照し、タグ付き訳文に含まれる訳語の訳語スコープタグと、原文中の原単語の原単語スコープタグを比較しながら、訳文中のタグを分割する。タグの分割とは、あるタグのスコープ内に、そのタグの終了タグと開始タグとを挿入することをいう。
【0123】
第2判断部1212は、タグ情報リストの先頭の訳語から順番に、対応する原単語スコープタグとの一致を比較する(ステップS1503)。この例では、最初の訳語(彼女は)のタグは<u>であり、対応する原単語(She)のタグも<u>である。タグが一致する場合、分割部102はなにもせず次の訳語の処理に進む(ステップS1503:YES)。
【0124】
次の訳語(りんごを)の訳語スコープタグは<u>であるが、対応する原単語(an apple)の原単語スコープタグは空である。このようにスコープタグが食い違う場合は、原単語と一致するように訳語の前にタグを補う。この場合、当該訳語(りんごを)の前に</u>を補えばタグのスコープが一致するので、このタグが訳文に新たに挿入される。このときのタグ付き訳文は、図16のタグ付き訳文1601(「<u>彼女は</u>りんごを食べる</u>。」)のようになる。
【0125】
タグを挿入した場合は、後続する訳語の訳語スコープタグを更新する(ステップS1508)。例えば、</u>を補ったことにより、3番目の訳語(食べる)の訳語スコープタグは空になる。
【0126】
次に、第2判断部1212は、3番目の訳語(食べる)と対応する原単語(eats)のスコープタグを比較する。訳語(食べる)の訳語スコープタグは空であるが、原単語(eats)の原単語スコープタグは<u>であるので、訳語(食べる)の前に<u>が補われる(ステップS1507)。このときのタグ付き訳文は、図16のタグ付き訳文1602(「<u>彼女は</u>りんごを<u>食べる</u>。」)のようになる。
【0127】
この後、前述したように後続する訳語の訳語スコープタグが更新されるが、次の訳語「。」のタグ情報は変わらず、空のままである。次に、第2判断部1212は、訳語「。」のタグ情報を原単語「.」と比較する。この場合、タグ情報は一致するので、タグの付加は行われない(ステップS1503:YES)。
【0128】
このようにして、すべての訳語についての処理が終わった後、第2追加部1213は、タグ情報リストを元にタグ付き訳文を出力する。最終的に、図16のタグ付き訳文1602(「<u>彼女は</u>りんごを<u>食べる</u>。」)が得られる。
【0129】
図17は、最終的に得られるタグ情報リストの一例を示す説明図である。同図に示すように、不整合補正処理を実行後は、原単語と訳語のスコープタグはすべて一致する。図18は、図17に対応して出力される訳文の表示例を示す説明図である。同図に示すように、下線1801、下線1802が適切に設定された訳文を表示することができる。図11と比較すると、図18では、原文(図10)のスコープとの不一致がすべて解消された訳文が出力されている。
【0130】
このように、第2の実施の形態にかかる機械翻訳装置では、タグのスコープの不整合が生じた場合に、訳語と原単語のスコープタグを比較しながらタグの分割、すなわち訳語の前に適宜開始タグと終了タグを補うことにより、原文のタグスコープと訳文のタグスコープを完全に一致させることができる。このため、原文とタグスコープが一致した適切な翻訳文を出力することが可能となる。
【0131】
(第3の実施の形態)
タグ文書の翻訳では、スコープの不一致の他に、複数のタグのスコープが訳文中でクロスして不整合になる場合が発生しうる。例えば、英文「<u>She eats </u> <i>an apple and sleeps</i>.」を日本語に翻訳する例について検討する。
【0132】
従来技術では、原文と訳文の対応するタグスパンの前後にタグを復元する。正確に述べれば、タグスパン中の単語の訳語のうち訳文中で最初に現れるものの前にそのタグの開始タグを復元し、訳文中で最後に現れるものの後ろに終了タグを復元する。本例では「She eats」の部分の訳文「彼女は・・・食べて」の前後に<u>、</u>タグを復元する。また「an apple and sleeps.」の部分の訳文「りんご・・・寝る」の前後に<i>、</i>タグを復元する。これにより、翻訳結果は「<u>彼女は<i>りんごを食べて</u>寝る</i>。」となる。
【0133】
この訳文はタグ<u>〜</u>のスコープと<i>〜</i>のスコープが部分的に重複しているため、タグが不整合になっている。訳文中でこのようなタグの不整合が起きた場合は、不整合を起こすタグを訳文の文頭や文末にまとめて出力し、タグの不整合を回避する技術も提案されているが、正しく訳文中にタグを復元することが望ましい。
【0134】
第3の実施の形態にかかる機械翻訳装置は、このような問題を解消するため、タグのスコープがクロスする不整合が生じた場合に、当該不整合を解消するようにタグの追加を行うものである。
【0135】
図19は、第3の実施の形態にかかる機械翻訳装置1900の構成を示すブロック図である。同図に示すように、機械翻訳装置1900は、受付部101と、分割部102と、第1判断部103と、移動部104と、保存部105と、削除部106と、解析部107と、第1追加部108と、翻訳部109と、復元部1210と、出力部111と、第2判断部1912と、第2追加部1913と、記憶部120と、を備えている。
【0136】
第3の実施の形態では、第2判断部1912と、第2追加部1913の機能が第2の実施の形態と異なっている。その他の構成および機能は、第2の実施の形態にかかる機械翻訳装置1200の構成を表すブロック図である図12と同様であるので、同一符号を付し、ここでの説明は省略する。
【0137】
第2判断部1912は、訳文内でタグのスコープのクロスによる不整合が生じているかを判断するものである。具体的には、第2判断部1912は、復元した開始タグおよび終了タグ内に、他の開始タグのみ、または、他の終了タグのみが含まれているか否かにより不整合の発生を判断する。
【0138】
第2追加部1913は、スコープのクロスによる不整合が生じている場合に、当該不整合を解消するようにタグ付き訳文に適切なタグを追加するものである。
【0139】
次に、このように構成された第3の実施の形態にかかる機械翻訳装置1900による機械翻訳処理について説明する。第3の実施の形態における機械翻訳処理の全体の流れは、第2の実施の形態における機械翻訳処理を示す図14と同様であるが、ステップS1409の不整合補正処理の詳細が異なる。
【0140】
以下に、第3の実施の形態における不整合補正処理の詳細について説明する。図20は、第3の実施の形態における不整合補正処理の全体の流れを示すフローチャートである。
【0141】
まず、第2判断部1912は、タグ付き訳文内のタグのスコープに関するタグ不整合箇所を解析する(ステップS2001)。第2判断部1912によるタグ不整合箇所の解析処理では、XMLパーザやHTMLパーザによる解析処理などの従来から用いられているあらゆる技術を適用できる。
【0142】
次に、第2判断部1912は、タグの不整合箇所が存在するか否かを判断する(ステップS2002)。不整合箇所が存在する場合(ステップS2002:YES)、第2判断部1912は、当該不整合箇所からスコープがクロスしているタグを抽出する(ステップS2003)。なお、以下では抽出した2つのタグのそれぞれを<A>、<B>とする。
【0143】
次に、第2判断部1912は、タグ<A>の出現位置はタグ<B>の出現位置より前か否かを判断する(ステップS2004)。前である場合は(ステップS2004:YES)、第2追加部1913は、タグ<B>の前にタグ</A>、タグ<B>の後ろにタグ<A>を追加する(ステップS2005)。
【0144】
タグ<A>がタグ<B>より前であるということは、タグ<B>のみがタグ<A>(開始タグ)とタグ</A>(終了タグ)との間に含まれていることを意味する。すなわち、「<A><B></A></B>」の順でタグが出力されていることを意味する。このため、ステップS2005のようにタグを追加すれば、「<A></A><B><A></A></B>」となり、タグの不整合が解消できる。
【0145】
なお、ステップS2005で、第2追加部1913が、タグ</A>の前後に</B>および<B>をそれぞれ追加するように構成してもよい。この場合、追加した結果は「<A><B></B></A><B></B>」のようになり、タグのスコープの不整合が解消できる。
【0146】
タグ<A>の出現位置がタグ<B>の出現位置より後ろである場合は(ステップS2004:NO)、第2追加部1913は、タグ<A>の前にタグ</B>、タグ<A>の後ろにタグ<B>を追加する(ステップS2006)。なお、第2追加部1913が、タグ</B>の前後に</A>および<A>をそれぞれ追加するように構成してもよい。
【0147】
次に、第2判断部1912は、すべての不整合箇所を処理したか否かを判断し(ステップS2007)、すべての不整合箇所を処理していない場合は(ステップS2007:NO)、次の不整合箇所について処理を繰り返す(ステップS2003)。すべての不整合箇所を処理した場合は(ステップS2007:YES)、不整合補正処理を終了する。
【0148】
次に、第3の実施の形態におけるタグ文書の機械翻訳処理の具体例について説明する。以下では、上述のように、英文「<u>She eats </u> <i>an apple and sleeps</i>.」を日本語に翻訳する場合の例について説明する。なお、図21は、この例における処理過程で出力される日本語の一例を示す説明図である。
【0149】
この英文に対して、第2の実施の形態と同様の方法を用いて翻訳を行う。タグ復元前の翻訳結果は図21の訳文2101(「彼女はりんごを食べて寝る。」)のようになる。
【0150】
復元部1210は、第2の実施の形態で述べた手法によりタグの復元を行う。これにより図21のタグ付き訳文2102(<u>彼女は<i>りんごを食べて</u>寝る</i>。)が得られる。
【0151】
次に、第2判断部1912は、タグ付き訳文のタグ整合性を検証する。この例では<u>〜</u>と<i>〜</i>のタグスコープが重なってタグ不整合になっていることが検証される。
【0152】
このような場合、第2追加部1913は、不整合タグの前後にタグを挿入することにより、訳文をタグ整合文にする。この例では、タグ<i>の前後にそれぞれタグ</u>、およびタグ<u>を補えばタグ整合文になる。このようにして、図21のタグ付き訳文2103(「<u>彼女は</u><i><u>りんごを食べて</u>寝る</i>。」)が得られる。
【0153】
本例の場合、</u>の前後に</i>、<i>を補うこともできる。その場合、訳文は図21のタグ付き訳文2104(「<u>彼女は<i>りんごを食べて</i></u><i>寝る</i>。」)のようになる。
【0154】
図22および図23は、この例における英語および日本語によるHTML文書を表示したウェブブラウザの画面の一例を示す説明図である。図22の画面2200には、下線2201、およびイタリック文字で表された英語の単語群2202を含むHTML文書が表示されている。図23の画面2300には、図22に対応して、下線2301、およびイタリック文字で表された日本語の単語群2302を含むHTML文書が表示されている。
【0155】
なお、図23に示す訳文は、原文のタグスコープ情報との不一致が生じている。例えば、単語2303(りんご)は、訳文では<u><i>のタグスコープ内であるが、原文で対応する単語(an apple)は<i>のみのタグスコープ内である。
【0156】
このような場合は、例えば、第2の実施の形態のようなスコープの不整合を解消する機能をさらに追加することにより、スコープに関する不整合を同時に解決することが可能である。
【0157】
このように、第3の実施の形態にかかる機械翻訳装置では、タグのスコープがクロスする不整合が生じた場合に、当該不整合を解消するタグを追加することにより不整合を解消した訳文を出力することが可能となる。
【0158】
(第4の実施の形態)
第4の実施の形態にかかる機械翻訳装置は、タグの復元を行ってからタグの分割を行うのではなく、タグのスコープを比較しながらタグ復元を行うことにより、タグ整合な訳文を直接得るものである。
【0159】
図24は、第4の実施の形態にかかる機械翻訳装置2400の構成を示すブロック図である。同図に示すように、機械翻訳装置2400は、受付部101と、分割部102と、第1判断部103と、移動部104と、保存部105と、削除部106と、解析部107と、第1追加部108と、翻訳部109と、出力部111と、第2判断部2412と、第2追加部2413と、記憶部120と、を備えている。
【0160】
第4の実施の形態では、復元部110の代わりに、第2判断部2412と第2追加部2413とを備えたことが第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる機械翻訳装置100の構成を表すブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0161】
第2判断部2412は、翻訳部109が出力した訳文情報と、記憶部120に格納されたタグ情報とを利用して、訳文にタグを復元するか否かを判断するものである。具体的には、第2判断部2412は、訳文に含まれる単語である各訳語について、対応する原文の単語が、あるタグのタグスコープ内に存在するかを判断する。そして、第2判断部2412は、タグスコープ内に存在する場合は、訳語に同一のタグを復元すると判断する。
【0162】
第2追加部2413は、訳語に対応する原文の単語が、あるタグのタグスコープ内に存在する場合、当該訳語が当該タグのタグスコープ内に含まれるようにタグを追加するものである。
【0163】
次に、このように構成された第4の実施の形態にかかる機械翻訳装置2400による機械翻訳処理について説明する。図25は、第4の実施の形態における機械翻訳処理の全体の流れを示すフローチャートである。
【0164】
ステップS2501からステップS2507までの、文書受付処理、翻訳前処理、1文翻訳処理は、第1の実施の形態にかかる機械翻訳装置100におけるステップS601からステップS607までと同様の処理なので、その説明を省略する。
【0165】
翻訳部109が1文翻訳処理を実行後(ステップS2507)、タグ情報と訳文情報とを参照してタグの復元を行うタグ復元処理が実行される(ステップS2508)。タグ復元処理の詳細については後述する。
【0166】
タグ復元処理の後、出力部111は、タグが復元された訳文を出力し、機械翻訳処理を終了する(ステップS2509)。
【0167】
次に、ステップS2508のタグ復元処理の詳細について説明する。図26は、タグ復元処理の全体の流れを示すフローチャートである。
【0168】
まず、第2判断部2412が、訳語タグスコープ欄を空としたタグ情報リストを生成する(ステップS2601)。タグ情報リストは、第2の実施の形態の図13で示したものと同様のデータ構造を有するものとする。
【0169】
図27は、このときのタグ情報リストの一例を示す説明図である。同図は、英文「<u>She eats </u> <i>an apple and sleeps</i>.」を日本語に翻訳する場合に生成されるタグ情報リストを表している。なお、本例の場合、原文中の「and」は対応する訳語が存在しないので、その部分の訳語タグスコープは欠落している。
【0170】
次に、第2判断部2412が、タグ情報リストの最初の訳語を取得する(ステップS2602)。次に、第2判断部2412は、取得した訳語に対応する原単語タグスコープが存在するか否かを判断する(ステップS2603)。
【0171】
存在する場合は(ステップS2603:YES)、第2追加部2413は、原単語と同じタグスコープとなるように訳語にタグを追加し、訳語タグスコープに当該タグを設定する(ステップS2604)。続いて、第2追加部2413は、後続の訳語の訳語タグスコープを更新する(ステップS2605)。
【0172】
例えば、図27のようなタグ情報リストに対しては、第2判断部2412は、先頭の訳語(彼女は)に対応する原単語(She)のタグ情報を参照する。この例では<u>であるため、タグ情報を一致させるために、第2追加部2413は訳語(彼女は)の前にタグ<u>を追加する。また、第2追加部2413は、タグの追加と同時に、後続する訳語の訳語スコープタグをすべて<u>に更新する。図28は、このときのタグ情報リストの一例を示す説明図である。
【0173】
訳語タグスコープを更新後、またはステップS2603で原単語タグスコープが存在しないと判断された場合は(ステップS2603:NO)、第2判断部2412は、タグ情報リスト内のすべての訳語を処理したか否かを判断する(ステップS2606)。
【0174】
すべての訳語を処理していない場合は(ステップS2606:NO)、次の訳語に対して処理を繰り返す(ステップS2602)。
【0175】
上述の例では、タグ情報リストの2番目の訳語(りんごを)の処理を行う。対応する原単語(an apple)のタグ情報は<i>であるが、当該訳語の現在のタグ情報は<u>である。これを一致させるため、訳語の前にタグ</u><i>を挿入する。挿入と同時に後続する訳語の訳語スコープタグを更新する。図29は、このときのタグ情報リストの一例を示す説明図である。
【0176】
また、図30は、同様の処理を最後の訳語まで行ったときのタグ情報リストの一例を示す説明図である。この時点で、訳語の訳語スコープタグは原文と一致する。この後、出力部111が訳語を順次出力することにより、タグ整合文であるタグ付き訳文(「<u>彼女は</u><i>りんごを</i><u>食べて</u><i>寝る</i>。」)を得ることができる。
【0177】
なお、この処理例には示されていないが、最後の訳語に何らかのタグが存在する場合は、そのタグをうち消す終了タグを訳語の後ろに挿入する。例えば最後の訳語「。」のタグが<i>であった場合、その訳語の後ろに</i>を挿入する。
【0178】
図26に戻り、ステップS2606ですべての訳語を処理したと判断された場合は(ステップS2606:YES)、タグ復元処理を終了する。
【0179】
このように、第4の実施の形態にかかる機械翻訳装置では、タグを復元しながらタグの不整合を解消してタグ整合文である訳文を出力することができる。このため、より簡単な構成によりタグ不整合を解決することができる。
【0180】
図31は、第1〜第4の実施の形態にかかる機械翻訳装置のハードウェア構成を示す説明図である。
【0181】
第1〜第4の実施の形態にかかる機械翻訳装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0182】
第1〜第4の実施の形態にかかる機械翻訳装置で実行される機械翻訳プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0183】
また、第1〜第4の実施の形態にかかる機械翻訳装置で実行される機械翻訳プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1〜第4の実施の形態にかかる機械翻訳装置で実行される機械翻訳プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0184】
また、第1〜第4の実施の形態の機械翻訳プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0185】
第1〜第4の実施の形態にかかる機械翻訳装置で実行される機械翻訳プログラムは、上述した各部(受付部、分割部、第1判断部、移動部、保存部、削除部、解析部、第1追加部、翻訳部、復元部、出力部、第2判断部、第2追加部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体から機械翻訳プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【0186】
以上のように、本発明にかかる機械翻訳装置、機械翻訳方法および機械翻訳プログラムは、HTML、XML、SGMLなどのタグを含む文書を翻訳する機械翻訳装置に適している。
【図面の簡単な説明】
【0187】
【図1】第1の実施の形態にかかる機械翻訳装置の構成を示すブロック図である。
【図2】入力されるタグ文書の一例を示した説明図である。
【図3】訳文情報のデータ構造の一例を示す説明図である。
【図4】タグ情報テーブルのデータ構造の一例を示す説明図である。
【図5】分割結果テーブルのデータ構造の一例を示す説明図である。
【図6】第1の実施の形態における機械翻訳処理の全体の流れを示すフローチャートである。
【図7】翻訳前処理の全体の流れを示すフローチャートである。
【図8】文分割処理の全体の流れを示すフローチャートである。
【図9】タグ移動処理の全体の流れを示すフローチャートである。
【図10】ウェブブラウザの画面の一例を示す説明図である。
【図11】ウェブブラウザの画面の一例を示す説明図である。
【図12】第2の実施の形態にかかる機械翻訳装置の構成を示すブロック図である。
【図13】タグ情報リストのデータ構造の一例を示す説明図である。
【図14】第2の実施の形態における機械翻訳処理の全体の流れを示すフローチャートである。
【図15】不整合補正処理の全体の流れを示すフローチャートである。
【図16】タグ付き訳文の一例を示す説明図である。
【図17】タグ情報リストの一例を示す説明図である。
【図18】訳文の表示例を示す説明図である。
【図19】第3の実施の形態にかかる機械翻訳装置の構成を示すブロック図である。
【図20】第3の実施の形態における不整合補正処理の全体の流れを示すフローチャートである。
【図21】処理過程で出力される日本語の一例を示す説明図である。
【図22】ウェブブラウザの画面の一例を示す説明図である。
【図23】ウェブブラウザの画面の一例を示す説明図である。
【図24】第4の実施の形態にかかる機械翻訳装置の構成を示すブロック図である。
【図25】第4の実施の形態における機械翻訳処理の全体の流れを示すフローチャートである。
【図26】タグ復元処理の全体の流れを示すフローチャートである。
【図27】タグ情報リストの一例を示す説明図である。
【図28】タグ情報リストの一例を示す説明図である。
【図29】タグ情報リストの一例を示す説明図である。
【図30】タグ情報リストの一例を示す説明図である。
【図31】第1〜第4の実施の形態にかかる機械翻訳装置のハードウェア構成を示す説明図である。
【符号の説明】
【0188】
51 CPU
52 ROM
53 RAM
54 通信I/F
61 バス
100 機械翻訳装置
101 受付部
102 分割部
103 第1判断部
104 移動部
105 保存部
106 削除部
107 解析部
108 第1追加部
109 翻訳部
110 復元部
111 出力部
120 記憶部
121 タグ情報テーブル
122 分割結果テーブル
1000 画面
1001 下線
1100 画面
1101 下線
1102、1103 日本語
1200 機械翻訳装置
1210 復元部
1212 第2判断部
1213 第2追加部
1601、1602 訳文
1801、1802 下線
1900 機械翻訳装置
1912 第2判断部
1913 第2追加部
2101、2102、2103、2104 訳文
2200 画面
2201 下線
2202 単語群
2300 画面
2301 下線
2302 単語群
2303 単語
2400 機械翻訳装置
2412 第2判断部
2413 第2追加部

【特許請求の範囲】
【請求項1】
開始タグと終了タグとにより指定した区間の情報を含む第1言語によるタグ文書の入力を受付ける受付手段と、
受付けた前記タグ文書を翻訳の単位に分割する分割手段と、
分割された第1部分の先頭に前記終了タグが存在するか否か、および、前記第1部分の末尾に前記開始タグが存在するか否かを判断する第1判断手段と、
前記第1部分の先頭に前記終了タグが存在する場合に、前記第1部分の直前の部分である第2部分の末尾に前記終了タグを移動し、前記第1部分の末尾に前記開始タグが存在する場合に、前記第1部分の直後の部分である第3部分の先頭に前記開始タグを移動する移動手段と、
前記第1部分、前記第2部分、および前記第3部分のそれぞれを第2言語で翻訳する翻訳手段と、
を備えたことを特徴とする機械翻訳装置。
【請求項2】
前記単位のそれぞれについて、前記開始タグと、前記開始タグに対応する前記終了タグとが前記単位内に存在するか否かを解析する解析手段と、
前記開始タグに対応する前記終了タグが存在しない場合に、前記開始タグに対応する前記終了タグを前記単位内に追加し、前記終了タグに対応する前記開始タグが存在しない場合に、前記終了タグに対応する前記開始タグを前記単位内に追加する第1追加手段と、をさらに備えたこと、
を特徴とする請求項1に記載の機械翻訳装置。
【請求項3】
前記タグ文書内の前記開始タグの位置と前記タグ文書内の前記終了タグの位置とを記憶可能な記憶手段と、
受付けた前記タグ文書内の前記開始タグの位置と前記終了タグの位置とを前記記憶手段に保存する保存手段と、
分割した前記単位から、前記開始タグと前記終了タグとを削除する削除手段と、
前記記憶手段に記憶された前記開始タグの位置と前記終了タグの位置とに基づいて、翻訳した前記単位内に前記開始タグおよび前記終了タグを復元する復元手段と、をさらに備え、
前記翻訳手段は、前記開始タグと前記終了タグとを削除した前記第1部分、前記第2部分、および前記第3部分のそれぞれを第2言語で翻訳すること、
を特徴とする請求項1に記載の機械翻訳装置。
【請求項4】
前記復元手段は、前記開始タグの後ろに存在する前記タグ文書内の単語に対応する前記訳語の前に前記開始タグを復元し、前記終了タグの前に存在する前記タグ文書内の単語に対応する前記訳語の後ろに前記終了タグを復元すること、
を特徴とする請求項3に記載の機械翻訳装置。
【請求項5】
復元した前記開始タグおよび前記終了タグで表される第2言語の前記区間に含まれる第2言語の単語である訳語のそれぞれについて、第2言語の前記区間に対応する第1言語の前記区間に、前記訳語に対応する前記タグ文書内の単語が含まれるか否かを判断する第2判断手段と、
第2言語の前記区間に対応する第1言語の前記区間に、前記訳語に対応する前記タグ文書内の単語が含まれない場合に、前記訳語の前に前記終了タグを追加し、前記訳語の後ろに前記開始タグを追加する第2追加手段と、をさらに備えたこと、
を特徴とする請求項3に記載の機械翻訳装置。
【請求項6】
復元した前記開始タグおよび前記終了タグで表される第2言語の前記区間である第1区間に、前記第1区間と異なる第2言語の前記区間である第2区間の前記開始タグのみが含まれるか否かを判断する第2判断手段と、
前記第1区間に前記第2区間の前記開始タグのみが含まれる場合に、前記第2区間の前記開始タグの前に前記第1区間の前記終了タグを追加し、前記第2区間の前記開始タグの後ろに前記第1区間の前記開始タグを追加する第2追加手段と、をさらに備えたこと、
を特徴とする請求項3に記載の機械翻訳装置。
【請求項7】
復元した前記開始タグおよび前記終了タグで表される第2言語の前記区間である第1区間に、前記第1区間と異なる第2言語の前記区間である第2区間の前記終了タグのみが含まれるか否かを判断する第2判断手段と、
前記第1区間に前記第2区間の前記終了タグのみが含まれる場合に、前記第2区間の前記終了タグの前に前記第1区間の前記終了タグを追加し、前記第2区間の前記終了タグの後ろに前記第1区間の前記開始タグを追加する第2追加手段と、をさらに備えたこと、
を特徴とする請求項3に記載の機械翻訳装置。
【請求項8】
前記タグ文書内の前記開始タグの位置と前記タグ文書内の前記終了タグの位置とを記憶可能な記憶手段と、
受付けた前記タグ文書内の前記開始タグの位置と前記終了タグの位置とを前記記憶手段に保存する保存手段と、
分割した前記単位から、前記開始タグと前記終了タグとを削除する削除手段と、
前記記憶手段に記憶された前記開始タグの位置と前記終了タグの位置とに基づいて、前記単位に含まれる訳語のそれぞれについて、前記訳語に対応する前記タグ文書内の単語が、前記区間に含まれるか否かを判断する第2判断手段と、
前記単語が前記区間に含まれる場合に、前記訳語の前に前記区間の前記開始タグを追加し、前記訳語の後ろに前記区間の前記終了タグを追加する第2追加手段と、をさらに備え、
前記翻訳手段は、前記開始タグと前記終了タグとを削除した前記第1部分、前記第2部分、および前記第3部分のそれぞれを第2言語で翻訳すること、
を特徴とする請求項1に記載の機械翻訳装置。
【請求項9】
前記分割手段は、文を前記単位として、受付けた前記タグ文書を分割すること、
を特徴とする請求項1に記載の機械翻訳装置。
【請求項10】
受付け手段によって、開始タグと終了タグとにより指定した区間の情報を含む第1言語によるタグ文書の入力を受付ける受付ステップと、
分割手段によって、受付けた前記タグ文書を翻訳の単位に分割する分割ステップと、
第1判断手段によって、分割された第1部分の先頭に前記終了タグが存在するか否か、および、前記第1部分の末尾に前記開始タグが存在するか否かを判断する第1判断ステップと、
移動手段によって、前記第1部分の先頭に前記終了タグが存在する場合に、前記第1部分の直前の部分である第2部分の末尾に前記終了タグを移動し、前記第1部分の末尾に前記開始タグが存在する場合に、前記第1部分の直後の部分である第3部分の先頭に前記開始タグを移動する移動ステップと、
翻訳手段によって、前記第1部分、前記第2部分、および前記第3部分のそれぞれを第2言語で翻訳する翻訳ステップと、
を備えたことを特徴とする機械翻訳方法。
【請求項11】
開始タグと終了タグとにより指定した区間の情報を含む第1言語によるタグ文書の入力を受付ける受付手順と、
受付けた前記タグ文書を翻訳の単位に分割する分割手順と、
分割された第1部分の先頭に前記終了タグが存在するか否か、および、前記第1部分の末尾に前記開始タグが存在するか否かを判断する第1判断手順と、
前記第1部分の先頭に前記終了タグが存在する場合に、前記第1部分の直前の部分である第2部分の末尾に前記終了タグを移動し、前記第1部分の末尾に前記開始タグが存在する場合に、前記第1部分の直後の部分である第3部分の先頭に前記開始タグを移動する移動手順と、
前記第1部分、前記第2部分、および前記第3部分のそれぞれを第2言語で翻訳する翻訳手順と、
をコンピュータに実行させる機械翻訳プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate