文本分类 - DNN

Posted

技术标签:

【中文标题】文本分类 - DNN【英文标题】:Text Classification - DNN 【发布时间】:2020-07-12 17:14:51 【问题描述】:

我正在使用深度神经网络执行文本分类。我的问题是我在火车数据上收到了 98 的高精度,而我的验证准确度是 49。

我尝试了以下方法:

    打乱数据 我的训练和验证数据是 80:20 拆分 我使用的是 100 维 Glov 向量

有什么建议吗?

def get_Model():
    model = tf.keras.Sequential([
    tf.keras.layers.Embedding(vocab_size+1, embedding_dim, input_length=max_length, weights= . [embeddings_matrix], trainable=False),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Conv1D(64, 5, activation='relu'),
    tf.keras.layers.MaxPooling1D(pool_size=4),
    tf.keras.layers.LSTM(64),
    tf.keras.layers.Dense(5, activation='softmax')
    ])
    model.compile(loss='sparse_categorical_crossentropy',optimizer="adam",metrics=['acc'])
    model.summary()
    return model

【问题讨论】:

【参考方案1】:

您的模型显然过度拟合。防止过拟合的标准技巧是:

添加辍学, L2 正则化, 尝试更小的型号。

同时使用卷积和 LSTM 是相当不寻常的(尽管它非常好)。也许只保留其中一个是缩小网络的最佳方式。

我的猜测是您正在使用一个相当小的数据集。拥有更大的数据集也有助于防止过度拟合,但这通常不是一条适用的建议。

【讨论】:

感谢您的回复。数据标签似乎有问题。因此,验证准确性受到影响

以上是关于文本分类 - DNN的主要内容,如果未能解决你的问题,请参考以下文章

论文泛读87自解释卷积神经网络的文本分类

为啥 Tensorflow tf.learn 分类结果差异很大?

DNN二元分类器的准确率没有增加

文本分类方法都有哪些

文本分类:多标签文本分类与多类文本分类

NLP之文本分类