【问题标题】:Emotion detection on text文本情感检测
【发布时间】:2018-10-23 19:30:05
【问题描述】:

我是 ML 的新手,正在尝试对文本进行情绪检测。 所以我有一个 ISEAR 数据集,其中包含带有情感标签的推文。 所以我目前的准确率是 63%,我想提高到至少 70% 甚至更多。

代码如下:

inputs = Input(shape=(MAX_LENGTH, ))

embedding_layer = Embedding(vocab_size,
                            64,
                            input_length=MAX_LENGTH)(inputs)

# x = Flatten()(embedding_layer)
x = LSTM(32, input_shape=(32, 32))(embedding_layer)
x = Dense(10, activation='relu')(x)

predictions = Dense(num_class, activation='softmax')(x)
model = Model(inputs=[inputs], outputs=predictions)
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['acc'])

model.summary()
filepath="weights-simple.hdf5"
checkpointer = ModelCheckpoint(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
history = model.fit([X_train], batch_size=64, y=to_categorical(y_train), verbose=1, validation_split=0.1, 
          shuffle=True, epochs=10, callbacks=[checkpointer])

【问题讨论】:

    标签: python-3.x machine-learning keras deep-learning lstm


    【解决方案1】:

    这是一个非常普遍的问题,优化神经网络的性能可能需要调整许多因素。 例如:

    1. 选择的优化器:在 NLP 任务中 rmsprop 也是一个流行的 优化器
    2. 调整学习率
    3. 正则化 - 例如 dropout、recurrent_dropout、batch norm。这可能有助于模型更好地泛化
    4. LSTM 中的更多单元
    5. 嵌入中的更多维度

    您可以尝试网格搜索,例如使用不同的优化器并在验证集上进行评估。 数据可能还需要一些调整,例如:

    1. 文本规范化 - 更好地表示推文 - 删除不必要的标记(@、#)

    2. 在拟合之前打乱数据 - keras validation_split 使用最后的数据记录创建验证集

    您的问题没有简单的答案。

    【讨论】:

    • 可以尝试添加卷积层进行特征提取,并使用 GLOVE 和 Fasttext 等预训练嵌入。
    猜你喜欢
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    相关资源
    最近更新 更多