(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-18
(45)【発行日】2024-01-26
(54)【発明の名称】翻訳装置、およびプログラム
(51)【国際特許分類】
G06F 40/44 20200101AFI20240119BHJP
【FI】
G06F40/44
(21)【出願番号】P 2020038015
(22)【出願日】2020-03-05
【審査請求日】2023-02-06
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100141139
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】後藤 功雄
【審査官】木村 大吾
(56)【参考文献】
【文献】特開2019-185392(JP,A)
【文献】特開2014-194668(JP,A)
【文献】特開2018-041184(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
原言語から目的言語への翻訳を行うための機械学習可能なモデルを持つ機械翻訳部と、
原言語文と目的言語文とで成る対訳文対において、前記原言語文に対応する原言語側の語の列に含まれる各々の原言語側の語について、前記目的言語文に対応する目的言語側の語の列に対訳として対応する目的言語側の語が存在するか否かに応じたラベルを決定し、前記原言語側の語の列に対応するラベルの列を生成するラベル系列生成部と、
学習モードにおいて、前記原言語側の語の列と前記ラベルの列とに基づく入力側データと、前記目的言語側の語の列に基づく出力側データとを用いて、前記機械翻訳部の前記モデルの機械学習を行うように制御する制御部と、
を備える翻訳装置。
【請求項2】
前記対訳文対の、前記原言語文に対応する前記原言語側の語の列に含まれる語と、前記目的言語文に対応する前記目的言語側の語の列に含まれる語との間の訳抜けを推定する訳抜け推定部、
をさらに備え、
前記ラベル系列生成部は、前記訳抜け推定部によって推定される訳抜けに基づいて、前記原言語側の語に対応する前記目的言語側の語が存在するか否かに応じたラベルを決定する、
請求項1に記載の翻訳装置。
【請求項3】
前記対訳文対に含まれる前記原言語文と前記目的言語文との形態素解析処理を行うことによって、それぞれ、前記原言語側の語の列と前記目的言語側の語の列とを求める形態素解析部、
をさらに備える請求項2に記載の翻訳装置。
【請求項4】
前記ラベル系列生成部は、前記原言語側の語が内容語であって且つ当該原言語側の語に対応する前記目的言語側の語が存在しない場合には当該原言語側の語については第1ラベルを決定し、その他の原言語側の語については前記第1ラベルとは異なる第2ラベルを決定する、
請求項1から3までのいずれか一項に記載の翻訳装置。
【請求項5】
前記ラベル系列生成部は、翻訳実行モードにおいて、前記原言語で記述された翻訳対象文について、前記翻訳対象文に対応する語の列に含まれる各々の翻訳対象の語について、前記第2ラベルを決定して、前記翻訳対象文に対応する語の列に対応する翻訳対象文用のラベルの列を生成し、
前記制御部は、翻訳実行モードにおいて、前記翻訳対象文に対応する語の列と前記翻訳対象文用のラベルの列とに基づく入力側データを、前記機械翻訳部の前記モデルが処理するように制御する、
請求項4に記載の翻訳装置。
【請求項6】
前記ラベル系列生成部は、翻訳実行モードにおいて、前記翻訳対象の語のうち、前記モデルの学習時にはすべて前記第1ラベルのみが対応付けられた語については、前記第2ラベルに代えて前記第1ラベルを決定する、
請求項5に記載の翻訳装置。
【請求項7】
前記ラベル系列生成部は、前記原言語側の語が内容語であるか機能語であるかにも応じて異なる前記ラベルを決定する、
請求項1から3までのいずれか一項に記載の翻訳装置。
【請求項8】
コンピューターを、
請求項1から7までのいずれか一項に記載の翻訳装置、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、翻訳装置、およびプログラムに関する。
【背景技術】
【0002】
機械学習の結果を利用して翻訳を行う機械翻訳処理の技術が研究され、実用化されている。
【0003】
例えば非特許文献1や非特許文献2では、ニューラルネットワークを用いて翻訳を行うニューラル機械翻訳(NMT,neural machine translation)の技術について記載されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Dzmitry Bahdanau,Kyunghyun Cho,Yoshua Bengio,Neural machine translation by jointly learning to align and translate,In Proceedings of ICLR, 2015年.
【文献】Ashish Vaswani,Noam Shazeer,Niki Parmar,Jakob Uszkoreit,Llion Jones,Aidan N Gomez,Lukasz Kaiser, Illia Polosukhin,Attention is all you need,Advances in Neural Information Processing Systems 30, pp. 5998-6008,Curran Associates, Inc.,2017年.
【発明の概要】
【発明が解決しようとする課題】
【0005】
機械翻訳処理では、入力文の内容の一部が訳出されない場合がある。このような事象は、訳抜けと呼ばれる。この訳抜けが発生すると、入力文中の情報の一部が出力文(翻訳結果)に含まれないため、特に重要な情報が出力文中に含まれない場合に、翻訳品質の大きな問題となる。
【0006】
上記のような訳抜けが発生する理由の一つは、機械学習に用いる学習データ(対訳文)の特徴にある。例えば、日本国内向けの日本語のニュース記事と、同じ話題を扱った日本国外向けの外国語(例えば、英語等)で書かれたニュース記事との記事対から対訳文を抽出して学習データとする場合には、次のようなことが起こる可能性がある。即ち、日本国内向けの日本語のニュース記事を原言語文とし、日本国外向けの外国語のニュース記事を目的言語文として対訳文とした場合、目的言語文内に、原言語文の内容の一部が省略される場合が多い。このような省略は、対訳文対としては、目的言語側における内容の不足(訳抜け)に相当する。なお、ニュース記事を書く際にこのような省略が行われる理由は、日本国外向けの外国語ニュース記事の制作では、日本国内向けのニュース記事が持つ情報のうち、日本国外の視聴者にはあまり重要ではない細かい情報を省くためである。上記のような日本語(原言語)ニュース記事と外国語(目的言語)ニュース記事とを学習データとして用いる場合、原言語文が持つ情報に対して、目的言語文が持つ情報が不足している傾向の強い対訳文データを学習のために用いることになる。つまり、上記のような既存のニュース文を基に学習した機械翻訳装置では、訳抜けが起きやすくなるという問題がある。なぜなら、原言語文の内容が目的言語文では欠落すること自体をも、機械翻訳装置が学習してしまうためである。
【0007】
本発明は、上記の課題認識に基づいて行なわれたものであり、たとえ原言語文と目的言語文との間で情報の過不足がある対訳文を用いて学習する場合にも、訳抜けの起こりにくい機械学習を実現するもの、またのそのような翻訳装置、およびプログラムを提供できるようにしようとするものである。
【課題を解決するための手段】
【0008】
[1]上記の課題を解決するため、本発明の一態様による翻訳装置は、原言語から目的言語への翻訳を行うための機械学習可能なモデルを持つ機械翻訳部と、原言語文と目的言語文とで成る対訳文対において、前記原言語文に対応する原言語側の語の列に含まれる各々の原言語側の語について、前記目的言語文に対応する目的言語側の語の列に対訳として対応する目的言語側の語が存在するか否かに応じたラベルを決定し、前記原言語側の語の列に対応するラベルの列を生成するラベル系列生成部と、学習モードにおいて、前記原言語側の語の列と前記ラベルの列とに基づく入力側データと、前記目的言語側の語の列に基づく出力側データとを用いて、前記機械翻訳部の前記モデルの機械学習を行うように制御する制御部とを備えるものである。
【0009】
[2]また、本発明の一態様は、上記の翻訳装置において、前記対訳文対の、前記原言語文に対応する前記原言語側の語の列に含まれる語と、前記目的言語文に対応する前記目的言語側の語の列に含まれる語との間の訳抜けを推定する訳抜け推定部、をさらに備え、前記ラベル系列生成部は、前記訳抜け推定部によって推定される訳抜けに基づいて、前記原言語側の語に対応する前記目的言語側の語が存在するか否かに応じたラベルを決定するものである。
【0010】
[3]また、本発明の一態様は、上記の翻訳装置において、前記対訳文対に含まれる前記原言語文と前記目的言語文との形態素解析処理を行うことによって、それぞれ、前記原言語側の語の列と前記目的言語側の語の列とを求める形態素解析部、をさらに備えるものである。
【0011】
[4]また、本発明の一態様は、上記の翻訳装置において、前記ラベル系列生成部は、前記原言語側の語が内容語であって且つ当該原言語側の語に対応する前記目的言語側の語が存在しない場合には当該原言語側の語については第1ラベルを決定し、その他の原言語側の語については前記第1ラベルとは異なる第2ラベルを決定するものである。
【0012】
[5]また、本発明の一態様は、上記の翻訳装置において、前記ラベル系列生成部は、翻訳実行モードにおいて、前記原言語で記述された翻訳対象文について、前記翻訳対象文に対応する語の列に含まれる各々の翻訳対象の語について、前記第2ラベルを決定して、前記翻訳対象文に対応する語の列に対応する翻訳対象文用のラベルの列を生成し、前記制御部は、翻訳実行モードにおいて、前記翻訳対象文に対応する語の列と前記翻訳対象文用のラベルの列とに基づく入力側データを、前記機械翻訳部の前記モデルが処理するように制御するものである。
【0013】
[6]また、本発明の一態様は、上記の翻訳装置において、前記ラベル系列生成部は、翻訳実行モードにおいて、前記翻訳対象の語のうち、前記モデルの学習時にはすべて前記第1ラベルのみが対応付けられた語については、前記第2ラベルに代えて前記第1ラベルを決定するものである。
【0014】
[7]また、本発明の一態様は、上記の翻訳装置において、前記ラベル系列生成部は、前記原言語側の語が内容語であるか機能語であるかにも応じて異なる前記ラベルを決定するものである。
【0015】
[8]また、本発明の一態様は、コンピューターを、上記の[1]から[7]までのいずれかに記載の翻訳装置、として機能させるためのプログラムである。
【発明の効果】
【0016】
本発明によれば、学習データの対訳文対において原言語文の内容に対して目的言語文の内容が不足している場合にも、そのような学習データを用いた学習を行い、訳抜けがより起こりにくい翻訳処理を実現することが可能となる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施形態による翻訳装置の概略機能構成を示すブロック図である。
【
図2】同実施形態による翻訳装置がモデルの学習を行うための学習データ内の対訳文の例を示す概略図である。
【
図3】同実施形態において用いる学習データ内の対訳文例について、訳抜け推定部が推定する訳抜けの状況を示す概略図である。
【
図4】同実施形態における原言語文の語の系列と、ラベル系列生成部が生成したラベル系列との対応関係を示す概略図である。
【
図5】同実施形態による翻訳装置に含まれるラベル系列生成装置の、全体的な処理(ラベル系列の生成)の手順を示すフローチャートである。
【
図6】同実施形態による翻訳装置の学習時に、対訳文対が持つ原言語文(語の列)およびラベル列をエンコードする処理の流れを示す概略図である。
【
図7】同実施形態による翻訳装置の翻訳処理時に、翻訳対象文(語の列)およびラベル列をエンコードする処理の流れを示す概略図である。
【
図8】同実施形態による翻訳装置の翻訳処理時の、入力データ(翻訳対象文)と、関連するラベル系列との関係を示す概略図である。
【発明を実施するための形態】
【0018】
次に、本発明の実施形態について、図面を参照しながら説明する。本実施形態の翻訳装置は、自然言語で記述された文の他言語への翻訳(機械翻訳処理)を行うものである。機械翻訳処理の代表的な手法は、学習データ(訓練データ)を用いてモデル(翻訳モデル)機械学習を行う手法である。学習データとしては、対訳文対のデータが用いられる。対訳文対がノイズを含むものである場合に、翻訳の精度に影響を与えることがある。本実施形態は、そのようなノイズの影響を抑えようとするものである。なお、翻訳対象である文が記述されている言語を原言語(source language)と呼ぶ。翻訳対象文は、原言語文とも呼ばれる。また、翻訳後の文が記述される言語を目的言語(target language)と呼ぶ。翻訳結果等の、目的言語で書かれた文は、目的言語文とも呼ばれる。
【0019】
本実施形態では、前述の課題を解決するために、学習データ中において、目的言語文に含まれない内容と目的言語文に含まれる内容とを区別するためのタグ情報を、原言語文中の各単語に対応させて追加する。学習時(学習モードで翻訳装置が機能するとき)には、原言語文の語の系列とともに、このタグの系列をも、入力データとして同時に学習する。翻訳時(翻訳実行モードで翻訳装置が機能するとき)には、入力文(翻訳対象文)中の単語に対して、目的言語でその内容が含まれることを表すタグを、入力文中の各単語に対応させて追加して翻訳する。
【0020】
具体的には、学習データの対訳文対の集合において、原言語文の内容に対して、目的言語文の内容が不足している対訳文対が多く存在している場合、そのような学習データで学習したモデルを用いて翻訳を行うと、入力文の内容に対して、出力文の内容が不足しやすい(訳抜けが発生しやすい)傾向が出る。そこで、上で説明したタグの系列を用いて、モデルの学習と、翻訳の実行とを行うようにする。これによって、本実施形態では、学習データの対訳文対において原言語文の内容に対して目的言語文の内容が不足している傾向があっても、訳抜けの少ない翻訳を実現することが可能となる。
【0021】
なお、本実施形態では、一例として、ニューラル機械翻訳(NMT)の手法を用いる。ただし、ニューラル機械翻訳以外の手法を用いて、翻訳のためのモデルを構築するようにしてもよい。
【0022】
また、以下においては、原言語を日本語として、目的言語を英語とした場合の例に基づいて説明する。しかしながら、原言語や目的言語は、他の言語であってもよい。例えば、原言語や目的言語は、ドイツ語、フランス語、ロシア語、スペイン語、イタリア語、オランダ語、中国語、韓国語、アラビア語、ペルシャ語、あるいはその他の言語であってもよい。
【0023】
図1は、本実施形態による翻訳装置の概略機能構成を示すブロック図である。図示するように、翻訳装置1は、ラベル系列生成装置10と、翻訳対象文取得部20と、単語ID変換部30と、ラベルID変換部40と、ニューラル機械翻訳部60と、出力部70と、制御部90とを含んで構成される。また、上記のラベル系列生成装置10は、学習データ取得部11と、形態素解析部12と、訳抜け推定部13と、ラベル系列生成部14とを含むように構成される。また、上記のニューラル機械翻訳部60は、エンコーダー部50と、エンコーダー部61と、デコーダー部62とを含むように構成される。これらの各機能部は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0024】
なお、
図1では、翻訳装置1が1つの装置である場合を記載しているが、翻訳装置1は、複数の筐体に分散した機能を持つ装置ないしはシステムであってもよい。また、翻訳装置1を構成する複数の機能が、通信ネットワークを介して、近距離で、または遠隔で、接続される形態であってもよい。
【0025】
翻訳装置1は、主として2つのモードで作動する。それらは、学習モードと、翻訳実行モードである。学習モードにおいては、翻訳装置1は、外部から取得する学習データを用いて、ニューラル機械翻訳部60が持つモデルの機械学習を行う。また、翻訳実行モードにおいては、翻訳装置1は、学習済のモデルを用いて、外部から取得する翻訳対象文の翻訳処理を実行する。これらのモードの違いに応じて異なる処理を実行するように、翻訳装置1内の制御部90が、翻訳装置1を制御する。翻訳装置1は、学習モードで作動するときには、モデルの機械学習を行う学習装置としての役割を果たす。つまり、翻訳装置1は、学習モードで学習装置として機能する際には、実際の翻訳対象文の翻訳処理を行うわけではないが、翻訳処理を行うための本実施形態特有のモデルの構築を実現する。翻訳装置1が持つ各部の機能は、次に説明する通りである。
【0026】
ラベル系列生成装置10は、ニューラル機械翻訳部60に入力する入力側の文(原言語文)に関する付加情報であるラベル系列を生成する。ラベル系列は、原言語文を構成する各々の語に対応するタグの列である。個々のタグは、対応する原言語文内の個々の語が、目的言語文側において対応する語を持つか否かを表す情報である。ラベル系列生成装置10の内部の機能は、次に説明する通りである。
【0027】
学習データ取得部11は、学習モードにおいて、例えば外部から、学習データを取得する。学習データは、ニューラル機械翻訳部60のモデルの学習を行うためのデータである。学習データは、具体的には、原言語文と目的言語文との対(対訳文対)の集合である。対訳文対において、原言語文と目的言語文との意味は、概ね一致することが想定される。但し、原言語文と目的言語文との間で、一部の意味の不一致や、片側における過不足等が存在することもある。これらはノイズの一種である。通常の機械翻訳では、このようなノイズは翻訳精度の低下を招くが、本実施形態では、後述するタグを用いて、翻訳の質の低下を防ぐ。
【0028】
形態素解析部12は、学習モードにおいて、対訳文対に含まれる原言語文と目的言語文との形態素解析処理を行う。これによって、形態素解析部12は、それぞれ、原言語側の語の列と目的言語側の語の列とを求める。言い換えれば、形態素解析部12は、文を分割して語の列を生成する。形態素解析部12は、形態素解析処理の結果として、分割結果である語のそれぞれに、品詞の情報を付加することができる。なお、形態素解析処理自体は、既存の技術で実現可能である。形態素解析部12は、原言語文および目的言語文のそれぞれに対応する語の列を、単語ID変換部30と、訳抜け推定部13との、両方に渡す。
【0029】
翻訳装置1が形態素解析部12を持たない構成としてもよい。この場合には、例えば、学習データ取得部11が、形態素解析済みの原言語文および目的言語文を取得する。言い換えれば、学習データ取得部11が、原言語文および目的言語文のそれぞれに対応する語の列を取得する。
【0030】
訳抜け推定部13は、学習モードにおいて、学習データ取得部11が取得した対訳文対の、原言語文と目的言語文との間での訳抜けを推定する。言い換えれば、訳抜け推定部13は、原言語側の語のそれぞれについて、目的言語側に対応する語が存在するか否かを推定する。訳抜け推定部13は、具体的には、逆翻訳確率を用いて訳抜けを推定したり、原言語文と目的言語文との間での単語対応を基に訳抜けを推定したり、それら両方の手法を併用して訳抜けを推定したりする。単語対応に基づく訳抜け推定の方法は、原言語文に対応する前記原言語側の語の列に含まれる語と、目的言語文に対応する前記目的言語側の語の列に含まれる語との間の、対応関係を推定する方法を用いる。なお、訳抜け推定部13の機能自体は、既存技術によって実現可能である。訳抜け推定部13の処理については、後でも説明する。
【0031】
ラベル系列生成部14は、学習モードにおいて、次のように動作する。ラベル系列生成部14は、原言語文と目的言語文とで成る対訳文対において、原言語文に対応する原言語側の語の列に含まれる各々の原言語側の語について、目的言語文に対応する目的言語側の語の列に対訳として対応する目的言語側の語が存在するか否かに応じたラベルを決定する。そして、ラベル系列生成部14は、このラベルの列(ラベル系列)を生成する。この場合、語とラベルとは、1対1に対応する。つまり、ラベル系列生成部14は、原言語側の語の列に対応するラベルの列を生成する。
【0032】
また、後述するように、ラベル系列生成部14は、学習モードにおいて、例えば、次のようにラベル系列を生成する。ラベル系列生成部14は、原言語側の語が内容語であって且つ当該原言語側の語に対応する目的言語側の語が存在しない場合には当該原言語側の語については第1ラベルを決定する。この第1ラベルとは、後述する例においては、ラベル「N」である。ラベル系列生成部14は、その他の原言語側の語については上記の第1ラベルとは異なる第2ラベルを決定する。この第2ラベルとは、後述する例においては、ラベル「e」である。言い換えれば、原言語側の語に第2ラベルが割り当てられるのは、その語が内容語ではない場合(つまり機能語である場合)、またはその語が内容語であって且つその語に対応する目的言語側の語が存在する場合、である。
【0033】
ラベル系列生成部14は、翻訳実行モードにおいて、原言語で記述された翻訳対象文について、翻訳対象文に対応する語の列に含まれる各々の翻訳対象の語について、前記第2ラベルを割り当てる。ラベル系列生成部14は、翻訳対象文に対応する語の列に対応する翻訳対象文用のラベルの列を生成する。
【0034】
翻訳対象文取得部20は、翻訳実行モードにおいて、翻訳対象文(原言語文)を外部から取得する。また、翻訳対象文取得部20は、翻訳対象文の形態素解析処理を行ってよい。この場合、翻訳対象文取得部20は、翻訳対象文に対応する語の列を、形態素解析処理の結果として出力する。また、翻訳対象文取得部20は、自らが形態素解析処理を行う代わりに、形態素解析処理済みのデータ(語の列に既に分割された翻訳対象文)を外部から取得するようにしてもよい。翻訳対象文取得部20は、翻訳対象文に対応する語の列を、単語ID変換部30に渡す。
【0035】
単語ID変換部30は、文に含まれる語を、単語IDに変換する。具体的には、単語ID変換部30は、形態素解析部12から渡される語の列や翻訳対象文取得部20から渡される語の列に含まれる各々の語を、単語IDに変換する。単語ID変換部30は、例えば不図示の辞書データ等を参照することにより、語から単語IDへの変換を行う。単語ID変換部30は、変換結果である単語ID列を、ニューラル機械翻訳部60内のエンコーダー部50に渡す。
【0036】
ラベルID変換部40は、ラベル系列に含まれるラベルを、ラベルIDに変換する。このラベル系列は、ラベル系列生成部14によって生成されるものである。ラベルID変換部40は、変換結果であるラベルID列を、ニューラル機械翻訳部60内のエンコーダー部50に渡す。
【0037】
エンコーダー部50は、単語ID変換部30が出力する単語ID列と、ラベルID変換部40が出力するラベルID列とを、エンコード処理し、エンコーダー部61およびデコーダー部62に渡す形式のデータを生成する。
【0038】
なお、単語ID変換部30、ラベルID変換部40、およびエンコーダー部50の処理については、後で
図6、
図7も参照しながら、さらに説明する。
【0039】
ニューラル機械翻訳部60は、原言語の文あるいは文章を目的言語の文あるいは文章に翻訳する処理を行う。ニューラル機械翻訳部60は、翻訳のためのモデルを持つ。モデルは、更新可能(機械学習可能)なデータあるいはパラメーターであり、入力文(原言語文)と出力文(目的言語文)との間での表現の関係を表す。モデルは、ニューラルネットワークの重みパラメーターを用いて実現される。学習データを用いてモデルの学習を行うことができる。学習は、誤差逆伝播法を用いて行うことができる。なお、ニューラルネットワーク以外のモデルに置き換えて機械翻訳処理を実現するようにしてもよい。ニューラル機械翻訳部60は、入力文および出力文を、それぞれ、語の列として扱う。ここでの語とは、辞書に登録されている単位の語や、複数の語からなる表現や、1つの語を複数の部分に分割したもの(サブワード、subword)や、日本語の場合における句読点や英語の場合におけるカンマあるいはピリオド等の区切り記号等を、すべて含む。これらをまとめて「語」として扱う。なお、語のことを単語と呼ぶ場合もある。語は、処理に適した適切な形(一例として、ワンホットベクトル)で、入出力され、あるいは処理される。なお、ニューラル機械翻訳の手法自体は、既存技術によって実現可能である。本実施形態の特徴は、ニューラル機械翻訳の際に、付加的な情報(後で説明する「タグ」)を付加することにより、翻訳の質を高めることである。
【0040】
エンコーダー部61は、ニューラル機械翻訳部60に入力されるデータに基づくエンコード処理を行う。つまり、エンコーダー部61は、原言語文の語の系列に対応する情報を入力して、エンコード処理の結果として状態ベクトルを生成し、その状態ベクトルをデコーダー部62に渡す。
【0041】
デコーダー部62は、エンコーダー部61から渡される状態ベクトルに基づくデコード処理を行う。つまり、デコーダー部62は、上記の状態ベクトルを入力して、デコード処理の結果として、目的言語文の語の系列に対応する情報を出力する。
【0042】
出力部70は、翻訳実行モードにおいて、翻訳処理の結果である翻訳文(あるいは翻訳候補文)を、外部に出力する機能を持つ。なお、この翻訳文は、目的言語文である。
【0043】
制御部90は、翻訳装置1が持つ各部の動作を制御する。特に、制御部90は、翻訳装置1の動作モードに応じた制御を行う。主なモードは、前述の通り、学習モードと、翻訳実行モードである。
【0044】
学習モードにおいて、制御部90は、原言語側の語の列とラベルの列とに基づく入力側データと、目的言語側の語の列に基づく出力側データとを用いて、ニューラル機械翻訳部60のモデルの機械学習を行うように翻訳装置1を制御する。そのために、制御部90は、学習データ取得部11が学習データを取得し、形態素解析部12が原言語文および目的言語文の形態素解析処理をするように制御する。また、制御部90は、訳抜け推定部13が原言語文と目的言語文との間での訳抜けの推定を行い、ラベル系列生成部14が推定された訳抜けの推定結果を表すラベル系列を生成するよう制御する。
【0045】
翻訳実行モードにおいて、制御部90は、翻訳対象文に対応する語の列と翻訳対象文用のラベルの列とに基づく入力側データを、ニューラル機械翻訳部60のモデルが処理するように制御する。これによって、ニューラル機械翻訳部60は、翻訳対象文の翻訳処理を実行する。
【0046】
[学習モードでの処理]
図2は、翻訳装置1が学習を行うための学習データ内の対訳文の例を示す概略図である。図示するように、この対訳文において、原言語は日本語であり、目的言語は英語である。具体的には、原言語文は、「千葉県館山市の砂浜では7日午後、カンボジア国籍の貨物船と、無人の台船が砂浜に乗り上げた。」という文である。また、目的言語文は、「On Sunday afternoon, a Cambodian-registered cargo ship ran aground in Tateyama , Chiba Prefecture.」という文である。
【0047】
訳抜け推定部13は、これらの原言語文と目的言語文の間での訳抜けを推定により求める。2言語間(対訳文)での訳抜けの推定自体は、既存技術を用いて行うことが可能である。例えば、訳抜けの推定は下に挙げる参考文献にも記載されている。
参考文献:後藤功雄,田中英輝,ニューラル機械翻訳での訳抜けした内容の検出,自然言語処理,2018年25巻5号,p.577-597,2018年12月15日発行,URL:https://www.jstage.jst.go.jp/article/jnlp/25/5/25_577/_pdf/-char/ja
【0048】
また、そのような単語の訳抜けの推定に利用できる対応関係の推定の技術は、例えば、下に列挙する参考文献にも記載されている。
参考文献:Xintong Li,Guanlin Li,Lemao Liu,Max Meng,and Shuming Shi,On the word alignment from neural machine translation,In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics,pp.1293-1303,Florence,Italy,Association for Computational Linguistics,2019年7月.
参考文献:Franz Josef Och,Hermann Ney,A systematic comparison of various statistical alignment models,Computational Linguistics,Vol. 29,No. 1,pp. 19-51,2003年.
参考文献:J.-T. Peter,A. Nix, and H. Ney, Generating alignments using target foresight in attention-based neural machine translation,PBML,108(1):27-36,2017年.
【0049】
訳抜け推定部13は、上記の参考文献にも記載されているように、大量の対訳データから抽出される統計的性質に基づいて、対訳文対にける訳抜けを推定する。また、訳抜け推定部13は、訳抜けを推定する際に、文法上の語の位置付けの知識を用いるようにしてもよい。
【0050】
図3は、上で説明した対訳文例について、訳抜け推定部13が原言語側と目的言語側との間での単語の対応関係を用いて訳抜けを推定する場合の単語対応関係を示す概略図である。なお、この図に示す結果を求める方法は、逆翻訳確率を用いる推定方法ではない。この図に示す結果は、訳抜け推定部13が、原言語側と目的言語側との間での単語の対応関係を表す。この図において、左側の系列は原言語側の形態素の系列であり、右側の系列は目的言語側の形態素の系列である。なお、訳抜け推定部13が訳抜けを推定する前に、形態素解析部12が、原言語文および目的言語文それぞれの形態素解析処理を行っている。また、図において、単語間を結ぶ線(実線)は、原言語側と目的言語側との間で推定された対応関係を示す。図示する例では、「千葉」と「Chiba」、「県」と「Prefecture」、「館山/市」と「Tateyama」、「7/日」と「Sunday」、「午後」と「afternoon」、「カンボジア」と「Cambodian」、「国籍」と「registered」、「貨物」と「cargo」、「船」と「ship」、「乗り上げた」と「ran aground」がそれぞれ対応していると、訳抜け推定部13は推定している。なお、この図において、目的言語側の語に対応付いていない原言語側の語(ただし、自立語(内容語)のみ)には、アスタリスクを付けて示している。即ち、原言語文の中の「砂浜」、「無人」、「台船」、「砂浜」は、目的言語側の語に対応付けられていない。
【0051】
なお、訳抜け推定部13は、逆翻訳確率を用いて訳抜けを推定する場合には、次のような処理を行う。即ち、訳抜け推定部13は、対訳文のうちの目的言語文を逆翻訳システムに入力し、対訳文の原言語文を強制的に出力させた時の各単語の生成確率を計算する。この原言語文の生成確率を逆翻訳確率と呼ぶ。ここで、逆翻訳システムとは、原言語と目的言語を互いに逆にした機械翻訳システムである。そして、訳抜け推定部13は、原言語文の各単語の逆翻訳確率が閾値以下のものを訳抜けしていると推定する。
【0052】
ラベル系列生成部14は、上記の訳抜け推定部13による推定結果に基づいて、学習データ内の原言語文に対応するラベル系列を生成する。具体的には、ラベル系列生成部14は、原言語文を構成する語等(句読点等も含む)のうち、自立語(内容語)で、且つ目的言語文側に対応する語がない語に、ラベル「N」(第1ラベル)を対応させる。また、ラベル系列生成部14は、原言語文を構成する語等のうち、その他の語にラベル「e」(第2ラベル)を対応させる。
【0053】
図4は、原言語文の語の系列と、ラベル系列生成部14が生成したラベル系列との対応関係を示す概略図である。原言語文の語の系列は、
図3においても示したとおりである。そして、
図3においてアスタリスクの付いていた語には、ラベル系列生成部14は、ラベル「N」を対応付ける。また、原言語文側のその他の語には、ラベル系列生成部14は、ラベル「e」を対応付ける。つまり、ラベル系列生成部14は、「千葉/県/館山/市/の/砂浜/で/は/7/日/午後/、/カンボジア/国籍/の/貨物/船/と/、/無人/の/台船/が/砂浜/に/乗り上げた/。」という語の系列に対応して、「e/e/e/e/e/N/e/e/e/e/e/e/e/e/e/e/e/e/e/N/e/N/e/N/e/e/e」というラベル系列を生成する。なお、「/」(スラッシュ)は、語の区切りの箇所に対応する。
【0054】
ラベル系列生成部14が学習データに関して生成するこのラベル系列は、原言語側の語のそれぞれについて、目的言語側に対応する語があるか否かの情報を表す。ラベル系列生成部14が上記のようなラベル系列を生成することにより、本実施形態におけるニューラル機械翻訳部60は、学習データが持つ対訳文の対応関係だけではなく、このラベル系列が表す情報をも学習することが可能となる。
【0055】
図5は、翻訳装置1が機械学習を行うための、ラベル系列生成装置10の全体的な処理の手順を示すフローチャートである。以下、このフローチャートに沿って、ラベル系列生成装置10の処理の手順について説明する。
【0056】
まずステップS11において、学習データ取得部11は、学習データを取得する。学習データは、原言語文と目的言語文の対(対訳文対)の集合として成るデータである。原言語文および目的言語文のそれぞれのデータは、テキストのデータである。
【0057】
次にステップS12において、形態素解析部12は、ステップS11で取得した学習データ内の原言語文と目的言語文のそれぞれについて、形態素解析処理を行う。形態素解析処理自体は、既存の技術を用いて行うことができる。形態素解析処理の結果、原言語文および目的言語文のそれぞれは、形態素(語)に分割される。また、形態素解析処理の結果、分割された形態素の各々には、品詞の情報が付与される。一例として、日本語の「千葉県館山市の砂浜では7日午後、カンボジア国籍の貨物船と、無人の台船が砂浜に乗り上げた。」という文の形態素解析を行うと、「千葉(固有名詞)/県(名詞)/館山(固有名詞)/市(名詞)/の(助詞)/砂浜(名詞)/で(助詞)/は(助詞)/7(数詞)/日(名詞)/午後(名詞)/、(句読点)/カンボジア(固有名詞)/国籍(名詞)/の(助詞)/貨物(名詞)/船(名詞)/と(助詞)/、(句読点)/無人(名詞)/の(助詞)/台船(名詞)/が(助詞)/砂浜(名詞)/に(助詞)/乗り上げた(動詞)/。(句読点)」という、品詞情報を伴った形態素の列を出力する。本ステップでは、日本語以外の言語で記述された文についても、同様に、形態素解析処理が行われる。
【0058】
次にステップS13において、訳抜け推定部13は、原言語文における語と、目的言語文における語との間での訳抜けを推定する。訳抜けを推定する方法については、既に説明した通りである。訳抜け推定部13は、原言語文と目的言語文との間での訳抜けの情報を出力する。
【0059】
訳抜けの情報の一例は、ラベル系列である。訳抜け推定部13が逆翻訳確率に基づいて訳抜けを推定する場合、訳抜けを表すラベル系列を推定するために利用する情報は、逆翻訳確率である。訳抜け推定部13が単語の対応関係に基づいて訳抜けを推定する場合、訳抜けを表すラベル系列を推定するために利用する情報は、原言語文と目的言語文との間での単語の対応関係の情報である。
【0060】
次にステップS14において、ラベル系列生成部14は、ステップS13の処理の結果に基づいて、原言語側の語の系列に対応して、ラベル系列を生成する。ラベル系列の生成の既に説明した通りである。ラベル系列を構成する各ラベルは、原言語側の語に対応する。ラベルは、原言語側の語が、目的言語側の語に対応付かない自立語であるか、その他の語(目的言語側の語に対応付く自立語、あるいは目的言語側の語に対応付くか否かにかかわらず付属語)であるかを表す情報である。
【0061】
[生成されたラベル列の利用方法]
次に、ラベル系列生成部14が生成するラベル系列の情報の処理方法について、学習時と、翻訳時との、それぞれについて説明する。
【0062】
図6は、翻訳装置1の学習時に、対訳文対が持つ原言語文およびラベル列をエンコードする処理の流れを示す概略図である。ラベル系列生成部14が生成したラベル系列の情報は、前述の通り、原言語文に含まれる語が、目的言語文内の語に対応付いているか否かを表している。図示するように、単語ID変換部30は、形態素解析部12が出力した単語列(学習データが持つ原言語文に基づく)を、単語IDの列に変換する。図示する例は、原言語文の一部のみを表しており、形態素解析部12が出力する単語列は「・・・/砂浜/で/は/・・・」(「・・・」は前後の省略を表す。以下において同様。)である。単語IDは、各単語を識別するために予め定められた識別子であり、例えば、整数値として表される。本例では、単語ID変換部30は、上記の単語列を、「・・・/107/13/15/・・・」という単語ID列に変換し、出力する。一方、上記の単語列に対応してラベル系列生成部14が生成したラベル列は「・・・/N/e/e/・・・」である。ラベルID変換部40は、ラベル系列生成部14が出力したラベル列を、ラベルIDの列に変換する。ラベルIDは、ラベルの値に対応する整数値として表される。図示する例では、ラベル「N」に対応するラベルIDは2であり、ラベル「e」に対応するラベルIDは1である。つまり、ラベルID変換部40は、上記のラベル列を、「・・・/2/1/1/・・・」というラベルID列に変換し、出力する。エンコーダー部50は、単語ID変換部30が出力した単語ID列と、ラベルID変換部40が出力したラベルID列とを用いて、エンコード処理を行う。エンコーダー部50は、エンコード処理の結果であるID列を出力する。このエンコーダー部50からの出力は、エンコーダー部61およびデコーダー部62に渡される。なお、エンコーダー部50の処理内容の詳細については、後述する。
【0063】
図7は、翻訳装置1が翻訳処理を行う際に、翻訳対象文をエンコードする処理の流れを示す概略図である。図示するように、単語ID変換部30は、翻訳対象文取得部20が出力した単語列を、単語IDの列に変換する。図示する例では、翻訳対象文取得部20が出力する単語列は「砂浜/に/行く」であり、この単語列は、翻訳対象文取得部20が取得した翻訳対象文について形態素解析処理を行った結果である。本例では、単語ID変換部30が出力する単語IDの列は「107/7/61」である。また、翻訳時には、ラベル系列生成部14は、上記の単語列が含む各単語に対応してラベル「e」を生成する。これは、訳抜けを防ぐことを意図したものである。即ち、ラベル系列生成部14は、ラベル列「e/e/e」を出力する。ラベルID変換部40は、上記のレベル列「e/e/e」をラベルID列に変換する。即ち、ラベルID変換部40は、ラベルID列「1/1/1」を出力する。エンコーダー部50は、翻訳処理時においても、上記の学習時と同様に、単語ID変換部30が出力した単語ID列と、ラベルID変換部40が出力したラベルID列とを用いて、エンコード処理を行う。エンコーダー部50からの出力は、エンコーダー部61への入力として用いられる。エンコーダー部50の処理内容の詳細については、後述する。
【0064】
なお、
図6および
図7の中で示した単語IDやラベルIDの値は、単なる例である。単語IDやラベルIDの値として、これらの図に例示したもの以外を用いてもよい。また単語IDやラベルIDの値は、整数には限定されない。単語IDやラベルIDの値は、個々の単語やラベルを一意に識別できる情報であればよい。単語IDやラベルIDの値は、例えば、実数であってもよい。
【0065】
ニューラル機械翻訳部60は、上で説明した単語IDやラベルIDを用いた処理を行う。具体的には、ニューラル機械翻訳部60に翻訳対象文(入力文、原言語文)が入力されると、ニューラル機械翻訳部60は翻訳文候補の確率を計算する。ニューラル機械翻訳部60は、翻訳処理の最初に、翻訳対象文に含まれる各単語を、単語の分散表現に変換する。翻訳対象文は、下の式(1)で表わされるx(太字)である。
【0066】
【0067】
また、翻訳候補文は、下の式(2)で表わされるy(太字)である。
【0068】
【0069】
ここで、xjとyiとは、それぞれ、単語IDを保持するワンホット(one-hot)ベクトルである。ただし、下の式(3)および式(4)の通りである。また、TxおよびTyは、それぞれ、翻訳対象文および翻訳候補文の語数(文に対応する系列長)である。
【0070】
【0071】
【0072】
なお、vxは原言語語彙数であり、vyは目的言語語彙数である。
翻訳候補文y(太字)の確率は、下の式(5)で計算される。
【0073】
【0074】
式中の各条件付確率の計算方法としてはいくつかの方法があり、どの方法を用いてもよい。なお、条件付確率の計算方法自体は、既存技術により可能であり、例えば、先行技術として説明した非特許文献1や非特許文献2にも記載されている。いずれの計算方法を用いた場合も、最初に翻訳対象文に含まれる各単語IDであるxjを、単語embedding行列Exを用いることにより、単語の分散表現rjに変換する。つまり、翻訳対象文は、単語の分散表現rjの系列に変換される。分散表現rjは、下の式(6)で計算される。
【0075】
【0076】
行列Exは、hw行vx列の行列である。hwは、分散表現rjのベクトルサイズである。分散表現rjは、列ベクトルである。即ち、下の式(7)および式(8)の通りである。
【0077】
【0078】
【0079】
また、原言語文に対応するラベル系列l(太字)は、下の式(9)で表わされる。
【0080】
【0081】
式(9)におけるljはラベルIDの情報を表すワンホットベクトルであり、式(10)の通りである。
【0082】
【0083】
なお、るvlは、ラベルの種類数である。ここで、ラベルembedding行列Elを用いて、各ラベルを分散表現ujに変換する。行列Elは、hl行vl列の行列である。hlは、分散表現ujのベクトルサイズである。分散表現ujは、列ベクトルである。即ち、下の式(11)および式(12)の通りである。
【0084】
【0085】
【0086】
以上のように、単語ID変換部30が出力する単語IDの列を基に、単語IDに対応するワンホットベクトルの分散表現rjの列を求めることができる。また、ラベルID変換部40が出力するラベルIDの列を基に、ラベルIDに対応するワンホットベクトルの分散表現ujの列を求めることができる。
【0087】
エンコーダー部50は、これらのベクトルrjおよびujを基に、新たなベクトルrj(チルダ)を生成する。つまり、このベクトルrj(チルダ)の列は、翻訳対象文(原言語文)の単語列の情報と、各単語に対応する語に対応する目的言語文内の語が存在するか否かの情報とを持つ。本実施形態における以後の処理(エンコーダー部61やデコーダー部62の処理)は、ベクトルrj(チルダ)の列を用いる点を除いては、既存技術による通常のニューラル機械翻訳の手法(機械学習の手法、および学習済のモデルを用いた翻訳処理の手法)を用いることができる。
【0088】
つまり、学習時には、ベクトルrj(チルダ)の列をニューラルネットワークへの入力として、その対訳文対の相手方である目的言語文の語の列の情報と、当該ニューラルネットワークからの出力との差を取る。そして、その差に基づいて誤差逆伝播法(backpropagation)によりモデルの学習を行う。また、翻訳時には、全ラベルが「e」(原言語文内の語に対応する目的言語文側の語が存在することを表す)であるラベル系列を生成し、そのラベル系列に基づく上記のベクトルrj(チルダ)の列を、学習済のモデル(ニューラル機械翻訳部60)に入力し、そのときの出力を翻訳結果として出力する。
【0089】
エンコーダー部50が、ベクトルrjおよびujを基に、ベクトルrj(チルダ)を生成する方法は、次の通りである。第1の方法は、下の式(13)によってベクトルrj(チルダ)を生成する方法である。また、第2の方法は、下の式(14)によってベクトルrj(チルダ)を生成する方法である。
【0090】
【0091】
【0092】
第1の方法では、エンコーダー部50は、式(13)に示したように、ベクトルrjおよびujを連結することにより、ベクトルrj(チルダ)を生成する。この第1の方法では、ベクトルrj(チルダ)のサイズが、ベクトルrjのサイズとは異なることとなる。
【0093】
第2の方法では、エンコーダー部50は、式(14)に示したように、ベクトルrjとujとの和をとることにより、ベクトルrj(チルダ)を生成する。なお、前述の通り、rjのベクトルサイズはhwであり、ujのベクトルサイズはhlである。したがって、両ベクトルのサイズが合わない場合には、大きい方のサイズに合わせたうえで、サイズが小さい方のベクトルの要素を、適宜、定数(例えばゼロ)で埋めてもよい。通常の場合には、rjのベクトルサイズはhwに、ujのベクトルサイズはhlを合わせる。
【0094】
[翻訳時の処理例]
図8は、翻訳装置1の翻訳処理時の入力データと、関連するラベル系列との関係を示す概略図である。本例において、入力されるデータ(翻訳対象文)は、「千葉県館山市の砂浜で花火大会がありました。」というテキストである。翻訳対象文取得部20は、この翻訳対象文の入力を受け付ける。そして、翻訳対象文取得部20は、この翻訳対象文の形態素解析処理を行う。その結果、翻訳対象文は、語に分割され、「千葉/県/館山/市/の/砂浜/で/花火/大会/が/あり/まし/た/。」(スラッシュは、分割箇所)という語の列に変換される。この語列は、
図8の左側の縦の並びに相当する。ラベル系列生成部14は、前述の通り、翻訳時には、各語に対応付くラベル「e」のみから成るラベル列を生成する。このラベル列は、
図8の右側の縦の並びに相当する。図示するように各々の語(ここでは、句読点等も語として扱う)が、ラベル「e」に対応する。これは、翻訳対象文中のすべての語に対して、出力文(翻訳文、あるいは翻訳候補文)中に訳語が含まれるようにすることを意味する。言い方を変えれば、モデルが適切なラベルで学習されていることを前提として、翻訳時のラベル「e」は、入力文中のその語に対応する訳語が含まれるような出力文を出力させる作用を生じさせる。学習時とは異なり、ラベル系列生成部14が生成するラベル系列の中に、ラベル「N」は含まれない。
【0095】
図8に示したような、翻訳対象文とラベル列とに基づくデータをニューラル機械翻訳部60に入力することにより、ニューラル機械翻訳部60は、訳抜けの少ない(あるいは、ない)出力文を出力しやすくなる。
【0096】
例えば、入力文中の「砂浜」に対応する出力文中の語が省略される傾向のある学習データを用いてモデルを学習した場合、従来技術と本実施形態とで、結果において次のような違いが出る。
従来技術によるニューラル機械翻訳の処理では、「砂浜」に対応する訳語が省略されてしまって、例えば、「There was a fireworks display in Tateyama City, Chiba Prefecture.」などといった翻訳文が出力されやすい。この翻訳文の例は、「砂浜」に相当する語を含んでいない。
一方、本実施形態では、訳抜けは訳抜けとして機械学習が行われるため、訳抜けがないように明示したラベル列の情報をニューラル機械翻訳部60に入力することにより、例えば、「There was a fireworks display on the sandy beach in Tateyama City, Chiba Prefecture.」などといった翻訳文が出力されやすい。この翻訳文の例は、「砂浜で」に対応する「on the sandy beach」という表現を含んでいる。
【0097】
なお、上述した実施形態における翻訳装置の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0098】
以上、複数の実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。なお、可能な限りにおいて、複数の変形例を組み合わせて実施してもよい。
【0099】
[第1変形例]
第1変形例では、翻訳装置1が、訳抜け推定部13を持たないように構成する。この場合には、代わりに、原言語文側と目的言語文側との間での訳抜けの情報を、外部からラベル系列生成部14に対して指示するようにする。その一例として、原言語側の語の列と目的言語側の語の列とを人が(例えば画面等で)見て、語の対応関係の情報を人が(例えばキーボードやマウス等を用いて)入力し、ラベル系列生成部14に渡すようにしてもよい。このような場合にも、ラベル系列生成部14は、原言語側の語ごとのラベルからなるラベル系列を生成することができる。
【0100】
[第2変形例]
第2変形例では、翻訳実行モードにおいて、ラベル系列生成部14が、ラベル「e」のみから成るラベル系列を生成する代わりに、他のラベル系列を生成するようにする。具体的には、ラベル系列生成部14は、学習時のラベル付与の結果を記憶しておき、その記憶に基づいて翻訳実行モードにおけるラベル系列を生成する。即ち、ラベル系列生成部14は、モデルの学習時にはすべてラベル「N」(第1ラベル)のみが対応付けられた語については、翻訳実行モードにおいてもラベル「e」(第2ラベル)に代えてラベル「N」(第1ラベル)を割り当てるよう決定する。この変形例を実施するためには、学習時の状況を語ごとに記憶する必要があるが、翻訳精度の向上には寄与することが確認されている。
【0101】
[第3変形例]
第3変形例のラベル系列生成部14は、学習モードにおいて、原言語側の語が内容語であるか機能語であるかにも応じて異なるラベルを決定する。言い換えれば、ラベル系列生成部14は、機能語に対応するラベルとして、内容語に対応するラベルとは別のラベルを用いるようにする。例えば、上の説明(
図4等)では、ラベル系列生成部14は、原言語文と目的言語文とで成る対訳文対において、原言語文に対応する原言語側の語の列に含まれる各々の原言語側の語について、目的言語文に対応する目的言語側の語の列に対訳として対応する目的言語側の語が存在するか否かに応じたラベルを決定していた。つまり、ラベル系列生成部14は、最大で2種類のラベルから成るラベル系列(第1ラベルおよび第2ラベル)を生成していた。これに対して、本変形例では、これら2種類のラベルのそれぞれを、さらに、機能語に対応するラベルと内容語に対応するラベルとの2種類に分ける。つまり、本変形例では、ラベル系列生成部14は、最大で4種類のラベルから成るラベル系列を生成することができる。通常は、機能語の訳抜けよりも、内容語の訳抜けのほうが、翻訳の質に大きな影響を与える。言い換えれば、通常は、内容語の訳抜けよりは、機能語の訳抜けのほうが許容されがちである。本変形例のように、内容語と機能語とで異なるラベルを使うことにより、ニューラル機械翻訳部60は、語の種類(内容語、機能語)の違いにも応じた翻訳を行うことができるようになる。
【0102】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0103】
[実証実験]
本実施形態の効果を確かめるための実験を行った。原言語を日本語として、目的言語を英語とした。学習データとしては、報道機関による日本語および英語のニュース記事を計約80万文対用いた。テストデータと参照訳として、日本語と英語との間の主な内容が一致している対訳文を約2000対選択して使用した。使用するニューラル機械翻訳の手法としては、Transformer(先行技術の一つとして挙げた非特許文献2)を用いた。ランダムに選択した200文の翻訳結果について、内容語の訳抜け率と繰り返し率とを、人手で調べた。実験結果は、下の表1の通りであった。
【0104】
【0105】
従来技術であるTransformerでは12.9%の内容語が訳抜けしていたが、本実施形態の手法では訳抜けが9.7%に減少した。減少率は、24.8%((12.9-9.7)/12.9)である。同じ内容を2回以上訳出する繰り返しは、従来技術および本実施形態のいずれにおいても少なかった。従来技術と比べて本実施形態のほうが、繰り返しが増加するということはなかった。以上のように、本実施形態が狙った効果が得られることが確認できた。
【産業上の利用可能性】
【0106】
本発明は、例えば、自然言語の機械翻訳を利用するあらゆる産業等において利用することができる。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0107】
1 翻訳装置
10 ラベル系列生成装置
11 学習データ取得部
12 形態素解析部
13 訳抜け推定部
14 ラベル系列生成部
20 翻訳対象文取得部
30 単語ID変換部
40 ラベルID変換部
50 エンコーダー部
60 ニューラル機械翻訳部
61 エンコーダー部
62 デコーダー部
70 出力部
90 制御部