CCL 2024 Task7 双任务冠军

近期参加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优化器

相关推荐
人才程序员2 个月前
CSP-J/S 复赛算法 并查集-Hash表
c语言·c++·算法·青少年编程·哈希算法·竞赛·csp
人才程序员3 个月前
CSP-J 复赛算法 贪心算法
c语言·c++·算法·贪心算法·noip·竞赛·noi
人才程序员3 个月前
CSP-J 复赛算法 贪心算法练习
c语言·开发语言·c++·算法·贪心算法·竞赛·csp
X_StarX6 个月前
编程奇境:C++之旅,从新手村到ACM/OI算法竞赛大门(武器:前缀和与差分)
开发语言·数据结构·c++·算法·竞赛·学生
X_StarX6 个月前
编程奇境:C++之旅,从新手村到ACM/OI算法竞赛大门(中级武器:并查集)
开发语言·数据结构·c++·算法·图论·竞赛
X_StarX7 个月前
编程奇境:C++之旅,从新手村到ACM/OI算法竞赛大门(武器:递归与递推)
开发语言·c++·学习·算法·深度优先·竞赛·新手入门
iwant_7 个月前
第十八届东北CCPC程序设计竞赛题解
c++·算法·题解·竞赛
iwant_7 个月前
2024年西安交通大学程序设计竞赛校赛
c++·算法·题解·竞赛
iwant_7 个月前
2022年ICPC亚洲区域赛南京站题解
c++·算法·题解·竞赛
小哈里7 个月前
【竞赛】本科阶段部分证书考试 & 科研竞赛 的 网站导航(算法、项目、安全、数据、科研)
算法·安全·科研·项目·竞赛