以下、図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。また、以下の説明における本開示での実施形態は、本発明の具体例であり、特に本発明を限定する旨の記載がない限り、これらの実施形態に限定されないものとする。
まず、実施形態に係る文章翻訳装置1(文章翻訳装置)の概要について説明する。
文章翻訳装置1は、第一言語の文章である入力文章を取得(入力)すると、当該入力文章が第二言語に翻訳された文章を出力するコンピュータ装置である。第一言語は、例えば日本語であるが、他のいかなる言語であってもよい。第二言語は、第一言語とは異なる言語であり、例えば英語であるが、他のいかなる言語であってもよい。第一言語と第二言語とは同じ言語であってもよい。第一言語と第二言語とは異なる地方の方言(例えば日本における標準語と関西弁)であってもよい。言語は、自然言語に限らず、人工言語又は形式言語(コンピュータのプログラム言語など)などであってもよい。
文章翻訳装置1は、学習された学習済みモデルである翻訳モデルに基づいて、入力文章の翻訳を行う。翻訳モデルは、例えば、エンコーダデコーダモデル(別名:encoder-decoder翻訳モデル、Sequence to Sequence Model)のニューラルネットワークである。図1は、エンコーダデコーダモデルのニューラルネットワークの構造の一例を示す図である。図1に示す例では、ニューラルネットワークとして、リカレントニューラルネットワーク(Recurrent Neural Network、RNN)であるLSTM(Long Short Term Memory)が用いられていると共に、アテンション(attention)機構が用いられている。
図1に示すニューラルネットワークのエンコーダ(図1の上半分)は、第一言語の文章を入力し、中間層(隠れ状態、内部状態)を出力する。より具体的には、エンコーダは、第一言語の文章を形態素解析等により単語単位(トークン単位。「素敵」、「That」などの単位)に分割し、各単語に対応する単語ID(入力word ID)を入力層のベクトルに変換した上で順次入力し、それまでの入力内容に基づく中間層のベクトルを順次出力する(ニューラルネットワークの演算を行う)。エンコーダは、文章の終わりを示す「EOS」(End Of Sentence)などを入力した時点で、エンコーダからデコーダに、それまでの入力内容に基づく中間層のベクトルを出力する。エンコーダは概念的に、第一言語の文章を意味解析し、意味表現を抽出していると言える。
図1に示すニューラルネットワークのデコーダ(図1の下半分)は、エンコーダから出力された中間層のベクトルを入力すると、入力された中間層のベクトルに基づいて、最終的に出力する第二言語の文章のうち1単語目に対応する出力層のベクトルを出力する。出力層のベクトルは、例えば、第二言語の単語候補及び当該単語候補の尤度のリストを示す情報である。以降、N語目(Nは1以上の整数)の出力層のベクトルが示す単語候補のうち、例えば、尤度が最大の単語を抽出し、抽出した単語を自デコーダーに入力し、入力した単語とN語目の出力層のベクトルの出力を行う際に用いた中間層のベクトルとに基づいて、(N+1)語目の出力層のベクトルを出力する、という処理を、第二言語の文章の最後の単語まで反復する。デコーダは、出力層のベクトルを単語ID(出力word ID)に変換した上で、対応する第二言語の単語(翻訳された単語)として出力する。デコーダは概念的に、エンコーダが抽出した意味表現から、(第一言語とは異なる第二言語の)文章を生成している、と言える。
翻訳モデルは、エンコーダデコーダモデルのニューラルネットワークに限るものではなく、transformerなど、単語単位(あるいは後述の第一単位など)で入出力を行うネットワーク構造であれば、アルゴリズムに制限は無い。
図2及び図3を参照しながら、従来技術による翻訳と文章翻訳装置1による翻訳との違いについて説明する。
図2は、従来技術による翻訳の一例を示す図である。図2に示す通り、エンコーダデコーダモデルのニューラルネットワークのエンコーダに、単語単位で分けられた第一言語の文章『「アンディ」、「、」、「あ」、「ど」、「ば」、「い」、「し」、「ゅ」、「を」、「もらえ」、「る」、「?」』が入力され、デコーダが単語単位で分けられた第二言語の文章『「Andy」、「,」、「could」、「you」、「get」、「me」、「a」、「kick」、「?」』を出力している。このように、入力された文章に、(音声認識誤り又は文字認識誤りなどの)誤り「あどばいしゅ」(正しくは「アドバイス」)が含まれていると、正確に翻訳されず、誤って『「a」、「kick」』と翻訳される。
図3は、文章翻訳装置1による翻訳の一例を示す図である。図3に示す通り、翻訳モデルのエンコーダに、単語単位で分けられた第一言語の文章『「アンディ」、「、」、「あどばいしゅ」、「を」、「もらえ」、「る」、「?」』と、前後の文章を区別するための記号「<T>」と、文字単位で分けられた(平仮名に変換して1文字ずつ分解した)上述の文章『「あ」、「ん」、「で」、「ぃ」、「、」、「あ」、「ど」、「ば」、「い」、「し」、「ゅ」、「を」、「も」、「ら」、「え」、「る」、「?」』とが結合された文章『「アンディ」、「、」、「あどばいしゅ」、「を」、「もらえ」、「る」、「?」、「<T>」、「あ」、「ん」、「で」、「ぃ」、「、」、「あ」、「ど」、「ば」、「い」、「し」、「ゅ」、「を」、「も」、「ら」、「え」、「る」、「?」』が入力され、翻訳モデルのデコーダが単語単位で分けられた第二言語の文章『「Andy」、「,」、「could」、「you」、「give」、「me」、「some」、「advice」、「?」』を出力している。このように、入力された文章に、(音声認識誤り又は文字認識誤りなどの)誤り「あどばいしゅ」(正しくは「アドバイス」)が含まれていても、より正確に翻訳される。
続いて、文章翻訳装置1の機能の詳細について説明する。
図4は、文章翻訳装置1の機能構成の一例を示す図である。図4に示す通り、文章翻訳装置1は、学習部10と、格納部11(格納部)と、取得部12(取得部)と、出力部13(出力部)とを含んで構成される。
文章翻訳装置1の各機能ブロックは、文章翻訳装置1内にて機能することを想定しているが、これに限るものではない。例えば、文章翻訳装置1の機能ブロックの一部は、文章翻訳装置1とは異なるコンピュータ装置であって、文章翻訳装置1とネットワーク接続されたコンピュータ装置内において、文章翻訳装置1と情報を適宜送受信しつつ機能してもよい。また、文章翻訳装置1の一部の機能ブロックは無くてもよいし、複数の機能ブロックを一つの機能ブロックに統合してもよいし、一つの機能ブロックを複数の機能ブロックに分解してもよい。
以下、図4に示す文章翻訳装置1の各機能について説明する。
学習部10は、第一言語の文章である学習文章を第一単位に分けた第一学習文章と、当該学習文章を第二単位に分けた第二学習文章と、当該学習文章が第二言語に翻訳された文章である翻訳文章とを含む学習データを取得し、取得された学習データに基づいて学習し(例えば機械学習)、学習結果の学習済みモデルである翻訳モデルを生成する。学習部10は、生成した翻訳モデルを格納部11によって格納させる。
第一単位は、単語単位(トークン単位)であってもよい。第二単位は、文字単位であってもよい。また、第一単位は、文字単位であってもよいし、第二単位は、単語単位であってもよい。第一単位と第二単位とは、単語単位及び文字単位以外の任意の単位であってもよい。第一単位と第二単位とは、同じ単位であってもよいし、異なる単位であってもよい。
翻訳文章は、第一単位に分けられた文章であってもよいし、第二単位に分けられた文章であってもよいし、その他の任意の単位に分けられた文章であってもよい。
例えば、学習文章を「ここはとても素敵ですね。」とし、第一単位を単語単位とし、第二単位を文字単位とした場合、第一学習文章は『「ここ」、「は」、「とても」、「素敵」、「で」、「す」、「ね」、「。」』であり(カギ括弧と読点により第一単位に分けている)、第二学習文章は『「こ」、「こ」、「は」、「と」、「て」、「も」、「す」、「て」、「き」、「で」、「す」、「ね」、「。」』であり(カギ括弧と読点により第二単位に分けている)、翻訳文章(の一例)は『「That」、「park」、「is」、「nice」、「,」、「is」、「n’t」、「it」、「?」』である(カギ括弧と読点により第一単位に分けている)。
学習済みモデルは、コンピュータプログラムとパラメータとの組み合わせである。また、学習済みモデルは、ニューラルネットワークの構造と当該ニューラルネットワークの各ニューロン間の結びつきの強さであるパラメータ(重み付け係数)との組み合わせである。また、学習済みモデルは、コンピュータに対する指令であって、一の結果を得る(所定の処理を実行する)ことができるように組み合わされたもの、すなわち、コンピュータを機能させるコンピュータプログラムである。
翻訳モデルは、第一学習文章及び第二学習文章の組み合わせと、翻訳文章とを含む学習データに基づいて学習された学習済みモデルであってもよい。組み合わせは、第一学習文章及び第二学習文章が、第一学習文章と第二学習文章とを区別するための記号(タグ、タグ要素)により結合された文章であってもよい。記号は、例えば上述の「<T>」である。結合された文章は、例えば『「ここ」、「は」、「とても」、「素敵」、「で」、「す」、「ね」、「。」、「<T>」、「こ」、「こ」、「は」、「と」、「て」、「も」、「す」、「て」、「き」、「で」、「す」、「ね」、「。」』である。
翻訳モデルは、第一言語の入力文章を第一単位に分けた第一入力文章と当該入力文章を第二単位に分けた第二入力文章とに基づいて、当該入力文章が第二言語に翻訳された文章を出力するよう、コンピュータを機能させるための学習済みモデルであって、第一言語の学習文章を第一単位に分けた文章と、当該学習文章を第二単位に分けた文章と、当該学習文章が第二言語に翻訳された文章とを含む学習データを用いて重み付け係数が学習されたニューラルネットワークにより構成され、当該ニューラルネットワークに入力された、第一入力文章及び第二入力文章に対し、学習済みの重み付け係数に基づく演算を行い、当該入力文章が第二言語に翻訳された文章を出力する。
学習データの一部は、誤りを含む第一学習文章、又は、誤りを含む第二学習文章を含んでもよい。すなわち、学習データの一部は、誤りを含む第一学習文章のみを含んでもよいし、誤りを含む第二学習文章のみを含んでもよいし、誤りを含む第一学習文章及び誤りを含む第二学習文章をそれぞれ含んでもよい。例えば、学習部10が学習する際に用いる学習データのうち、90%が、誤りの無い第一学習文章及び誤りの無い第二学習文章を含み、10%が、誤りを含む第一学習文章及び誤りの無い第二学習文章を含み、残り10%が、誤りの無い第一学習文章及び誤りを含む第二学習文章を含んでもよい。
誤りを含む第一学習文章とは、例えば、第一学習文章の一部の第一単位に誤り(誤記)があることを示す。同様に、誤りを含む第二学習文章とは、例えば、第二学習文章の一部の第二単位に誤り(誤記)があることを示す。
以下、図5〜7を参照しながら、第一学習文章及び第二学習文章の例を説明する。
図5は、第一学習文章と第二学習文章との一例を示す図である。図5に示す通り、第一学習文章は誤りの無い『「ここ」、「は」、「とても」、「素敵」、「で」、「す」、「ね」、「。」』であり、第二学習文章は誤りの無い『「こ」、「こ」、「は」、「と」、「て」、「も」、「す」、「て」、「き」、「で」、「す」、「ね」、「。」』である。
図6は、誤りを含む第一学習文章と第二学習文章との一例を示す図である。図6に示す通り、第一学習文章は誤り「せ」を含む『「ここ」、「は」、「とても」、「素敵」、「せ」、「す」、「ね」、「。」』であり、第二学習文章は誤りの無い『「こ」、「こ」、「は」、「と」、「て」、「も」、「す」、「て」、「き」、「で」、「す」、「ね」、「。」』である。
図7は、第一学習文章と誤りを含む第二学習文章との一例を示す図である。図7に示す通り、第一学習文章は誤りの無い『「ここ」、「は」、「とても」、「素敵」、「で」、「す」、「ね」、「。」』であり、第二学習文章は誤り「せ」を含む『「こ」、「こ」、「は」、「と」、「て」、「も」、「す」、「て」、「き」、「せ」、「す」、「ね」、「。」』である。
格納部11は、翻訳モデルを格納する。格納部11は、例えば、学習部10によって生成された翻訳モデルを格納する。格納部11は、他のコンピュータ装置などで予め生成された翻訳モデルを格納してもよい。
格納部11は、その他にも、文章翻訳装置1における算出などで利用される任意の情報及び文章翻訳装置1における算出の結果などを格納してもよい。格納部11によって格納された情報は、文章翻訳装置1の各機能によって適宜参照されてもよい。
取得部12は、第一言語の入力文章を取得する。取得部12は、例えば、ネットワーク接続された他のコンピュータ装置から入力文章を取得してもよいし、格納部11によって予め格納された入力文章を取得してもよいし、後述の入力装置1005を介して文章翻訳装置1のユーザなどによって入力された入力文章を取得してもよい。取得部12は、取得した入力文章を出力部13に出力する。
入力文章は、誤りを含んでもよい。より具体的には、入力文章は、音声認識又は文字認識の誤りを含んでもよい。
出力部13は、取得部12によって取得(入力)された入力文章を第一単位に分けた文章と当該入力文章を第二単位に分けた文章とを、格納部11によって格納された翻訳モデルに適用することで得られる、当該入力文章が第二言語に翻訳された文章を出力する。出力部13は、翻訳された文章を、例えば、ネットワーク接続された他のコンピュータ装置に送信してもよいし、格納部11によって格納させてもよいし、後述の出力装置1006を介して文章翻訳装置1のユーザなどに出力(表示、音声出力)してもよい。
以下、図8〜10を参照しながら、出力部13による翻訳モデルへの適用における学習の効果の例を説明する。
図8は、学習の効果の一例(その一)を示す図である。図8に示す通り、出力部13により、翻訳モデルのエンコーダに、誤り「せ」を含む入力文章「あの公園は素敵せすね。」を単語単位に分けた文章『「あの」、「公園」、「は」、「素敵」、「せ」、「す」、「ね」、「。」』と、記号「<T>」と、当該入力文章を文字単位に分けた文章『「あ」、「の」、「こ」、「う」、「え」、「ん」、「は」、「す」、「て」、「き」、「せ」、「す」、「ね」、「。」』とが結合された文章『「あの」、「公園」、「は」、「素敵」、「せ」、「す」、「ね」、「。」、「<T>」、「あ」、「の」、「こ」、「う」、「え」、「ん」、「は」、「す」、「て」、「き」、「せ」、「す」、「ね」、「。」』が入力され、翻訳モデルのデコーダが単語単位で分けられた第二言語の文章『「That」、「park」、「is」、「nice」、「,」、「is」、「n’t」、「it」、「?」』を出力している。例えば、図5に示すような、第一学習文章と第二学習文章とを含む学習データに主に基づいて学習された翻訳モデルに適用すれば、図8に示す例において入力文章を単語単位に分けた文章『「あの」、「公園」、「は」、「素敵」、「せ」、「す」、「ね」、「。」』のうち「せ」が「で」の誤りであること、及び、当該入力文章を文字単位に分けた文章『「あ」、「の」、「こ」、「う」、「え」、「ん」、「は」、「す」、「て」、「き」、「せ」、「す」、「ね」、「。」』のうち「せ」が「で」の誤りであることを正しく理解できる。それにより、出力部13は、入力文章に誤りが含まれていても、より正確に翻訳することができる。
図9は、学習の効果の一例(その二)を示す図である。翻訳モデルのエンコーダへの入力と翻訳モデルのデコーダの出力は図8と同様である。例えば、図6に示すような、誤りを含む第一学習文章と第二学習文章とを含む学習データに主に基づいて学習された翻訳モデルに適用すれば、図9に示す例において入力文章を単語単位に分けた文章『「あの」、「公園」、「は」、「素敵」、「せ」、「す」、「ね」、「。」』のうち「せ」が「で」の誤りであることを正しく理解できる。それにより、出力部13は、入力文章に誤りが含まれていても、より正確に翻訳することができる。
図10は、学習の効果の一例(その三)を示す図である。翻訳モデルのエンコーダへの入力と翻訳モデルのデコーダの出力は図8と同様である。例えば、図7に示すような、第一学習文章と誤りを含む第二学習文章とを含む学習データに主に基づいて学習された翻訳モデルに適用すれば、図10に示す例において入力文章を文字単位に分けた文章『「あ」、「の」、「こ」、「う」、「え」、「ん」、「は」、「す」、「て」、「き」、「せ」、「す」、「ね」、「。」』のうち「せ」が「で」の誤りであることを正しく理解できる。それにより、出力部13は、入力文章に誤りが含まれていても、より正確に翻訳することができる。
続いて、図11及び図12を参照しながら、文章翻訳装置1が実行する学習処理の2つの例を説明する。
図11は、文章翻訳装置1が実行する学習処理の一例(その一)を示すフローチャートである。まず、学習部10が、誤りを含む原文Aと対訳文Bとを取得する(ステップS1)。なお、誤りは所定のプログラムによって人工的に付与してもよい。次に、学習部10が、以下の(a)〜(c)を実行する(ステップS2)。なお、学習部10は、(a)〜(c)を任意の順番で実行してもよい。また、(b)における平仮名への変換は、Mecabなどの既存の形態素解析器が出力するふりがなを利用してもよい。
(a)原文Aを単語単位に分けた(分かち書きした)文Auを作成し、文Auの誤りを修正した文Aufを作成する。
(b)原文Aを平仮名に変換した文Cを作成し、文Cを文字単位に分けた文Cuを作成し、文Cuの誤りを修正した文Cufを作成する。
(c)対訳文Bを単語単位に分けた(分かち書きした)文Buを作成する。
次に、学習部10が、以下の(d)及び(e)を実行する(ステップS3)。なお、学習部10は、(d)及び(e)を任意の順番で実行してもよい。
(d)文Auf及び文Cuをタグで結合した文と、文Buとを含む学習データを作成する。
(e)文Au及び文Cufをタグで結合した文と、文Buとを含む学習データを作成する。
次に、学習部10が、作成した学習データで(ニューラルネットワークで)学習し、学習された翻訳モデルを格納部11によって格納させる(ステップS4)。なお、学習では、上記で用意したデータの他に、誤りを含むデータ以外に、誤りを含まないデータも学習することで汎用性を保持する。
図12は、文章翻訳装置1が実行する学習処理の一例(その二)を示すフローチャートである。まず、学習部10が、原文Dと対訳文Eとを取得する(ステップS10)。次に、学習部10が、以下の(f)〜(h)を実行する(ステップS11)。なお、学習部10は、(f)〜(h)を任意の順番で実行してもよい。
(f)原文Dを単語単位に分けた文Duを作成し、文Duに誤りを付加した文Dueを作成する。
(g)原文Dを平仮名に変換した文Fを作成し、文Fを文字単位に分けた文Fuを作成し、文Fuに誤りを付加した文Fueを作成する。
(h)対訳文Eを単語単位に分けた文Euを作成する。
次に、学習部10が、以下の(i)〜(k)を実行する(ステップS12)。なお、学習部10は、(i)〜(k)を任意の順番で実行してもよい。
(i)文Du及び文Fueをタグで結合した文と、文Euとを含む学習データを作成する。
(j)文Due及び文Fuをタグで結合した文と、文Euとを含む学習データを作成する。
(k)文Du及び文Fuをタグで結合した文と、文Euとを含む学習データを作成する。
次に、学習部10が、作成した学習データで学習し、学習された翻訳モデルを格納部11によって格納させる(ステップS13)。
続いて、図13を参照しながら、文章翻訳装置1が実行する適用処理の例を説明する。図13は、文章翻訳装置1が実行する適用処理の一例を示すフローチャートである。まず、取得部12が、第一言語の入力文章を取得する(ステップS20)。次に、出力部13が、入力文章を第一単位に分けた文章と、入力文章を第二単位に分けた文章とを、翻訳モデルに適用する(ステップS21)。次に、出力部13が、入力文章が第二言語に翻訳された文章を出力する(ステップS22)。
続いて、実施形態に係る文章翻訳装置1の作用効果について説明する。
文章翻訳装置1は、第一言語の学習文章を第一単位に分けた第一学習文章と、当該学習文章を第二単位に分けた第二学習文章と、当該学習文章が第二言語に翻訳された翻訳文章とを含む学習データに基づいて学習された学習済みモデルである翻訳モデルを格納する格納部11と、第一言語の入力文章を取得する取得部12と、取得部12によって取得された入力文章を第一単位に分けた文章と当該入力文章を第二単位に分けた文章とを、格納部11によって格納された翻訳モデルに適用することで得られる、当該入力文章が第二言語に翻訳された文章を出力する出力部13と、を備える。この構成により、学習文章を第一単位に分けた第一学習文章及び第二単位に分けた第二学習文章に基づいて学習された翻訳モデルに、入力文章を第一単位に分けた文章及び第二単位に分けた文章が適用される。すなわち、第一単位及び第二単位の二つの単位に基づく学習(理解)及び適用がなされるため、一つの単位に基づく学習及び適用に比べて、より正確に翻訳された文章を出力することができる。
また、文章翻訳装置1によれば、第一単位は、単語単位であってもよい。この構成により、単語に誤りを含む場合、例えば「あどばいす」と「あどばいしゅ」は全く別の単語と認識されるため、意味理解に強くなる。
また、文章翻訳装置1によれば、第二単位は、文字単位であってもよい。この構成により、文字に誤りを含む場合、例えば「あどばいす」と「あどばいしゅ」は類似単語と認識されるため、音声理解に強くなる。
また、文章翻訳装置1によれば、翻訳文章は、第一単位に分けられた文章であってもよい。この構成により、第一単位で入出力を行うニューラルネットワーク構造を用いて文章翻訳装置1を容易に実装することができる。
また、文章翻訳装置1によれば、学習データの一部は、誤りを含む第一学習文章、又は、誤りを含む第二学習文章を含んでもよい。この構成により、当該学習データに基づいて学習された翻訳モデルは、誤りを識別(理解)しつつ翻訳を行うことができる。
また、文章翻訳装置1によれば、翻訳モデルは、第一学習文章及び第二学習文章の組み合わせと、翻訳文章とを含む学習データに基づいて学習された学習済みモデルであってもよい。この構成により、既存のニューラルネットワーク構造を用いて文章翻訳装置1を容易に実装することができる。
また、文章翻訳装置1によれば、(第一学習文章及び第二学習文章の)組み合わせは、第一学習文章及び第二学習文章が、第一学習文章と第二学習文章とを区別するための記号により結合された文章であってもよい。この構成により、容易に学習データを生成することができる。
また、文章翻訳装置1によれば、入力文章は、誤りを含んでもよい。この構成により、誤りを含んだ入力文章に対して、より正確に翻訳された文章を出力することができる。
また、文章翻訳装置1によれば、入力文章は、音声認識又は文字認識の誤りを含んでもよい。この構成により、音声認識又は文字認識の誤りを含んだ入力文章に対して、より正確に翻訳された文章を出力することができる。
また、文章翻訳装置1によれば、翻訳モデルは、第一言語の入力文章を第一単位に分けた第一入力文章と当該入力文章を第二単位に分けた第二入力文章とに基づいて、当該入力文章が第二言語に翻訳された文章を出力するよう、コンピュータを機能させるための学習済みモデルである翻訳モデルであって、第一言語の学習文章を第一単位に分けた文章と、当該学習文章を第二単位に分けた文章と、当該学習文章が第二言語に翻訳された文章とを含む学習データを用いて重み付け係数が学習されたニューラルネットワークにより構成され、当該ニューラルネットワークに入力された、第一入力文章及び第二入力文章に対し、学習済みの重み付け係数に基づく演算を行い、当該入力文章が第二言語に翻訳された文章を出力する。この構成により、第一単位及び第二単位の二つの単位に基づく学習(理解)がなされるため、一つの単位に基づく学習に比べて、より正確に翻訳された文章を出力することができる。
ここで、従来技術の課題について説明する。従来、音声認識技術及び翻訳技術を組み合わせることにより、音声翻訳を実現することが可能となっている。しかしながら、現実の環境では環境音及び活舌の悪さなどが原因で、音声認識が誤ってしまい、上手く翻訳できない場合がある。例えば、ユーザが「発送までにかかる日にちは、3〜5日を予定しています」の音声を発生し、音声認識結果が「はぞうまでにかかる日にちは、3〜5日を予定しています」(「発送」が「はぞう」に音声認識誤り)である場合、従来技術では「The date will be 3-5 days.」と翻訳されていた。
本実施形態に係る文章翻訳装置1によれば、上記課題を解決するため、音声認識誤り又は文字認識誤りに強い翻訳モデルを生成及び適用するため、上記の場合であれば「It will take 3 to 5 days for delivery.」と正しく翻訳される。文章翻訳装置1は、音声認識誤り又は文字認識誤りデータの翻訳精度向上技術に関する。また、文章翻訳装置1は、エンコーダ・デコーダモデルのニューラルネットワークを用いた技術であって、音声認識誤り又は文字認識誤りを含んだ文を単語分割した入力文と、その文を平仮名に変換して1文字ずつに分解した入力文とをタグ要素で結合して入力し、音声認識誤り又は文字認識誤りに頑健な翻訳を実現する技術に関する。
文章翻訳装置1によれば、単語分割と文字分割した文を組み合わせることで、音声認識誤り又は文字認識誤りを理解しつつ、翻訳精度も高い翻訳技術を実現することができる。単語単位の入力文での音声誤りの扱いにおいて、全く別の単語と認識され、意味の識別能力は高いため、意味理解に強くなる。また、文字単位の入力文での音声誤りの扱いにおいて、類似単語と認識され、意味の識別能力は低いため、音声理解に強くなる。以上より、文章翻訳装置1により、音声認識誤り又は文字認識誤りに強く、翻訳精度も高い技術を実現することができる。
文章翻訳装置1によれば、学習時に、誤りありの単語単位の文と誤りなしの文字単位の文とを含む学習データ、及び/又は、誤りなしの単語単位の文と誤りありの文字単位の文とを含む学習データ、で学習することで、翻訳時に誤りを識別しつつ翻訳を行うことが可能となる。
文章翻訳装置1によれば、利用時の流れは「学習データの用意」、「学習」、「翻訳」の順となる。学習には誤りを含む原文の他に、誤りを含まない原文と対訳の対も学習する。文字単位分割した平仮名は、学習だけでなく、翻訳時も利用する。
なお、実施形態では、第一単位及び第二単位の2つの単位を用いる例を示したが、2つの単位に限るものではない。例えば、第一単位、第二単位及び第三単位の3つの単位を用いるなど、2つ以上(複数)の単位を用いて、学習及び適用を行ってもよい。
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
機能には、判断、決定、判定、計算、算出、処理、導出、調査、探索、確認、受信、送信、出力、アクセス、解決、選択、選定、確立、比較、想定、期待、見做し、報知(broadcasting)、通知(notifying)、通信(communicating)、転送(forwarding)、構成(configuring)、再構成(reconfiguring)、割り当て(allocating、mapping)、割り振り(assigning)などがあるが、これらに限られない。たとえば、送信を機能させる機能ブロック(構成部)は、送信部(transmitting unit)や送信機(transmitter)と呼称される。いずれも、上述したとおり、実現方法は特に限定されない。
例えば、本開示の一実施の形態における文章翻訳装置1などは、本開示の学習及び適用の処理を行うコンピュータとして機能してもよい。図14は、本開示の一実施の形態に係る文章翻訳装置1のハードウェア構成の一例を示す図である。上述の文章翻訳装置1は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含むコンピュータ装置として構成されてもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。文章翻訳装置1のハードウェア構成は、図に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
文章翻訳装置1における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることによって、プロセッサ1001が演算を行い、通信装置1004による通信を制御したり、メモリ1002及びストレージ1003におけるデータの読み出し及び書き込みの少なくとも一方を制御したりすることによって実現される。
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)によって構成されてもよい。例えば、上述の学習部10、取得部12及び出力部13などは、プロセッサ1001によって実現されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、データなどを、ストレージ1003及び通信装置1004の少なくとも一方からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態において説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、学習部10、格納部11、取得部12及び出力部13は、メモリ1002に格納され、プロセッサ1001において動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ1001によって実行される旨を説明してきたが、2以上のプロセッサ1001により同時又は逐次に実行されてもよい。プロセッサ1001は、1以上のチップによって実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つによって構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本開示の一実施の形態に係る無線通信方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD−ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つによって構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002及びストレージ1003の少なくとも一方を含むデータベース、サーバその他の適切な媒体であってもよい。
通信装置1004は、有線ネットワーク及び無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。通信装置1004は、例えば周波数分割複信(FDD:Frequency Division Duplex)及び時分割複信(TDD:Time Division Duplex)の少なくとも一方を実現するために、高周波スイッチ、デュプレクサ、フィルタ、周波数シンセサイザなどを含んで構成されてもよい。例えば、上述の学習部10、取得部12及び出力部13などは、通信装置1004によって実現されてもよい。
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
また、プロセッサ1001、メモリ1002などの各装置は、情報を通信するためのバス1007によって接続される。バス1007は、単一のバスを用いて構成されてもよいし、装置間ごとに異なるバスを用いて構成されてもよい。
また、文章翻訳装置1は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つを用いて実装されてもよい。
情報の通知は、本開示において説明した態様/実施形態に限られず、他の方法を用いて行われてもよい。
本開示において説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
情報等は、上位レイヤ(又は下位レイヤ)から下位レイヤ(又は上位レイヤ)へ出力され得る。複数のネットワークノードを介して入出力されてもよい。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:true又はfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
以上、本開示について詳細に説明したが、当業者にとっては、本開示が本開示中に説明した実施形態に限定されるものではないということは明らかである。本開示は、請求の範囲の記載により定まる本開示の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本開示の記載は、例示説明を目的とするものであり、本開示に対して何ら制限的な意味を有するものではない。
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL:Digital Subscriber Line)など)及び無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
本開示において説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
なお、本開示において説明した用語及び本開示の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
本開示において使用する「システム」及び「ネットワーク」という用語は、互換的に使用される。
また、本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。例えば、無線リソースはインデックスによって指示されるものであってもよい。
上述したパラメータに使用する名称はいかなる点においても限定的な名称ではない。さらに、これらのパラメータを使用する数式等は、本開示で明示的に開示したものと異なる場合もある。
本開示で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up、search、inquiry)(例えば、テーブル、データベース又は別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。また、「判断(決定)」は、「想定する(assuming)」、「期待する(expecting)」、「みなす(considering)」などで読み替えられてもよい。
「接続された(connected)」、「結合された(coupled)」という用語、又はこれらのあらゆる変形は、2又はそれ以上の要素間の直接的又は間接的なあらゆる接続又は結合を意味し、互いに「接続」又は「結合」された2つの要素間に1又はそれ以上の中間要素が存在することを含むことができる。要素間の結合又は接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。例えば、「接続」は「アクセス」で読み替えられてもよい。本開示で使用する場合、2つの要素は、1又はそれ以上の電線、ケーブル及びプリント電気接続の少なくとも一つを用いて、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光(可視及び不可視の両方)領域の波長を有する電磁エネルギーなどを用いて、互いに「接続」又は「結合」されると考えることができる。
本開示において使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
本開示において使用する「第一」、「第二」などの呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定しない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本開示において使用され得る。したがって、第一及び第二の要素への参照は、2つの要素のみが採用され得ること、又は何らかの形で第一の要素が第二の要素に先行しなければならないことを意味しない。
上記の各装置の構成における「手段」を、「部」、「回路」、「デバイス」等に置き換えてもよい。
本開示において、「含む(include)」、「含んでいる(including)」及びそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
本開示において、例えば、英語でのa、an及びtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」などの用語も、「異なる」と同様に解釈されてもよい。