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

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

3天内不再提示

几种基于深度学习的中文纠错模型

深度学习自然语言处理 来源:NLP日志 作者:NLP日志 2022-06-09 11:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 简介

在之前的篇章我们对中文文本纠错做了一个系统的介绍,曾经盛行的纠错系统都是基于混淆集+n-gram语言模型的,其中混淆集构建成本巨大,同时相对笨重,而n-gram语言模型也没考到句子的语义信息,所以导致最终的F1得分都比较小,很难满足真实场景的需要,泛化能力很比较差。同时以往的纠错系统都是基于pipeline的,检测任务跟纠错任务是相互分开的,各个环节紧急相连,前面的环节如果出现了错误,后面的环节也很难进行修正。任何一个环节出现了问题,都会影响整体的结果。

随着深度学习的兴起,人们逐渐用深度学习模型去替换以往的混淆集+n-gram语言模型的方式,根据句子的语义信息去进行纠错,同时,还将检测任务跟纠正任务联合到一起,做成一个end2end的系统,避免pipeline方式带来的问题。在这里我们介绍几种基于深度学习的中文纠错模型,让大家对于中文文本纠错有更加深入的理解。

2Confusionset-guided Pointer Network

Confusionset-guided Pointer Network是一个seq2seq模型,同时学习如何从原文本复制一个正确的字或者从混淆集中生成一个候选字。整个模型分为encoder跟decoder两部分。其中encoder用的BiLSTM用于获取原文本的高层次表征,例如图中左下角部分,decoder部分用的带注意力机制的循环神经网络,在解码的每个时刻,都能生成相应的上下文表征。生成的上下文表征有两个用途,第一个是利用这部分表征作为输入,通过矩阵乘法跟softmax来计算当前位置生成全词表中各个字的概率(右边的概率图)。第二个用途是利用这部分上下文表征加上位置信息来计算当前时刻复制原文本某个位置的字的概率或者需要生成原文本中不存在的字的概率(左边的概率图,这里其实是一个分类模型,假设原文本的长度是n,那么全部分类有n+1种,其中1至n的标签的概率代表当前时刻要复制原文本第i个位置的字的概率,第n+1的类别代表当前时刻要生成原文本不存在的字的概率。如果是1至n中某个类别的概率最大,那么当前位置的解码结果就是复制对应概率最大的原文本的某个字,如果是第n+1个类别概率最大,那么就会用到前面提及的第一个用途,计算当前位置词表中各个字的概率,取其中概率最大的字作为当前时刻解码的结果)。这里要注意的是,生成新字为了保证结果更加合理,会事先构建好一个混淆集,对于每个字,都有若干个可能错别字(形近字或者同音字等),模型会对生成的候选会限制在这个字的混淆集中,也不是在全词表中选择,所以才称为confusionset-guided。训练时会联合encoder跟decoder一同训练,以预测各个类别的交叉熵损失作为模型优化目标。

Confusionset-guided Pointer Network看起来跟之前提及的CopyNet思路很接近文本生成系列之文本编辑,同时考虑到copy原文跟生成新字两种可能性,相对于之前的seq2seq模型的改进主要是引入混淆集来控制可能的候选字符。这种设置也比较合理,中文的错别字多是在形状或者发音上有一定相似之处,通过混淆集可以进一步约束纠错的结果,防止纠错的不可控。但是由于生成的结果一定来源于混淆集,所以混淆集的质量也影响了最终纠错的效果。一个合理的混淆集的构建都需要付出比较大的代价。

80c2be56-e72c-11ec-ba43-dac502259ad0.png

图1:Confusionset-guided Pointer Network框架

3 FASPell

这是爱奇艺发布在EMNLP2019的基于词的中文纠错的方法,FASPell有两个特别的点,一个是用BERT为基础的DAE取代了传统的混淆集,另一点是使用置信度-相似度的解码器来过滤候选集,从而提高纠错效果。

