0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于标签数据提升语法错误纠正效果

Tensorflowers 来源:TensorFlow 作者:TensorFlow 2021-09-23 15:44 次阅读

语法错误纠正 (GEC) 指的是试图对语法和其他类型的写作错误进行建模,并给出语法和拼写建议,从而改善文档、电子邮件、文章甚至非正式聊天中的书面输出质量。在过去 15 年里,GEC 的质量有了很大提高,其中很大一部分原因是它将问题重塑为一项“翻译”任务。例如,将这种方法引入 Google 文档后,用户采纳的语法纠正建议数量显著增加。

将问题重塑为一项“翻译”任务

https://aclanthology.org/P06-1032/

但是,GEC 模型面临的最大挑战之一是数据稀少。不同于其他语音识别 (Speech recognition) 和机器翻译 (Machine translation) 等自然语言处理 (NLP) 任务,即便是针对英语这样的高资源语言,GEC 可用的训练数据非常有限。对于这类问题,一个常见的补救措施是使用一系列技术来生成合成数据,其中包括启发式随机词或字符级的损坏,以及基于模型的方法。然而,这些方法往往是简化的,不能反映实际用户错误类型的真实分布。

在 EACL 第 16 届创新使用 NLP 构建教育应用研讨会上发表的《使用有标签损坏模型进行语法错误纠正的合成数据生成》 (Synthetic Data Generation for Grammatical Error Correction with Tagged Corruption Models) 一文中,我们介绍了有标签损坏模型。这种方法受到机器翻译中流行的回译数据合成技术启发,能够精确控制合成数据的生成,确保产生与实践中错误分布更加一致的多样化输出。我们使用有标签损坏模型来生成一个新的数据集(包含 2 亿个句子)。目前这个数据集应发布,可供研究人员提供真实的 GEC 预训练数据。通过将新的数据集整合到训练流水线,我们能够显著改善 GEC 的基线。

使用有标签损坏模型进行语法错误纠正的合成数据生成

https://aclanthology.org/2021.bea-1.4/

回译

https://aclanthology.org/P16-1009/

数据集(包含 2 亿个句子)

https://github.com/google-research-datasets/C4_200M-synthetic-dataset-for-grammatical-error-correction

有标签损坏模型

将传统的损坏模型应用于 GEC,其背后的理念是,从一个语法正确的句子开始,然后通过添加错误“损坏”它。通过在现有 GEC 数据集中切换源句和目标句,可以轻松地训练出损坏模型,之前的研究已经表明,这种方法对生成改进的 GEC 数据集非常有效。

提供干净的输入句(绿色)后,传统损坏模型会生成一个不符合语法的句子(红色)

之前的研究

https://aclanthology.org/D19-1119.pdf

我们提出的有标签损坏模型建立在这一理念的基础之上,它将一个干净的句子作为输入,加上一个错误类型标签,描述所要重现的错误类型。然后,它为输入句生成一个包含指定错误类型的语法错误版本。与传统的损坏模型相比,为不同句子选择不同的错误类型增加了损坏的多样性。

有标签损坏模型会根据错误类型标签,为干净的输入句(绿色)生成损坏(红色)。限定词错误可能会导致丢失限定词 “a”,而名词屈折变化错误可能导致错误的复数形式 “sheeps”

为使用此模型生成数据,我们首先从 C4 语料库中随机选择了 2 亿个干净的句子,并为每个句子分配了一个错误类型标签,令其相对频率与小型开发集 BEA-dev 的错误类型标签分布相匹配。由于 BEA-dev 是一个精心制作的集合,涵盖各种英语水平,范围很广,我们预计其标签分布能够代表现实中出现的写作错误。然后,我们用一个有标签损坏模型来合成源句。

使用有标签损坏模型生成合成数据。在合成的 GEC 训练语料库中,干净的 C4 句子(绿色)与损坏的句子(红色)配对。遵循开发集(条形图)中错误类型的频率,使用有标签损坏模型生成损坏的句子

C4 语料库

https://ai.googleblog.com/2020/02/exploring-transfer-learning-with-t5.html

BEA-dev

https://aclanthology.org/W19-4406.pdf

结果

在我们的实验中,有标签损坏模型在两个标准开发集(CoNLL-13 和 BEA-dev)上表现优于无标签损坏模型,比后者高出三个 F0.5-点(GEC 研究中的一个标准指标,结合了精确率和召回率 (Precision and recall),更注重精确率),并在两个广泛使用的学术测试集(CoNLL-14 和 BEA-test)上体现了最先进的水平。

CoNLL-13

https://aclanthology.org/W13-3601.pdf

标准指标

https://aclanthology.org/P17-1074/

CoNLL-14

https://aclanthology.org/W14-1701.pdf

此外,使用有标签损坏模型不仅能在标准的 GEC 测试集上获得收益,还能够让 GEC 系统适应用户的语言水平。这一点会十分有用,原因之一是英语母语写作者的错误标签分布往往与非英语母语写作者的分布有很大不同。例如,英语母语者通常会犯更多标点符号和拼写错误,而限定词错误(例如缺少或多加冠词,如 “a”、“an” 或 “the”)在非英语母语写作者的文本中更为常见。

