自然言語処理アルゴリズム
会話の受け答えを学習させるアルゴリズムの概要を記述します。
本来大量の会話データを学習させる必要がありますが、今回は一つの会話文のみを例に上げています。
自然言語処理に使用する技術解説
①:Word2vec
単語をベクトルに変換する技術
例)「This is a pen」と入力した場合の変換の例
(Word2vecの出力データとして使用されている数字は、全体像をつかむための数字であり、実際の出力結果ではありません。)
入力データ:This is a pen
Word2vec
出力データ:
('This',0.987)
('is',0.8744)
('a',0.688)
('pen',0.2837)
②:再帰型ニューラルネットワーク(RNN)
系列データ(時系列データ)を扱う深層学習の手法です。
自然言語処理の学習アルゴリズム
①:学習データに対して、Word2vecを使用し学習データの単語をベクトルに変換します。
②:会話の単語のベクトルを入力データと出力データとした再帰型ニューラルネットワークを学習させます。
会話の例「This is a pen.I think so」を学習する時の例
「This is a pen」と入力された場合、「I think so」と出力するRNNの学習器構築例
①:学習データ「This is a pen.I think so.」
■入力データ:This is a pen.I think so.
■Word2vec
■出力データ:
('This',0.987)
('is',0.8744)
('a',0.688)
('pen',0.2837)
(I,0.768)
(think,0.243)
(so,0.6865)
②RNNの学習を行います。
学習は、入力データ、出力データの数字部分のみで行われます。
■入力データ:('This',0.987),('is',0.8744),('a',0.688),('pen',0.2837)
■RNN
■出力データ:(I,0.768),(think,0.243),(so,0.6865)
自然言語処理の実装結果
会話の一文を入力すると会話の受け答えが出力されます。
例)「This is a pen.」と入力すると「I think so.」と出力されます。
参考文献
[1]岡谷貴之,深層学習,2015 講談社サイエンティフィク, 講談社.
[2]Word2Vecを理解する - Qiita