FASPell首先利用Bert来生成句子每个字符的可能候选结果,但是Bert的预训练任务MLM中选中的token有10%是被随机替代的,这跟文本纠错的场景不符,所以需要对Bert进行一定的微调。具体过程就是对MLM任务做一定调整,调整策略如下

a)如果文本没有错误,那么沿用之前Bert的策略。

b)如果文本有错误,那么随机选择的要mask的位置的字,如果处于错误的位置,那么设置对应的标签为纠错后的字,也就是相对应的正确的字。如果不是处于错误的位置,那么设置对应的标签为原来文本中的字。

在获得文本可能的候选结果后,FASPell利用置信度-相似度的解码器来过滤这些候选结果。这里为什么需要对Bert生成的候选字进行过滤呢?因为汉语中常见的错误大部分在字形或者发音有一定相似之处,但是Bert生成的候选字并没有考虑到中文纠错的背景,所以Bert提供的候选结果很多都是纠错任务不相关的。这里每个位置的候选词的置信度由Bert计算得到,相似度这里包括字形相似度跟音素相似度,其中因素相似度考虑到在多种语言中的发音。对于每个位置的候选词,只有当置信度,字形相似度跟音素相似度满足某个条件时,才会用这个候选字符替代到原文对应字符。至于这个过滤条件,一般是某种加权组合,通常需要置信度跟相似度的加权和超过一定阈值才会进行纠错,加权相关的参数可以通过训练集学习得到,在推理时就可以直接使用。

FASPell没有单独的检测模块,利用BERT来生成每个位置的候选字,避免了以往构建混淆集的工作,同时利用后续的置信度-相似度的解码器,对候选结果进行过滤,从而进一步提高纠错效果。

8105f05e-e72c-11ec-ba43-dac502259ad0.png

图2: FASPell框架

4Soft-Masked BERT

Soft-masked Bert是字节发表在ACL 2020的中文纠错方法,针对目前主流的深度学习纠错方法都是利用Bert生成各个位置的可能候选,但是Bert本身缺乏判断每个位置是否需要纠错的能力,也就是缺乏检测能力。为此,提出了一个包含检测网络跟纠正网络的中文纠错方法。整个流程是经过检测网络,然后再经过纠错网络。其中检测网络是的双向GRU+全连接层做一个二分类任务,计算原文本每个位置是否有错误的概率。每个位置有错别字的概率为p,没有错别字的概率是1-p,如图中左边部分。纠正网络采用的是预训练模型Bert,但是在嵌入层的地方有所不同,每个位置的嵌入是由原文本中对应位置的字的词嵌入跟[MASK]的词嵌入的加权和得到的,这里的[MASK]的权重等于检测网络预测的当前位置是错别字的概率。具体如图4所示,所以如果检测网络判断当前位置是错别字的概率较高,那么在纠正网络中该位置的词嵌入中[MASK]的权重就更高,反之,如果检测网络判断当前位置是错别字的概率很低,那么在纠正网络中该位置的词嵌入中[MASK]的权重就更低。利用Bert获得每个位置的表征后,将Bert最后一层的输出加上原文本中对应位置的词嵌入作为每个时刻最终的表征,通过全连接层+Softmax去预测每个位置的字,最终选择预测概率最大的字作为当前结果的输出。训练过程中联合训练检测网络跟纠正网络的,模型的目标包括两部分,一个是检测网络的对数似然函数,另一个是纠正网络的对数似然函数,通过加权求和联合这两部分,使得加权和的负数尽可能小,从而同时优化这两个网络的参数。

8157a6ba-e72c-11ec-ba43-dac502259ad0.png

图3: Soft-Masked BERT框架

81901680-e72c-11ec-ba43-dac502259ad0.png

图4: Softed-masked embedding

Soft-Masked BERT相比直接采用预训练模型BERT,利用检测网络从而得到更合理的soft-masked embedding,缓解了Bert缺乏充足检测能力的问题,虽然改动不大,但是效果提升明显。

5 MLM-phonetics

