2016-05-11 12 views

答えて

5

あなたが単語ベクトルを持っていると言えば、単語をベクトル表現(word2vec、GloVe ...から計算)にマップする辞書があると思います。

この辞書を使用すると、シーケンス内のすべての単語が対応するベクトルに置き換えられます。 LSTMはすべての入力シーケンスを一定の長さにする必要があるため、すべてのシーケンスを同じ長さにする必要があります。したがって、max_lengthの値を決定し、より長いすべてのシーケンスをトリムし、ゼロより短いすべてのシーケンスを埋め込む必要があります(Keras pad_sequences関数を参照)。

次に、ベクトル化されたシーケンスをニューラルネットワークのLSTMレイヤに直接渡すことができます。 LSTMレイヤーはネットワークの最初のレイヤーなので、入力シェイプを定義する必要があります。入力シェイプは(max_length、embedding_dim)です。

この方法で埋め込みレイヤをスキップし、代わりに独自の事前計算ワードベクトルを使用します。

+0

埋め込みレイヤーにpretrained埋め込みを 'weights'引数で読み込むことも可能です。[this post](https://blog.keras.io/using-pre-trained-word-embeddings-in-a- keras-model.html)。このようにして後で変換を行う必要はなく、モデルの整数のリストとして文を直接渡すことができます。 – ValD

関連する問題