You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

挪威语文本情感分析:过拟合与准确率瓶颈突破及数据集验证方案

挪威语文本情感分析:过拟合与性能瓶颈解决方案

问题背景

正在完成学期作业,针对挪威语文本数据集开展情感分析。数据集已划分为训练/测试/开发集,存在严重类别不平衡:中性类占比50-55%及以上,正面类30-33%,负面类仅15-17%。模型在验证集准确率达到65%后出现过拟合,无法将训练集学习效果迁移到验证/测试集;班级内无人在测试集或验证集上突破65%准确率,任务说明提到其中一项任务可能无法取得良好结果,其余任务可获优异成绩。

已尝试的优化措施

  • 文本处理:尝试多种文本处理技术、不同词嵌入方案(含无词嵌入)、填充、整数序列转换
  • 模型结构:测试LSTM、MultinomialNB、Logistic Regression、SpaCy文本分类器、双向LSTM等多种模型
  • 层结构调整:加入Dropout、SpatialDropout1D,使用覆盖90%处理后文本的SpaCy词嵌入
  • 架构调优:调整层数、神经元数量、全类型激活函数、循环Dropout、正则化规则
  • 最佳模型架构:
# Define model architecture
model = tf.keras.Sequential()
# Embedding layer initializes embeddings with our matrix, applying them to our entries, set as trainable
model.add(Embedding(num_words, embedding_dim, input_shape=(trainX.shape[1],),weights=[embedding_matrix], trainable=True))
#Randomly dropping some entries
model.add(SpatialDropout1D(0.3))
#bidirecitonal LSTM with dropout layers and regularisation
model.add(Bidirectional(LSTM(units=64, activation='tanh', dropout=0.5, recurrent_dropout=0.5, kernel_regularizer=l2(0.001))))
#Dropout to drop features
model.add(Dropout(0.5))
#Classifying sentiment
model.add(Dense(units=3, activation='softmax', kernel_regularizer=l2(0.1)))
#summarizing model to see architecture
model.summary()
  • 超参数与数据平衡:调整学习率、类别权重、少数类过采样/多数类欠采样、批次大小、训练轮数、早停策略,切换Embedding层的trainable属性为True/False

解决过拟合的补充方案

数据层面

  • 挪威语文本增强:基于挪威语同义词库做同义词替换,通过回译(挪威语→英语→挪威语)生成新样本,对少数类文本进行随机插入/删除低重要性词汇,扩充负面类样本量
  • 噪声注入:给文本添加符合挪威语规则的随机拼写错误、随机停顿符,增强模型对噪声的鲁棒性

模型层面

  • 集成学习:采用投票或堆叠策略,组合多个弱模型(如Logistic Regression + MultinomialNB + 轻量LSTM),分散单模型的过拟合风险
  • 轻量化预训练模型:改用挪威语预训练的小型Transformer(如NorBERT、DistilNB-BERT),预训练模型自带的通用语言特征泛化性更强,可避免复杂循环模型的过拟合
  • 强化正则化:尝试ElasticNet(L1+L2)正则化替代单纯L2,或在Dense层添加活动正则化(activity_regularizer),限制输出层的极端值

训练策略

  • 标签平滑:将硬标签(如[1,0,0])替换为软标签(如[0.95,0.025,0.025]),降低模型对错误标注样本的过度拟合
  • 余弦退火学习率:训练过程中采用余弦退火调度学习率,后期逐步降低学习率,让模型平缓收敛到泛化性更优的参数区域

证明无法获得更高性能的规范分析方法

  1. 基准线验证

    • 计算随机猜测准确率:按类别占比随机预测,准确率约为(0.55² + 0.33² + 0.17²)≈42%,当前65%显著高于该基准
    • 计算多数类基准:仅预测中性类的准确率为50-55%,65%高于该基准,证明模型确实学到了有效情感特征
  2. 数据集局限性分析

    • 标注质量核查:随机抽取验证/测试集样本,人工核对标签歧义(如中性与正面/负面边界模糊),统计歧义样本比例,若占比过高则说明标注噪声限制了性能上限
    • 类别内多样性统计:分析每个类别下文本的主题、长度、词汇分布,若负面类样本主题单一、文本同质化严重,说明模型无法学到足够多的负面情感模式
    • 跨集分布可视化:用TSNE或PCA对训练集/验证集的文本嵌入做降维可视化,若两者分布差异明显,说明数据划分存在偏差,导致迁移困难
  3. 模型上限验证

    • Oracle模型测试:用训练集标签直接作为验证集预测结果,计算理论最高准确率,若该值接近65%,说明数据集本身的特征-标签映射存在固有噪声
    • 最优预训练模型测试:采用当前性能最优的挪威语预训练模型(如NB-BERT)进行测试,若其准确率也无法突破65%,则可证明该任务本身存在性能瓶颈

内容的提问来源于stack exchange,提问作者Sondre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:23:20