个人感觉MLM-phonetics是在soft-masked BERT的基础上做的优化,思路也比较接近,同样是包括检测网络跟纠正网络,主要有几点不同,

81b3bd42-e72c-11ec-ba43-dac502259ad0.png

图5: MLM-phonetics框架

a)纠正网络的词嵌入组成不同,Soft-Masked BERT的词嵌入由原文本中各个位置本身的词嵌入和[MASK]的词嵌入组成,而MLM-phonetics则是将相应[MASK]的词嵌入替换为相应位置对应的拼音序列的嵌入。

b)目标函数不同,MLM-phonetics在纠正网络的目标函数中加入了检测网络的预测结果作为一个权重项。

c)检测网络不同,MLM-phonetics的检测网络采用了预训练模型Bert。

d) BERT预训练任务不同,为了更加适配中文纠错任务的场景,MLM-phonetics的Bert的MLM任务中预测的字都是根据汉字常见的错误选取的,要不在字形上有相似之处,要不在发音上有相似之处。

82090e3c-e72c-11ec-ba43-dac502259ad0.png

图6: MLM-phonetics预训练任务

6 总结

为了对比上述几种中文纠错方法之间的差异,可以直接比较这几种方法在几个常见中文纠错数据集上的性能表现,在F1值上都远超基于混淆集+n-gram语言模型的方式。

823edcb0-e72c-11ec-ba43-dac502259ad0.png

图7:不同纠错模型的效果对比

除此之外,关于中文纠错任务,还有一些需要注意的点。

a)由于纠错任务可以分为检测跟纠正两个过程,所以相应的错误也可以分为这两种类型。目前基于BERT的中文纠错方法的检测错误的比例要高于纠正错误的比例,这也得益于Bert训练过程的MLM任务。

b)中文纠错方法基本都是以字为基本单位,很大程度是因为以词为单位的话会引入分词模块的错误,但是可以用分词的结构来作为字的特征增强。

c)目前中文纠错任务有两种类型的错误还没有很好的解决。第一种是模型需要强大推理能力才能解决,例如“他主动牵了姑娘的手,心里很高心,嘴上却故作生气。”这里虽然容易检测出“高心”是错别字,但是至于要把它纠正为“寒心”还是“高兴”需要模型有强大的推理能力才可以。第二种错误是由于缺乏常识导致的(缺乏对这个世界的认识),例如“芜湖:女子落入青戈江,众人齐救援。”需要知道相关的地理知识才能把“青戈江”纠正为“青弋江”。

审核编辑 :李倩

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

    关注

    5

    文章

    4792

    浏览量

    93788
  • 文本
    +关注

    关注

    0

    文章

    119

    浏览量

    17747
  • 深度学习
    +关注

    关注

    73

    文章

    5591

    浏览量

    123923

