文本分类微调技巧实战2.0

news2025/8/3 4:35:26

讯飞比赛答辩结束,笔者和小伙伴们参加了一些讯飞的比赛,今年讯飞文本分类比赛相比去年更加多元化,涉及领域、任务和数据呈现多样性,听完各位大佬的答辩之后,结合之前经验和以下赛题总结下文本分类比赛的实战思路。

1 讯飞文本分类赛题总结

1.1 非标准化疾病诉求的简单分诊挑战赛2.0 top3方案总结

赛事任务

进行简单分诊需要一定的数据和经验知识进行支撑。本次比赛提供了部分好大夫在线的真实问诊数据,经过严格脱敏,提供给参赛者进行单分类任务。具体为:通过处理文字诉求,给出20个常见的就诊方向之一和61个疾病方向之一

赛题特点

  • 分类标签有两个,问诊方向和疾病方向,并且评估指标分别为macro-f1和micro-f1
  • 疾病方向有不少数是缺失标签,数据集中值为-1
  • 文本方向和疾病方向两种标签有一定约束关系,表现为比如问诊方向为“小二消化疾病”,疾病方向为“小儿消化不良”
  • 数据特点

就诊方向标签中,其中内科、小儿保健、咽喉疾病数量比较多,骨科、甲状腺疾病问诊人数较少

疾病方向标签中,其中内科其他最多,宫腔镜疾病人数较少

数据预处理

(1) 对于文本字段,缺失值直接用空字符串“”填充
(2) 对于spo.txt文件,根据第一列疾病名称构建聚合文本,用于文本语义增强,比如

(3)如果文本文本中含有疾病名称,就根据拼接对应疾病的聚合文本,然后按照文本信息曝光量拼接文本,比如疾病名称很大程度上指定了患者疾病类别归属, 注意:title和hopeHelp字段存在重复的情况,此时仅保留title即可

建模思路

赛题总结

  • 问诊疾病的知识文本,每条包含主体/(属性)/客体的利用对标签学习具有提升效果
  • 联合训练问诊方向与疾病方向标签相比单独训练各自标签的模型效果要好
  • 伪标签学习能够进一步提升在疾病方向的效果

致谢队友:我的心是冰冰的、江东、pxx_player

1.2 中文语义病句识别挑战赛 top2方案总结

赛事任务

中文语义病句识别是一个二分类的问题,预测句子是否是语义病句。语义错误和拼写错误、语法错误不同,语义错误更加关注句子语义层面的合法性,语义病句例子如下表所示。

赛题特点

  • 本次比赛使用的数据一部分来自网络上的中小学病句题库,一部分来自人工标注,比赛一开始拿到数据的时候,真的让人去做病句识别就很难
  • 标签分布比较特殊,数据量比较大,1的数据是0的数量约3倍
数据预处理
  • 在比赛过程中,选手们可以发现这个数据比较容易拟合,通过分析其中有部分数据比较相似、甚至有些是重复数据,所以需要过滤去除重复数据,减少线差
  • 数据划分采用多折分层采样

建模思路

  • 在实验过程中,我们尝试了一些中文预训练模型,比如选择macbert或者具有纠错能力的模型,效果不错的是macbert和electra
shibing624/macbert4csc-base-chinese
hfl/chinese-macbert-base、hfl/chinese-macbert-large
nezha-large-zh
hfl/chinese-electra-large-discriminator
hfl/chinese-roberta-wwm-ext

赛题总结

  • 中文病句识别的预训练底座基础选型比较重要,其中electra和macbert不错,除此看其他大佬使用了prompt learning、pert模型
  • 数据去重可以减少线差

致谢队友:江东、A08B06365ECB216A

1.3 人岗匹配挑战赛 top2方案总结

赛题任务

智能人岗匹配需要强大的数据作为支撑,本次大赛提供了大量的岗位JD和求职者简历的加密脱敏数据作为训练样本,参赛选手需基于提供的样本构建模型,预测简历与岗位匹配与否。

数据预处理

本次比赛为参赛选手提供了大量的岗位JD和求职者简历,其中:

  • 岗位JD数据包含4个特征字段:job_id, 职位名称, 职位描述, 职位要求

  • 求职者简历数据包含15个特征字段:

id, 学校类别, 第一学历, 第一学历学校, 第一学历专业, 最高学历, 最高学历学校, 最高学历专业, 教育经历, 学术成果, 校园经历, 实习经历, 获奖信息, 其他证书信息, job_id。

  • 在训练集中,job_id的数量分布如下,可以看出岗位4和12数量最多,38和37岗位比较少

建模思路

  • 词表构建
    由于本次比赛数据为匿名数据,开源中文预训练模型不适用,因此需要重新构建词表、语料,进而重新训练预训练模型
    第一步,构建词汇表,根据训练集、测试集和JD数据,按照空格分词,对所有文本进行切分,然后构建词汇表,另外需要加入五个特殊字符,[PAD]、[UNK]、[CLS]、[SEP]、[MASK],最后词汇表大小为4571
  • 预训练语料构建
    由于本次比赛数据为匿名数据,开源中文预训练模型不适用,因此需要重新构建词表、语料,进而重新训练预训练模型

