(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-20
(45)【発行日】2023-03-01
(54)【発明の名称】学習方法、翻訳方法、学習プログラム、翻訳プログラムおよび情報処理装置
(51)【国際特許分類】
G06F 40/44 20200101AFI20230221BHJP
【FI】
G06F40/44
(21)【出願番号】P 2020530825
(86)(22)【出願日】2018-07-19
(86)【国際出願番号】 JP2018027173
(87)【国際公開番号】W WO2020017006
(87)【国際公開日】2020-01-23
【審査請求日】2021-01-27
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】片岡 正弘
(72)【発明者】
【氏名】的場 友希
(72)【発明者】
【氏名】井上 栄
【審査官】長 由紀子
(56)【参考文献】
【文献】米国特許出願公開第2010/0268526(US,A1)
【文献】特開2002-230021(JP,A)
【文献】特開2005-173686(JP,A)
【文献】特開2018-060443(JP,A)
【文献】特開2005-174228(JP,A)
【文献】増田 嵩志、鶴岡 慶雅,ニューラルネットワーク日英機械翻訳における品詞情報の利用,言語処理学会第22回年次大会 発表論文集 [online],日本,言語処理学会,2016年02月29日,pp. 294-297
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
G06F 16/00-958
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
第1のテキスト情報と、第2のテキスト情報とを受け付け、
受け付けた前記第1のテキスト情報を解析して、前記第1のテキスト情報に含まれる何れかの単語及び該何れかの単語の語義の組みを識別し、第1単語及び該第1単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第1単語及び該第1単語の語義の組み合わせに、
静的な第1符号を割り当て、
受け付けた前記第2のテキスト情報を解析して、前記第2のテキスト情報に含まれる第2単語及び該第2単語の語義の組みを識別し、前記第2単語及び該第2単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第2単語及び該第2単語の語義の組み合わせに、
静的な第2符号を割り当て、
単語の語義に応じた語義ベクトルを、該単語及び該単語の語義の組みを識別する符号に対応付けて記憶する記憶部を参照して、前記第1符号に対応する第1語義ベクトルと、前記第2符号に対応する第2語義ベクトルとを特定し、
前記第1のテキスト情報に含まれる第1単語の第1符号から特定される第1語義ベクトルを、変換モデルに入力した際に出力される語義ベクトルが、前記第1単語に対応する単語であって、前記第2のテキスト情報の単語を示す第2単語の第2符号から特定される第2語義ベクトルに近づくように、前記変換モデルのパラメータを学習する
処理を実行することを特徴とする学習方法。
【請求項2】
前記第1のテキスト情報は、第1の言語で記載されたテキスト情報であり、前記第2のテキスト情報は、前記第1の言語とは異なる第2の言語で記載されたテキスト情報であることを特徴とする請求項1に記載の学習方法。
【請求項3】
コンピュータが、
第1のテキスト情報を受け付け、
受け付けた前記第1のテキスト情報を解析して、前記第1のテキスト情報に含まれる何れかの単語及び該何れかの単語の語義の組みを識別し、前記第1単語及び該第1単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第1単語及び該第1単語の語義の組み合わせに、
静的な第1符号を割り当て、
単語の語義に応じた語義ベクトルを、該単語及び該単語の語義の組みを識別する符号に対応付けて記憶する記憶部を参照して、前記第1符号に対応する第1語義ベクトルを特定し、
請求項1の学習方法によって学習されたパラメータを有する変換モデルに、前記第1語義ベクトルを入力することで、前記第1語義ベクトルを第2語義ベクトルに変換し、
前記記憶部を参照して、前記第2語義ベクトルに対応する第2符号を取得し、
前記第2符号を基にして、第2のテキスト情報を生成する
処理を実行することを特徴とする翻訳方法。
【請求項4】
第1のテキスト情報と、第2のテキスト情報とを受け付け、
受け付けた前記第1のテキスト情報を解析して、前記第1のテキスト情報に含まれる何れかの単語及び該何れかの単語の語義の組みを識別し、第1単語及び該第1単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第1単語及び該第1単語の語義の組み合わせに、
静的な第1符号を割り当て、
受け付けた前記第2のテキスト情報を解析して、前記第2のテキスト情報に含まれる第2単語及び該第2単語の語義の組みを識別し、前記第2単語及び該第2単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第2単語及び該第2単語の語義の組み合わせに、
静的な第2符号を割り当て、
単語の語義に応じた語義ベクトルを、該単語及び該単語の語義の組みを識別する符号に対応付けて記憶する記憶部を参照して、前記第1符号に対応する第1語義ベクトルと、前記第2符号に対応する第2語義ベクトルとを特定し、
前記第1のテキスト情報に含まれる第1単語の第1符号から特定される第1語義ベクトルを、変換モデルに入力した際に出力される語義ベクトルが、前記第1単語に対応する単語であって、前記第2のテキスト情報の単語を示す第2単語の第2符号から特定される第2語義ベクトルに近づくように、前記変換モデルのパラメータを学習する
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項5】
第1のテキスト情報を受け付け、
受け付けた前記第1のテキスト情報を解析して、前記第1のテキスト情報に含まれる何れかの単語及び該何れかの単語の語義の組みを識別し、第1単語及び該第1単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第1単語及び該第1単語の語義の組み合わせに、
静的な第1符号を割り当て、
単語の語義に応じた語義ベクトルを、該単語及び該単語の語義の組みを識別する符号に対応付けて記憶する記憶部を参照して、前記第1符号に対応する第1語義ベクトルを特定し、
請求項1の学習方法によって学習されたパラメータを有する変換モデルに、前記第1語義ベクトルを入力することで、前記第1語義ベクトルを第2語義ベクトルに変換し、
前記記憶部を参照して、前記第2語義ベクトルに対応する第2符号を取得し、
前記第2符号を基にして、第2のテキスト情報を生成する
処理をコンピュータに実行させることを特徴とする翻訳プログラム。
【請求項6】
第1のテキスト情報と、第2のテキスト情報とを受け付ける受付部と、
受け付けた前記第1のテキスト情報を解析して、前記第1のテキスト情報に含まれる何れかの単語及び該何れかの単語の語義の組みを識別し、第1単語及び該第1単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第1単語及び該第1単語の語義の組み合わせに、
静的な第1符号を割り当てる第1取得部と、
受け付けた前記第2のテキスト情報を解析して、前記第2のテキスト情報に含まれる単語及び該単語の語義の組みを識別し、第2単語及び該第2単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第2単語及び該第2単語の語義の組み合わせに、
静的な第2符号を割り当てる第2取得部と、
単語の語義に応じた語義ベクトルを、該単語及び該単語の語義の組みを識別する符号に対応付けて記憶する記憶部を参照して、前記第1符号に対応する第1語義ベクトルと、前記第2符号に対応する第2語義ベクトルとを特定する特定部と、
前記第1のテキスト情報に含まれる第1単語の第1符号から特定される第1語義ベクトルを、変換モデルに入力した際に出力される語義ベクトルが、前記第1単語に対応する単語であって、前記第2のテキスト情報の単語を示す第2単語の第2符号から特定される第2語義ベクトルに近づくように、前記変換モデルのパラメータを学習する学習部と
を有することを特徴とする情報処理装置。
【請求項7】
第1のテキスト情報を受け付ける受付部と、
受け付けた前記第1のテキスト情報を解析して、前記第1のテキスト情報に含まれる何れかの単語及び該何れかの単語の語義の組みを識別し、第1単語及び該第1単語の語義の組み合わせの出現頻度
を基にして、前記出現頻度が閾値以上の頻度となる前記第1単語及び該第1単語の語義の組み合わせに、
静的な第1符号を割り当てる取得部と、
単語の語義に応じた語義ベクトルを、該単語及び該単語の語義の組みを識別する符号に対応付けて記憶する記憶部を参照して、前記第1符号に対応する第1語義ベクトルを特定する特定部と、
請求項1の学習方法によって学習されたパラメータを有する変換モデルに、前記第1語義ベクトルを入力することで、前記第1語義ベクトルを第2語義ベクトルに変換する変換部と、
前記記憶部を参照して、前記第2語義ベクトルに対応する第2符号を取得し、前記第2符号を基にして、第2のテキスト情報を生成する生成部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法等に関する。
【背景技術】
【0002】
近年、第1言語を、第1言語とは異なる他の第2言語を翻訳する場合に、ニューラル機械翻訳(NMT:Neural Machine Translation)が用いられている。ニューラル機械翻訳には様々なモデルが存在するが、たとえば、エンコーダ(encoder)、リカレントネットワーク(RNN:Recurrent Neural Network)、デコーダ(decoder)から構成されるモデルがある。
【0003】
エンコーダは、入力文の文字列を単語に符号化し、その単語にベクトルを割り当てる処理部である。RNNは、エンコーダから入力される単語とそのベクトルを、自身のパラメータに基づいて変換し、変換したベクトルとその単語を出力するものである。デコーダは、RNNから出力されるベクトルと単語を基にして、出力文を復号化する処理部である。
【0004】
従来技術では、教師データを用いて、第1言語の入力文から適切な第2言語の出力文が出力されるように、RNNのパラメータを学習する。RNNのパラメータには、活性化関数のバイアス値や、重みが含まれる。たとえば、従来技術では、学習データとして、第1言語の入力文「リンゴは甘い。」と第2言語の出力文「The Apple is sweet.」との組を与え、RNNのパラメータを学習する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2013-020431号公報
【文献】特開2018-026098号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来技術では、複数の語義を含む単語の翻訳精度が低いという問題がある。
【0007】
ニューラル機械翻訳のエンコーダでは、入力文に含まれる各単語を、分散表現と呼ばれる数百次元からなるベクトルに変換する作業が行われる。この作業は、英語や日本語などの言語への依存を軽減するため、「embedding」と呼ばれる。従来技術では、embeddingを行う場合に、単語の語義を区別しない。たとえば、「リンゴは甘い」の「甘い(1)」と、「君の考えは甘い」の「甘い(2)」とは語義が異なっているが、従来技術のembeddingでは、「甘い(1)」および「甘い(2)」を、Word2Vecで一つの同じベクトルに変換している。このため、従来技術では、「甘い(1)」および「甘い(2)」の語義の違いを区別せずに、RNNの機械学習を実行するため、複数の語義を含む単語に対し、適切にパラメータを学習することが難しい。このため、入力文に複数の語義を含む単語が存在すると、適切な出力文に翻訳されず、翻訳精度が低下する。
【0008】
1つの側面では、本発明は、複数の語義を含む単語の翻訳精度を向上することができる、学習方法、翻訳方法、学習プログラム、翻訳プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
第1の案では、コンピュータが、次の処理を実行する。コンピュータは、第1のテキスト情報と、第2のテキスト情報とを受け付ける。コンピュータは、受け付けた第1のテキスト情報を解析して、第1のテキスト情報に含まれる何れかの単語及び該何れかの単語の語義の組みを識別する第1単語情報を取得する。コンピュータは、受け付けた第2のテキスト情報を解析して、第2のテキスト情報に含まれる単語及び該単語の語義の組みを識別する第2単語情報を取得する。コンピュータは、単語の語義に応じた語義ベクトルを、該単語及び該単語の語義の組みを識別する単語情報に対応付けて記憶する記憶部を参照して、第1単語情報に対応する第1語義ベクトルと、第2単語情報に対応する第2語義ベクトルとを特定する。コンピュータは、第1のテキスト情報に含まれる第1単語の第1単語情報から特定される第1語義ベクトルを、変換モデルに入力した際に出力される語義ベクトルが、第1単語に対応する単語であって、第2のテキスト情報の単語を示す第2単語から特定される第2語義ベクトルに近づくように、変換モデルのパラメータを学習する。
【発明の効果】
【0010】
複数の語義を含む単語の翻訳精度を向上することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本実施例1に係る情報処理装置の処理を説明するための図である。
【
図2】
図2は、本実施例1に係る情報処理装置がRNNのパラメータを学習する際の処理を説明するための図である。
【
図3】
図3は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
【
図4】
図4は、本実施例1に係る第1ベクトルテーブルのデータ構造の一例を示す図である。
【
図5】
図5は、本実施例1に係る第2ベクトルテーブルのデータ構造の一例を示す図である。
【
図6】
図6は、本実施例1に係る教師データテーブルのデータ構造の一例を示す図である。
【
図7】
図7は、本実施例1に係るコード変換テーブルのデータ構造の一例を示す図である。
【
図8】
図8は、本実施例1に係る辞書情報のデータ構造の一例を示す図である。
【
図9】
図9は、本実施例1に係るRNNデータのデータ構造の一例を示す図である。
【
図10】
図10は、中間層のパラメータを補足説明するための図である。
【
図11】
図11は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。
【
図12】
図12は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
【
図13】
図13は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。
【
図14】
図14は、本実施例1に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図15】
図15は、本実施例2に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0012】
以下に、本発明にかかる学習方法、翻訳方法、学習プログラム、翻訳プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0013】
図1は、本実施例1に係る情報処理装置の処理を説明するための図である。本実施例1に係る情報処理装置は、エンコーダ50と、リカレントニューラルネットワーク(RNN)60と、デコーダ70とを有する。エンコーダ50に、第1言語の入力文を入力すると、RNN60を介して、デコーダ70から第2言語の出力文が出力される。本実施例1では、第1言語を日本語とし、第2言語を英語として説明を行うが、これに限定されるものではない。
【0014】
エンコーダ50は、入力文を構成する単語に分割し、第1ベクトルにそれぞれ変換する処理部である。RNN60は、複数の第1ベクトルが入力されると、自身に設定されたパラメータを用いて、複数の第1ベクトルを第2ベクトルに変換する処理部である。RNN60のパラメータには、活性化関数のバイアス値や、重みが含まれる。デコーダ70は、RNN60から出力される第2ベクトルと対応する各単語を基にして、出力文を復号化する処理部である。
【0015】
エンコーダ50は、第1言語のコード変換テーブル(図示略)を用いて、入力文51に含まれる複数の単語を、単語および単語の語義を一意に識別可能な圧縮コードに変換する。たとえば、入力文51に含まれる各単語は、圧縮コード51-1~51-nに変換される。ここで、「リンゴは甘い。」の「甘い(1)」と、「君の考えは甘い。」の「甘い(2)」とは、語義が異なるので、「甘い(1)」、「甘い(2)」は、それぞれ異なる圧縮コードに変換される。
【0016】
エンコーダ50は、第1言語の辞書情報(図示略)を基にして、圧縮コード51-1~51-nにつき、複数の語義を含む単語は高頻度であり、静的符号53-1~53-nに変換する。なお、低頻度な単語は、動的符号(図示略)に変換される。辞書情報は、圧縮コードと、第1言語の静的符号、または動的符号とを対応付けた情報である。
【0017】
ここで、エンコーダ50が生成した静的符号53-1~53-nは、局所表現(local representation)に対応する情報である。エンコーダ50は、第1ベクトルテーブル150aを参照して、各静的符号を対応する各第1ベクトルに変換する。第1ベクトルテーブル150aは、静的符号と第1ベクトルとを対応付けるテーブルである。第1ベクトルは、分散表現(distributed representation)に対応する情報である。エンコーダ50は、変換した各第1ベクトルを、RNN60に出力する。
【0018】
RNN60は、中間層(隠れ層)61-1~61-n,63-1~63-nと、変換機構62とを有する。中間層61-1~61-n,63-1~63-nは、自身に設定されたパラメータと、入力されたベクトルとを基にして値を算出し、算出した値を出力するものである。
【0019】
中間層61-1は、静的符号53-1の第1ベクトルの入力を受け付け、受け付けたベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、変換機構62に出力する。中間層61-2~61-nも同様にして、対応する静的符号の第1ベクトルの入力を受け付け、受け付けたベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、変換機構62に出力する。
【0020】
変換機構62は、中間層61-1~61-nから入力される各値と、デコーダ70等の内部状態を判断材料として、次の単語を訳出する際に注目すべき箇所を判断する役割を担う。たとえば、中間層61-1の値に着目する確率が0.2、中間層61-2に着目する確率が0.3等となり、各確率を全て足すと1に成るように正規化されている。
【0021】
変換機構62は、中間層61-1~61-nから出力される値と、各アテンション(確率)とを乗算した値を、足し合わせることで、分散表現の重み付き和を計算する。これを、コンテキストベクトル(context vector)と呼ぶ。変換機構63は、コンテキストベクトルを、中間層63-1~63-nに入力する。中間層63-1~63-nに入力される各コンテキストベクトルを算出する際に用いられる確率はそれぞれ再計算され、注目すべき箇所が毎回変化する。
【0022】
中間層63-1は、変換機構62からコンテキストベクトルを受け付け、受け付けたコンテキストベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、デコーダ70に出力する。中間層63-2~63-nも同様にして、対応するコンテキストベクトルを受け付け、受け付けたベクトルと、自身に設定されたパラメータとを基にして、値を算出し、算出した値を、デコーダ70に出力する。
【0023】
デコーダ70は、中間層63-1~63-nから出力される値(第2ベクトル)につき、第2ベクトルテーブル150bを参照して、第2ベクトルを静的符号71-1~71-nに変換する。第2ベクトルテーブル150bは、静的符号と第2ベクトルとを対応付けるテーブルである。第2ベクトルは、分散表現に対応する情報である。
【0024】
デコーダ70は、第2言語の辞書情報(図示略)を基にして、静的符号71-1~71-nを、圧縮コード72-1~72-nに変換する。第2言語の辞書情報は、圧縮コードと、第2言語の静的符号とを対応付けた情報である。
【0025】
デコーダ70は、第2言語のコード変換テーブル(図示略)を用いて、圧縮コード72-1~72-nを第2言語の単語に変換することで、出力文73を生成する。
【0026】
ここで、本実施例1に係る情報処理装置は、RNN60をパラメータを学習する場合に、教師データとなる第1言語の入力文と、第2言語の出力文との組を受け付ける。情報処理装置は、教師データの入力文をエンコーダ50に入力した場合に、教師データの出力文がデコーダ70から出力されるように、RNN60のパラメータを学習する。
【0027】
図2は、本実施例1に係る情報処理装置がRNNのパラメータを学習する際の処理を説明するための図である。
図2に示す例では、教師データとして、入力文「リンゴが甘い。」、出力文「The apple is sweet.」を用いる。
【0028】
情報処理装置は、教師データの入力文「リンゴが甘い。」を基にして、下記の様な処理を行い、RNN60の各中間層61-1~61-nに入力する各第1ベクトルを算出する。
【0029】
情報処理装置は、入力文51aの単語「リンゴ」を圧縮コード52-1に変換し、圧縮コード52-1を静的符号53-1に変換する。情報処理装置は、「リンゴ」の静的符号53-1と、第1ベクトルテーブル150aとを基にして、「リンゴ」の第1ベクトルを特定し、中間層61-1に入力する第1ベクトルとする。
【0030】
情報処理装置は、入力文51aの単語「が」を、圧縮コード52-2に変換し、圧縮コード52-2を静的符号53-2に変換する。情報処理装置は、「が」の静的符号53-2と、第1ベクトルテーブル150aとを基にして、「が」の第1ベクトルを特定し、中間層61-2に入力する第1ベクトルとする。
【0031】
情報処理装置は、入力文51aの単語「甘い(1)」を、圧縮コード52-3に変換する。「甘い(1)」は、語義「砂糖や蜜のような味である」の単語「甘い」を便宜的に示すものである。情報処理装置により変換される圧縮コード52-3は、単語「甘い」と、この単語「甘い」の意味との組を一意に識別する圧縮コードとなる。情報処理装置は、圧縮コード52-3を、静的符号53-3に変換する。情報処理装置は、「甘い(1)」の静的符号53-2と、第1ベクトルテーブル150aとを基にして、「甘い(1)」の第1ベクトルを特定し、中間層61-3に入力する第1入力ベクトルとする。
【0032】
続いて、情報処理装置は、教師データの出力文「The apple is sweet.」を基にして、下記のような処理を行い、RNN60の各中間層63-1~63-nから出力される、「最適な第2ベクトル」を算出する。
【0033】
情報処理装置は、出力文73aの単語「The」を、圧縮コード72-1に変換し、圧縮コード72-1を静的符号71-1に変換する。情報処理装置は、「The」の静的符号71-1と、第2ベクトルテーブル150bとを基にして、「The」の第2ベクトルを特定し、特定した第2ベクトルを、中間層63-1から出力される理想的な第2ベクトルの値とする。
【0034】
情報処理装置は、出力文73aの単語「apple」を、圧縮コード72-2に変換し、圧縮コード72-2を静的符号71-2に変換する。情報処理装置は、「apple」の静的符号71-2と、第2ベクトルテーブル150bとを基にして、「apple」の第2ベクトルを特定し、特定した第2ベクトルを、中間層63-2から出力される理想的な第2ベクトルの値とする。
【0035】
情報処理装置は、出力文73aの単語「is」を、圧縮コード72-3に変換し、圧縮コード72-3を静的符号71-3に変換する。情報処理装置は、「is」の静的符号71-3と、第2ベクトルテーブル150bとを基にして、「is」の第2ベクトルを特定し、特定した第2ベクトルを、中間層63-3から出力される理想的な第2ベクトルの値とする。
【0036】
情報処理装置は、出力文73aの単語「sweet」を、圧縮コード72-4に変換し、圧縮コード72-4を静的符号71-4に変換する。情報処理装置は、「sweet」の静的符号71-4と、第2ベクトルテーブル150bとを基にして、「sweet」の第2ベクトルを特定し、特定した第2ベクトルを、中間層63-4から出力される理想的な第2ベクトルの値とする。
【0037】
上記のように、情報処理装置は、教師データを用いて、RNN60の各中間層61-1~61-nに入力する各第1ベクトルと、RNN60の各中間層63-1~63-nから出力される理想的な第2ベクトルを特定する。情報処理装置は、特定した各第1ベクトルを、RNN60の各中間層61-1~61-nに入力したことにより、各中間層63-1~63-nから出力される第2ベクトルが、理想的な第2ベクトルに近づくように、RNN60のパラメータを調整する処理を実行する。
【0038】
ここで、本実施例1に係る情報処理装置は、教師データを用いて、RNN60のパラメータを学習する場合に、教師データに含まれる単語について、単語と単語の語義との組を一意に識別する圧縮コード、静的符号を用いて学習を行う。このため、RNN60に入力する第1ベクトル(分散表現)が、単語の語義を区別可能な状態で学習が行われるため、このような学習を行ったRNN60を用いることで、複数の語義を含む単語の翻訳精度を向上することができる。
【0039】
次に、本実施例1に係る情報処理装置の構成について説明する。
図3は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
図3に示すように、この情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部150と、制御部160とを有する。
【0040】
通信部110は、ネットワークを介して外部装置とデータ通信を実行する処理部である。通信部110は、通信装置の一例である。たとえば、情報処理装置100は、ネットワークを介して、外部装置に接続し、外部装置から、教師データテーブル150c等を受信してもよい。
【0041】
入力部120は、情報処理装置100に各種の情報を入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0042】
表示部130は、制御部160から出力される各種の情報を表示するための表示装置である。たとえば、表示部130は、液晶ディスプレイやタッチパネル等に対応する。
【0043】
記憶部150は、第1ベクトルテーブル150a、第2ベクトルテーブル150b、教師データテーブル150c、コード変換テーブル150d、辞書情報150e、RNNデータ150fを有する。記憶部150は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0044】
第1ベクトルテーブル150aは、第1言語の静的符号と、第1ベクトルとを対応付けるテーブルである。第1ベクトルは語義ベクトルの一例である。
図4は、本実施例1に係る第1ベクトルテーブルのデータ構造の一例を示す図である。
図4に示すように、この第1ベクトルテーブル150aは、第1言語の静的符号と、第1ベクトルとを対応付ける。たとえば、第1言語の単語「甘い(1)」に対応する静的符号「6002h」は、第1ベクトル「Ve1-1」に対応付けられる。「h」は16進数を示すものである。第1ベクトルは、分散表現に対応する情報である。
【0045】
第2ベクトルテーブル150bは、第2言語の静的符号と、第2ベクトルを対応付けるテーブルである。第2ベクトルは語義ベクトルの一例である。
図5は、本実施例1に係る第2ベクトルテーブルのデータ構造の一例を示す図である。
図5に示すように、この第2ベクトルテーブル150bは、第2言語の静的符号と、第2ベクトルとを対応付ける。たとえば、第2言語の単語「sweet」に対応する静的符号「6073h」は、第2ベクトル「Ve2-1」に対応付けられる。第2ベクトルは、分散表現に対応する情報である。
【0046】
教師データテーブル150cは、教師データとなる、入力文と出力文との組を保持するテーブルである。
図6は、本実施例1に係る教師データテーブルのデータ構造の一例を示す図である。
図6に示すように、この教師データテーブル150cは、入力文と、出力文とを対応付ける。たとえば、第1言語で記載された入力文「リンゴは甘い。」を第2言語に翻訳した場合の適切な出力文は「The apple is sweet.」であることが、教師データにより示される。
【0047】
図6では図示を省略するが、入力文に含まれる各単語に、多義語が含まれている場合には、多義語に対応する単語と、単語の語義を示す情報が、教師データテーブル150cに設定されているものとする。たとえば、入力文「リンゴは甘い。」のうち、「甘い」に多義語を示すフラグが立ち、語義「砂糖や蜜のような味である」が添付されているものとする。また、入力文「君の考えは甘い。」のうち、「甘い」に多義語を示すフラグが立ち、語義「しっかりとした心構えができていない」が添付されているものとする。なお、多義語に添付される語義は、語義を一意に識別する情報であってもよい。
【0048】
コード変換テーブル150dは、単語と単語の語彙との組と、圧縮コードとを対応付けるテーブルである。
図7は、本実施例1に係るコード変換テーブルのデータ構造の一例を示す図である。
図7に示すように、このコード変換テーブル150dは、テーブル151aと、テーブル151bとを有する。
【0049】
テーブル151aは、第1言語の単語と圧縮コードとを対応付ける。たとえば、単語「甘い(1)」は、圧縮コード「C101」に対応付けられる。圧縮コード「C101」により、単語「甘い」と、語義「砂糖や蜜のような味である」との組を一意に識別できる。単語「甘い(2)」は、圧縮コード「C102」に対応付けられる。圧縮コード「C102」により、単語「甘い」と、語義「しっかりした心構えができていない」との組を一意に識別できる。なお、多義語ではない単語については、一つの単語に対して、一つの圧縮コードが割り当てられる。
【0050】
テーブル151bは、第2言語の単語と圧縮コードとを対応付ける。たとえば、単語「Sweet」は、圧縮コード「C201」に対応付けられる。単語「shallow」は、圧縮コード「C202」に対応付けられる。ここでは説明を省略するが、テーブル151bの圧縮コードも、テーブル151aの圧縮コードと同様にして、単語と語義との組を一意に識別する圧縮コードであってもよい。
【0051】
辞書情報150eは、圧縮コードと、静的符号とを対応付けるテーブルである。
図8は、本実施例1に係る辞書情報のデータ構造の一例を示す図である。
図8に示すように、この辞書情報150eは、テーブル152aと、テーブル152bとを有する。
【0052】
テーブル152aは、第1言語の単語の圧縮コードと、静的符号とを対応付けるテーブルである。たとえば、圧縮コード「C101(甘い(1)の圧縮コード)」は、静的符号「6002h」に対応付けられる。圧縮コード「C101(甘い(2)の圧縮コード)」は、静的符号「6003h」に対応付けられる。
【0053】
テーブル152bは、第2言語の単語の圧縮コードと、静的符号とを対応付けるテーブルである。たとえば、圧縮コード「C201(sweetの圧縮コード)」は、静的符号「6073h」に対応付けられる。圧縮コード「C202(shallowの圧縮コード)」は、静的符号「6077h」に対応付けられる。
【0054】
RNNデータ150fは、
図1、2で説明したRNN60の各中間層に設定されるパラメータ等を保持するテーブルである。
図9は、本実施例1に係るRNNデータのデータ構造の一例を示す図である。
図9に示すように、このRNNデータ150fは、RNN識別情報と、パラメータとを対応付ける。RNN識別情報は、RNN60の中間層を一意に識別する情報である。パラメータは、該当する中間層に設定されるパラメータを示すものである。パラメータは、中間層に設定される活性化関数のバイアス値や、重み等に対応する。
【0055】
図10は、中間層のパラメータを補足説明するための図である。
図10には、入力層「x」と、中間層(隠れ層)「h」と、出力層「y」とを有する。中間層「h」は、
図1に示した中間層61-1~61-n、63-1~63-nに対応するものである。
【0056】
中間層「h」と入力層「x」との関係は、活性化関数fを用いて、式(1)により定義される。式(1)のW1、W3は、教師データによる学習により、最適な値に調整される重みである。tは時刻(何単語読んだか)を示す。
【0057】
【0058】
中間層「h」と出力層「y」との関係は、活性化関数gを用いて、式(2)により定義される。式(2)のW2は、教師データによる学習により、最適な値に調整される重みである。なお、活性化関数gとして、softmax関数を用いてもよい。
【0059】
【0060】
図3の説明に戻る。制御部160は、受付部160a、第1取得部160b、第2取得部160c、特定部160d、学習部160eを有する。制御部160は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部160は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。なお、エンコーダ50、RNN60、デコーダ70の処理は、制御部160により実現されるものとする。
【0061】
受付部160aは、外部装置からネットワークを介して、教師データテーブル150cを受け付ける処理部である。受付部160aは、受け付けた教師データテーブル150cを、記憶部150に格納する。受付部160aは、入力部120から、教師データテーブル150cを受け付けてもよい。
【0062】
第1取得部160bは、教師データテーブル150cの入力文を解析し、入力文の単語に対する静的符号を取得する処理部である。以下において、第1取得部160bの処理の一例について説明する。
【0063】
第1取得部160bは、教師データテーブル150cから、入力文を取得し、入力文に対して字句解析を実行し、複数の単語に分割する。第1取得部160bは、分割した単語を選択し、選択した単語と、コード変換テーブル150dのテーブル151aとを比較して、圧縮コードに変換する。
【0064】
ここで、第1取得部160bは、選択した単語が多義語である場合には、選択した単語と、語義との組に対応する圧縮コードを、テーブル151aから特定し、特定した圧縮コードに変換する。第1取得部160bは、選択した単語が多義語でない場合には、選択した単語に対応する圧縮コードを、テーブル151aから特定し、特定した圧縮コードに変換する。
【0065】
第1取得部160bは、入力文の単語を圧縮コードに変換すると、変換した圧縮コードと、辞書情報150eのテーブル152aとを比較して、圧縮コードに対応する静的符号を特定する。第1取得部160bは、圧縮コードを、静的符号に変換し、変換した静的符号を、特定部160dに出力する。第1取得部160bが、特定部160dに出力する静的符号を「第1静的符号」と表記する。第1静的符号は、第1単語情報に対応する。
【0066】
第1取得部160bは、入力文を教師データテーブル150cから取得した場合に、取得した入力文が何行目の入力文であるかを、第2取得部160cに通知する。
【0067】
第2取得部160cは、教師データテーブル150cから、出力文を取得する。第2取得部160cは、第1取得部160bから通知された行の出力文を、教師データテーブル150cから取得するものとする。第2取得部160cは、出力文に対して字句解析を実行し、複数の単語に分割する。第2取得部160cは、分割した単語を選択し、選択した単語と、コード変換テーブル150dのテーブル151bとを比較して、圧縮コードに変換する。
【0068】
第2取得部160cは、選択した単語が多義語である場合には、選択した単語と、語義との組に対応する圧縮コードを、テーブル151bから特定し、特定した圧縮コードに変換する。第2取得部160cは、選択した単語が多義語でない場合には、選択した単語に対応する圧縮コードを、テーブル151bから特定し、特定した圧縮コードに変換する。
【0069】
第2取得部160cは、出力文の単語を圧縮コードに変換すると、変換した圧縮コードと、辞書情報150eのテーブル152bとを比較して、圧縮コードに対応する静的符号を特定する。第2取得部160cは、圧縮コードを、静的符号に変換し、変換した静的符号を、特定部160dに出力する。第2取得部160cが、特定部160dに出力する静的符号を「第2静的符号」と表記する。第2静的符号は、第2単語情報に対応する。
【0070】
特定部160dは、第1静的符号と、第1ベクトルテーブル150aとを比較して、第1静的符号に対応する第1ベクトルを特定する。第1ベクトルは第1語義ベクトルの一例である。特定部160dは、入力文に含まれる各単語に対応する各第1ベクトルの組を、学習部160eに出力する。
【0071】
特定部160dは、第2静的符号と、第2ベクトルテーブル150bとを比較して、第2静的符号に対応する第2ベクトルを特定する。第2ベクトルは、第2語義ベクトルの一例である。特定部160dは、出力文に含まれる各単語に対応する各第2ベクトルの組を、学習部160eに出力する。
【0072】
学習部160eは、RNNデータ150fに登録された各中間層のパラメータを用いて、RNN60の中間層61-1~61-nに各第1ベクトルを入力し、中間層63-1~63-nから出力される各ベクトルを算出する。学習部160eは、RNN60の中間層63-1~63-nから出力される各ベクトルが、各第2ベクトルに近づくように、RNNデータ150fに登録された各中間層のパラメータを学習する。
【0073】
たとえば、学習部160eは、中間層63-1~63-nから出力される各ベクトルと、第2ベクトルとの差分を定義したコスト関数を用いて、差分が最小となるように、各中間層のパラメータを調整することで、学習を行ってもよい。
【0074】
第1取得部160b、第2取得部160c、特定部160d、学習部160eは、教師データを変更しつつ、上記処理を繰り返し実行することで、RNNデータ150fのパラメータを学習する。
【0075】
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。
図11は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。
図11に示すように、情報処理装置100の受付部160aは、教師データテーブル150cを受け付ける(ステップS101)。
【0076】
情報処理装置100の第1取得部160bおよび第2取得部160cは、教師データテーブル150cから、教師データを取得する(ステップS102)。第1取得部160bは、入力文に含まれる各単語に対して、圧縮コードを割り当てる(ステップS103)。第1取得部160bは、各圧縮コードに静的符号を割り当てる(ステップS104)。
【0077】
情報処理装置100の特定部160dは、第1ベクトルテーブル150aを基にして、各静的符号に対する各第1ベクトルを特定する(ステップS105)。第2取得部160cは、出力文に含まれる各単語に対して、圧縮コードを割り当てる(ステップS106)。第2取得部160cは、各圧縮コードに静的符号を割り当てる(ステップS107)。特定部160dは、第2ベクトルテーブル150bを基にして、各静的符号に対する各第2ベクトルを特定する(ステップS108)。
【0078】
情報処理装置100の学習部160eは、各第1ベクトルをRNN60の各中間層に入力し、RNN60の各中間層から出力される各ベクトルが、各第2ベクトルに近づくように、パラメータを調整する(ステップS109)。
【0079】
情報処理装置100は、学習を継続するか否かを判定する(ステップS110)。情報処理装置100は、学習を継続しない場合には(ステップS110,No)、学習を終了する。情報処理装置100は、学習を継続する場合には(ステップS110,Yes)、ステップS111に移行する。第1取得部160bおよび第2取得部160cは、教師データテーブル150cから、新たな教師データを取得し(ステップS111)、ステップS103に移行する。
【0080】
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、教師データを用いて、RNN60のパラメータを学習する場合に、教師データに含まれる単語について、単語と単語の語義との組を一意に識別する圧縮コード、静的符号を用いて学習を行う。このため、第1ベクトルを入力することでRNN60から出力されるベクトルを、理想的な第2ベクトルに合わせる学習が、単語の語義を区別した状態で学習することができ、このような学習を行ったRNN60を用いることで、複数の語義を含む単語の翻訳精度を向上することができる。
【0081】
本実施例1に係る情報処理装置100は、教師データに含まれる単語について、単語と単語の語義との組を一意に示す圧縮コードに変換する。たとえば、制御部160(CPU)におけるデータの受け渡しを、圧縮コードで行うことで、単語と単語の語義との情報をそのまま取り扱う場合と比較して、記憶部150(メモリ)に対する読み出し、書き込みに関するデータ処理を高速化することができる。
【0082】
本実施例1に係る情報処理装置100は、教師データに含まれる単語を、単語と語義とを一意に識別可能な静的符号に変換する。これにより、単語と語義とを、一つのベクトルに容易に対応付けることができる。
【実施例2】
【0083】
本実施例2に係る情報処理装置について説明する。本実施例2に係る情報処理装置は、
図1で説明したエンコーダ50、RNN60、デコーダ70により、入力文を出力文に翻訳する処理を行う。ここで、RNN60の各中間層61-1~61-n、63-1~63-nに設定されるパラメータは、実施例1の情報処理装置100により学習されたパラメータを用いる。
【0084】
図12は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
図12に示すように、この情報処理装置200は、通信部210と、入力部220と、表示部230と、記憶部250と、制御部260とを有する。
【0085】
通信部210は、ネットワークを介して外部装置や、実施例1で説明した情報処理装置100とデータ通信を実行する処理部である。通信部210は、通信装置の一例である。たとえば、通信部210は、ネットワークを介して、学習済みのRNNデータ150fを受信してもよい。また、通信部210は、ネットワークを介して、翻訳対象となる入力文データ250aを受信してもよい。
【0086】
入力部220は、情報処理装置200に各種の情報を入力するための入力装置である。たとえば、入力部220は、キーボードやマウス、タッチパネル等に対応する。
【0087】
表示部230は、制御部260から出力される各種の情報を表示するための表示装置である。たとえば、表示部230は、液晶ディスプレイやタッチパネル等に対応する。
【0088】
記憶部250は、第1ベクトルテーブル150a、第2ベクトルテーブル150b、コード変換テーブル150d、辞書情報150e、RNNデータ150f、入力文データ250a、出力文データ250bを有する。記憶部250は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
【0089】
第1ベクトルテーブル150aは、第1言語の静的符号と、第1ベクトルとを対応付けるテーブルである。第1ベクトルテーブル150aのデータ構造は、
図4に示した第1ベクトルテーブル150aのデータ構造の説明と同様である。
【0090】
第2ベクトルテーブル150bは、第2言語の静的符号と、第2ベクトルとを対応付けたテーブルである。第2ベクトルテーブル150bのデータ構造は、
図5に示した第2ベクトルテーブル150bのデータ構造の説明と同様である。
【0091】
コード変換テーブル150dは、単語と単語の語彙との組と、圧縮コードとを対応付けるテーブルである。コード変換テーブル150dのデータ構造は、
図7に示したコード変換テーブル150dのデータ構造の説明と同様である。
【0092】
辞書情報150eは、圧縮コードと、静的符号とを対応付けるテーブルである。辞書情報150eのデータ構造は、
図8に示した辞書情報150eのデータ構造の説明と同様である。
【0093】
RNNデータ150fは、
図1、2で説明したRNN60の各中間層に設定されるパラメータ等を保持するテーブルである。RNNデータ150fのデータ構造の説明は、
図9で説明した、RNNデータ150fのデータ構造の説明と同様である。なお、RNNデータ150fのパラメータは、実施例1の情報処理装置100により、学習されたパラメータとなる。
【0094】
入力文データ250aは、翻訳対象となる入力文のデータである。たとえば、入力文データ250aは、第1言語で記載された「リンゴは甘い。」等とする。
【0095】
出力文データ250bは、入力文データ250aを翻訳することにより得られるデータである。たとえば、入力文データが「リンゴは甘い。」であって、RNNデータ150fのパラメータが適切に学習されている場合には、出力文データは「The apple is sweet.」となる。
【0096】
制御部260は、受付部260a、取得部260b、特定部260c、変換部260d、生成部260e、通知部260fを有する。制御部260は、CPUやMPUなどによって実現できる。また、制御部260は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。なお、エンコーダ50、RNN60、デコーダ70の処理は、制御部260により実現されるものとする。
【0097】
受付部260aは、情報処理装置100から、ネットワークを介して、RNNデータ150fを受け付けた場合に、受け付けたRNNデータ150fを、記憶部250に格納する処理部である。なお、既にRNNデータ150fが、記憶部250に格納されている場合には、最新のRNNデータ150fにより、RNNデータ150fを更新してもよい。
【0098】
受付部260aは、外部装置からネットワークを介して、入力文データ250aを受け付けた場合に、受け付けた入力文データ250aを、記憶部250に格納する。
【0099】
取得部260bは、入力文データ250aの入力文を解析し、入力文の単語に対応する静的符号を取得する処理部である。以下において、取得部260bの処理の一例について説明する。
【0100】
取得部260bは、入力文データ250aから、入力文を取得し、入力文に対して字句解析を実行し、複数の単語に分割する。取得部260bは、分割した単語を選択し、選択した単語と、コード変換テーブル150dのテーブル151aとを比較して、圧縮コードに変換する。
【0101】
ここで、取得部260bは、選択した単語が多義語である場合には、選択した単語と、語義との組に対応する圧縮コードを、テーブル151aから特定し、特定した圧縮コードに変換する。取得部260bは、選択した単語が多義語でない場合には、選択した単語に対応する圧縮コードを、テーブル151aから特定し、特定した圧縮コードに変換する。
【0102】
取得部260bは、入力文の単語を圧縮コードに変換すると、変換した圧縮コードと、辞書情報150eのテーブル152aとを比較して、圧縮コードに対応する静的符号を特定する。取得部260bは、圧縮コードを、静的符号に変換し、変換した静的符号を、特定部260cに出力する。取得部260bが、特定部260cに出力する静的符号を「第1静的符号」と表記する。
【0103】
特定部260cは、第1静的符号と、第1ベクトルテーブル150aとを比較して、第1静的符号に対応する第1ベクトルを特定する。特定部260cは、入力文に含まれる各単語に対応する各第1ベクトルの組を、変換部260dに出力する。
【0104】
変換部260dは、RNNデータ150fに登録された各中間層61-1~63-nパラメータを用いて、RNN60の各中間層61-1~61-nに各第1ベクトルを入力する。変換部260dは、RNN60の中間層63-1~63-nから出力される各第2ベクトルを取得することで、各第1ベクトルを各第2ベクトルに変換する。変換部260dは、変換した各第2ベクトルを、生成部260eに出力する。
【0105】
生成部260eは、変換部260dから取得する各第2ベクトルを用いて、出力文データ250bを生成する処理部である。以下において、生成部260eの処理の一例について説明する。
【0106】
生成部260eは、各第2ベクトルと、第2ベクトルテーブル150bとを比較して、各第2ベクトルに対応する第2静的符号をそれぞれ特定する。生成部260eは、各第2静的符号と、辞書情報150eのテーブル152bとを比較して、各第2静的符号に対応する圧縮コードをそれぞれ特定する。
【0107】
生成部260eは、圧縮コードをそれぞれ特定すると、特定した圧縮コードと、コード変換テーブル150dのテーブル151bとを比較して、各圧縮コードに対応する第2言語の単語を特定する。生成部260eは、特定した単語を並べることで、出力文データ250bを生成する。生成部260eは、生成した出力文データ250bを、記憶部250に格納する。
【0108】
通知部260fは、記憶部250に格納された出力文データ250bを、入力文データ250aの送信元となる外部装置に通知する処理部である。
【0109】
次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。
図13は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。
図13に示すように、情報処理装置200の受付部260aは、入力文データ250aを受け付ける(ステップS201)。
【0110】
情報処理装置200の取得部260bは、入力文データ250aに含まれる各単語に対して、圧縮コードを割り当てる(ステップS202)。取得部260bは、辞書情報150eを基にして、各圧縮コードに静的符号を割り当てる(ステップS203)。
【0111】
情報処理装置200の特定部260cは、第1ベクトルテーブル150aを参照して、各静的符号に対応する各第1ベクトルを特定する(ステップS204)。情報処理装置200の変換部260dは、各第1ベクトルをRNN60の各中間層に入力し、RNN60の各中間層から出力される第2ベクトルを取得する(ステップS205)。
【0112】
情報処理装置200の生成部260eは、第2ベクトルテーブル150bを参照して、各第2ベクトルを静的符号に変換する(ステップS206)。生成部260eは、静的符号を圧縮コードに変換する(ステップS207)。
【0113】
生成部260eは、圧縮コードを単語に変換して、出力文データ250bを生成する(ステップS208)。情報処理装置200の通知部260fは、出力文データ250bを外部装置に通知する(ステップS209)。
【0114】
次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、入力文データ250aに含まれる単語について、単語と単語の語義との組を一意に識別する圧縮コード、静的符号を用いて、第1ベクトルに変換する。情報処理装置200は、この第1ベクトルを、RNN60に入力して、出力文データ250bを生成することで、入力文データ250aに多義語が含まれている場合でも、精度よく翻訳文となる出力文データ250bを生成することができる。
【0115】
ところで、上述した実施例1、2の説明では、第1言語を日本語、第2言語を英語として説明を行ったがこれに限定されるものではない。たとえば、中国語、韓国語、フランス語、ヒンディー語、スペイン語、アラビア語、ベンガル語、ポルトガル語等の他の言語であってもよい。また、第1言語と第2言語との関係は、日本語の標準語と方言との関係であってもよい。
【0116】
次に、実施例1に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図14は、本実施例1に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0117】
図14に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置305とを有する。コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0118】
ハードディスク装置307は、受付プログラム307a、第1取得プログラム307b、第2取得プログラム307c、特定プログラム307d、学習プログラム307eを有する。CPU301は、受付プログラム307a、第1取得プログラム307b、第2取得プログラム307c、特定プログラム307d、学習プログラム307eを読み出してRAM306に展開する。
【0119】
受付プログラム307aは、受付プロセス306aとして機能する。第1取得プログラム307bは、第1取得プロセス306bとして機能する。第2取得プログラム307cは、第2取得プロセス306cとして機能する。特定プログラム307dは、特定プロセス306dとして機能する。学習プログラム307eは、学習プロセス306eとして機能する。
【0120】
受付プロセス306aの処理は、受付部160aの処理に対応する。第1取得プロセス306bの処理は、第1取得部160bの処理に対応する。第2取得プロセス306cの処理は、第2取得部160cの処理に対応する。特定プロセス306dの処理は、特定部160dの処理に対応する。学習プロセス306eの処理は、学習部160eの処理に対応する。
【0121】
なお、各プログラム307a~307eについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307eを読み出して実行するようにしてもよい。
【0122】
続いて、上記実施例2に示した情報処理装置200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図15は、本実施例2に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0123】
図15に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、ディスプレイ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る読み取り装置404と、有線または無線ネットワークを介して、外部装置、情報処理装置100等との間でデータの授受を行うインタフェース装置405とを有する。コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407とを有する。そして、各装置401~407は、バス408に接続される。
【0124】
ハードディスク装置407は、受付プログラム407a、取得プログラム407b、特定プログラム407c、変換プログラム407d、生成プログラム407e、通知プログラム407fを有する。CPU401は、受付プログラム407a、取得プログラム407b、特定プログラム407c、変換プログラム407d、生成プログラム407e、通知プログラム407fを読み出してRAM406に展開する。
【0125】
受付プログラム407aは、受付プロセス406aとして機能する。取得プログラム407bは、取得プロセス406bとして機能する。特定プログラム407cは、特定プロセス406cとして機能する。変換プログラム407dは、変換プロセス406dとして機能する。生成プログラム407eは、生成プロセス406eとして機能する。通知プログラム407fは、通知プロセス406fとして機能する。
【0126】
受付プロセス406aの処理は、受付部260aの処理に対応する。取得プロセス406bの処理は、取得部260bの処理に対応する。特定プロセス406cの処理は、特定部260cの処理に対応する。変換プロセス406dの処理は、変換部260dの処理に対応する。生成プロセス406eの処理は、生成部260eの処理に対応する。通知プロセス406fの処理は、通知部260fの処理に対応する。
【0127】
なお、各プログラム407a~407fについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム407a~407fを読み出して実行するようにしてもよい。
【符号の説明】
【0128】
100,200 情報処理装置
110,210 通信部
120,220 入力部
130,230 表示部
150、250 記憶部
150a 第1ベクトルテーブル
150b 第2ベクトルテーブル
150c 教師データテーブル
150d コード変換テーブル
150e 辞書情報
150f RNNデータ
160,260 制御部
160a,260a 受付部
160b 第1取得部
160c 第2取得部
160d,260c 特定部
160e 学習部
260b 取得部
260d 変換部
260f 通知部