原文标题:中文文本纠错系列之深度学习篇

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)

    (第10系列)、YOLOv8-Tiny工业优化版(第9系列),满足产线端设备算力限制,模型推理速度提升300%。 LabVIEW生态整合 作为工业自动化领域主流开发环境,LabVIEW与深度学习的集成
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战可(11大系列课程,共5000+分钟)

    领域主流开发环境,LabVIEW与深度学习的集成一直是行业痛点。课程提供独家开发的labview调用框架,实现从模型训练(Python)到部署(LabVIEW)的无缝衔接,已成功应用于DIP、AOI
    发表于 12-03 13:50

    自动驾驶中Transformer大模型会取代深度学习吗?

    [首发于智驾最前沿微信公众号]近年来,随着ChatGPT、Claude、文心一言等大语言模型在生成文本、对话交互等领域的惊艳表现,“Transformer架构是否正在取代传统深度学习”这一话题一直被
    的头像 发表于 08-13 09:15 3932次阅读
    自动驾驶中Transformer大<b class='flag-5'>模型</b>会取代<b class='flag-5'>深度</b><b class='flag-5'>学习</b>吗?

    宁畅与与百度文心大模型展开深度技术合作

    近日,百度正式开源文心大模型4.5系列模型。作为文心开源合作伙伴,宁畅在模型开源首日即实现即刻部署,做到“开源即接入、发布即可用”。据悉,文心4.5开源系列全部基于飞桨深度
    的头像 发表于 07-07 16:26 665次阅读

    模型推理显存和计算量估计方法研究

    随着人工智能技术的飞速发展,深度学习模型在各个领域得到了广泛应用。然而,大模型的推理过程对显存和计算资源的需求较高,给实际应用带来了挑战。为了解决这一问题,本文将探讨大
    发表于 07-03 19:43

    模型时代的深度学习框架

    作者:算力魔方创始人/英特尔创新大使刘力 在 CNN时代 ,AI模型的参数规模都在百万级别,仅需在单张消费类显卡上即可完成训练。例如,以业界知名的CNN模型: ResNet50 为例,模型参数
    的头像 发表于 04-25 11:43 670次阅读
    大<b class='flag-5'>模型</b>时代的<b class='flag-5'>深度</b><b class='flag-5'>学习</b>框架

    用树莓派搞深度学习?TensorFlow启动!

    介绍本页面将指导您在搭载64位Bullseye操作系统的RaspberryPi4上安装TensorFlow。TensorFlow是一个专为深度学习开发的大型软件库,它消耗大量资源。您可以在
    的头像 发表于 03-25 09:33 978次阅读
    用树莓派搞<b class='flag-5'>深度</b><b class='flag-5'>学习</b>?TensorFlow启动!

    在OpenVINO™工具套件的深度学习工作台中无法导出INT8模型怎么解决?

    无法在 OpenVINO™ 工具套件的深度学习 (DL) 工作台中导出 INT8 模型
    发表于 03-06 07:54

    军事应用中深度学习的挑战与机遇

    人工智能尤其是深度学习技术的最新进展,加速了不同应用领域的创新与发展。深度学习技术的发展深刻影响了军事发展趋势,导致战争形式和模式发生重大变化。本文将概述
    的头像 发表于 02-14 11:15 828次阅读

    机器学习模型市场前景如何

    当今,随着算法的不断优化、数据量的爆炸式增长以及计算能力的飞速提升,机器学习模型的市场前景愈发广阔。下面,AI部落小编将探讨机器学习模型市场的未来发展。
    的头像 发表于 02-13 09:39 628次阅读

    BP神经网络与深度学习的关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经网络,即反向传播神经网络(Backpropagation Neural Network
    的头像 发表于 02-12 15:15 1364次阅读

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    今天学习<基于大模型的RAG应用开发与优化>这本书。大模型微调是深度学习领域中的一项关键技术,它指的是在已经预训练好的大型
    发表于 01-14 16:51

    智谱GLM-Zero深度推理模型预览版正式上线

    近日,智谱公司宣布其深度推理模型GLM-Zero的初代版本——GLM-Zero-Preview已正式上线。这款模型是智谱首个基于扩展强化学习技术训练的推理
    的头像 发表于 01-02 10:55 812次阅读

    Flexus X 实例 ultralytics 模型 yolov10 深度学习 AI 部署与应用

    前言: ���深度学习新纪元,828 B2B 企业节 Flexus X 实例特惠!想要高效训练 YOLOv10 模型,实现精准图像识别?Flexus X 以卓越算力,助您轻松驾驭大规模数据集,加速
    的头像 发表于 12-24 12:24 1317次阅读
    Flexus X 实例 ultralytics <b class='flag-5'>模型</b> yolov10 <b class='flag-5'>深度</b><b class='flag-5'>学习</b> AI 部署与应用

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    1、简介 人工智能图像识别是人工智能领域的一个重要分支,它涉及计算机视觉、深度学习、机器学习等多个领域的知识和技术。图像识别主要是处理具有一定复杂性的信息。计算机采用与人类类似的图像识别原理,即对
    发表于 12-19 14:33