第二步,构建预训练语料,直接将学校类别, 第一学历, 第一学历学校, 第一学历专业, 最高学历, 最高学历学校, 最高学历专业, 教育经历, 学术成果, 校园经历, 实习经历, 获奖信息, 其他证书信息这些字段的文本拼接在一起,生成一个人的简历描述。

  • 预训练任务
    在实验过程中,我们选择了两种预训练模型结构:Bert和Nezha,其中Nezha效果要明显优于Bert

  • 分类微调
    将人岗匹配任务看做是文本分类任务,对简历文本进行多分类

赛题总结

  • 在人岗匿名数据上微调,能够有效地捕获语义知识,并识别出不同岗位类型
  • NEZHA基于BERT模型,并进行了多处优化,能够在一系列中文自然语言理解任务达到先进水平
  • 老肥队伍、举哥采用的思路都不同,给了很大启发,统计特征以及传统NN网络对文本分类进一步提升

致谢队友:WEI Z/江东/小泽/跟大佬喝口汤

优化算法合集

下面是一些常规套路,不一定每一个任务都有作用,和数据集、预训练模型有很大关系,大家可以酌情选择

  • FGM
  • EMA
  • PGD
  • FreeLB
  • AWP
  • MultiDropout
    -MixOut

微调方法总结

文本分类还有一些微调的小技巧,也欢迎大家补充

  • 分层学习率
  • 多折交叉验证
  • 伪标签学习
  • Freeze Embedding
  • Fp16混合精度训练

更多NLP内容,欢迎大家关注公众号ChallengeHub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

allegro16.6导出版图到ADS2019仿真的方法

首先配置好allegro软件 1. 选择FILE->Script, 弹出窗口后选择Browse , 选择ADS对应文件夹下\Keysight\ADS2019\ial\scripts的描述文件,并勾选Change Directory 点击确认; 2.回到Scripting界面点击Replay ; 在弹出的窗口红框位…

Au NPs/FA/PAMAM-DOX 金纳米粒子/叶酸/聚酰胺-胺型树枝状高分子修饰阿霉素的研究

下面小编要分享给大家的内容是Au NPs/FA/PAMAM-DOX 金纳米粒子/叶酸/聚酰胺-胺型树枝状高分子修饰阿霉素,和小编一起来看! PAMAM-DOX 聚酰胺-胺型树枝状高分子修饰阿霉素制备方法: 采用逆向蒸发结合pH梯度法制备LLDs-PAMAM-DOX,观察形态,测定…

基于SpringBoot的体育场运营系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:采用HTML和Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Mav…

【QT知识】在widget中的绘制事件函数

在widget中的绘制事件函数 文章目录1. 代码实现头文件部分cpp文件部分2. 事件函数参考博客&#x1f60a;点此到文末惊喜↩︎ 1. 代码实现 头文件部分 #include <QWidget> #include <QPainter>namespace Ui { class widget_2_1; }class widget_2_1 : public QWid…

相控阵天线(四):阵列天线波束赋形(遗传算法、粒子群算法、进化差分算法)

目录波束赋形简介遗传算法波束赋形粒子群算法波束赋形差分进化算法波束赋形智能算法比较遗传算法波束赋形代码示例波束赋形简介 根据期望的方向图辐射特性(如方向图形状、主瓣宽度、副瓣电平、方向性系数)并以某种方法求得阵面电流分布并将此电流分布施加于相应通道中&#xf…

CCF CTO Club 16期活动记事——走进腾讯,实现连接

11月17日&#xff0c;有幸通过CCF CTO Club活动报名&#xff0c;参观了腾讯北京的总部&#xff0c;在腾讯总部大楼7层宴会厅尝到了美食&#xff0c;还参加了“云原生技术的探索与实践”专场讲座和讨论&#xff0c;味蕾和思维获得了双丰收。 参观腾讯总部 这次参观腾讯北京总部…

用 VS Code 搞 Qt6:信号、槽,以及QObject

用 VS Code 搞 Qt6&#xff1a;信号、槽&#xff0c;以及QObject Qt 里面的信号&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;虽然看着像事件&#xff0c;但它实际上是用来在两个对象之间进行通信的。既然是通信&#xff0c;就会有发送者和接收者。 1、信…

NodeJs实战-待办列表(3)-前端页面填充待办数据

NodeJs实战-待办列表3-前端页面填充待办数据为啥在前端填充待办数据&#xff1f;如何在前端填充待办数据&#xff1f;需要了解的知识页面修改后端服务封装数据返回server.js 修改效果图初始化页面添加待办事项完成待办事项为啥在前端填充待办数据&#xff1f; 第2节的页面数据…

Django基础学习