结论

众所周知,神经序列模型对数据的需求非常大,但用于语法错误纠正的注释训练数据却很少。新的 C4_200M 语料库是一个包含各种语法错误的合成数据集,用于预训练 GEC 系统时,它体现出了最先进的性能。通过发布该数据集,我们希望为 GEC 研究人员提供宝贵的资源来训练强大的基线系统。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87587
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47674
收藏 人收藏

    评论

    相关推荐

    如何纠正三相电源相序

    如何纠正三相电源相序    纠正三相电源相序错误是电气工程中一个非常重要的任务。相序错误可能会导致电气设备损坏、功率因数下降、电路故障等严重后果。因此,我们需要在实际工作中及时发现和
    的头像 发表于 01-04 14:30 1571次阅读

    Shell脚本检查工具ShellCheck介绍

    ShellCheck是一个用于bash/sh shell脚本的静态分析工具,可以辅助检查脚本语法错误,给出建议增强脚本健壮性。
    的头像 发表于 12-27 13:43 536次阅读
    Shell脚本检查工具ShellCheck介绍

    python运行完后为什么会闪退

    终止。这可能是由于多种原因引起的,下面我将详细介绍几种常见的闪退原因和解决方法。 语法错误:在编写Python代码时,如果有语法错误,程序将无法正确解释和执行代码,从而导致闪退。这些错误可能是拼写
    的头像 发表于 11-29 15:14 3167次阅读

    invalid synrax是什么错误

    “invalid synrax” 是英语中的拼写错误,正确的拼法是 “invalid syntax”。语法错误是指程序代码中出现了不符合编程语言规则的语法结构,导致编译器无法理解和编译代码。
    的头像 发表于 11-28 15:59 2804次阅读

    python运行程序出现红色空白

    当你运行Python程序时,如果出现红色空白,这通常意味着有一个错误发生了。这个错误可能是由多种原因造成的,本文将详细介绍可能的原因和解决方法,帮助你解决这个问题。 语法错误:Python是一种
    的头像 发表于 11-28 15:30 716次阅读

    脚本错误scripterror怎么解决

    “脚本错误”(Script Error)通常是在运行或尝试运行一段脚本或程序时出现的错误。这种错误可能源于许多不同的原因,包括语法错误、运行环境问题、依赖库缺失等。解决脚本
    的头像 发表于 11-26 14:46 2937次阅读

    c语言代码错误怎么找

    当我们编写C语言代码时,常常会遇到一些错误。这些错误可能是语法错误,逻辑错误或者是运行时错误。无论是什么类型的
    的头像 发表于 11-24 10:05 1452次阅读

    Configuration Wizard的语法规则

    Configuration Wizard的语法规则 大家如果有使用过HTML语法,这里就非常容易理解了,它和 HTML一样,使用成对的标签来代表不同的功能,如 >和>,其中 * 代表不同的功能
    的头像 发表于 11-23 18:09 595次阅读
    Configuration Wizard的<b class='flag-5'>语法</b>规则

    看完本篇,帮你纠正错误的去耦方法

    看完本篇,帮你纠正错误的去耦方法
    的头像 发表于 10-26 15:22 245次阅读
    看完本篇,帮你<b class='flag-5'>纠正</b><b class='flag-5'>错误</b>的去耦方法

    Microsoft Editor是怎样实现零COGS的?

    编者按:Microsoft Editor 是一款人工智能写作辅助工具,其中的语法检查器(grammar checker)功能不仅可以帮助不同水平、领域的用户在写作过程中检查语法错误,还可以对错误进行
    的头像 发表于 06-13 00:15 304次阅读
    Microsoft Editor是怎样实现零COGS的?

    如何优化和提升滤波器的效果

    要优化和提升滤波器的效果,可以考虑以下几个方面。
    的头像 发表于 06-10 11:10 830次阅读

    错误纠正:一根线上同时实现TX/RX-Hybrid

    这里要纠正一个错误,回声消除技术并非是在RX端扣除自己TX的电压,而是在RX端扣除自己TX的噪声电压。这些噪声就称为回声(echo)。
    的头像 发表于 05-25 15:04 1884次阅读
    <b class='flag-5'>错误</b><b class='flag-5'>纠正</b>:一根线上同时实现TX/RX-Hybrid

    自动写代码和调试是怎么实现的。

    自动调试该如何设计? 是否运行成功 参数是否到位 功能错误 语法错误 指令错误 逻辑错误 记录日志 语法和指令都很好解决,有个帮助表就行。逻
    发表于 05-21 18:39

    上位机开发——数据库系列问题

    之sa账户登录失败 数据库系列之常见语法错误 数据库系列之App.config配置文件错误 其实,大家在学习数据库的时候,可能还会遇到各种奇
    发表于 05-10 10:34 0次下载
    上位机开发——<b class='flag-5'>数据</b>库系列问题

    eTPU 10.3 codewarrior中的语法错误怎么处理?

    我想知道为什么在构建项目时会显示这些语法错误。 这是来自 AN4907SW 的 EngineControlSet。 在问题窗口中,只显示警告,但我可以在代码端找到这些语法错误。  
    发表于 05-06 08:33