近期参加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. Python 函数:定义、调用、参数、递归和 Lambda 函数详解

    函数是一段代码块,只有在调用时才会运行.您可以将数据(称为参数)传递给函数. 函数可以返回数据作为结果. 创建函数 在Python中,使用def关键字定义函数: 示例 def my_function( ...

  2. 初学STM32 SDIO(一)

    1. SDIO协议简介 ​ SDIO全称是安全数字输入/输出接口 ,控制器对SD卡进行读写通信操作一般有两种通信接口可选,一种是SPI接口,另外一种就是SDIO接口. 多媒体卡(MMC).SD卡. S ...

  3. jenkins安装卸载和下载

    环境 :docker容器 卸载 jenkins 1.rpm卸载rpm -e jenkins 2.检查是否卸载成功rpm -ql jenkins 3.彻底删除残留文件:find / -iname jen ...

  4. redis命令和lua实现分布式锁

    Redis分布式锁关键 SETNX 语法: SETNX key value 如果key不存在,则存储(key:value)值,返回1 如果key已经不存在,则不执行操作,返回0 因为这个命令的性质,多 ...

  5. 【高级RAG技巧】在大模型知识库问答中增强文档分割与表格提取

    前言 文档分割是一项具有挑战性的任务,它是任何知识库问答系统的基础.高质量的文档分割结果对于显著提升问答效果至关重要,但是目前大多数开源库的处理能力有限. 这些开源的库或者方法缺点大致可以罗列如下: ...

  6. javascript:eval()的用法

    eval() 是 JavaScript 中的一个全局函数,它可以计算或执行参数.如果参数是表达式,则 eval() 计算表达式:如果参数是一个或多个 JavaScript 语句,则 eval() 执行 ...

  7. vue 商品sku添加,笛卡尔算法,商品添加。动态生成table,table添加值后 再生成的table 不改变table之前输入的值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 基于 KubeVela 的机器学习实践

    ​简介:本文主要介绍如何使用 KubeVela 的 AI 插件,来帮助工程师更便捷地完成模型训练及模型服务. 作者:KubeVela 社区 在机器学习浪潮迸发的当下,AI 工程师除了需要训练.调试自己 ...

  9. [Blockchain] Cosmos Starport 安装的三种方式

    官方二进制包方式: # 下载 starport 二进制到 /usr/local/bin $ curl https://get.starport.network/starport! | bash   # ...

  10. k8s七层代理Ingress-nginx-controller

    一.Ingress与Ingress Controller概述 1.1 回顾service四层代理 在 k8s 中为什么要做负载均衡? Pod 漂移问题,可以理解成 Pod IP 是变化的 Kubern ...