(57)【要約】【課題】  文の局所的な特徴ではなく、全体の構造特徴を自動的に解析する。【課題を解決する手段】  本発明の一側面は、入力装置、出力装置、演算装置、および記憶装置を備える計算機を用い、テキスト文の文意を数値化する情報処理方法である。この方法では、記憶装置からテキスト文のデータを読み出す第１のステップと、テキスト文の言語要素を解析して、テキスト文の文法構造を表す文法ベクトルを生成する第２のステップと、テキスト文から、単語ベクトルで構成されるマトリクスを生成する第３のステップと、文法ベクトルに基づいて単語ベクトルを重み付けし、重み付けした単語ベクトルで構成されるマトリクスに基づいて、テキスト文の文意を数値化した文意ベクトルを生成する第４のステップと、を備える。【選択図】図１
2019133563.tif 000002
【特許請求の範囲】
【請求項１】
入力装置、出力装置、演算装置、および記憶装置を備える計算機を用い、テキスト文の文意を数値化する情報処理方法であって、
前記記憶装置からテキスト文のデータを読み出す第１のステップと、
前記テキスト文の言語要素を解析して、テキスト文の文法構造を表す文法ベクトルを生成する第２のステップと、
前記テキスト文から、単語ベクトルで構成されるマトリクスを生成する第３のステップと、
前記文法ベクトルに基づいて前記単語ベクトルを重み付けし、重み付けした単語ベクトルで構成されるマトリクスに基づいて、前記テキスト文の文意を数値化した文意ベクトルを生成する第４のステップと、
を備える情報処理方法。
【請求項２】
前記第２のステップは、
前記テキスト文を解析して、テキスト文を構成する各単語の品詞および文法役割の少なくとも一つを配列した言語要素を生成する、言語要素解析ステップと、
前記言語要素から、前記文法ベクトルを生成する文法ベクトル計算ステップと、
を含む請求項１記載の情報処理方法。
【請求項３】
前記第２のステップは、
前記言語要素の各単語に対応する部分を数値化し、数値抽象ベクトルを生成する数値抽象ベクトル生成ステップと、
前記数値抽象ベクトルを、事前に規定した次元数に圧縮する圧縮ステップと、
を含み、
前記圧縮された数値抽象ベクトルから前記文法ベクトルを生成する、
請求項２記載の情報処理方法。
【請求項４】
前記圧縮ステップは、オートエンコーダにより実行される、
請求項３記載の情報処理方法。
【請求項５】
前記オートエンコーダは、教師なし学習により学習されている、
請求項４記載の情報処理方法。
【請求項６】
前記第４のステップは、
前記文法ベクトルの次元数を変換し、前記単語ベクトルに対応した文法重みを生成する文法重み計算ステップを含む、
請求項１記載の情報処理方法。
【請求項７】
前記文法重み計算ステップは、
前記文法ベクトルの次元数を線形変換で前記テキスト文の長さに変換し、前記文法重みを算出する、
請求項６記載の情報処理方法。
【請求項８】
第５のステップをさらに備え、
前記第１のステップは、
前記記憶装置からテキスト文のペアからなるデータを読み出し、
前記第５のステップは、
前記テキスト文のペアの前記文意ベクトル同士を比較することにより、スコアを算出する、
請求項１記載の情報処理方法。
【請求項９】
前記第４のステップの少なくとも一部と、前記第５のステップの少なくとも一部は、一つのディープニューラルネットワークで実行される、
請求項８記載の情報処理方法。
【請求項１０】
前記ディープニューラルネットワークは、教師あり学習により学習されている、
請求項９記載の情報処理方法。
【請求項１１】
前記スコアは、
前記テキスト文のペアの文意の類似性を量るスコア、前記テキスト文のペアの間の関連性を量るスコア、前記テキスト文のペアの対応性を量るスコア、および、異なる言語による前記テキスト文のペアの通訳精度を量るスコアの、少なくとも一つである、
請求項８記載の情報処理方法。
【請求項１２】
テキスト文のデータを格納するデータ記憶部と、
前記テキスト文の言語要素を解析して、テキスト文の文法構造を表す文法ベクトルを生成する、文法ベクトル構築部と、
前記テキスト文から、単語ベクトルで構成されるマトリクスを生成する、単語ベクトル構築部と、
前記文法ベクトルに基づいて前記単語ベクトルを重み付けし、重み付けした単語ベクトルで構成されるマトリクスに基づいて、前記テキスト文の文意を数値化した文意ベクトルを生成する、文意ベクトル構築部と、
を備える情報処理システム。
【請求項１３】
前記文法ベクトル構築部は、
前記テキスト文を解析して、テキスト文を構成する各単語の品詞および文法役割の少なくとも一つを配列した言語要素を生成する、言語要素解析部と、
前記言語要素を数値化して数値抽象ベクトルを生成し、該数値抽象ベクトルの次元数を圧縮する、オートエンコーダ圧縮部と、
前記圧縮された数値抽象ベクトルを規格化して文法ベクトルを生成する、文法ベクトル計算部と、
を備える請求項１２記載の情報処理システム。
【請求項１４】
前記文意ベクトル構築部は、
前記文法ベクトルの次元数を変換し、前記単語ベクトルに対応した文法重みを生成する文法重み計算部、
を備える請求項１２記載の情報処理システム。
【請求項１５】
文意演算ベクトル構築部をさらに備え、
前記データ記憶部は、複数のテキスト文の組からなるデータを格納し、
前記文意演算ベクトル構築部は、
前記テキスト文の組の前記文意ベクトルを演算する文意演算ベクトル計算部と、
前記演算の結果をスコアに変換する文意演算ベクトル変換部と、
を備える請求項１２記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理システムに関わり、特に文意の深層学習モデルの構築技術に関する。例えば、文法特徴を顕在的に考えた文意の深層学習モデルおよび計算システムに関する。
【背景技術】
【０００２】
オートエンコーダ（Autoencoder）は機械学習において、ニューラルネットワークを使用した次元圧縮（Dimension reduction）のためのアルゴリズムである。オートエンコーダは３層ニューラルネットにおいて、入力層と出力層に同じデータを用いて教師あり学習をさせたものである。バックプロパゲーションの特殊な場合と言える。学習は、バックプロパゲーションで行うため非線形最適化問題となる。中間層と出力層の活性化関数はそれぞれ任意に選ぶことができる。教師データが実数値で値域がない場合、出力層の活性化関数は恒等写像が選ばれる（つまり何も変化させない）ことが多い。中間層の活性化関数も恒等写像を選ぶと、結果は主成分分析とほぼ一致する。
【０００３】
中間層が２層以上あるニューラルネットワークをディープ・ニューラルネットワーク（Deep neural network）と呼ぶ。
【０００４】
順伝播型ニューラルネットワーク（Feedforward Neural Network）とはネットワークにループする結合を持たず、入力ノード→中間ノード→出力ノードというように単一方向へのみ信号が伝播するものを指す。
【０００５】
再帰型ニューラルネットワーク(RNN ;Reccurent Neural Network)は順伝播型ニューラルネットと違い、双方向に信号が伝播するモデルである。すべてのノードが他の全てのノードと結合を持っている場合、全結合リカレントニューラルネットと呼ぶ。
【０００６】
注意力モデル（Attention Model）、特にエンコーダー・デコーダーモデルにおける注意力モデルは、入力情報全体ではなく、その一部のみを特にフォーカスしたベクトルをデコーダーで使用する仕組みのことである。そのことにより、デコードの特定のタイミングにだけ必要になる入力情報を、精度よく出力に反映させることができるようになる（例えば非特許文献１参照）。
【０００７】
特徴量とは、問題の解決に必要な本質的な変数であったり、特定の概念を特徴づける変数である。この特徴量を発見できれば、パターン認識精度の向上や、フレーム問題の解決につながったりすると期待されている。
【０００８】
この階層的な特徴量の学習が、ディープラーニングが従来の機械学習と決定的に異なる点である。この技術は、画像認識や音声認識等の分野に活用される。テキスト文の意味を深く理解するために、画像、音声で高度な精度を得た深層学習モデルも有効と考えられ、様々な改良手法が開発されている。
【０００９】
本明細書では、品詞、語素など文を構成する単語の性質を「言語要素」と呼ぶ。文の構造上の特性を定量で表すベクトルを「文法ベクトル」と呼ぶ。文の意味を定量で表すベクトルを「文意ベクトル」と呼ぶ。多層オートエンコーダで言語要素の数値抽象ベクトルを圧縮する時、中間層で算出された圧縮途中のベクトルを「中間ベクトル」と呼ぶ。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】D. Bahdanau, K. Cho, and Y. Bengio. Neural machine translation by jointly learning to align and translate. In Proc.ICLR, 2015.
【非特許文献２】Sepp Hochreiter, Jurgen Schmidhuber. "Long Short-Term Memory". Neural Computation 9(8):1735-1780, 1997.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来、複数の文書を比較したり類似性を測定するためBag of words（単語の袋）という手法が提案されている。Bag of wordsモデルとは、文書検索システムで従来使われている手法であり、文書中の語から索引語の集合を作り、与えられた検索語の集合あるいは質問文から作られた検索語の集合と比較照合するものをいう。
【００１２】
しかし、テキスト文の意味を深く理解するために、単語のリストのみが考えられる従来のBag of wordsモデルでは不十分であり、単語の配列である文法構造も考える必要がある。
【００１３】
LSTM（Long short - Term Memory）を含むRNN（再帰型ニューラルネットワーク）は、テキスト文を対象にする深層学習モデル（ディープ・ニューラルネットワーク）の主流であるが（例えば非特許文献２参照）、文法特徴は潜在的に考えられ、単語自体の特徴量と混ざっている。多くのモデルは、２つの特徴量の次元も一緒（隠れ変数の次元数とゲートの次元数）になっている。再帰型ニューラルネットワークを強化する注意力モデルは顕在的に文の構造を考えているが、局所的な重みのみで、文法レベルの抽象特徴量になっていない。
【００１４】
そこで、文法特徴を顕在的に考慮して、文の意味解釈を行なう技術が望まれている。
【課題を解決するための手段】
【００１５】
本発明の一側面は、入力装置、出力装置、演算装置、および記憶装置を備える計算機を用い、テキスト文の文意を数値化する情報処理方法である。この方法では、記憶装置からテキスト文のデータを読み出す第１のステップと、テキスト文の言語要素を解析して、テキスト文の文法構造を表す文法ベクトルを生成する第２のステップと、テキスト文から、単語ベクトルで構成されるマトリクスを生成する第３のステップと、文法ベクトルに基づいて単語ベクトルを重み付けし、重み付けした単語ベクトルで構成されるマトリクスに基づいて、テキスト文の文意を数値化した文意ベクトルを生成する第４のステップと、を備える。
【００１６】
本発明の他の一側面は、テキスト文のデータを格納するデータ記憶部と、テキスト文の言語要素を解析して、テキスト文の文法構造を表す文法ベクトルを生成する、文法ベクトル構築部と、テキスト文から、単語ベクトルで構成されるマトリクスを生成する、単語ベクトル構築部と、文法ベクトルに基づいて単語ベクトルを重み付けし、重み付けした単語ベクトルで構成されるマトリクスに基づいて、テキスト文の文意を数値化した文意ベクトルを生成する、文意ベクトル構築部と、を備える情報処理システムである。
【発明の効果】
【００１７】
本発明によれば、文の局所的な特徴ではなく、全体の構造特徴を自動的に解析することができる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１８】
【図１】実施例１の計算機システムの構成の一例を示すブロック図である。
【図２】実施例１のデータベースに格納される標記データの一例を示す説明図である。
【図３】実施例１のデータベースに格納される無標記および標記データのテキストレコードの自然言語文の言語要素の一例を示す説明図である。
【図４】実施例１のデータベースに格納される無標記および標記データのテキストレコードの自然言語文を単語ベクトル化した結果の一例を示す説明図である。
【図５】実施例１のデータベースに格納される無標記および標記データのテキストレコードの自然言語文の言語要素からオートエンコーダで抽象された文法ベクトルの一例を示す説明図である。
【図６】実施例１のデータベースに格納される無標記および標記データのテキストレコードの自然言語文の言語要素からオートエンコーダで抽象された文法ベクトルからニューラルネットワークで算出される文法重みの一例を示す説明図である。
【図７】実施例１の文法重みを用いて、単語ベクトルを変換した結果の一例を示す説明図である。
【図８】実施例１の文法ベクトルを生成するためのオートエンコーダを無標記データのテキストレコードで生成する時、オートエンコーダの入力と出力および中間結果の一例を示す説明図である。
【図９】実施例１の文法ベクトルを生成するためのオートエンコーダの概念図である。
【図１０】実施例１の計算機の文意差分スコアを算出する時に実行される処理の一例を説明するフローチャートである。
【図１１】実施例１の計算機の文意モデルおよび文意差分モデルを学習する時に実行される処理の一例を説明するフローチャートである。
【図１２】実施例１の計算機のオートエンコーダを学習する時に実行される処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００２０】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【００２１】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００２２】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【００２３】
以下で説明する実施例のシステムでは、文法特徴を顕在的に考えることにより、単語の特徴量と分離して扱う。これにより、文法の構造と単語の意味という２つのものを分離して表現できるシステムを提案している。文法の構造と単語の意味は、人間であれば直感で分離可能であるが、これを可能とする人工的知能の実現は従来困難であった。以下で説明する実施例では、局所的な重み情報のみの注意力モデルの代わりに、もっと多くの情報が含まれている文法特徴量で、文の意味ベクトルを計算する過程をコントロールすることによって、文の局所的な特徴だけではなく、全体的な構造特徴も考えられるようになる。
【００２４】
実施例において開示される発明の代表的な一例を示せば以下の通りである。まず文の文法パタンを抽出する。抽出方法としては、一般的な形態素解析の技術を用いることができる。文法パタンはオートエンコーダで文法特徴ベクトルにする。オートエンコーダは教師なし学習で学習しておく。そして、この文法特徴ベクトルに基づいて注意力モデルによる単語ベクトルを重み付けして、単語ベクトルから文意ベクトルの計算過程をコントロールする。処理の中では必要に応じてニューラルネットワークを用いたベクトルの次元数変換を行なう。ニューラルネットワークを通じて次元数変換することで、後の処理のために次元数を合わせることができる。例えば文法特徴ベクトルと注意力モデルの重みの次元数を合わせる。
【００２５】
具体的には、プログラムを実行する演算装置、及び前記プログラムを格納するメモリを有する一つ以上の計算機を備える計算機システムとして構成することができる。このシステムでは、自然言語文となるテキストレコードで構成される無標記データを管理する無標記データ記憶部、自然言語文となるテキスト項目を含むレコードおよびそのレコードのスコアから構成される標記データを管理する標記データ記憶部、無標記データを用いて、文法ベクトルを生成するオートエンコーダを記憶するオートエンコーダモデル記憶部、標記データおよびオートエンコーダモデルで生成した文法ベクトルを用いて、文意ベクトルを生成する文意モデルを管理する文意モデル記憶部、生成した文意ベクトルを用いて、標記データの標記であるスコアを相当する数値を生成する文意差分モデルを管理する文意差分モデル記憶部、無標記データから文法ベクトルをオートエンコーダで算出する文法ベクトル構築部、文法ベクトルおよび標記データのテキストレコードから文意ベクトルを算出する文意ベクトル構築部、標記データのテキストレコード中の全ての自然言語文の文意ベクトルを用いて、文意差分モデルで、標記データ中のスコアに相当する数値を算出する文意差分ベクトル構築部を有する。これにより、文法特徴を顕在的に考えた文意の深層学習モデルおよび計算システムを提供する。
【実施例１】
【００２６】
図１は、実施例１の計算機システムの構成の一例を示すブロック図である。計算機システムは、計算機２００及びデータベース２０６から構成される。
【００２７】
計算機２００は、文の文法パタンを抽出し、教師なし学習のオートエンコーダで文法特徴ベクトルにし、この文法特徴ベクトルを一層のニューラルネットワークを通じて変換する。変換後のベクトルを注意力モデルの重みとして使って単語ベクトルを変換し、文意ベクトルを計算し、文意ベクトルの差分で標記データのスコアに相当する数値を計算する。ここで、標記データのスコアは、例えば以下の場面が想定できる。（１）自然言語文２つがあって、この２つの文の間の文意の類似性を量るスコア。（２）自然言語文２つ以上があって、この数個の文の間の関連性を量るスコア。（３）自然言語文２つがあって、一つは問題で、一つは回答、この問題と回答ペア間の対応性を量るスコア。（４）自然言語文２つがあって、それぞれ異なる種類の言語であって、この２つの文の通訳精度を量るスコア。本実施例は文意の類似性を量るスコアを例として説明するが、場面に対応する学習を行うことにより、他の場面でも同様に適用することができる。
【００２８】
本実施例の計算機２００は、演算装置２０１、メモリ２０２、記憶媒体２０３、入力装置２０４、及び出力装置２０５を有し、内部バス等を介して互いに接続される。
【００２９】
演算装置２０１は、メモリ２０２に格納されるプログラムを実行する演算装置であり、例えば、ＣＰＵ（Central Processing Unit）及びＧＰＵ（Graphics Processing Unit）等がある。以下の、機能部を主語として処理及び機能を説明する場合、演算装置２０１によって当該機能部を実現するプログラムが実行されていることを示す。メモリ２０２は、演算装置２０１によって実行されるプログラム及び当該プログラムによって使用される情報を格納する。メモリ２０２は、揮発性のメモリ及び不揮発性のメモリのいずれであってもよい。
【００３０】
記憶媒体２０３は、計算機２００が有する各種機能を実現するプログラム等を格納する。本実施例では、演算装置２０１が、記憶媒体２０３からプログラムを読み出し、読み出されたプログラムをメモリ２０２上にロードし、さらに、ロードされたプログラムを実行する。本実施例の記憶媒体２０３に格納されるプログラム等については後述する。
【００３１】
なお、記憶媒体２０３に格納されるプログラムは、ＣＤ−ＲＯＭ及びフラッシュメモリ等のリムーバブルメディア又はネットワークを介して接続される配信サーバから取得する方法が考えられる。リムーバブルメディアからプログラムを取得する場合、計算機２００は、リムーバブルメディアに接続されるインタフェースを備える。
【００３２】
入力装置２０４は、計算機２００に各種情報を入力するための装置であり、例えば、キーボード、マウス、及びタッチパネル等が含まれる。出力装置２０５は、計算機２００が実行した処理結果を出力する装置であり、例えばディスプレイ等が含まれる。
【００３３】
データベース２０６は、計算機２００が管理する各種データを格納する。本実施例では、図示しないストレージシステムを用いてデータベース２０６が構築されるものとする。ストレージシステムは、コントローラ、外部インタフェース、及び複数の記憶媒体を備える。ストレージシステムは、複数の記憶媒体を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成することができる。また、ストレージシステムは、ＲＡＩＤボリュームを用いて複数の論理的な記憶領域を提供することもできる。
【００３４】
データベース２０６は、無標記データ記憶部２４１、標記データ記憶部２４２、オートエンコーダモデル記憶部２４３、文意モデル記憶部２４４、文意差分モデル記憶部２４５を含む。
【００３５】
無標記データ記憶部２４１は、文法ベクトルを生成するためのオートエンコーダモデルを生成するための無標記データを記憶する。無標記データの詳細は図２を用いて説明する。
【００３６】
標記データ記憶部２４２は、文ペアから文ペア間の類似度を量るスコアを算出するための文意モデルおよび文意差分モデルを学習するための標記データを記憶する。標記データの詳細は図２を用いて説明する。
【００３７】
オートエンコーダモデル記憶部２４３は、無標記データの自然言語文テキストレコードから文法ベクトルを生成するためのオートエンコーダモデルを記憶する。オートエンコーダモデルを、教師なし学習する詳細過程は図１２を用いて説明する。
【００３８】
文意モデル記憶部２４４は、標記データの自然言語文テキストレコードから文法ベクトルを用いて、標記データのスコアに相当する数値を算出するために必要な文意ベクトルを算出するための文意モデルを記憶する。文意ベクトルの詳細計算プロセスおよび文意モデルの学習過程は図１０および図１１を用いて説明する。
【００３９】
文意差分モデル記憶部２４５は、標記データの自然言語文テキストレコードから文法ベクトルを用いて、標記データのスコアに相当する数値を算出するために必要な文意差分ベクトルを文意ベクトルから算出するための文意差分モデルを記憶する。文意差分ベクトルの詳細計算プロセスおよび文意差分モデルの学習過程は図１０および図１１を用いて説明する。
【００４０】
ここで、記憶媒体２０３に格納されるプログラムについて説明する。記憶媒体２０３は、文法ベクトル構築部２１０、文意ベクトル構築部２２０、文意差分ベクトル構築部２３０を実現するプログラムを格納する。
【００４１】
文法ベクトル構築部２１０は、テキストレコードの自然言語文を構文解析し、言語要素に分け、文法特徴を表す文法ベクトルを算出する。文法ベクトル構築部２１０は、言語要素解析部２１１、オートエンコーダ圧縮部２１２、文法ベクトル計算部２１３を含む。
【００４２】
言語要素解析部２１１は、テキストレコードの自然言語文を構文解析し、言語要素に変換する。言語要素解析部の処理の詳細例は図３を用いて説明する。
【００４３】
オートエンコーダ圧縮部２１２は、生成した言語要素をオートエンコーダで次元数を圧縮する。オートエンコーダ圧縮部の処理の詳細例は図８、図９を用いて説明する。
【００４４】
文法ベクトル計算部２１３は、生成した言語要素をオートエンコーダで次元数を圧縮した結果を線形変換で規格化し、文法ベクトルを計算する。文法ベクトル計算部の処理の詳細例は図８を用いて説明する。
【００４５】
文意ベクトル構築部２２０は、テキストレコードの自然言語文の文意を表す文意ベクトルを算出する。文意ベクトル構築部２２０は単語ベクトル構築部２２１、文法重み計算部２２２、文意ベクトル計算部２２３、文意ベクトル変換部２２４を含む。
【００４６】
単語ベクトル構築部２２１は、テキストレコードの自然言語文を単語ごとに単語ベクトルに入れ替え、単語ベクトルで順番に構成される単語ベクトルマトリクスに変換する。単語ベクトル構築部の処理の詳細例は図４を用いて説明する。
【００４７】
文法重み計算部２２２は、算出された文法ベクトルを用いて、線形変換で次元数を文の長さに変換し、文法重みを算出する。文法重み計算部の処理の詳細例は図６を用いて、説明する。
【００４８】
文意ベクトル計算部２２３は、構成された単語ベクトルマトリクスおよび算出された文法重みを用いて、ディープニューラルネットワークで自然言語文の意味を表す文意ベクトルを算出する。文意ベクトル計算部の処理の詳細プロセスは図１０、図１１を用いて説明する。
【００４９】
文意ベクトル変換部２２４は、算出された文意ベクトルをディープニューラルネットワークで空間変換し、全ての自然言語文の文意ベクトルの次元数を揃えるように変換する。文意ベクトル変換部２２４の処理の詳細プロセスは図１０、図１１を用いて説明する。
【００５０】
文意差分ベクトル構築部２３０は、前記で算出し、同じ次元数に変換された文意ベクトルの間の各種の差分特徴量を計算し、標記データのスコアに相当する数値を算出する。文意差分ベクトル構築部２３０は、文意差分ベクトル計算部２３１と、文意差分ベクトル変換部２３２を含む。
【００５１】
文意差分ベクトル計算部２３１は、前記で算出し、同じ次元数に変換された文意ベクトルの間の各種の差分特徴量を計算する。文意差分ベクトル計算部２３１の処理の詳細プロセスは図１０、図１１を用いて説明する。
【００５２】
文意差分ベクトル変換部２３２は、前記で算出された文意ベクトル間の各種差分特徴量で構成されるベクトルをディープニューラルネットワークで変換し、標記データのスコアに相当する数値に変換する。文意差分ベクトル変換部２３２の処理の詳細プロセスは図１０、図１１を用いて説明する。
【００５３】
図１に示した実施例の計算機２００の構成は、単体の計算機で構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他の計算機で構成されてもよい。また、本実施例中、ソフトウエアで構成した機能と同等の機能は、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）などのハードウエアでも実現できる。
【００５４】
図２は、実施例１の計算機システム上のデータベース２０６の無標記データ記憶部２４１および標記データ記憶部２４２に格納される、無標記データ２００１および標記データ２００２を説明する説明図である。無標記データ２００１と標記データ２００２の違いは、図２のスコア６０４の有無のみであるため、図２により両者を説明する。無標記データ２００１にはスコア６０４がなく、標記データ２００２にはスコア６０４がある。無標記データ２００１と標記データ２００２は、学習データとして用いられるため、以下学習データ６００として説明する。
【００５５】
学習データ６００はテキストレコードの自然言語文２つおよび、例えばそれらの間の文意の類似度を量るスコアを含む。本実施例のレコードはレコードＩＤ６０１、第１の自然言語文６０２、第２の自然言語文６０３、スコア６０４を含む。レコードＩＤ６０１は自然言語文ペアの識別情報である。自然言語文はたとえば、文書データベース等からランダムに取得することができる。
【００５６】
第１の自然言語文６０２は自然言語文ペアの中の文の一つである。第２の自然言語文６０３は自然言語文ペアの中の文のもう一つである。ここで、自然言語文間の類似度を量る場合、それぞれの文は文意を持つ完全なる文になる必要がある。また、問題、回答ペアの場合、第１の自然言語文は問題になる形式が必要であり、第２の自然言語文は回答になる形式が必要である。ここで、第１の自然言語文と第２の自然言語文の形式は交換できる。図２の例は、２つの文６０２と６０３のペアとなっているが、用途や目的に応じて、文は一つあるいは３つ以上の場合もある。
【００５７】
スコア６０４は、第１の自然言語文６０２と第２の自然言語文６０３の間の文意の類似性を量る数値である。ここでは６段階の評価で、０から５までの範囲で、採点されている。この数値は、利用者が別途採点して無標記データ２００１に追加することにより、標記データ２００２が得られる。利用者が付したスコアを持つ標記データは、ニューラルネットワーク学習時の教師データとして用いられる。上の例では、スコア６０４は２つの文の類似度であるが、既述のように、問題と回答ペア間の対応性を量るスコアや、２つの異なる言語による文の通訳精度を量るスコアのように、用途や目的に応じて定めることができる。
【００５８】
図３は、実施例１の計算機システム上のデータベース２０６に格納される、無標記データ２００１および標記データ２００２のテキストレコードの、自然言語文の言語要素の一例を示す説明図である。言語要素の解析は言語要素解析部２１１により実行される。言語要素解析（形態素解析）自体は、公知の技術である。
【００５９】
言語要素解析例７００は例文を構成する単語の並び７０１と、例文を構成する単語の品詞および文法単位の属性からなる言語要素７０２を含む。例文を構成する単語の並び７０１は、本実施例の例文として、「虎は兎を食べた。」としている。この単語の並び７０１は、無標記データ２００１および標記データ２００２のテキストレコード（図２の６０２，６０３）に対応する。例文を構成する単語の品詞および文法単位の属性を配列した言語要素７０２は、本実施例の例文として、「虎」は名詞で主語になっている。「は」と「を」は文法構成上の助詞である。「兎」は名詞で本例文の目的語あるいは対象語である。最後、「食べた」は動詞で本例文の述語である。
【００６０】
図４は、実施例１の計算機システム上のデータベース２０６に格納される、無標記データ２００１および標記データ２００２のテキストレコードの自然言語文を単語ベクトル化した結果の一例を示す説明図である。単語ベクトル化は単語ベクトル構築部２２１により実行される。単語のベクトル化自体は公知技術である。
【００６１】
単語ベクトル化した例文例８００は例文を構成する単語の並び７０１と、例文を構成する単語をベクトル化した結果の単語ベクトルの並びで構成される単語マトリクス８０２を含む。例文を構成する単語の並び７０１は、図３と同様である。
【００６２】
例文を構成する単語をベクトル化した結果のベクトルの並びで構成される単語マトリクス８０２は、本実施例として、「虎」はベクトル[0.1,0.3,0.2,0.5,...]に変換される。ここで、ベクトルの次元は事前に規定される数値とする。また、各次元の数値は人間の概念に一致するものとは限らず、無標記テキストデータから自動的に学習されるベクトルになる。続いて、助詞「は」と「を」はそれぞれ[0.2,0.3,0.5,0.8,...]と[0.8,0.1,0.2,0.1,...]にする。単語ベクトルの間の距離は必ずではないが、一般的には人間の概念間の距離と相関性がある。兎は[0.5,0.1,0.2,0.3,...]、「食べた」は[0.9,0.8,0.7,0.5,...]、約物の「。」もそれと対応しているベクトルに変換する。これで、例文を構成する全ての単語をベクトルにし、例文を一つのマトリクスにすることで数値化することができる。
【００６３】
図５は、実施例１の計算機システムのデータベースに格納される無標記データ２００１および標記データ２００２のテキストレコードの自然言語文の言語要素７０２からオートエンコーダで抽出された文法ベクトルの一例を示す説明図である。文法ベクトルは、オートエンコーダ圧縮部２１２と、文法ベクトル計算部２１３により生成される。
【００６４】
文法ベクトルの計算例９００は例文を構成する単語の並び７０１と、例文を構成する単語の品詞および文法単位の属性の配列である言語要素７０２と、例文の文法特徴量を数値で表すベクトルである文法ベクトル９０３を含む。例文を構成する単語の並び７０１と、例文を構成する単語の品詞および文法単位の属性の配列である言語要素７０２は、図３と同様である。
【００６５】
例文の文法特徴量を数値で表すベクトルである文法ベクトル９０３は、本実施例の例として、例文「虎は兎を食べた。」に対応する文法ベクトルは[0.3,0.3,0.8,0.6,0.7,0.2,...]になる。これは例文の意味の内容を考えず、文法の抽象表現である「名詞」「助詞」「名詞」「助詞」「動詞」「約物」の並びを数値化して表現したベクトルである。含まれている情報は文法の特徴のみである。本実施例では、言語要素７０２からオートエンコーダ圧縮部２１２を用いて文法ベクトル９０３を生成する。オートエンコーダの詳細は、後に図８および図９で説明する。
【００６６】
図６は、図５で示した文法ベクトル９０３からニューラルネットワークで算出される文法重みの一例を示す説明図である。文法重みは文法重み計算部２２２で計算される。
【００６７】
文法重みの計算例１０００は例文を構成する単語の並び７０１と、例文を構成する単語の品詞および文法単位の属性である言語要素７０２と、例文の文法特徴量を数値で表すベクトルである文法ベクトル９０３と、それぞれの単語の品詞および文法単位の意味理解に対する重要さを示す文法重み１００４を含む。例文を構成する単語の並び７０１、言語要素７０２、文法ベクトル９０３は図５と同様である。
【００６８】
例文のそれぞれの単語の品詞および文法単位の意味理解に対する重要さを示す文法重み１００４は、文法ベクトル９０３を一層のニューラルネットワークを経由して、文法ベクトルの次元数（例えば３００次元）から文の長さの次元数（例えば６次元）に変換した結果である。本実施例の場合、文法重み１００４は、[0.8,0.3,0.6,0.2,0.7,0.1]になっている。文法重みは、「虎は兎を食べた。」との例文にとって、意味理解時、「虎」と「兎」の重要さ0.8と0.6に対して、助詞「は」と「を」の重要さは0.3と0.2しかないことを示す。このことは人間の意味理解時の直感と一致している。この変換を行なうニューラルネットワークは、別途教師あり学習で生成しておく。学習時の教師データとしては、利用者が言語要素７０２に対して重みスコアを付した標記ありデータを用いる。
【００６９】
図７は実施例１の文法重み１００４を用いて、単語ベクトルを変換した結果の一例を示す説明図である。単語ベクトル化した例文例の変換結果１１００は、例文を構成する単語の並び７０１と、例文を構成する単語をベクトル化した結果のベクトルの並びで構成される単語マトリクス８０２と、それぞれの単語の品詞および文法単位の意味理解に対する重要さを示す文法重み１００４と、例文を構成する単語をベクトル化した結果のベクトルを文法重み１００４で調整された結果ベクトルの並びで構成される単語マトリクス１１０４を含む。例文を構成する単語の並び７０１、単語マトリクス８０２、文法重み１００４は、図２〜図６で説明したものと同様である。
【００７０】
単語マトリクス８０２の重み付けは、文法重み計算部２２２により文意ベクトル計算部２２３の処理前に行なわれる。単語マトリクス１１０４は、例文を構成する単語をベクトル化した結果のベクトルの並びで構成される単語マトリクス８０２と、例文のそれぞれの単語の品詞および文法単位の意味理解に対する重要さを示す文法重み１００４とに基づいて、それぞれの単語ベクトルに対して、重み調整をした結果である。これによって、文の意味理解に対して重要である単語のベクトルは強化され、重要ではない品詞や文法単位のベクトルは弱化されるので、後継のディープニューラルネットワークによる、各単語のベクトルから文のベクトルに変換する、意味ベクトルの変換処理に、人間の直感と一致するコントロール要素を入れることができた。
【００７１】
図８は文法ベクトル９０３を生成するため、オートエンコーダで無標記データのテキストを処理する時の、オートエンコーダの入力と出力および中間結果の一例を示す説明図である。オートエンコーダの処理はオートエンコーダ圧縮部２１２で行なわれ、文法ベクトルの計算は文法ベクトル計算部２１３で行なわれる。
【００７２】
オートエンコーダの入力と出力および中間結果の例１２００は、例文を構成する単語の並び７０１と、例文を構成する単語の品詞および文法単位の属性である言語要素７０２と、例文を構成する単語の品詞および文法単位の属性の数値抽象１２０３と、例文の文法特徴を表す次元数が一定しているベクトルである文法ベクトル９０３と、例文の文法特徴を表す文法ベクトルから還元される例文を構成する単語の品詞および文法単位の属性の数値抽象１２０５を含む。例文を構成する単語の並び７０１、単語の品詞および文法単位の属性である言語要素７０２、文法ベクトル９０３は、図２〜図７で説明したものと同様である。
【００７３】
例文を構成する単語の品詞および文法単位の属性の数値抽象１２０３は、本実施例として、「名詞」を「１」にし、「動詞」を「２」にし、「助詞」を「３」にし、「約物」を「０」にした結果。本実施例の文法単位の属性の数値抽象を表すベクトルは「１，３，１，３，２，０」になる。このような変換ルールは利用者が予め定義しておき、データベース２０６に格納しておく。
【００７４】
図９は、図８の変換を行なうオートエンコーダの概念図である。オートエンコーダは、オートエンコーダモデル記憶部２４３に格納される。例文の文法特徴を表す次元数が一定しているベクトルである文法ベクトル９０３は、図９で示されているオートエンコーダ９０００の階層的な変換によって、例文を構成する単語の品詞および文法単位の属性の数値抽象１２０３を表すベクトル「１，３，１，３，２，０」から、中間ベクトル１２０６を経由して変換され、文法ベクトル計算部２１３で、例えば規格化等の処理を行なって生成される。概念上では、文法ベクトル９０３は、例文の言語要素の数値抽象１２０３で構成されるベクトルを事前に規定した次元数に圧縮した結果である。運用時において、文法ベクトル９０３は、オートエンコーダの出力９００１となり、最終的に文法ベクトル計算部２１３から出力される。
【００７５】
また学習時には、文法ベクトル９０３から逆変換により還元される要素の数値抽象１２０５は、文法ベクトル９０３から、オートエンコーダ９０００の階層的な変換によって、中間ベクトル１２０７を経て生成される。図８の例では、還元した要素の数値抽象１２０５は、例文を構成する単語の品詞および文法単位の属性の数値抽象１２０３に対応する、数値抽象１２０３を表すベクトル「１，３，１，３，２，０」を再現したベクトルである。概念上では、文法ベクトル９０３が例文の言語要素の数値抽象１２０３で構成されるベクトルを事前に規定した次元数に欠落なしで圧縮できれば、還元した文法単位の属性の数値抽象１２０５を表すベクトルは本来のベクトルである「１，３，１，３，２，０」と一致することになる。しかし、現実には異なる場合が多い。実用上では、還元したベクトルと本来のベクトルの間の各種の差分計算９００２を行ない、差分が小さくなるようにバックプロパゲーションでオートエンコーダの学習を行い、差分が事前に規定された閾値より小さくなれば、学習を終了する。ここで、使えるベクトル間の差は、絶対差、内積などが考えられる。
【００７６】
図１０は、実施例１の計算機システムを用い、データベース２０６に格納される無標記データ２００１を用いて、標記データ２００２のスコア６０４に相当する数値（図２参照）を自動算出するプロセスを示す説明図である。学習済みの計算機システムを用いた、運用時の処理を示している。
【００７７】
計算機２００は、無標記データ２００１から標記データ２００２のスコア６０４に相当する数値の算出が指示された場合等に、以下で説明する処理を開始する。
【００７８】
ステップＳ１０１で、計算機２００は、無標記データ２００１（図２参照）の入力を受付、テキストレコードの自然言語文を選択する。無標記データ２００１は、例えば、入力装置２０４等を用いて入力する方法が考えられる。
【００７９】
このとき、計算機２００は、データベース２０６の無標記データ記憶部２４１に、入力された無標記データ２００１を格納する（図１参照）。なお、様々なデータ形式の無標記データが入力される場合、無標記データ記憶部２４１は、入力されたデータを図２に示すような形式に変換した後、変換された無標記データ２００１を格納してもよい。
【００８０】
ステップＳ１０２で、計算機２００の言語要素解析部２１１は、選択された自然言語文の言語要素を解析する。文を単語単位で分割し、それぞれの単語の品詞および文法役割を標記する。具体的には、言語要素解析部２１１は無標記データ２００１のテキストレコードの自然言語文６０２（あるいは６０３）を単語単位で分割し、単語の品詞および文法役割を並べて言語要素７０２を得る(図３参照）。なお、ここでの処理は、公知の形態要素解析を用いた外部解析器を使うことが可能である。たとえば、MeCabやStanfordNLPなどの公知のツールを使うことが可能である。
【００８１】
ステップＳ１０３で、計算機２００は、ステップＳ１０２で生成した、自然言語文６０２の単語単位の品詞あるいは文法役割情報を示す言語要素７０２（図３参照）を、オートエンコーダ９０００に入力し、オートエンコーダ圧縮部２１２で、文法の特徴量を圧縮する（図８、図９参照）。なお、文法特徴量の数値抽象１２０３は整数であるが、オートエンコーダの中の中間結果である中間ベクトル９０３，１２０６，１２０７および還元した要素の数値抽象１２０５は整数と限らない。オートエンコーダの学習時あるいは運用時の精度確認のために、還元結果である数値抽象１２０５と本来の文法特徴量の数値抽象１２０３の差を計算するとき、計算精度は還元結果の精度に準ずればよい。還元結果と本来の文法特徴量の間の差が事前に規定した閾値より小さい場合、オートエンコーダは正常に作動しているとする。すなわち、このオートエンコーダは教師なし学習で最適化が可能である。
【００８２】
ステップＳ１０４で、計算機２００の文法ベクトル計算部２１３は、生成した自然言語文６０２の言語要素７０２をオートエンコーダで圧縮した結果の中間層の、次元数が事前に規定された中間結果をベクトル化し、文法特徴を表す文法ベクトル９０３（図５、図８、図９参照）を算出する。
【００８３】
ステップＳ１０５で、計算機２００の文法重み計算部２２２は、ステップＳ１０４で生成した文法特徴を表す文法ベクトル９０３を、ニューラルネットワーク経由で、事前に規定した次元数の文法ベクトル９０３から自然言語文の長さの次元数に変換し、文法重み１００４を算出する（図６参照）。例えばＳ次元の文法ベクトルを、Ｓ×Ｔのマトリクス変換で、文の長さＴにあわせて重みを生成する。次元数を変換するＳ×Ｔのマトリクスは、教師あり学習で学習しておく。
【００８４】
ステップＳ１０６で、計算機２００の単語ベクトル構築部２２１は、選択された自然言語文の単語をベクトル化し、自然言語文を数値マトリクスに変換する。なお、ここでの単語ベクトル化は外部辞書を用いることができる。例えば、GoogleNews（商標）、GloVe辞書などの公知の単語ベクトル辞書を用いることができる。
【００８５】
ステップＳ１０７で、計算機２００の単語ベクトル構築部２２１は、ステップＳ１０６で生成した単語ベクトルで構成される自然言語文の数値マトリクスを、ニューラルネットワーク経由で、事前に規定される次元数の自然言語文の自然言語記号を数値化した結果である数値マトリクスを得、単語マトリクス８０２として算出する（図４参照）。
【００８６】
ステップＳ１０８で、計算機２００の文意ベクトル計算部２２３は、ステップＳ１０７で生成した自然言語文の自然言語記号を数値化した結果である単語マトリクス８０２と、ステップＳ１０５で生成した文法特徴量の圧縮結果である文法ベクトル９０３から算出された自然言語文の長さに合わせた文法重み１００４を用いて、変換後の単語マトリクス１１０４を生成する(図７参照）。この処理では、従来の注意力モデルに対して、ステップＳ１０５で生成した文法重みを適用することになる。そして、ディープニューラルネットワーク経由で、変換後の複数の単語ベクトルの単語マトリクス１１０４から、自然言語文の文意を数値化して表す一つの文意ベクトル（意味ベクトル）を算出する。この場合には、文意ベクトルの形式は、一つのベクトルになる。別の例では、変換後の複数の単語ベクトルの数値マトリクスである単語マトリクス１１０４を、そのまま文の意味を示すマトリクスとして用いてもよい。
【００８７】
ステップＳ１０９で、計算機２００の文意ベクトル変換部２２４は、必要に応じて、ステップＳ１０８で生成した文意ベクトルを事前に規定される次元数から変換する。例えば、文意間の差分を計算するためには、他の文の文意ベクトルと次元数を合わせるように、ニューラルネットワーク経由で変換する。
【００８８】
ステップＳ１１０で、計算機２００は、データベース２０６の無標記データ記憶部２４１に格納されている無標記データ２００１のテキストレコードの自然言語文を、全て自然言語文の文の意味を数値で表す結果である文意ベクトルに変換したかどうかを検証する。もし、全ての自然言語文の処理は完了していないならば、プロセスはステップＳ１０１に戻り、次の自然言語文を選択し、処理する。もし、全ての自然言語文の処理が完了したら、プロセスは次の段階、各自然言語文の文の意味間の関係を計算するプロセスに入る。プロセスの具体的な流れは次で説明する。
【００８９】
ステップＳ１１１で、計算機２００の文意差分ベクトル計算部２３１は、生成した全ての自然言語文の文の文意ベクトルを揃えて、各自然言語文の文の意味間の各種差分を計算する。本実施例の場合、一つのテキストレコードでは２つの自然言語文があるので、２つの自然言語文の文の意味を数値化した結果である文意ベクトル間の各種差分を計算すれば良い。なお、一つのテキストレコードの中で、２つ以上の自然言語文が含まれる場合も考えられ、その場合は、各自然言語文の文の意味を数値化した結果である各文意ベクトルの分布を計算し、各文意ベクトル間の離散程度を量る数値特徴量、例えば、標準差などの指標が計算できる。
【００９０】
ステップＳ１１２で、計算機２００の文意差分ベクトル変換部２３２は、ステップＳ１１１で計算された２つの自然言語文の文の意味を数値化した結果である文意ベクトル間の各種差分をディープニューラルネットワーク経由で、データベース２０６の標記データ記憶部２４２に格納している標記データ２００２のスコア６０４に相当する数値の次元数に合わせるように変換する。
【００９１】
ステップＳ１１３で、計算機２００の文意差分ベクトル変換部２３２は、ステップＳ１１２で変換された各自然言語文の文の意味間の差分を数値化した結果である文意差分ベクトルから、無標記データ２００１のスコア６０４に相当する数値を算出する（図２参照）。
【００９２】
図１１は、実施例１の計算機システム（図１参照）を用いて、計算機２００の文意モデル記憶部２４４に格納する文意モデル、および文意差分モデル記憶部２４５に格納する文意差分モデルを学習する時に実行される処理の一例を説明するフローチャートである。
【００９３】
本実施例では、基本的に図１０、図１１の文意ベクトル計算（Ｓ１０８）から文意差分スコアの計算（Ｓ１１３）までを、一つのディープニューラルネットワークＤＮＮで行なうことにした。図１１中、ディープニューラルネットワークが担当する処理の範囲を点線で囲んで示した。
【００９４】
本実施例では、ディープニューラルネットワークＤＮＮの学習は、公知の誤差逆伝播法（バックプロパゲーション）を用いて行なった。図１１の説明では、図１０記載のステップと同様のステップは、同じ符号を付して説明は省略する。ステップＳ４０１以前に無標記データ２００１に対して、テキストレコードの全ての自然言語文間の関係を定量で量る標記データ２００２のスコア６０４に相当する数値を、計算機システムを用いて算出しておく（図２参照）。それからのプロセスを下記で説明する。
【００９５】
ステップＳ４０８で、計算機２００は、前記で算出された、無標記データ２００１のスコアに相当する数値を、データベース２０６の標記データ記憶部２４２に格納している標記データ２００２のスコア６０４と、それぞれ比較してスコアの差分を計算する。
【００９６】
標記データ２００２のスコア６０４は、予め使用者が付加した正解スコアであり、標記データ２００２を教師データとして用いることになる。もし、例えば差分の絶対値の合計値（以下単に「差分」という）が事前に規定した閾値に辿り着けたら、その時点の計算機２００のデータベース２０６の文意モデル記憶部２４４で管理されている文意モデル、および文意差分モデル記憶部２４５で管理されている文意差分モデルを保存し、学習プロセスを終了する（ステップＳ４１３）。
【００９７】
もし、前記の差分が事前に規定した閾値に辿り着けなければ、その差分とディープニューラルネットワークのパラメータ間の勾配を計算するステップに入る。この勾配を用いて誤差を最小にするアルゴリズムは、周知の確率的最急降下法である。
【００９８】
ステップＳ４０９で、前記で算出された無標記データ２００１のスコアに相当する数値を、標記データ記憶部２４２に格納している標記データ２００２のスコア６０４と比較し、差分を算出し、その差分と文意差分モデル記憶部２４５で管理されている文意差分モデルパラメータ間の勾配を計算する。
【００９９】
ステップＳ４１０で、ステップＳ４０９で算出された勾配を用いて、文意差分モデル記憶部２４５で管理されている文意モデルパラメータを更新する。更新の幅は事前に規定される係数で定めても良い。あるいは、現時点での文意モデルパラメータと連動して決めっても良い。
【０１００】
ステップＳ４１１で、ステップＳ４０９で算出された勾配を用いて、前記で算出された無標記データ２００１のスコアに相当する数値と、標記データ記憶部２４２に格納している標記データ２００２のスコア６０４との差分と、文意モデル記憶部２４４で管理されている文意モデルパラメータ間の勾配を計算する。
【０１０１】
ステップＳ４１２で、ステップＳ４１１でで算出された勾配を用いて、文意モデル記憶部２４４で管理されている文意モデルパラメータを更新する。更新の幅は事前に規定される係数で定めても良い。あるいは、現時点での文意差分モデルパラメータと連動して決めても良い。
【０１０２】
なお、図１０、図１１では、２つの自然言語文の意味間の差分を数値化したスコアを算出する例を説明した。すでに述べたように、問題文と回答文ペア間の対応性を量るスコア、２つの文の通訳精度を量るスコアなど、他の種類のスコアを生成するシステムも、同様に学習することができることは言うまでもない。
【０１０３】
図１２は、実施例１の計算機のオートエンコーダ圧縮部２１２におけるオートエンコーダ（図８、図９参照）を学習する時に実行される処理の一例を説明するフローチャートである。図１０記載のステップと同様のステップは、同じ符号を付して説明は適宜省略する。図１２中、オートエンコーダＡＥが担当する処理の範囲を点線で囲んで示した。本実施例では、オートエンコーダＡＥは、教師なし学習により学習が行なわれるものとしている。
【０１０４】
計算機２００は、学習時に無標記データ２００１から文法ベクトル９０３を算出することが指示された場合等に以下で説明する処理を開始する。
【０１０５】
ステップＳ１０１で、計算機２００は、無標記データ２００１の入力を受付、テキストレコードの自然言語文を選択する。
【０１０６】
ステップＳ１０２で、言語要素解析部２１１は、ステップＳ１０１で選択されたテキスト文７０１の自然言語文の言語要素を解析し、文を単語単位で分割し、それぞれの単語の品詞および文法役割を標記する言語要素７０２を得る（図３参照）。
【０１０７】
ステップＳ１０３で、オートエンコーダ圧縮部２１２は、ステップＳ１０２で生成した言語要素７０２をオートエンコーダ９０００に入力し、圧縮して中間結果を得、中間結果をベクトル化して文法ベクトル９０３を得る（図８、図９参照）。
【０１０８】
ステップＳ５０５で、オートエンコーダ圧縮部２１２は、言語要素の数値抽象１２０３を圧縮した中間結果を、ふたたび、オートエンコーダを経由して、言語要素の数値抽象１２０３を還元した要素の数値抽象１２０５を得る（図８、図９参照）。
【０１０９】
ステップＳ５０６で、計算機２００は前記の還元結果である数値抽象１２０５と本来の数値抽象１２０３を比較し、それらの間の差分を計算する。なお、文法特徴量の数値抽象１２０３は整数であるが、オートエンコーダの中の中間結果および最終還元結果は整数と限らない。還元結果と本来の文法特徴量の数値抽象の差を計算する時、還元結果の精度に準する（図８、図９参照）。
【０１１０】
ステップＳ５０７で、計算機２００はステップＳ５０６で計算した差分を、事前に規定した閾値と比較する。差分が閾値より小さい場合、オートエンコーダは正常に作動しているとし、学習過程を終了する。
【０１１１】
ステップＳ５０８で、ステップＳ５０７の比較結果が閾値より大きい場合、ステップＳ５０６で算出された差分とオートエンコーダモデル記憶部２４３で管理されているオートエンコーダモデルパラメータ間の勾配を計算するプロセスに入る。
【０１１２】
ステップＳ５０３で、計算機２００はステップＳ５０８で計算された勾配を用い、オートエンコーダモデル記憶部２４３で管理されているオートエンコーダモデルパラメータを更新する。
【０１１３】
もしステップＳ５０７で、ステップＳ５０６で計算した差分が前記の閾値より小さい場合、ステップＳ５０９でオートエンコーダモデルパラメータをオートエンコーダモデル記憶部２４３に保存する。
【０１１４】
以上詳細に説明した本実施例では、教師なし学習で、文の文法パタンをオートエンコーダで文法特徴ベクトルにする。そして、この文法特徴ベクトルを一層のニューラルネットワークを通じて変換し、変換後のベクトルを注意力モデルの重みとして使い、単語ベクトルから文意ベクトルの計算過程をコントロールする。
【０１１５】
具体的な構成としては、プログラムを実行する演算装置、及び前記プログラムを格納するメモリを有する一つ以上の計算機を備える計算機システムであって、自然言語文となるテキストレコードで構成される無標記データを管理する無標記データ記憶部、自然言語文となるテキスト項目を含むレコードおよびそのレコードのスコアから構成される標記データを管理する標記データ記憶部、無標記データを用いて、文法ベクトルを生成するオートエンコーダを記憶するオートエンコーダモデル記憶部、標記データおよびオートエンコーダモデルで生成した文法ベクトルを用いて、文意ベクトルを生成する文意モデルを管理する文意モデル記憶部、生成した文意ベクトルを用いて、標記データの標記であるスコアに相当する数値を生成する文意差分モデルを管理する文意差分モデル記憶部、無標記データから文法ベクトルをオートエンコーダで算出する文法ベクトル構築部、文法ベクトルおよび標記データのテキストレコードから文意ベクトルを算出する文意ベクトル構築部、標記データのテキストレコード中の全ての自然言語文の文意ベクトルを用いて、文意差分モデルで、標記データ中のスコアに相当する数値を算出する文意差分ベクトル構築部、などの機能部品を有する。
【０１１６】
以上説明した実施例によれば、文法特徴を顕在的に考えることにより、単語の特徴量と明確的に分けられ、文法の構造と単語の意味の人類の直感で分離するはずの２つのものを分離して表現できる。局所的な部分のための重み情報のみの注意力モデルの代わりに、もっと多くの情報が含まれている文法特徴量で、文の意味ベクトルを計算する過程をコントロールすることによって、文の局所的な特徴ではなく、全局の構造特徴を考えられるようになる。
【０１１７】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
【図１】
2019133563.tif 000003
【図２】
2019133563.tif 000004
【図３】
2019133563.tif 000005
【図４】
2019133563.tif 000006
【図５】
2019133563.tif 000007
【図６】
2019133563.tif 000008
【図７】
2019133563.tif 000009
【図８】
2019133563.tif 000010
【図９】
2019133563.tif 000011
【図１０】
2019133563.tif 000012
【図１１】
2019133563.tif 000013
【図１２】
2019133563.tif 000014