近期参加NLP领域CCL2024评测,现将赛题背景和实现方法分享,推理文本纠错领域的发展。

  1、背景信息

  随着教育的发展和网络的普及,作文评价的规模越来越大,人工评改作文的成本和效率成为一大难题。为了解决这一问题,许多研究者和机构开始探索利用计算机技术来实现作文的自动评改,通过分析作文的语言、内容、结构等方面的特点及存在的问题,给出客观、准确、及时的评分和反馈。其中,表述是否流畅是教师评改作文的一项重要内容。

  作文流畅性反映一篇作文的通顺程度和语言使用的规范性,以及作者的写作水平和表达能力,对提高作文评改质量、提升作者写作水平具有重要意义。目前,针对作文流畅性评价的研究工作通常从句子长度、词汇复杂度、句子结构等语言学特征角度进行评分或评级;或是作为语法纠错任务,对句子中出现的拼写错误或语法错误进行识别和纠正;或是视为病句判断任务,判断一条句子是否是病句;这些方法通常将作文流畅性评估作为一个单独的自然语言处理任务,缺乏多层次、多角度的系统性整合;在对语法错误类型的定义上,以往的工作研究了赘余、缺失、误用、乱序四个粗粒度类别,缺乏更细粒度的错误类型定义;同时,他们的方法不具备良好的可解释性,没有定义作文流畅性评价的细粒度分项,无法对中小学生错误修改给出针对性的指导和修改意见。此外,

  本次评测数据集来源于以汉语为母语的中小学生考试作文,区别于使用基于规则生成或汉语学习者的中介语数据中的错误,以及其他类型母语者的口语、书面语的语法错误,中小学生作文中出现的错误类型更丰富,涉及的语法知识更复杂。因此我们的任务研究中小学生考试作文中的语法错误识别与纠正问题,系统地定义了影响作文流畅性的细粒度错误类型,并给出了修正建议,这种细粒度错误类型的定义与识别能够帮助学生更清楚地了解自己的写作问题,而修正建议能帮助学生更好地修改自己的作文,同时帮助教师更便捷地了解学生写作水平,有助于教师更好地指导学生写作。

  基于此,本次评测任务从词法、句法、语义等多角度对作文流畅性进行详细分析,并给出修改建议,包括:

    1、中小学作文病句类型识别;

    2、中小学作文病句改写;

    3、中小学作文流畅性评级;

  2、实现方法  

  任务一是有关病句类型识别,本质为分类任务,为此我们选用UTC模型进行微调,由于提供训练的数据量较少,为此我们提出语法错误替换方法(后续开源),来进行分阶段的训练,任务一训练数据如下:

  

  

  UTC基于百度最新提出的统一语义匹配框架USM(Unified Semantic Matching),将分类任务统一建模为标签与文本之间的匹配任务,对不同标签的分类任务进行统一建模。具体地说:

  UTC设计了标签与文本之间的词对连接操作(Label–>CLS-Token Linking),这使得模型能够适应不同领域和任务的标签信息,并按需求进行分类,从而实现了开放域场景下的通用文本分类。例如,对于事件检测任务,可将一系列事件标签拼接为[L]上映[L]夺冠[L]下架 ,然后与原文本一起作为整体输入到UTC中,UTC将不同标签标识符[L]与[CLS]进行匹配,可对不同标签类型的分类任务统一建模,通过这种方法可以进行不同类别数据的训练,这个思路真不错。

 

  

  

任务二是中小学作文病句改写,本质为文本生成任务,为此我们选用BART模型,并采用SynGEC融合语法结构,来进一步的提高模型的纠错能力,代码详见:https://github.com/HillZhang1999/NaSGEC,训练数据如下图所示:

  BART模型如下,BERT模型的预训练方法是通过加入噪声,随机将token替换成[MASK]、随机删去token、随机将一段连续的token(称作span)替换成一个[MASK]、将一个document的句子打乱、将一个document的句子打乱,其中随机删除跟纠错的少词很类似、句子打乱跟纠错的语序不当很类似,因此采用BART作为预训练模型是最好的,因为BART本身就具有一定的纠错能力。

  

任务三是中小学作文流畅性评级,也是分类任务,采用NEZHA模型进行微调,并采用FGM、K折等方法来增加模型的鲁棒性,训练数据如下:

Nezha模型如下,相关论文链接:https://arxiv.org/abs/1909.00204

补充:NEZHA 模型相比于BERT模型,在一些方面的改进:完全函数式的相对位置编码、词的MASK、Span预测任务、混合精度训练和LAMB优化器

