Tensorflow 基于LSTM的体项情绪分析
我试图通过使用此模型来实现: 结果并不比正常的lstm好Tensorflow 基于LSTM的体项情绪分析,tensorflow,lstm,Tensorflow,Lstm,我试图通过使用此模型来实现: 结果并不比正常的lstm好 def sentiment_analysis(input_shape): wl = Input(input_shape) #term word index from left to target word wr = Input(input_shape) #term word index from right to target word wl_ap = Input(input_shape) #target word index fro
def sentiment_analysis(input_shape):
wl = Input(input_shape) #term word index from left to target word
wr = Input(input_shape) #term word index from right to target word
wl_ap = Input(input_shape) #target word index from left
wr_ap = Input(input_shape) # target word index from right
wl_embedding = embedding_layer(wl) #word embedding build from glovec
wr_embedding = embedding_layer(wr)
wl_ap_embedding = embedding_layer(wl_ap)
wr_ap_embedding = embedding_layer(wr_ap)
embeddings_wl = tf.concat([wl_embedding, wl_ap_embedding],2) #stacking target word under term word
embeddings_wr = tf.concat([wr_embedding, wr_ap_embedding],2)
h = LSTM(128, return_sequences=True)(embeddings_wl)
h = Dropout(0.5)(h)
h = LSTM(128, return_sequences=False)(h)
h = Dropout(0.5)(h)
h2 = LSTM(128, return_sequences=True)(embeddings_wr)
h2 = Dropout(0.5)(h2)
h2 = LSTM(128, return_sequences=False)(h2)
h2 = Dropout(0.5)(h2)
h3 = tf.concat([h,h2], axis=1 )
o = Dense(3, activation='softmax')(h3)
model = Model(inputs=[wl, wr, wl_ap, wr_ap], outputs = o)
return model
#optmizer, learning rate is 0.001 batch size is 64
adam = keras.optimizers.Adam(learning_rate = 0.001)
model = sentiment_analysis((61,))
model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy'])
model.fit([X_train_wl, X_train_wr, X_train_wl_ap_emb, X_train_wr_ap_emb], Y_train, batch_size=64, epochs=15)
正常lstm的训练精度为76,测试精度为73。
但这种方法的训练准确度为85,测试准确度为71
根据这项研究,这个模型应该更高。
我想知道我的实现是否正确