目录 1、Django MVT模型 2、Django项目和应用 2.1 项目和子应用的创建 2.2 子应用url路由配置 3、Django的templates配置 4、Django请求的处理 4.1 get请求处理 4.2 post请求处理 5、Django数据库操作 5.1、数据库连接配置 5.2、models.py配置 5.3、django数据库表的…

【node进阶】深度解析Koa框架---路由|静态资源|获取请求参数

✅ 作者简介&#xff1a;一名普通本科大三的学生&#xff0c;致力于提高前端开发能力 ✨ 个人主页&#xff1a;前端小白在前进的主页 &#x1f525; 系列专栏 &#xff1a; node.js学习专栏 ⭐️ 个人社区 : 个人交流社区 &#x1f340; 学习格言: ☀️ 打不倒你的会使你更强&a…

创建自己的函数库

创建自己的函数库前言一、什么是STM32标准函数库1.定义&#xff1a;2.作用&#xff1a;3.对比&#xff1a;二、构建库函数1.修改寄存器地址封装2.定义访问的结构体指针和引脚3.创建封装函数3.1创建拉低引脚函数3.2创建引脚初始化函数总结前言 回顾一下&#xff0c;前面点亮led…

世界儿童日,周大福真诚关爱儿童成长

守护童心 呵护成长 周大福秉持着“用真诚让幸福永恒”的企业理念&#xff0c;百周年承诺“以人为本”。以爱和关怀凝聚社会力量&#xff0c;提倡社会共融&#xff0c;缔造可持续未来。 梦想家祝福 2021年周大福珠宝集团与美丽中国&#xff0c;携手打造“家源于此”项目。于2…

podman-compose 有前途吗?

文章目录1. 前言2. Docker Compose 和 Podman Compose 的历史3. 未来4. 观点5. 安装5.1 pip3 安装5.2 python 安装5.3 dnf 安装6. 示例1. 前言 虽然 Kubernetes 已经发展成为容器编排的主导者&#xff0c;但人们仍然对管理较小规模的容器&#xff08;通常是单个系统&#xff0…

centos7—安装mysql

文章目录1.1 卸载MariaDB1.2 官网下载包文件1.3 解压安装包1.4 安装相关的Mysql服务1.5 开启Mysql服务1.1 卸载MariaDB 由于centOS7中默认安装了MariaDB,需要先进行卸载 rpm -qa | grep -i mariadb #查找本地mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.aarch64 #这个…

nuxt 如何生成sitemap.xml 动静态站点地图

前言 sitemap.xml的作用是将我们网站的所有页面都被SEO&#xff08;浏览器搜索引擎&#xff09;收录&#xff0c;我们网站的内容更容易被用户搜到&#xff0c;同时增加我们的网站的知名度&#xff0c;排名更靠前。简言之就是用技术做网站推广&#xff0c;所以对于网站推广sitem…

JVM【类加载与GC垃圾回收机制】

JVM【类加载与GC垃圾回收机制】&#x1f34e;一.JVM&#x1f352;1.1JVM简介&#x1f352;1.2JVM执行流程&#x1f34e;二.JVM运行时数据区&#x1f352;2.1 程序计数器(线程私有)&#x1f352;2.2 栈(线程私有)&#x1f352;2.3 堆(线程共享)&#x1f352;2.4 方法区(线程共享…

Matlab图像处理基础(part 1)

目录 0. 概要 1. 图像表示 Image Representation 1.1 图像格式 Image format 1.2 图像分辨率 resolution of image 1.3 图像的编码 1.4 Matlab图像加载、显示和保存 1.5 Image Information 1.6 图像格式转换 1.7 其它类型的像素 1.8 像素数值格式 1.9 图像数据的访问…

vue实现防抖函数、节流函数,全局使用【输入框、按钮】

博主介绍 &#x1f4e2;点击下列内容可跳转对应的界面&#xff0c;查看更多精彩内容&#xff01; &#x1f34e;主页&#xff1a;水香木鱼 &#x1f34d;专栏&#xff1a;后台管理系统 文章目录 简介&#xff1a;这是一篇有关【vue实现防抖函数、节流函数&#xff0c;全局使用…

第一章《初学者问题大集合》第4节:Java程序是如何执行的

想要学好Java编程,就必须先弄清楚Java程序是如何执行的。首先来解释一个最基本的概念:什么是程序?把你想让计算机做的事情用编程语言一条条列出,这个由多条编程语言所组成的“代码序列”就是程序。 那么Java程序又是如何运行的呢?这个过程如图1-1所示。 图1-1 Java程序运…

C语言小游戏之三子棋(井字棋)(1.5w字超详细讲解)

hello&#xff0c;csdn的伙伴们&#xff0c;大家好&#xff0c;我们已经学习到了分支与循环&#xff0c;函数&#xff0c;数组这三大块知识&#xff0c;那么我们现在就可以尝试综合运用前面所学的知识&#xff0c;来完成一个简单的小游戏-----三子棋&#xff08;井字棋&#xf…