センテンステキストのベクトル化について

214 views
Skip to first unread message

kami

unread,
Jan 3, 2018, 7:54:39 AM1/3/18
to Neural Network Console Users (JP)
Neural Network Console と離れた相談になります。
センテンステキストのベクトル化について相談させてください。

センテンステキストをベクトル化したデータを使用して、
学習: x1 データ から x2 データが得られることを学習させて
評価: 別の x1 データ から x2 データを得たいと考えています。

LSTMを利用して: x1:400次元ベクトル, x2:400次元ベクトル, y=0 → X2':400次元ベクトルを得たい。

この課題で、センテンステキストのベクトル化にはどのような方法を用いるべきでしょうか。
word2vec
doc2vec
dl4j/ paragraphvectors
を用いてベクトル化してみたのですが、
いずれも、
・実行の都度、行レコード(センテンス)に対するベクトル値が異なり、
・同じテキスト情報を持つ他の行レコード(センテンス)に対して異なるベクトル値を出力する
ことから、
今回の課題にはマッチしないのでは? と行き詰まりました。

この課題に対応しているとおもわれるベクトル化の方法の情報を提供いただけるとありがたいです。

kami

unread,
Jan 3, 2018, 7:39:26 PM1/3/18
to Neural Network Console Users (JP)
補足させてください。

x1: 日本語のテキスト  x2: x1を目視で確認して一部を更新した日本語テキストになります。
日本語のドキュメント(数行〜10行程度/件)を目視で確認して一部を更新する作業があり
この作業を機械学習で自動化できるものだろうかを確認してみたいなとおもっています。
本来は、ドキュメント単位で学習させるべきとはおもいますが、
ハードルが高そうなので、まずは、行単位でで確認できればいいなと考えています。

この質問を投稿するのに適切な別のフォーラムを教えていだけるのでも結構です。
よろしくお願いいたします。

kami

unread,
Jan 7, 2018, 9:14:09 AM1/7/18
to Neural Network Console Users (JP)
まずは、gensim.models.doc2vec  でトライしてみることにしました。

小林由幸

unread,
Jan 9, 2018, 12:38:29 AM1/9/18
to Neural Network Console Users (JP)
1行の文章を入力し、それを一部変更した1行の文章を出力するタスクということでよろしかったでしょうか。
このようなタスクを行う場合の文章のベクトル化は、単語毎に行うのが適切かと思います。
すなわち、各単語を400次元のベクトルにする場合、x1、x2にはそれぞれ400次元×最大単語数の行列として入力します。

>・実行の都度、行レコード(センテンス)に対するベクトル値が異なり、
>・同じテキスト情報を持つ他の行レコード(センテンス)に対して異なるベクトル値を出力する
>ことから、
>今回の課題にはマッチしないのでは? と行き詰まりました。


各単語のベクトルについては、学習データに以外のデータを含む大量のデータを用い一度行い、
(Word2vecをWikipediaの全文を用いて学習するなど)これを全てのデータで使い回します。

kami

unread,
Jan 9, 2018, 1:02:00 AM1/9/18
to Neural Network Console Users (JP)
> すなわち、各単語を400次元のベクトルにする場合、x1、x2にはそれぞれ400次元×最大単語数の行列として入力します。

小林さま
アドバイスありがとうございます。
トライしてみます。
Reply all
Reply to author
Forward
0 new messages