私は2人の人の間で様々な会話を持つデータを持っています。各センテンスには、ある種の分類があります。私は会話の各文章を分類するためにNLPネットを使用しようとしています。私は畳み込みネットを試み、まともな結果を得ました。これまでの会話やLSTMネットがより良い結果を生み出すかもしれないと思ったのは、以前に言われたことがそれに続く大きな影響を与えるかもしれないからです。分類のためのLSTMニューラルネットワークの構成方法
私は上記の構造に従っている場合、私は、多対多のをやっていることを前提としています。私のデータは似ています。
X_train = [[sentence 1],
[sentence 2],
[sentence 3]]
Y_train = [[0],
[1],
[0]]
データはword2vecを使用して処理されています。
この設定では、一度に1つのセンテンスのバッチをフィードすることになります。しかし、model.fitでshuffleがfalseに等しくない場合、LSTMネットはこの場合でも便利なのですか?対象の研究からは、1があまりにも
model.add(LSTM(88,return_sequence=True))
と出力層をLSTM層を変更する必要があり、多対多の構造を達成するためにするとする必要があるだろう...
model.add(TimeDistributed(Dense(1,activation='sigmoid')))
この構造に切り替えると、入力サイズにエラーが発生します。この要件を満たすためにデータを再フォーマットする方法や、新しいデータ形式を受け取るために埋め込みレイヤーを編集する方法がわかりません。
すべての入力をいただければ幸いです。または、より良い方法に関する提案があれば、私はそれらを聞いて嬉しいです!
LSTMレイヤーに一度に1単語ずつ供給されるとお考えですか?したがって、文がシャッフルされているにもかかわらず、文中の各単語はLSTMに別々に渡され、文全体の全体的なコンテキストを学習します。 – DJK
私はフレーズを正しく質問しなかったのですが、申し訳ありません。データは会話であるため、前の文で言われたことは次の文に重さがあります。だから私は会話の流れを学び、各文章を分類するようにネットワークを設定しようとしています。それで私はreturn_sequenceを使用しようとしていたので、ネットワークは現在の文を分類しながら前の文についての情報を保持します。 – DJK
LSTMに一連のベクトルが入力されます。あなたの場合は、単語埋め込みのシーケンスです。それは、あなたのケースの各センテンスに対して長さ88のベクトルを返します。これは密なレイヤーで1出力に減らされます。だから一度に1つの文しか気にしない。それがあなたが現在していることです。それはあなたがしたいことですか? –