CCL 2024 Task7 双任务冠军的更多相关文章

  1. 2018 AI产业界大盘点

    2018  AI产业界大盘点 大事件盘点 “ 1.24——Facebook人工智能部门负责人Yann LeCun宣布卸任 Facebook人工智能研究部门(FAIR)的负责人Yann LeCun宣布卸 ...

  2. 300万大奖:欢迎参加美团联合主办的全球AI挑战赛

    2018年8月29日,由美团.创新工场.搜狗.美图联合主办的“AI Challenger 2018全球AI挑战赛”正式启动.美团CTO罗道峰.创新工场CEO李开复.搜狗CEO王小川和美图CEO吴欣鸿共 ...

  3. bzoj2765[JLOI2010]铁人双项比赛

    题意:铁人双项比赛由长跑和骑自行车组成,参赛选手必须先完成k公里的长跑,然后完成r公里的骑车,才能到达终点.参赛选手有的擅长长跑,有的擅长骑车. 如果总赛程s=k+r一定,那么K越大,对擅长长跑的选手 ...

  4. 【BZOJ】【2765】【JLOI2010】铁人双项比赛

    计算几何/半平面交 本来我是想去写POJ 1755的,然后想起了这道跟它很像的题,但应该是弱化版,所以就先写了这个…… 我们可以发现每个人的总用时,与k是呈一次函数关系的:$time_i=\frac{ ...

  5. bzoj2765 铁人双项比赛

    Description 铁人双项比赛是吉林教育学院的一项传统体育项目.该项目比赛由长跑和骑自行车组成,参赛选手必须先完成k公里的长跑,然后完成r公里的骑车,才能到达终点.每个参赛选手所擅长的项目不同, ...

  6. ImageNet 历届冠军最新评析:哪个深度学习模型最适合你?

    原文链接: https://mp.weixin.qq.com/s/I5XgYrPCCGyfV2qTI0sJhQ 深度神经网络自出现以来,已经成为计算机视觉领域一项举足轻重的技术.其中,ImageNet ...

  7. win8.1硬盘安装ubuntu14.04双系统

    在网上找了很多方法都失败了,原因是大多数方法都是用mbr方式安装的,如grub4dos,easybcd.以至于连自己都怀疑win8能不能用硬盘安装,差点就去买个u盘来安装了,就在打算放弃的时候在ubu ...

  8. Linux 利用Google Authenticator实现ssh登录双因素认证

    1.介绍 双因素认证:双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统.双因素认证是一种采用时间同步技术的系统,采用了基于时间.事件和密钥三变量而产生的一 ...

  9. 烂泥:VMWare Workation双网卡配置IP地址

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天给一个客户做远程项目实施,客户那边的服务器是Windows OS的,我们这边的业务 ...

  10. mysql集群(双主)

    0.安装 所谓双主基本可以理解为两台服务器互为主备,其核心思路与主备配置相同. 服务器A: 内网IP: 10.44.94.219 服务器B: 内网IP: 10.44.94.97 1.配置服务器A lo ...

随机推荐

  1. Visual Studio 2022插件的安装及使用 - 编程手把手系列文章

    这次开始写手把手编程系列文章,刚写到C#的Dll程序集类库的博文,就发现需要先介绍Visual Studio 2022的插件的安装及使用,因为在后面编码的时候会用到这些个插件,所以有必要先对这个内容进 ...

  2. HMS Core Discovery第13期直播预告——构建手游中的真实世界

    [导读] 游戏的迭代升级不止在于玩法的创新,也体现在画质升级上.一款又一款次世代游戏运用各种顶尖渲染技术化身"显卡杀手"的同时,也让玩家们在体验过逼真渲染画质后大呼过瘾,技术的进步 ...

  3. 用fpga实现1G Eth TCP&UDP硬件协议栈

    用fpga实现的1G 以太网硬件协议栈,属于轻的协议栈

  4. .netcore 使用Quartz定时任务

    这是一个使用 .NET Core 和 Quartz.NET 实现定时任务的完整示例.首先确保已经安装了 .NET Core SDK.接下来按照以下步骤创建一个新的控制台应用程序并设置定时任务: 创建一 ...

  5. 我是如何搭建ChatGPT并嵌入到微信公众号的?

    前言 体验方式:薇辛搜索 龚众号 [程序员Jason],关注并点击发消息,点菜单ChatGPT 然后翻到最下面点[阅读原文]就可以了. ChatGPT对某些国家是不提供服务的,所以一般是用不了,除非是 ...

  6. CF1857B Maximum Rounding 题解

    题目描述 给定一个自然数 \(n\),可以对任意一位进行四舍五入,可以进行任意次,求能得到的最大数.(这里的 \(n\) 没有前导零) 思路 首先我们发现,如果我们将其中一位进位了,那后面的所有位都会 ...

  7. 如何将一棵LSM-Tree塞进NVM

    ​简介: 随着非易失内存产品的商业化推广,我们对于其在云原生数据库中大规模推广的潜力越来越有兴趣.X-Engine是阿里云数据库产品事业部PolarDB新型存储引擎团队研发的一个LSM-tree存储引 ...

  8. 修改python别名

    修改Python别名 发现课程提供的启动python程序的命令均为python3,而我们的环境中只能用python来启动 Python 解释器,可以通过修改python的别名来实现不同名称调用同一个程 ...

  9. dotnet 写一个支持层层继承属性的对象

    我最近在造一个比 Excel 差得多的表格控件,其中一个需求是属性的继承.大家都知道,表格里面有单元格,单元格里面允许放文本,文本可以放多段文本.本文的主角就是文本段落的样式属性,包括文本字体字号颜色 ...

  10. STM32【HAL库】使用外部SRAM程序

    #include <board.h> #ifdef BSP_USING_SRAM #include <drv_common.h> #include <rtthread.h ...