幽默度识别第一名解决方案代码及说明
向AI转型的程序员都关注了这个号????????????
机器学习AI算法工程 公众号:datayx
幽默是一种特殊的语言表达方式,在日常生活中扮演着化解尴尬、活跃气氛、促进交流的重要角色。
而幽默计算是近年来自然语言处理领域的新兴热点之一,其主要研究如何基于计算机技术对幽默进行识别、分类与生成,具有重要的理论和应用价值。
子任务一:生成幽默识别 **F1**
该子任务是二分类任务,标签有:生成幽默(label=0)、非生成幽默(label=1)。任务采用F1值进行评价
子任务二:中文幽默等级划分 **MacroF**
该子任务是三分类任务,标签有:弱幽默(label=1)、普通幽默(label=3)、强幽默(label=5)。任务采用宏平均(Macro-Average)进行评价。宏平均首先对每一个类统计评价指标值
队伍最终的得分由两个子任务的得分综合决定,即:
Score=0.6*子任务一得分+0.4*子任务二得分
划分内容的幽默程度,不仅可以帮助我们判定聊天机器人是不是真的幽默,还可以帮助聊天机器人,对与之聊天的人进行情绪强度的划分,有的人只是想简单幽默一下,而有的人则隐含较强的幽默意味,掌握这些,聊天机器人就能因人而异选择更适宜的方式服务人类。
两个子任务均是分类任务,按照传统的思想,按照以下步骤进行
1.预训练
2.传统模型/BERT等模型训练与调试
3.local CV 验证
4.模型向下接网络层
5.模型融合
6.其他trick
*对于本题,task1区分度较task2大,任务得分权重较大0.6,task2*0.4,针对任务,应该优先优化task1
*本团队在任务进行当中,发现两个任务存在上下游的关系,尝试使用多任务联合学习,并使用任务二的数据对任务一进行数据扩充,取得了明显的效果。
视频讲解
https://www.bilibili.com/video/av415140402
项目 代码 和 数据集 获取方式:
长按图片,识别下面二维码 关注微信公众号 datanlp 然后回复 幽默 即可获取。
搜索公众号关注: datanlp
长按图片,识别二维码
further pre-train BERT or other models on within-task training data and in-domain data
在pretrain下生成预训练模型
1.通过datapro.py对数据进行处理,每段话从中间断开分成两句话,每段话之间用空白行隔开,针对ccl2019幽默度比赛task1和task2,生成了
cclhumortask12_bert.txt,以及加上去年ccl幽默度得比赛数据和我们自行对task1数据翻译生成得到得数据,生成了cclhumortaskalldata_bert.txt
2.通过运行prepocess.py对cclhumortask12_bert.txt和cclhumortaskalldata_bert.txt这两份数据分别在chinese_L-12_H-768_A-12、bert_wwm、bert_wwm_ex
、roberta四个中文预训练模型处理得到了8个文件夹
pytorchmodeltask12_bert_1005
pytorchmodeltask12_roerta_1005
pytorchmodeltask12_wwm_1005
pytorchmodeltask12_wwm_ex_1005
pytorchmodeltaskalldata_bert_1005
pytorchmodeltaskalldata_roerta_1006
pytorchmodeltaskalldata_wwm_1005
pytorchmodeltaskalldata_wwm_ex_1005
3.运行finetune_on_pretrain.py针对上述生成得8个文件夹分别进行预训练,为了不产生太多的文件夹最终生成的pytorch预训练模型
fine-tune
用bert等事先训练好的预训练模型,采用输出的[CLS]token的向量作为特征,向下接线性分类层。
融合策略
对于cv内的每个模型,分别在其预留验证集上对结果进行微调,找到最佳的分类阈值,并用在测试集的预测结果。综合所有模型的微调结果
Multi-task learning(实验中)
为什么多任务学习有效
定义两个任务A和B, 两者的共享隐藏层用F表示。
隐式数据增加机制. 多任务学习有效的增加了训练实例的数目. 由于所有任务都或多或少存在一些噪音, 同时学习到两个任务可以得到一个更为泛化的表示. 如果只学习任务A要承担对任务A过拟合的风险, 然而同时学习任务A与任务B对噪音模式进行平均, 可以使得模型获得更好表示F;
注意力集中机制. 若任务噪音严重, 数据量小, 数据维度高, 则对于模型来说区分相关与不相关特征变得困难. 多任务有助于将模型注意力集中在确实有影响的那些特征上, 是因为其他任务可以为特征的相关与不相关性提供额外的证据;
窃听机制. 对于任务B来说很容易学习到某些特征G, 而这些特征对于任务A来说很难学到. 这可能是因为任务A与特征G的交互方式更复杂, 或者因为其他特征阻碍了特征G的学习. 通过多任务学习, 我们允许模型窃听, 即任务A使用任务B来学习特征G;
表示偏置机制. 多任务学习更倾向于学习到一类模型, 这类模型更强调与其他任务也强调的那部分表示. 由于一个对足够多的训练任务都表现很好的假设空间, 对来自于同一环境的新任务也会表现很好, 所以这样有助于模型展示出对新任务的泛化能力;
正则化机制. 多任务学习通过引入归纳偏置起到与正则化相同的作用, 它减小了模型过拟合的风险, 降低了拟合随机噪声的能力。
提升细节:
task1:
加入任务二数据 +0.04
调整各类损失权重 +0.02
融合模型时学习最佳分类阈值 +0.02
task2:
调整各类损失权重 +0.01
融合模型时学习最佳分类阈值 +0.01
不同batch_size训练模型融合 +0.02
结果对比
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
TensorFlow 2.0深度学习案例实战
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《基于深度学习的自然语言处理》中/英PDF
Deep Learning 中文版初版-周志华团队
【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
《美团机器学习实践》_美团算法团队.pdf
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
特征提取与图像处理(第二版).pdf
python就业班学习视频,从入门到实战项目
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
《深度学习之pytorch》pdf+附书源码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
《Python数据分析与挖掘实战》PDF+完整源码
汽车行业完整知识图谱项目实战视频(全23课)
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码
将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享
重要开源!CNN-RNN-CTC 实现手写汉字识别
yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?
前海征信大数据算法:风险概率预测
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)
特征工程(二) :文本数据的展开、过滤和分块
特征工程(三):特征缩放,从词袋到 TF-IDF
特征工程(四): 类别特征
特征工程(五): PCA 降维
特征工程(六): 非线性特征提取和模型堆叠
特征工程(七):图像特征提取和深度学习
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过
全球AI挑战-场景分类的比赛源码(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
幽默度识别第一名解决方案代码及说明相关推荐
- 教程 | Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
https://mp.weixin.qq.com/s/JwRXBNmXBaQM2GK6BDRqMw 选自GitHub 作者:Artur Suilin 机器之心编译 参与:蒋思源.路雪.黄小天 近日,A ...
- 开源-BDCI2018供应链需求预测模型第一名解决方案和代码
本人经过作者同意,公布了:BDCI2018供应链需求预测数据竞赛第一名的解决方案和代码.该方案利用赛题为运用平台积累最近1年多的商品数据预测45天后5周每周(week1~week5)的销量,为供应链提 ...
- 魔改nnU-Net夺冠!2021 BraTS 脑肿瘤分割竞赛第一名解决方案
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:集智书童 Extending nn-UNet for brain tumor segmentatio ...
- Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
下面我们将简要介绍 Artur Suilin 如何修正 GRU 以完成网站流量时序预测竞赛. 预测有两个主要的信息源: 局部特征.我们看到一个趋势时,希望它会继续(自回归模型)朝这个趋势发展:看到流量 ...
- 中文短文本的实体识别实体链接,第一名解决方案
向AI转型的程序员都关注了这个号
- 网站流量预测任务第一名解决方案:从GRU模型到代码详解时序预测
向AI转型的程序员都关注了这个号
- Kaggle第一人 | 详细解读2021Google地标识别第一名
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 本文提出了一个有效的端到端大规模地标识别和检索的网络架构.作者 ...
- python预测比赛_快手活跃用户预测竞赛的第一名解决方案
作者按:由于比赛时间仓促,这份代码中有些地方写的并不规范.更规范的tensorflow RNN构建,可以参考作者的另外一个项目tenosrflow-RNN-toolkit,该项目使用更高程度抽象的bu ...
- 25行AS3代码编程大赛的第一名!25行代码构造的AS3游戏
叫做Marius Heil的AS开发者使用AS3构造了一个25行代码的AS3游戏,并且获得了25行AS3代码编程大赛的第一名! /** * 25-Line ActionScript Contest E ...
最新文章
- CentOS Linux 7.3 1611 (Core) 配置静态IP地址
- Linux 进程、端口、IP、连接数等查询脚本
- STM32开发 -- 低功耗模式详解(2)
- idea如何导入java工程_Eclipse java web项目 ,导入IntelliJ IDEA 完整操作!
- Google浏览器中的开发工具.
- Cloud-init的安装和使用 --以ubuntu-server-14.04-amd64为例
- vue项目实践教程2:使用vux设计登录注册,并讲解vue路由,切换页面标题等内容
- mysql数据库补救措施_关于MySql数据库误操作数据找回的办法
- Myeclipse学习总结(11)——Eclipse中设置Java/Css/Html/Jsp换行长度
- 将tomcat设置成window自启动服务
- 遍历循环的高级用法(好简单...)
- scp传输文件的命令
- Socket通讯--数据结构WSADATA
- 基于8086的16位键盘操作系统仿真设计-基于8086LCD1602显示仿真设计-基于8086的LED中文显示屏显示设计-基于8086方波锯齿波三角波发生器-基于8086的LED点阵汉字流水显示设计
- 有线广电如何转型和发展
- 按照账号定位持续发视频,数据不会太差!
- python数学圆周率_Python编程超简单方法算圆周率
- 过年的气氛为什么几乎全无,内心也没有任何期盼呢?
- java仿QQ微信聊天室
- 如何保护您的网站免受恶意软件的侵害