改进用于文本分类的 Keras 模型

Improve Keras Model for text classification

我正在制作一个模型,用于 将网页标题 分类为关于食物的 101 类 个之一(大多数标题都与食谱有关)。我的序列的中等长度是 42。我清理了文本(坏词,更改为小写等)并使用 Tokenizer 对其进行了标记化。我在我的模型中放置了一个 LSTM 层,我在测试集上获得了 83% 的准确率。我很确定这可以通过对网络进行一些更改来改进,您有什么建议吗?先感谢您!那是我的模特:

model = Sequential()
model.add(Embedding(MAX_NB_WORDS, EMBEDDING_DIM, input_length=x_train.shape[1]))
model.add(SpatialDropout1D(0.2))
model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(101, activation='softmax'))

opt = optimizers.Adam(learning_rate=0.01, beta_1=0.9, beta_2=0.999, amsgrad=False)
model.compile(loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy'])

你可以试试再增加一个LSTM层,但是请注意单元的数量:增加太多很容易导致过拟合。否则,当你达到稳定状态时逐渐降低学习率也可能有助于提高。

如果再添加一个,不要忘记在第一个 LSTM 层中添加“return_sequences=True”。

您还应该为指标保留一个验证集(除了测试集)。