(57)【要約】  情報処理装置（１００）は、出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照し、第１、第２のテキスト情報から抽出した単語に対応付けられた属性の第１、第２のベクトル情報を特定する。情報処理装置（１００）は、第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、第２ベクトル情報に近づくように、変換モデルのパラメータを学習することで、変換モデルを生成する。
2020044509.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
第１のテキスト情報と、第２のテキスト情報とを受け付け、
前記第１のテキスト情報に含まれる単語のうち、出現頻度が基準未満の単語と、前記第２のテキスト情報に含まれる単語のうち、出現頻度が基準未満である単語とを抽出し、
出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照して、抽出した単語に対応付けられた属性を特定し、
単語の属性に応じたベクトル情報を該属性に対応付けて記憶する記憶部を参照して、前記第１のテキスト情報から抽出された単語の属性に対応付けられた第１ベクトル情報と、前記第２のテキスト情報から抽出された単語の属性に対応付けられた第２ベクトル情報とを特定し、
前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第２ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成する
処理を実行することを特徴とする生成方法。
【請求項２】
前記受け付ける処理は、第３のテキスト情報を受け付け、
前記抽出する処理は、前記第３のテキスト情報に含まれる単語を抽出し、
前記記憶部は、出現頻度が基準以上の単語に応じたベクトル情報を記憶し、
前記特定する処理は、前記記憶部を参照して、前記第３のテキスト情報に含まれる単語に対応付けられた第３ベクトル情報を特定し、
前記生成する処理は、前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第３ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成することを特徴とする請求項１に記載の生成方法。
【請求項３】
前記受け付ける処理は、翻訳対象のテキスト情報を受け付け、
前記抽出する処理は、前記翻訳対象のテキスト情報に含まれる複数の単語を抽出し、
前記特定する処理は、前記記憶部を参照して、前記複数の単語のうち、出現頻度が基準未満の単語には、出現頻度が基準未満の単語の属性に対応付けられたベクトル情報を特定し、出現頻度が基準以上の単語には、出現頻度が基準以上の単語に対応付けられたベクトル情報を特定し、
前記特定する処理に特定された複数のベクトル情報を、前記変換モデルに入力することで前記変換モデルから出力される複数のベクトル情報を基にして、テキスト情報を生成する処理を更に実行することを特徴とする請求項１に記載の生成方法。
【請求項４】
前記記憶部は、出現頻度が基準未満の同義語に対して、一つのベクトル情報を対応付けることを特徴とする請求項１、２または３に記載の生成方法。
【請求項５】
コンピュータに、
第１のテキスト情報と、第２のテキスト情報とを受け付け、
前記第１のテキスト情報に含まれる単語のうち、出現頻度が基準未満の単語と、前記第２のテキスト情報に含まれる単語のうち、出現頻度が基準未満である単語とを抽出し、
出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照して、抽出した単語に対応付けられた属性を特定し、
単語の属性に応じたベクトル情報を該属性に対応付けて記憶する記憶部を参照して、前記第１のテキスト情報から抽出された単語の属性に対応付けられた第１ベクトル情報と、前記第２のテキスト情報から抽出された単語の属性に対応付けられた第２ベクトル情報とを特定し、
前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第２ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成する
処理を実行させることを特徴とする生成プログラム。
【請求項６】
前記受け付ける処理は、第３のテキスト情報を受け付け、
前記抽出する処理は、前記第３のテキスト情報に含まれる単語を抽出し、
前記記憶部は、出現頻度が基準以上の単語に応じたベクトル情報を記憶し、
前記特定する処理は、前記記憶部を参照して、前記第３のテキスト情報に含まれる単語に対応付けられた第３ベクトル情報を特定し、
前記生成する処理は、前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第３ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成することを特徴とする請求項５に記載の生成プログラム。
【請求項７】
前記受け付ける処理は、翻訳対象のテキスト情報を受け付け、
前記抽出する処理は、前記翻訳対象のテキスト情報に含まれる複数の単語を抽出し、
前記特定する処理は、前記記憶部を参照して、前記複数の単語のうち、出現頻度が基準未満の単語には、出現頻度が基準未満の単語の属性に対応付けられたベクトル情報を特定し、出現頻度が基準以上の単語には、出現頻度が基準以上の単語に対応付けられたベクトル情報を特定し、
前記特定する処理に特定された複数のベクトル情報を、前記変換モデルに入力することで前記変換モデルから出力される複数のベクトル情報を基にして、テキスト情報を生成する処理を更に実行することを特徴とする請求項５に記載の生成プログラム。
【請求項８】
前記記憶部は、出現頻度が基準未満の同義語に対して、一つのベクトル情報を対応付けることを特徴とする請求項５、６または７に記載の生成プログラム。
【請求項９】
第１のテキスト情報と、第２のテキスト情報とを受け付ける受付部と、
前記第１のテキスト情報に含まれる単語のうち、出現頻度が基準未満の単語と、前記第２のテキスト情報に含まれる単語のうち、出現頻度が基準未満である単語とを抽出し、
出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照して、抽出した単語に対応付けられた属性を特定し、単語の属性に応じたベクトル情報を該属性に対応付けて記憶する記憶部を参照して、前記第１のテキスト情報から抽出された単語の属性に対応付けられた第１ベクトル情報と、前記第２のテキスト情報から抽出された単語の属性に対応付けられた第２ベクトル情報とを特定し、前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第２ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成する生成処理部と
を有することを特徴とする情報処理装置。
【請求項１０】
前記受付部は、第３のテキスト情報を受け付け、前記記憶部は、出現頻度が基準以上の単語に応じたベクトル情報を記憶し、前記生成処理部は、前記第３のテキスト情報に含まれる単語を抽出し、前記記憶部を参照して、前記第３のテキスト情報に含まれる単語に対応付けられた第３ベクトル情報を特定し、前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第３ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記受付部は、翻訳対象のテキスト情報を受け付け、生成処理部は、前記翻訳対象のテキスト情報に含まれる複数の単語を抽出し、前記記憶部を参照して、前記複数の単語のうち、出現頻度が基準未満の単語には、出現頻度が基準未満の単語の属性に対応付けられたベクトル情報を特定し、出現頻度が基準以上の単語には、出現頻度が基準以上の単語に対応付けられたベクトル情報を特定し、
特定した複数のベクトル情報を、前記変換モデルに入力することで前記変換モデルから出力される複数のベクトル情報を基にして、テキスト情報を生成する処理を更に実行することを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
前記記憶部は、出現頻度が基準未満の同義語に対して、一つのベクトル情報を対応付けることを特徴とする請求項９、１０または１１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成方法等に関する。
【背景技術】
【０００２】
近年、第１言語を、第１言語とは異なる他の第２言語を翻訳する場合に、ニューラル機械翻訳（NMT：Neural  Machine  Translation）が用いられている。ニューラル機械翻訳には様々なモデルが存在するが、たとえば、エンコーダ（encoder）、リカレントネットワーク（RNN：Recurrent  Neural  Network）、デコーダ（decoder）から構成されるモデルがある。【０００３】
エンコーダは、入力文の文字列に含まれる単語を符号化し、符号化した単語にベクトルを割り当てる処理部である。ＲＮＮは、エンコーダから入力される単語のベクトルを、Softmax関数に基づいて変換し、変換したベクトルを出力するものである。デコーダは、ＲＮＮから出力される単語のベクトルを基にして、出力文を復号化する処理部である。【０００４】
従来技術では、Softmax関数の演算量を抑えるために、ＲＮＮの機械学習で用いる入出力層の単語数を縮小するものがある。たとえば、従来技術では、１００万語程度の単語から、出現頻度に応じて３〜５万語程度の単語をピックアップし、ベクトルテーブルを参照し、Softmax関数を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１３５２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、変換モデルの生成に用いるベクトル情報のデータ量を減らすことができないという問題がある。【０００７】
従来技術のように、単に出現頻度の高い３〜５万語程度の単語をピックアップして、ベクトルテーブルを参照する場合には、翻訳対象のテキストに含まれる、出現頻度の低い単語が、ベクトルテーブルに登録されていないと、適切に翻訳されず、翻訳精度が低下してしまう。【０００８】
たとえば、従来技術により、テキスト「彼は歴史に通暁している。」を翻訳すると、「通暁」なる単語の出現頻度が、低頻度であるため、ベクトルテーブルに登録されておらず、「He  is  impatient  with  history.」と誤翻訳されてしまう。たとえば、「彼は歴史に通暁している」の適切な翻訳結果の一例は「He  is  familiar  with  history.」となる。【０００９】
このため、翻訳精度を低下させないためには、ベクトルテーブルに登録する単語の数（ベクトル情報のデータ量）を減らすことが難しい。【００１０】
１つの側面では、本発明は、変換モデルの生成に用いるベクトル情報のデータ量を減らすことができる生成方法、生成プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の案では、コンピュータが次の処理を実行する。コンピュータは、第１のテキスト情報と、第２のテキスト情報とを受け付ける。コンピュータは、第１のテキスト情報に含まれる単語のうち、出現頻度が基準未満の単語と、第２のテキスト情報に含まれる単語のうち、出現頻度が基準未満である単語とを抽出する。コンピュータは、出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照して、抽出した単語に対応付けられた属性を特定する。コンピュータは、単語の属性に応じたベクトル情報を該属性に対応付けて記憶する記憶部を参照する。コンピュータは、第１のテキスト情報から抽出された単語の属性に対応付けられた第１ベクトル情報と、第２のテキスト情報から抽出された単語の属性に対応付けられた第２ベクトル情報とを特定する。コンピュータは、第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、第２ベクトル情報に近づくように、変換モデルのパラメータを学習することで、変換モデルを生成する。
【発明の効果】
【００１２】
変換モデルの生成に用いるベクトル情報のデータ量を減らすことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本実施例に係る情報処理装置の処理を説明するための図（１）である。
【図２】図２は、本実施例に係る情報処理装置の処理を説明するための図（２）である。
【図３】図３は、本実施例に係る情報処理装置の処理を説明するための図（３）である。
【図４】図４は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【図５】図５は、本実施例に係る第１ベクトルテーブルのデータ構造の一例を示す図である。
【図６】図６は、本実施例に係る第２ベクトルテーブルのデータ構造の一例を示す図である。
【図７】図７は、本実施例に係る教師データテーブルのデータ構造の一例を示す図である。
【図８】図８は、本実施例に係るコード変換テーブルのデータ構造の一例を示す図である。
【図９】図９は、本実施例に係る辞書情報のデータ構造の一例を示す図である。
【図１０】図１０は、本実施例に係るＲＮＮデータのデータ構造の一例を示す図である。
【図１１】図１１は、中間層のパラメータを補足説明するための図である。
【図１２】図１２は、本実施例に係る情報処理装置がＲＮＮデータを生成する処理を示すフローチャートである。
【図１３】図１３は、本実施例に係る情報処理装置が入力文データを翻訳する処理を示すフローチャートである。
【図１４】図１４は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる生成方法、生成プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１５】
図１〜図３は、本実施例に係る情報処理装置の処理を説明するための図である。図１では、情報処理装置が、入力文に含まれる各単語にベクトルを割り当てる処理の一例について説明する。図１に示すように、情報処理装置は、入力文１０が与えられると、形態素解析を実行することで、入力文１０に含まれる文字列を単語毎に分割し、分割入力文１０ａを生成する。分割入力文１０ａにおいて、各単語は「△（スペース）」で区切られる。【００１６】
たとえば、入力文１０の「彼は歴史に通暁している。」に対応する分割入力文１０ａには、単語「彼△」、「は△」、「歴史△」、「に△」、「通暁△」、「している△」が含まれる。情報処理装置は、各単語にコードを割り当てた後に、辞書情報１５０ｅを基にして、各単語（単語に対応するコード）を静的符号または動的符号に割り当てる。【００１７】
辞書情報１５０ｅには、静的辞書と、動的辞書とが含まれる。静的辞書は、静的符号と、単語とを対応付ける辞書情報である。動的辞書は、静的辞書に含まれない単語に対して、動的に割り当てられた符号（動的符号）を保持する辞書情報である。【００１８】
情報処理装置は、分割入力文１０ａの各単語（コード）と、辞書情報１５０ｅとを基にして、分割入力文１０ａの各単語を静的符号または動的符号に変換し、符号化文１０ｂを生成する。たとえば、単語「彼△」、「は△」、「歴史△」、「に△」、「している△」に対応する静的符号が、静的辞書に登録されており、単語「通暁△」は、静的辞書に登録されていないものとする。単語「通暁△」に対応する動的符号は、動的辞書に登録されているものとする。【００１９】
説明の便宜上、単語「彼△」、「は△」、「歴史△」、「に△」、「しいている△」に割り当てられる静的符号を「（彼△）」、「（は△）」、「（歴史△）」、「（に△）」、「している△」と表記する。単語「通暁△」に割り当てられる動的符号を「（通暁△）」と表記する。【００２０】
情報処理装置は、符号化文１０ｂを生成すると、符号化文１０ｂの各静的符号、動的符号と、第１ベクトルテーブル１５０ａとを比較して、各静的符号、各動的符号に割り当てるベクトルを特定する。第１ベクトルテーブル１５０ａは、静的符号および静的符号に対応するベクトルを保持する。第１ベクトルテーブル１５０ａは、動的符号および動的符号に対応するベクトルを保持する。【００２１】
ここで、第１ベクトルテーブル１５０ａは、出現頻度が基準未満となる単語に割り当てられた動的符号を属性によって分類し、同一の属性に属する各動的符号に対しては、同一のベクトルを割り当てる。本実施例では一例として、出現頻度が基準未満となり、かつ、同義語の各単語（各単語の動的符号）を、同一の属性に分類するものとする。たとえば、動的符号「（通暁△）」、「（精通△）」、「（詳しい△）」には、ベクトル「Ｖｅｃ１−１ａ」が割り当てられる。各単語の出現頻度は、青空文庫等の一般的なテキスト情報を基にして、予め特定される。なお、同義語は、語形は異なるが、意味が同じ単語であり、類語辞典やシソーラス辞書を用いて、同一のベクトルを割り当てることができる。【００２２】
情報処理装置は、符号化文１０ｂの「（彼△）」に「Ｖｅｃ１−１」を割当て、「（は△）」に「Ｖｅｃ１−２」を割当て、「（歴史△）」に「Ｖｅｃ１−３」を割当て、「（に△）」に「Ｖｅｃ１−４」、「（している△）」に「Ｖｅｃ１−５」を割当てる。情報処理装置は、符号化文１０ｂの「（通暁△）」に「Ｖｅｃ１−１ａ」を割り当てる。【００２３】
図２の説明に移行する。本実施例に係る情報処理装置は、エンコーダ５０と、リカレントニューラルネットワーク（ＲＮＮ）６０と、デコーダ７０とを有する。エンコーダ５０に、第１言語の入力文を入力すると、ＲＮＮ６０を介して、デコーダ７０から第２言語の出力文が出力される。本実施例では、第１言語を日本語とし、第２言語を英語として説明を行うが、これに限定されるものではない。第１言語の単語に割り当れられるベクトルを「第１ベクトル」と表記し、第２言語の単語に割り当てられるベクトルを「第２ベクトル」と表記する。【００２４】
エンコーダ５０は、入力文を構成する単語に分割し、第１ベクトルにそれぞれ変換する処理部である。ＲＮＮ６０は、複数の第１ベクトルが入力されると、自身に設定されたパラメータを用いて、複数の第１ベクトルを第２ベクトルに変換する処理部である。ＲＮＮ６０のパラメータには、活性化関数のバイアス値や、重みが含まれる。デコーダ７０は、ＲＮＮ６０から出力される第２ベクトルと対応する各単語を基にして、出力文を復号化する処理部である。【００２５】
エンコーダ５０は、第１言語のコード変換テーブル（図示略）を用いて、入力文５１に含まれる複数の単語を、単語および単語の語義を一意に識別可能な圧縮コードに変換する。たとえば、入力文５１に含まれる各単語は、圧縮コード５２−１〜５２−ｎに変換される。【００２６】
エンコーダ５０は、第１言語の辞書情報（図示略）を基にして、圧縮コード５１−１〜５１−ｎを、静的符号または動的符号５３−１〜５３−ｎに変換する。エンコーダ５０は、高頻度の単語に対応する圧縮コードを、静的符号に変換し、低頻度の単語に対応する圧縮コードを、動的符号に変換する。【００２７】
ここで、エンコーダ５０が生成した静的符号または動的符号５３−１〜５３−ｎは、局所表現（local  representation）に対応する情報である。エンコーダ５０は、第１ベクトルテーブル（図示略）を参照して、各静的符号または動的符号を、対応する各第１ベクトルに変換する。第１ベクトルは、分散表現（distributed  representation）に対応する情報である。エンコーダ５０は、変換した各第１ベクトルを、ＲＮＮ６０に出力する。【００２８】
ＲＮＮ６０は、中間層（隠れ層）６１−１〜６１−ｎ，６３−１〜６３−ｎと、変換機構６２とを有する。中間層６１−１〜６１−ｎ，６３−１〜６３−ｎは、自身に設定されたパラメータと、入力されたベクトルとを基にして値を算出し、算出した値を出力するものである。【００２９】
中間層６１−１は、静的符号または動的符号５３−１の第１ベクトルの入力を受け付け、受け付けたベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、変換機構６２に出力する。中間層６１−２〜６１−ｎも同様にして、対応する静的符号または動的符号の第１ベクトルの入力を受け付け、受け付けたベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、変換機構６２に出力する。【００３０】
変換機構６２は、中間層６１−１〜６１−ｎから入力される各値と、デコーダ７０等の内部状態を判断材料として、次の単語を訳出する際に注目すべき箇所を判断する役割を担う。たとえば、中間層６１−１の値に着目する確率が０．２、中間層６１−２に着目する確率が０．３等となり、各確率を全て足すと１に成るように正規化されている。【００３１】
変換機構６２は、中間層６１−１〜６１−ｎから出力される値と、各アテンション（確率）とを乗算した値を、足し合わせることで、分散表現の重み付き和を計算する。これを、コンテキストベクトル（context  vector）と呼ぶ。変換機構６３は、コンテキストベクトルを、中間層６３−１〜６３−ｎに入力する。中間層６３−１〜６３−ｎに入力される各コンテキストベクトルを算出する際に用いられる確率はそれぞれ再計算され、注目すべき箇所が毎回変化する。【００３２】
中間層６３−１は、変換機構６２からコンテキストベクトルを受け付け、受け付けたコンテキストベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、デコーダ７０に出力する。中間層６３−２〜６３−ｎも同様にして、対応するコンテキストベクトルを受け付け、受け付けたベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、デコーダ７０に出力する。【００３３】
デコーダ７０は、中間層６３−１〜６３−ｎから出力される値（第２ベクトル）につき、第２ベクトルテーブル（図示略）を参照して、第２ベクトルを静的符号または動的符号７１−１〜７１−ｎに変換する。第２ベクトルテーブルは、静的符号または動的符号と第２ベクトルとを対応付けるテーブルである。第２ベクトルは、分散表現に対応する情報である。【００３４】
デコーダ７０は、第２言語の辞書情報（図示略）を基にして、静的符号または動的符号７１−１〜７１−ｎを、圧縮コード７２−１〜７２−ｎに変換する。第２言語の辞書情報は、圧縮コードと、第２言語の静的符号または動的符号とを対応付けた情報である。【００３５】
デコーダ７０は、第２言語のコード変換テーブル（図示略）を用いて、圧縮コード７２−１〜７２−ｎを第２言語の単語に変換することで、出力文７３を生成する。【００３６】
ここで、本実施例に係る情報処理装置は、ＲＮＮ６０のパラメータを学習する場合に、教師データとなる第１言語の入力文と、第２言語の出力文との組を受け付ける。情報処理装置は、教師データの入力文をエンコーダ５０に入力した場合に、教師データの出力文がデコーダ７０から出力されるように、ＲＮＮ６０のパラメータを学習する。【００３７】
図３は、本実施例に係る情報処理装置がＲＮＮのパラメータを学習する際の処理を説明するための図である。図３に示す例では、教師データとして、入力文「彼は歴史に通暁している。」、出力文「He  is  familiar  with  history．」を用いる。【００３８】
情報処理装置は、教師データの入力文「彼は歴史に通暁している。」を基にして、下記の様な処理を行い、ＲＮＮ６０の各中間層６１−１〜６１−ｎに入力する各第１ベクトルを算出する。【００３９】
情報処理装置は、入力文５１ａに含まれる文字列を単語毎に分割し、分割入力文（図示略）を生成する。たとえば、入力文５１ａに含まれる単語「彼△」、「は△」、「歴史△」、「に△」、「している△」の各出現頻度を、基準以上とする。単語「通暁△」の出現頻度を基準未満とする。【００４０】
情報処理装置は、単語「彼△」を圧縮コード５２−１に変換し、圧縮コード５２−１を静的符号５４−１に変換する。情報処理装置は、「彼△」の静的符号５４−１と、第１ベクトルテーブルとを基にして、「彼△」の第１ベクトルを特定し、中間層６１−１に入力する第１ベクトルとする。【００４１】
情報処理装置は、単語「は△」を圧縮コード５２−２に変換し、圧縮コード５２−２を静的符号５４−２に変換する。情報処理装置は、「は△」の静的符号５４−２と、第１ベクトルテーブルとを基にして、「は△」の第１ベクトルを特定し、中間層６１−２に入力する第１ベクトルとする。【００４２】
情報処理装置は、単語「歴史△」を圧縮コード５２−３に変換し、圧縮コード５２−３を静的符号５４−３に変換する。情報処理装置は、「歴史△」の静的符号５４−３と、第１ベクトルテーブルとを基にして、「歴史△」の第１ベクトルを特定し、中間層６１−３に入力する第１ベクトルとする。【００４３】
情報処理装置は、単語「に△」を圧縮コード５２−４に変換し、圧縮コード５２−４を静的符号５４−４に変換する。情報処理装置は、「に△」の静的符号５４−４と、第１ベクトルテーブルとを基にして、「に△」の第１ベクトルを特定し、中間層６１−４に入力する第１ベクトルとする。【００４４】
情報処理装置は、単語「通暁△」を圧縮コード５２−５に変換し、圧縮コード５２−５を動的符号５４−５に変換する。たとえば、単語「通暁△」の出現頻度を基準未満とする。情報処理装置は、「通暁△」の動的符号５４−５と、第１ベクトルテーブルとを基にして、「通暁△」の第１ベクトルを特定し、中間層６１−５に入力する第１ベクトルとする。【００４５】
情報処理装置は、単語「している△」を圧縮コード５２−６に変換し、圧縮コード５２−６を静的符号５４−６に変換する。情報処理装置は、「している△」の静的符号５４−６と、第１ベクトルテーブルとを基にして、「している△」の第１ベクトルを特定し、中間層６１−６に入力する第１ベクトルとする。【００４６】
ここで、「通暁△」に割り当てられる第１ベクトルは、「通暁」と同じ属性に属する同義語の「精通」、「詳しい」に割り当てられる第１ベクトルと同じベクトルとなる。【００４７】
続いて、情報処理装置は、教師データの出力文「He  is  familiar  with  history.」を基にして、下記の様な処理を行い、ＲＮＮ６０の各中間層６３−１〜６３−４から出力される「最適な第２ベクトル」を算出する。たとえば、単語「He△」、「is△」、「with△」、「history△」の各出現頻度を基準以上とする。単語「familiar△」の出現頻度を基準未満とする。【００４８】
情報処理装置は、出力文５３ａに含まれる文字列を単語毎に分割し、分割出力文（図示略）を生成する。情報処理装置は、単語「He△」を圧縮コード７２−１に変換し、圧縮コード７２−１を静的符号７１−１に変換する。情報処理装置は、「He△」の静的符号７２−１と、第２ベクトルテーブルとを基にして、「He△」の第２ベクトルを特定し、中間層６３−１から出力される理想的な第２ベクトルの値とする。【００４９】
情報処理装置は、単語「is△」を圧縮コード７２−２に変換し、圧縮コード７２−２を静的符号７１−２に変換する。情報処理装置は、「is△」の静的符号７２−２と、第２ベクトルテーブルとを基にして、「is△」の第２ベクトルを特定し、中間層６３−２から出力される理想的な第２ベクトルの値とする。【００５０】
情報処理装置は、単語「familiar△」を圧縮コード７２−３に変換し、圧縮コード７２−３を動的符号７１−３に変換する。情報処理装置は、「familiar△」の動的符号７２−３と、第２ベクトルテーブルとを基にして、「familiar△」の第２ベクトルを特定し、中間層６３−３から出力される理想的な第２ベクトルの値とする。【００５１】
情報処理装置は、単語「with△」を圧縮コード７２−４に変換し、圧縮コード７２−４を静的符号７１−４に変換する。情報処理装置は、「with△」の静的符号７２−４と、第２ベクトルテーブルとを基にして、「with△」の第２ベクトルを特定し、中間層６３−４から出力される理想的な第２ベクトルの値とする。【００５２】
情報処理装置は、単語「history△」を圧縮コード７２−５に変換し、圧縮コード７２−５を動的符号７１−５に変換する。情報処理装置は、「history△」の静的符号７２−５と、第２ベクトルテーブルとを基にして、「history△」の第２ベクトルを特定し、中間層６３−５から出力される理想的な第２ベクトルの値とする。【００５３】
上記のように、情報処理装置は、教師データを用いて、ＲＮＮ６０の各中間層６１−１〜６１−ｎに入力する各第１ベクトルと、ＲＮＮ６０の各中間層６３−１〜６３−ｎから出力される理想的な第２ベクトルを特定する。情報処理装置は、特定した各第１ベクトルを、ＲＮＮ６０の各中間層６１−１〜６１−ｎに入力したことにより、各中間層６３−１〜６３−ｎから出力される第２ベクトルが、理想的な第２ベクトルに近づくように、ＲＮＮ６０のパラメータを調整する処理を実行する。【００５４】
翻訳精度を低下させないためには、出現頻度が基準以上となる単語（高頻度の単語、中頻度の単語）に対して、優先して固有のベクトルを割り当てることが望ましい。このため、本実施例の情報処理装置は、高頻度、中頻度の単語に対しては固有のベクトルを割当て、低頻度の同義語に対しては、同一のベクトルを割り当てることで、データ量の削減を行う。これにより、翻訳精度を低下させないで、変換モデルの生成に用いるベクトル情報のデータ量を減らすことができる。【００５５】
次に、本実施例に係る情報処理装置の構成について説明する。図４は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。図４に示すように、情報処理装置１００は、通信部１１０、入力部１２０、表示部１３０、記憶部１５０、制御部１６０を有する。【００５６】
通信部１１０は、ネットワークを介して外部装置とデータ通信を実行する処理部である。通信部１１０は、通信装置の一例である。たとえば、情報処理装置１００は、ネットワークを介して、外部装置に接続し、外部装置から、教師データテーブル１５０ｃ等を受信してもよい。【００５７】
入力部１２０は、情報処理装置１００に各種の情報を入力するための入力装置である。たとえば、入力部１２０は、キーボードやマウス、タッチパネル等に対応する。【００５８】
表示部１３０は、制御部１６０から出力される各種の情報を表示するための表示装置である。たとえば、表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。【００５９】
記憶部１５０は、第１ベクトルテーブル１５０ａ、第２ベクトルテーブル１５０ｂ、教師データテーブル１５０ｃ、コード変換テーブル１５０ｄ、辞書情報１５０ｅ、ＲＮＮデータ１５０ｆを有する。また、記憶部１５０は、入力文データ１５０ｇ、出力文データ１５０ｈを有する。記憶部１５０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。【００６０】
図５は、本実施例に係る第１ベクトルテーブルのデータ構造の一例を示す図である。図５に示すように、第１ベクトルテーブル１５０ａは、第１言語の単語（単語の静的符号、動的符号）と、第１ベクトルとを対応付ける。たとえば、第１言語の単語「彼△」の静的符号「６００２ｈ」に割り当てられる第１ベクトルは「Ｖｅｃ１−１」となる。【００６１】
また、低頻度の同義語に対応する各動的符号には、同一の第１ベクトルが割り当てられる。低頻度の同義語に対応する各動的符号は、同一の属性に属していると言える。たとえば、単語「通暁△」の動的符号「Ｅ００５ｈ」、「精通△」の動的符号「Ｅ００６ｈ」、「詳しい△」の動的符号「Ｅ００７ｈ」には、第１ベクトル「Ｖｅｃ１−１ａ」が割り当てられる。【００６２】
図６は、本実施例に係る第２ベクトルテーブルのデータ構造の一例を示す図である。図６に示すように、第２ベクトルテーブル１５０ｂは、第２言語の単語（単語の静的符号、動的符号）と、第２ベクトルとを対応付ける。たとえば、第２言語の単語「He△」の静的符号「７０７３ｈ」に割り当てられる第１ベクトルは「Ｖｅｃ２−１」となる。【００６３】
また、低頻度の動的符号「Ｆ０３４ｈ（familiar△）」に対しても、第２ベクトルが割り当てられる。図６では図示を省略するが、第２言語についても、低頻度の同義語が含まれる場合には、低頻度の同義語に対応する各動的符号には、同一の第２ベクトルが割り当てられる。低頻度の同義語に対応する各動的符号は、同一の属性に属していると言える。【００６４】
教師データテーブル１５０ｃは、教師データとなる、入力文と出力文との組を保持するテーブルである。図７は、本実施例に係る教師データテーブルのデータ構造の一例を示す図である。図７に示すように、この教師データテーブル１５０ｃは、入力文と出力文とを対応付ける。たとえば、第１言語で記載された入力文「彼は歴史に通暁している。」を第２言語に翻訳した場合の適切な出力は「He  is  familiar  with  history.」であることが、教師データにより示される。【００６５】
コード変換テーブル１５０ｄは、単語と、圧縮コードとを対応付けるテーブルである。図８は、本実施例に係るコード変換テーブルのデータ構造の一例を示す図である。図８に示すように、このコード変換テーブル１５０ｄは、テーブル１５１ａと、テーブル１５１ｂとを有する。【００６６】
テーブル１５１ａは、第１言語の単語と圧縮コードとを対応付ける。たとえば、単語「彼△」は、圧縮コード「Ｃ１０１」に対応付けられる。【００６７】
テーブル１５１ｂは、第２言語の単語と圧縮コードとを対応付ける。たとえば、単語「He△」は、圧縮コード「Ｃ２０１」に対応付けられる。なお、複数の単語からなる連語に対して、一つの圧縮コードを割り当ててもよい。図８に示す例では、単語「familiar」に対して、圧縮コード「Ｃ２０５」が対応付けられている。【００６８】
辞書情報１５０ｅは、圧縮コードに対応する、静的符号、動的符号を対応付けるテーブルである。図９は、本実施例に係る辞書情報のデータ構造の一例を示す図である。図９に示すように、この辞書情報１５０ｅは、テーブル１５２ａ、テーブル１５２ｂ、テーブル１５３ａ、テーブル１５３ｂを有する。【００６９】
テーブル１５２ａは、第１言語の単語の圧縮コードと、静的符号とを対応付ける静的辞書である。たとえば、圧縮コード「Ｃ１０１」は、静的符号「６００２ｈ（彼△）」に対応付けられる。【００７０】
テーブル１５２ｂは、第１言語の単語の圧縮コードと、動的符号とを対応付ける動的辞書である。図９に示すように、テーブル１５２ｂは、動的符号と、圧縮コードへのポインタとを対応付ける。たとえば、テーブル１５２ａの圧縮コードにヒットしない圧縮コードについては、ユニークな動的符号が割り当てられ、テーブル１５２ｂの動的符号に設定される。また、動的符号が割り当てられた圧縮コードは、記憶領域（図示略）に格納され、格納した位置へのポインタが、テーブル１５２ｂに設定される。【００７１】
たとえば、圧縮コード「Ｃ１０５」が、テーブル１５２ａの圧縮コードにヒットしない場合に、圧縮コード「Ｃ１０５」に動的符号「Ｅ００５ｈ（通暁△）」が割り当てられ、テーブル１５２ｂに設定される。圧縮コード「Ｃ１０５」は、記憶領域（図示略）に格納され、圧縮コード「Ｃ１０５」が格納された位置に対するポインタが、テーブル１５２ｂに設定される。【００７２】
テーブル１５３ａは、第２言語の単語の圧縮コードと、静的符号とを対応付ける静的辞書である。たとえば、圧縮コード「Ｃ２０１」は、静的符号「７０７３ｈ（He△）」に対応付けられる。【００７３】
テーブル１５３ｂは、第２言語の単語の圧縮コードと、動的符号とを対応付ける動的辞書である。図９に示すように、テーブル１５３ｂは、動的符号と、圧縮コードへのポインタとを対応付ける。たとえば、テーブル１５３ｂの圧縮コードにヒットしない圧縮コードについては、ユニークな動的符号が割り当てられ、テーブル１５３ｂの動的符号に設定される。また、動的符号が割り当てられた圧縮コードは、記憶領域（図示略）に格納され、格納した位置へのポインタが、テーブル１５３ｂに設定される。【００７４】
たとえば、圧縮コード「Ｃ２０３」が、テーブル１５３ａの圧縮コードにヒットしない場合に、圧縮コード「Ｃ２０３」に動的符号「Ｆ０３４ｈ（familiar）」が割り当てられ、テーブル１５３ｂに設定される。圧縮コード「Ｃ２０３」は、記憶領域（図示略）に格納され、圧縮コード「Ｃ２０３」が格納された位置に対するポインタが、テーブル１５３ｂに設定される。【００７５】
ＲＮＮデータ１５０ｆは、図２、３で説明したＲＮＮ６０の各中間層に設定されるパラメータ等を保持するテーブルである。図１０は、本実施例に係るＲＮＮデータのデータ構造の一例を示す図である。図１０に示すように、このＲＮＮデータ１５０ｆは、ＲＮＮ識別情報と、パラメータとを対応付ける。ＲＮＮ識別情報は、ＲＮＮ６０の中間層を一意に識別する情報である。パラメータは、該当する中間層に設定されるパラメータを示すものである。パラメータは、中間層に設定される活性化関数のバイアス値や、重み等に対応する。【００７６】
なお、便宜上、上記では、圧縮コード「Ｃ２０３」に動的符号「Ｆ０３４ｈ（familiar）」が割り当てられる例を説明したが、静的符号が割り当てられても良い。【００７７】
図１１は、中間層のパラメータを補足説明するための図である。図１１には、入力層「ｘ」と、中間層（隠れ層）「ｈ」と、出力層「ｙ」とを有する。中間層「ｈ」は、図２に示した中間層６１−１〜６１−ｎ、６３−１〜６３−ｎに対応するものである。【００７８】
中間層「ｈ」と入力層「ｘ」との関係は、活性化関数ｆを用いて、式（１）により定義される。式（１）のＷ１、Ｗ３は、教師データによる学習により、最適な値に調整される重みである。ｔは時刻（何単語読んだか）を示す。【００７９】
【数１】
2020044509.tif 000003
【００８０】
中間層「ｈ」と出力層「ｙ」との関係は、活性化関数ｇを用いて、式（２）により定義される。式（２）のＷ２は、教師データによる学習により、最適な値に調整される重みである。なお、活性化関数ｇとして、softmax関数を用いてもよい。【００８１】
【数２】
2020044509.tif 000004
【００８２】
入力文データ１５０ｇは、翻訳対象となる入力文のデータである。出力文データ１５０ｈは、入力文データ１５０ｇを翻訳することにより得られるデータである。【００８３】
図５の説明に戻る。制御部１６０は、受付部１６０ａと、ベクトル特定部１６０ｂと、生成部１６０ｃと、翻訳部１６０ｄとを有する。制御部１６０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１６０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。なお、図２、図３で説明したエンコーダ５０、ＲＮＮ６０、デコーダ７０の処理は、制御部１６０により実現されるものとする。ベクトル特定部１６０ｂ、生成部１６０ｃ、翻訳部１６０ｄは、生成処理部の一例である。【００８４】
まず、本実施例に係る情報処理装置１００が、ＲＮＮ６０のパラメータとなるＲＮＮデータ１５０ｆを学習する場合の処理について説明する。ＲＮＮデータ１５０ｆを学習する場合には、制御部１６０の各処理部のうち、受付部１６０ａ、ベクトル特定部１６０ｂ、生成部１６０ｃが動作する。【００８５】
受付部１６０ａは、外部装置からネットワークを介して、教師データテーブル１５０ｃを受け付ける処理部である。受付部１６０ａは、受け付けた教師データテーブル１５０ｃを、記憶部１５０に格納する。受付部１６０ａは、入力部１２０から、教師データテーブル１５０ｃを受け付けてもよい。【００８６】
ベクトル特定部１６０ｂは、教師データテーブル１５０ｃの入力文の各単語に割り当てる第１ベクトルおよび出力文の各単語に割り当てられる第２ベクトルを特定する処理部である。ベクトル特定部１６０ｂは、第１ベクトルおよび第２ベクトルの情報を、生成部１６０ｃに出力する。【００８７】
たとえば、ベクトル特定部１６０ｂは、入力文の各単語のうち、出現頻度が基準未満の単語が含まれる場合には、出現頻度が基準未満の単語に対応付けられる属性を特定し、特定した属性に割り当てられる第１ベクトルを特定する。【００８８】
ベクトル特定部１６０ｂは、出力文の各単語のうち、出現頻度が基準未満の単語が含まれる場合には、出現頻度が基準未満の単語に対応付けられる属性を特定し、特定した属性に割り当てられる第２ベクトルを特定する。【００８９】
以下において、ベクトル特定部１６０ｂの処理の一例について説明する。ベクトル特定部１６０ｂは、圧縮コードに変換する処理、静的符号または動的符号に変換する処理、ベクトルを特定する処理を実行する。【００９０】
ベクトル特定部１６０ｂが実行する「圧縮コードに変換する処理」の一例について説明する。ベクトル特定部１６０ｂは、教師データテーブル１５０ｃから入力文の情報を取得し、入力文に対して形態素解析を実行することで、入力文に含まれる文字列を単語毎に分割し、分割入力文を生成する。ベクトル特定部１６０ｂは、分割入力文に含まれる各単語と、コード変換テーブル１５０ｄのテーブル１５１ａとを比較して、各単語を圧縮コードに変換する。たとえば、ベクトル特定部１６０ｂは、単語「彼△」を、圧縮コード「Ｃ１０１」に変換する。【００９１】
ベクトル特定部１６０ｂは、教師データテーブル１５０ｃから出力文の情報を取得し、出力文に対して形態素解析を実行することで、出力文に含まれる文字列を単語毎に分割し、分割出力文を生成する。ベクトル特定部１６０ｂは、分割出力文に含まれる各単語と、コード変換テーブル１５０ｄのテーブル１５１ｂとを比較して、各単語を圧縮コードに変換する。たとえば、ベクトル特定部１６０ｂは、単語「He△」を、圧縮コード「Ｃ２０１」に変換する。【００９２】
続いて、ベクトル特定部１６０ｂが実行する「静的符号または動的符号に変換する処理」の一例について説明する。ベクトル特定部１６０ｂは、分割入力文から変換した各圧縮コードと、テーブル（静的辞書）１５２ａとを比較する。ベクトル特定部１６０ｂは、分割入力文の圧縮コードのうち、テーブル１５２ａの圧縮コードにヒットする圧縮コードについては、静的符号に変換する。以下の説明では、分割入力文の単語から生成した静的符号を「第１静的符号」と表記する。【００９３】
ベクトル特定部１６０ｂは、分割入力文の圧縮コードのうち、テーブル１５２ａの圧縮コードにヒットしない圧縮コードについては、動的符号に変換する。ベクトル特定部１６０ｂは、圧縮コードと、テーブル（動的辞書）１５２ｂとを比較し、既にテーブル１５２ｂに登録されている圧縮コードに対しては、テーブル１５２ｂに登録された動的符号に変換する。一方、ベクトル特定部１６０ｂは、圧縮コードが、テーブル１５２ｂに登録されていない場合には、動的符号を生成し、テーブル１５２ｂに登録した後に、登録した動的符号に変換する。以下の説明では、分割入力文の単語から生成した動的符号を「第１動的符号」と表記する。【００９４】
ベクトル特定部１６０ｂは、分割出力文から変換した各圧縮コードと、テーブル（静的辞書）１５３ａとを比較する。ベクトル特定部１６０ｂは、分割出力文の圧縮コードのうち、テーブル１５３ａの圧縮コードにヒットする圧縮コードについては、静的符号に変換する。以下の説明では、分割出力文の単語から生成した静的符号を「第２静的符号」と表記する。【００９５】
ベクトル特定部１６０ｂは、分割出力文の圧縮コードのうち、テーブル１５３ａの圧縮コードにヒットしない圧縮コードについては、動的符号に変換する。ベクトル特定部１６０ｂは、圧縮コードと、テーブル（動的辞書）１５３ｂとを比較し、既にテーブル１５３ｂに登録されている圧縮コードに対しては、テーブル１５３ｂに登録された動的符号に変換する。一方、ベクトル特定部１６０ｂは、圧縮コードが、テーブル１５３ｂに登録されていない場合には、動的符号を生成し、テーブル１５３ｂに登録した後に、登録した動的符号に変換する。以下の説明では、分割出力文の単語から生成した動的符号を「第２動的符号」と表記する。【００９６】
続いて、ベクトル特定部１６０ｂが実行する「ベクトルを特定する処理」の一例について説明する。ベクトル特定部１６０ｂは、第１静的符号と、第１ベクトルテーブル１５０ａとを比較し、第１静的符号に対応する第１ベクトルを特定する。また、ベクトル特定部１６０ｂは、第１動的符号と、第１ベクトルテーブル１５０ａとを比較し、第１動的符号の属する属性に対応する第１ベクトルを特定する。ここで、各第１静的符号には、それぞれ固有の第１ベクトルが特定される。これに対して、同一の属性に属している各第１動的符号には、属性に割り当てられた一つの第１ベクトルが特定される。【００９７】
ベクトル特定部１６０ｂは、第２静的符号と、第２ベクトルテーブル１５０ｂとを比較し、第２静的符号に対応する第２ベクトルを特定する。また、ベクトル特定部１６０ｂは、第２動的符号と、第２ベクトルテーブル１５０ｂとを比較し、第２動的符号の属する属性に対応する第２ベクトルを特定する。ここで、各第２静的符号には、それぞれ固有の第２ベクトルが特定される。これに対して、同一の属性に属している各第２動的符号には、属性に割り当てられた一つの第２ベクトルが特定される。【００９８】
ベクトル特定部１６０ｂは、上記処理を実行することで、入力文の各単語に対応する第１ベクトルおよび出力文の各単語に対応する第２ベクトルを生成する。ベクトル特定部１６０ｂは、生成した第１ベクトルおよび第２ベクトルの情報を、生成部１６０ｃに出力する。【００９９】
生成部１６０ｃは、ベクトル特定部１６０ｂにより特定された第１ベクトルおよび第２ベクトルを基にして、変換モデルのパラメータを学習することで、変換モデルを生成する処理部である。パラメータの学習は、次の処理により学習され、学習されたパラメータは、ＲＮＮデータ１５０ｆに登録される。このＲＮＮデータ１５０ｆのパラメータに基づいて値を計算するＲＮＮ６０が、変換モデルに対応する。【０１００】
たとえば、生成部１６０ｃは、ＲＮＮデータ１５０ｆに登録された各中間層のパラメータを用いて、ＲＮＮ６０の中間層６１−１〜６１−ｎに各第１ベクトルを入力し、中間層６３−１〜６３−ｎから出力される各ベクトルを算出する。生成部１６０ｃは、ＲＮＮ６０の中間層６３−１〜６３−ｎから出力される各ベクトルが、各第２ベクトルに近づくように、ＲＮＮデータ１５０ｆに登録された各中間層のパラメータを学習する。【０１０１】
生成部１６０ｃは、中間層６３−１〜６３−ｎから出力される各ベクトルと、第２ベクトルとの差分を定義したコスト関数を用いて、差分が最小となるように、各中間層のパラメータを調整することで、学習を行ってもよい。【０１０２】
続いて、本実施例に係る情報処理装置１００が、学習したＲＮＮデータ１５０ｆ（生成された変換モデル）を用いて、入力文データを翻訳した出力文データを生成する処理について説明する。翻訳処理を行う場合には、制御部１６０の各処理部のうち、受付部１６０ａ、ベクトル特定部１６０ｂ、翻訳部１６０ｄが動作する。【０１０３】
受付部１６０ａは、外部装置からネットワークを介して、入力文データ１５０ｇを受け付ける。受付部１６０ａは、受け付けた入力文データ１５０ｇを、記憶部１５０に格納する。【０１０４】
ベクトル特定部１６０ｂは、入力文データ１５０ｇに含まれる入力文の各単語に対応する第１ベクトルを特定する。ベクトル特定部１６０ｂは、出現頻度が基準未満の単語が含まれる場合には、出現頻度が基準未満の単語に対応付けられる属性を特定し、特定した属性に割り当てられる第１ベクトルを特定する。ベクトル特定部１６０ｂは、入力文データ１５０ｇを基にして特定した第１ベクトルの情報を、翻訳部１６０ｄに出力する。【０１０５】
ベクトル特定部１６０ｂが、入力文データ１５０ｇの入力文の第１ベクトルを特定する処理は、教師データテーブル１５０ｃの入力文の第１ベクトルを特定する処理と同様である。【０１０６】
翻訳部１６０ｄは、ＲＮＮデータ１５０ｆに登録された各中間層６１−１〜６３−ｎのパラメータを用いて、ＲＮＮ６０の各中間層６１−１〜６１−ｎに各第１ベクトルを入力する。翻訳部１６０ｄは、ＲＮＮ６０の中間層６３−１〜６３−ｎから出力される各第２ベクトルを取得することで、各第１ベクトルを各第２ベクトルに変換する。【０１０７】
翻訳部１６０ｄは、各第１ベクトルから変換した各第２ベクトルを用いて、出力文データ１５０ｈを生成する。翻訳部１６０ｄは、各第２ベクトルと、第２ベクトルテーブル１５０ｂとを比較して、各第２ベクトルに対応する静的符号および動的符号を特定する。翻訳部１６０ｄは、静的符号および動的符号と、辞書情報１５０ｅおよびコード変換テーブル１５０ｄとを基にして、静的符号および動的符号に対応する単語をそれぞれ特定する。翻訳部１６０ｄは、特定した単語を並べることで、出力文データ１５０ｈを生成し、記憶部１５０に格納する。【０１０８】
翻訳部１６０ｄは、出力文データ１５０ｈを、外部装置に通知してもよいし、表示部１３０に出力して表示させてもよい。【０１０９】
次に、本実施例に係る情報処理装置１００がＲＮＮデータを生成する処理の一例について説明する。図１２は、本実施例に係る情報処理装置がＲＮＮデータを生成する処理を示すフローチャートである。図１２に示すように、情報処理装置１００の受付部１６０ａは、外部装置から教師データテーブル１５０ｃを受け付ける（ステップＳ１０１）。【０１１０】
情報処理装置１００のベクトル特定部１６０ｂは、教師データテーブル１５０ｃから、教師データを取得する（ステップＳ１０２）。ベクトル特定部１６０ｂは、入力文に含まれる各単語に対して、圧縮コードを割り当てる（ステップＳ１０３）。ベクトル特定部１６０ｂは、各圧縮コードに静的符号および動的符号を割り当てる（ステップＳ１０４）。【０１１１】
ベクトル特定部１６０ｂは、第１ベクトルテーブル１５０ａを基にして、各静的符号に対応する各第１ベクトルを特定する（ステップＳ１０５）。ベクトル特定部１６０ｂは、第１ベクトルテーブル１５０ａを基にして、動的符号の属性を特定し、属性に対応する第１ベクトルを特定する（ステップＳ１０６）。【０１１２】
ベクトル特定部１６０ｂは、出力文に含まれる各単語に対して、圧縮コードを割り当てる（ステップＳ１０７）。ベクトル特定部１６０ｂは、各圧縮コードに静的符号および動的符号を割り当てる（ステップＳ１０８）。【０１１３】
ベクトル特定部１６０ｂは、第２ベクトルテーブル１５０ｂを基にして、各静的符号に対応する第２ベクトルを特定する（ステップＳ１０９）。ベクトル特定部１６０ｂは、第２ベクトルテーブル１５０ｂを基にして、動的符号の属性を特定し、属性に対応する第２ベクトルを特定する（ステップＳ１１０）。【０１１４】
情報処理装置１００の生成部１６０ｃは、各第１ベクトルを各中間層に入力し、ＲＮＮの各中間層から出力される各ベクトルが、各第２ベクトルに近づくように、パラメータを調整する（ステップＳ１１１）。【０１１５】
情報処理装置１００は、学習を継続するか否かを判定する（ステップＳ１１２）。情報処理装置１００は、学習を継続しない場合には（ステップＳ１１２，Ｎｏ）、処理を終了する。情報処理装置１００は、学習を継続する場合には（ステップＳ１１２，Ｙｅｓ）、ステップＳ１１３に移行する。ベクトル特定部１６０ｂは、教師データテーブル１５０ｃから、新たな教師データを取得し（ステップＳ１１３）、ステップＳ１０３に移行する。【０１１６】
次に、本実施例に係る情報処理装置１００が入力文データを翻訳する処理の一例について説明する。図１３は、本実施例に係る情報処理装置が入力文データを翻訳する処理を示すフローチャートである。情報処理装置１００の受付部１６０ａは、外部装置から入力文データ１５０ｇを受け付ける（ステップＳ２０１）。【０１１７】
情報処理装置１００のベクトル特定部１６０ｂは、入力文データ１５０ｇに含まれる各単語に対して、圧縮コードを割り当てる（ステップＳ２０２）。ベクトル特定部１６０ｂは、辞書情報１５０ｅを基にして、各圧縮コードに静的符号および動的符号を割り当てる（ステップＳ２０３）。【０１１８】
ベクトル特定部１６０ｂは、第１ベクトルテーブル１５０ａを参照して、各静的符号に対応する各第１ベクトルを特定する（ステップＳ２０４）。ベクトル特定部１６０ｂは、第１ベクトルテーブル１５０ａを参照して、動的符号の属性に対応する第１ベクトルを特定する（ステップＳ２０５）。【０１１９】
情報処理装置１００の翻訳部１６０ｄは、各第１ベクトルをＲＮＮの各中間層に入力し、各中間層から出力される各第２ベクトルを取得する（ステップＳ２０６）。翻訳部１６０ｄは、第２ベクトルテーブル１５０ｂを参照して、各第２ベクトルを静的符号および動的符号に変換する（ステップＳ２０７）。【０１２０】
翻訳部１６０ｄは、辞書情報１５０ｅを基にして、静的符号および動的符号を圧縮コードに変換する（ステップＳ２０８）。翻訳部１６０ｄは、コード変換テーブル１５０ｄを基にして、圧縮コードを単語に変換し、出力文データ１５０ｈを生成する（ステップＳ２０９）。翻訳部１６０ｄは、出力文データ１５０ｈを外部装置に通知する（ステップＳ２１０）。【０１２１】
次に、本実施例に係る情報処理装置の効果について説明する。翻訳精度を低下させないためには、出現頻度が基準以上となる単語（高頻度の単語、中頻度の単語）に対して、優先して固有のベクトルを割り当てることが望ましい。このため、本実施例の情報処理装置は、高頻度、中頻度の単語に対しては固有のベクトルを割当てる。一方、出現頻度が基準未満の単語（低頻度の単語）に対しては、同義語と同一のベクトルを割り当てることで、データ量の削減を行う。これにより、翻訳精度を低下させないで、変換モデルの生成に用いるベクトル情報のデータ量を減らすことができる。【０１２２】
なお、本実施例では一例として、教師データとなる入力文および出力文の双方に低頻度の単語が含まれる場合について説明したが、これに限定されるものではない。たとえば、教師データとなる入力文および出力文において、入力文にのみ、低頻度の単語が含まれている場合や、出力文にのみ低頻度の単語が含まれている場合でも、同様に、変換モデル（ＲＮＮデータ１５０ｆ）を生成することができる。【０１２３】
また、情報処理装置１００は、翻訳対象となる入力文を受け付けた場合には、入力文に含まれる単語のうち、基準以上となる単語については、固有のベクトルを割当てる。一方、基準未満となる単語に対しては、他の同義語と同じベクトルを割当てる。情報処理装置１００は、上記の処理により入力文の各単語に割り当てたベクトルを、ＲＮＮ６０に入力し、ＲＮＮ６０から出力されるベクトルを用いることで、適切な出力文を生成することができる。【０１２４】
たとえば、情報処理装置は、低頻度の単語に対して、一つのベクトルを割り当てている。これにより、低頻度の単語を属性毎に分類することを容易にしつつ、ベクトルテーブルのデータ量を削減することができる。【０１２５】
次に、実施例に示した情報処理装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図１４は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。【０１２６】
図１４に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る読み取り装置２０４と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置２０５とを有する。コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７とを有する。そして、各装置２０１〜２０７は、バス２０８に接続される。【０１２７】
ハードディスク装置２０７は、受付プログラム２０７ａ、ベクトル特定プログラム２０７ｂ、生成プログラム２０７ｃ、翻訳プログラム２０７ｄを有する。ＣＰＵ２０１は、受付プログラム２０７ａ、ベクトル特定プログラム２０７ｂ、生成プログラム２０７ｃ、翻訳プログラム２０７ｄを読み出してＲＡＭ２０６に展開する。【０１２８】
受付プログラム２０７ａは、受付プロセス２０６ａとして機能する。ベクトル特定プログラム２０７ｂは、ベクトル特定プロセス２０６ｂとして機能する。生成プログラム２０７ｃは、生成プロセス２０６ｃとして機能する。翻訳プログラム２０７ｄは、翻訳プロセス２０６ｄとして機能する。【０１２９】
受付プロセス２０６ａの処理は、受付部１６０ａの処理に対応する。ベクトル特定プロセス２０６ｂの処理は、ベクトル特定部１６０ｂの処理に対応する。生成プロセス２０６ｃの処理は、生成部１６０ｃの処理に対応する。翻訳プロセス２０６ｃの処理は、翻訳部１６０ｄの処理に対応する。【０１３０】
なお、各プログラム２０７ａ〜２０７ｄについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくてもよい。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００が各プログラム２０７ａ〜２０７ｈを読み出して実行するようにしてもよい。
【符号の説明】
【０１３１】
１００    情報処理装置
１１０    通信部
１２０    入力部
１３０    表示部
１５０    記憶部
１５０ａ  第１ベクトルテーブル
１５０ｂ  第２ベクトルテーブル
１５０ｃ  教師データテーブル
１５０ｄ  コード変換テーブル
１５０ｅ  辞書情報
１５０ｆ  ＲＮＮデータ
１５０ｇ  入力文データ
１５０ｈ  出力文データ
１６０    制御部
１６０ａ  受付部
１６０ｂ  ベクトル特定部
１６０ｃ  生成部
１６０ｄ  翻訳部
【図１】
2020044509.tif 000005
【図２】
2020044509.tif 000006
【図３】
2020044509.tif 000007
【図４】
2020044509.tif 000008
【図５】
2020044509.tif 000009
【図６】
2020044509.tif 000010
【図７】
2020044509.tif 000011
【図８】
2020044509.tif 000012
【図９】
2020044509.tif 000013
【図１０】
2020044509.tif 000014
【図１１】
2020044509.tif 000015
【図１２】
2020044509.tif 000016
【図１３】
2020044509.tif 000017
【図１４】
2020044509.tif 000018
【手続補正書】
【提出日】令和3年2月18日(2021.2.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータが、
第１のテキスト情報と、第２のテキスト情報とを受け付け、
前記第１のテキスト情報に含まれる単語のうち、出現頻度が基準未満の単語と、前記第２のテキスト情報に含まれる単語のうち、出現頻度が基準未満である単語とを抽出し、
出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照して、抽出した単語に対応付けられた属性を特定し、
単語の属性に応じたベクトル情報を該属性に対応付けて記憶する記憶部を参照して、前記第１のテキスト情報から抽出された単語の属性に対応付けられた第１ベクトル情報と、前記第２のテキスト情報から抽出された単語の属性に対応付けられた第２ベクトル情報とを特定し、
前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第２ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成する
処理を実行することを特徴とする生成方法。
【請求項２】
前記受け付ける処理は、第３のテキスト情報を受け付け、
前記抽出する処理は、前記第３のテキスト情報に含まれる単語を抽出し、
前記記憶部は、出現頻度が基準以上の単語に応じたベクトル情報を記憶し、
前記特定する処理は、前記記憶部を参照して、前記第３のテキスト情報に含まれる単語に対応付けられた第３ベクトル情報を特定し、
前記生成する処理は、前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第３ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成することを特徴とする請求項１に記載の生成方法。
【請求項３】
前記受け付ける処理は、翻訳対象のテキスト情報を受け付け、
前記抽出する処理は、前記翻訳対象のテキスト情報に含まれる複数の単語を抽出し、
前記特定する処理は、前記記憶部を参照して、前記複数の単語のうち、出現頻度が基準未満の単語には、出現頻度が基準未満の単語の属性に対応付けられたベクトル情報を特定し、出現頻度が基準以上の単語には、出現頻度が基準以上の単語に対応付けられたベクトル情報を特定し、
前記特定する処理に特定された複数のベクトル情報を、前記変換モデルに入力することで前記変換モデルから出力される複数のベクトル情報を基にして、テキスト情報を生成する処理を更に実行することを特徴とする請求項１に記載の生成方法。
【請求項４】
前記記憶部は、出現頻度が基準未満の同義語に対して、一つのベクトル情報を対応付けることを特徴とする請求項１、２または３に記載の生成方法。
【請求項５】
コンピュータに、
第１のテキスト情報と、第２のテキスト情報とを受け付け、
前記第１のテキスト情報に含まれる単語のうち、出現頻度が基準未満の単語と、前記第２のテキスト情報に含まれる単語のうち、出現頻度が基準未満である単語とを抽出し、
出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照して、抽出した単語に対応付けられた属性を特定し、
単語の属性に応じたベクトル情報を該属性に対応付けて記憶する記憶部を参照して、前記第１のテキスト情報から抽出された単語の属性に対応付けられた第１ベクトル情報と、前記第２のテキスト情報から抽出された単語の属性に対応付けられた第２ベクトル情報とを特定し、
前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第２ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成する
処理を実行させることを特徴とする生成プログラム。
【請求項６】
第１のテキスト情報と、第２のテキスト情報とを受け付ける受付部と、
前記第１のテキスト情報に含まれる単語のうち、出現頻度が基準未満の単語と、前記第２のテキスト情報に含まれる単語のうち、出現頻度が基準未満である単語とを抽出し、
出現頻度が基準未満の複数の単語に対して、一つの属性を割り当てた情報を記憶する記憶部を参照して、抽出した単語に対応付けられた属性を特定し、単語の属性に応じたベクトル情報を該属性に対応付けて記憶する記憶部を参照して、前記第１のテキスト情報から抽出された単語の属性に対応付けられた第１ベクトル情報と、前記第２のテキスト情報から抽出された単語の属性に対応付けられた第２ベクトル情報とを特定し、前記第１ベクトル情報を、変換モデルに入力した際に出力されるベクトル情報が、前記第２ベクトル情報に近づくように、前記変換モデルのパラメータを学習することで、前記変換モデルを生成する生成処理部と
を有することを特徴とする情報処理装置。
【国際調査報告】
2020044509.tif 000019
2020044509.tif 000020