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

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

3天内不再提示

中文文本纠错任务

深度学习自然语言处理 来源:ChallengeHub 作者:ChallengeHub 2022-07-26 14:25 次阅读

最近在理中文文本纠错任务,文本根据搜集到的文章整理成的任务简介,在此先感谢大佬们分享的高质量资料

1

任务简介

中文文本纠错是针对中文文本拼写错误进行检测与纠正的一项工作,中文的文本纠错,应用场景很多,诸如输入法纠错、输入预测、ASR 后纠错等等,例如:

  • 写作辅助:在内容写作平台上内嵌纠错模块,可在作者写作时自动检查并提示错别字情况。从而降低因疏忽导致的错误表述,有效提升作者的文章写作质量,同时给用户更好的阅读体验。

  • 公文纠错:针对公文写作场景,提供字词、标点、专名、数值内容纠错,包含领导人姓名、领导人职位、数值一致性等内容的检查与纠错,辅助进行公文审阅校对。

  • 搜索纠错:用户在搜索时经常输入错误,通过分析搜索query的形式和特征,可自动纠正搜索query并提示用户,进而给出更符合用户需求的搜索结果,有效屏蔽错别字对用户真实需求的影响。

  • 语音识别对话纠错将文本纠错嵌入对话系统中,可自动修正语音识别转文本过程中的错别字,向对话理解系统传递纠错后的正确query,能明显提高语音识别准确率,使产品整体体验更佳

图片来源---百度大脑AI开放平台-文本纠错:https://ai.baidu.com/tech/nlp_apply/text_corrector

2

中文拼写常见错误类型

错误类型 示例
同音字相似错误 强烈推荐-墙裂推荐、配副眼睛-配副眼镜
近音字相似错误 牛郎织女-流浪织女
字形相似错误 顽强拼搏-顽强拼博
词序混乱 两户人家-两家人户
缺字少字 浩瀚星海-浩瀚星
中文全拼拼写 天下-tianxia
中文首字母缩写 北京-bj
中文简拼 明星大侦探-明侦
语法错误 无法言说-言说无法

我们把中文常见错误总结分为三类:1、用词错误,由于输入法等原因导致的选词错误,其主要表现为音近,形近等;2、文法/句法错误,该类错误主要是由于对语言不熟悉导致的如多字、少字、乱序等错误,其错误片段相对较大;3、知识类错误,该类错误可能由于对某些知识不熟悉导致的错误,要解决该类问题,通常得引入外部知识、常识等。

当然,针对确定场景,这些问题并不一定全部存在,比如输入法中需要处理1234,搜索引擎需要处理1234567,ASR 后文本纠错只需要处理12,其中5主要针对五笔或者笔画手写输入等。

3

主流技术

中文本纠错的 paper 很多,整体来看,可以统一在一个框架下,即三大步:1e35cd98-0ca5-11ed-ba43-dac502259ad0.png

  • 错误识别

该阶段主要目的在于,判断文本是否存在错误需要纠正,如果存在则传递到后面两层。这一阶段可以提高整体流程的效率。

错误识别/检测的目标是识别输入句子可能存在的问题,采用序列表示(Transformer/LSTM)+CRF的序列预测模型,这个模型的创新点主要包括:1、词法/句法分析等语言先验知识的充分应用;2、特征设计方面,除了DNN相关这种泛化能力比较强的特征,还结合了大量hard统计特征,既充分利用DNN模型的泛化能力,又对低频与OOV(Out of Vocabulary)有一定的区分;3、最后,根据字粒度和词粒度各自的特点,在模型中对其进行融合,解决词对齐的问题

  • 候选召回

候选召回指的是,识别出具体的错误点之后,需要进行错误纠正,为了达到更好的效果以及性能,需要结合历史错误行为,以及音形等特征召回纠错候选。主要可分为两部分工作:离线的候选挖掘,在线的候选预排序。离线候选挖掘利用大规模多来源的错误对齐语料,通过对其模型,得到不同粒度的错误混淆矩阵。在线候选预排序主要是针对当前的错误点,对离线召回的大量纠错候选,结合语言模型以及错误混淆矩阵的特征,控制进入纠错排序阶段的候选集数量与质量。

该阶段主要目的在于,利用一种或多种策略(规则或模型),生成针对原句的纠正候选。这一阶段是整体流程召回率的保证,同时也是一个模型的上限。

  • 纠错排序

该阶段主要目的在于,在上一阶段基础上,利用某种评分函数或分类器,结合局部乃至全局的特征,针对纠正候选进行排序,最终排序最高(如没有错误识别阶段,则仍需比原句评分更高或评分比值高过阈值,否则认为不需纠错)的纠正候选作为最终纠错结果。

1e4a55f6-0ca5-11ed-ba43-dac502259ad0.png

4

中文文本纠错评测

数据集

SIGHANBake-off2013:[http://ir.itc.ntnu.edu.tw/lre/sighan7csc.html](http://ir.itc.ntnu.edu.tw/lre/sighan7csc.html)

SIGHANBake-off2014:[http://ir.itc.ntnu.edu.tw/lre/clp14csc.html](http://ir.itc.ntnu.edu.tw/lre/clp14csc.html)

SIGHANBake-off2015:[http://ir.itc.ntnu.edu.tw/lre/sighan8csc.html](http://ir.itc.ntnu.edu.tw/lre/sighan8csc.html)

中文输入纠错的评测数据主要包括SIGHAN Bake-off 2013/2014/2015这三个数据集,均是针对繁体字进行的纠错。其中,只有SIGHAN Bake-off 2013是针对母语使用者的,而另外两个是针对非母语使用者。

评价指标

这里主要罗列一下常用的评测指标。在错误识别子任务中,常用的评测指标有:

  • FAR(错误识别率):没有笔误却被识别为有笔误的句子数/没有笔误的句子总数

  • DA(识别精准率):正确识别是否有笔误的句子数(不管有没有笔误)/句子总数

  • DP(识别准确率):识别有笔误的句子中正确的个数/识别有笔误的句子总数

  • DR(识别找回率):识别有笔误的句子中正确的个数/有笔误的句子总数

  • DF1(识别F1值):2 * DP * DR/ (DP + DR)

  • ELA(错误位置精准率):位置识别正确的句子(不管有没有笔误)/句子总数

  • ELP(错误位置准确率):正确识别出笔误所在位置的句子/识别有笔误的句子总数

  • ELR(错误位置召回率):正确识别出笔误所在位置的句子/有笔误的句子总数

  • ELF1(错误位置准确率):2ELPELR / (ELP+ELR)在错误纠正任务中,常用的评测指标为:

  • LA位置精确率:识别出笔误位置的句子/总的句子

  • CA修改精确率:修改正确的句子/句子总数

  • CP修改准确率:修改正确的句子/修改过的句子

虽然文本纠错具体会分为错误识别和错误修正两部分,并分别构造评价指标。但考虑到端到端任务,我们评价完整的纠错过程:

  • 应该纠错的,即有错文本记为 P,不该纠错的,即无错文本记为 N
  • 对于该纠错的,纠错对了,记为 TP,纠错了或未纠,记为 FP
  • 对于不该纠错的,未纠错,记为 TN,纠错了,记为 FN。通常场景下,差准比查全更重要,FN 更难接受,本来对了改成错的这个更离谱,可构造下述评价指标:,其中

5

相关方法

相关论文

整理来自:https://blog.csdn.net/qq_36426650/article/details/122807019

  • 【1】DCSpell:A Detector-Corrector Framework for Chinese Spelling Error Correction(SIGIR2021)
  • 【2】Tail-to-Tail Non-Autoregressive Sequence Prediction for Chinese Grammatical Error Correction- (ACL2021)
  • 【3】Correcting Chinese Spelling Errors with Phonetic Pre-training(ACL2021)
  • 【4】PLOME:Pre-trained with Misspelled Knowledge for Chinese Spelling Correction(ACL2021)
  • 【5】PHMOSpell:Phonological and Morphological Knowledge Guided Chinese Spelling Check(ACL2021)
  • 【6】Exploration and Exploitation: Two Ways to Improve Chinese Spelling Correction Models(ACL2021)
  • 【7】Dynamic Connected Networks for Chinese Spelling Check(2021ACL)
  • 【8】Global Attention Decoder for Chinese Spelling Error Correction(ACL2021)
  • 【9】Read, Listen, and See: Leveraging Multimodal Information Helps Chinese Spell Checking(ACL2021)
  • 【10】SpellBERT: A Lightweight Pretrained Model for Chinese Spelling Check(EMNLP2021)
  • 【11】A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check(EMNLP2018)
  • 【12】Adversarial Semantic Decoupling for Recognizing Open-Vocabulary Slots(EMNLP2020)
  • 【13】Chunk-based Chinese Spelling Check with Global Optimization(EMNLP2020)
  • 【14】Confusionset-guided Pointer Networks for Chinese Spelling Check(ACL2019)
  • 【15】Context-Sensitive Malicious Spelling Error Correction(WWW2019)
  • 【16】FASPell:A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder Paradigm (2019ACL)
  • 【17】SpellGCN:Incorporating Phonological and Visual Similarities into Language Models for Chinese Spelling Check (2020ACL)
  • 【18】Spelling Error Correction with Soft-Masked BERT(ACL2020)

在OpenReview上提交至ARR2022的相关稿件有:

  • 【1】Exploring and Adapting Chinese GPT to Pinyin Input Method 【PDF】
  • 【2】The Past Mistake is the Future Wisdom: Error-driven Contrastive Probability Optimization for Chinese Spell Checking 【PDF】【Code】【Data】
  • 【3】Sparsity Regularization for Chinese Spelling Check【PDF】
  • 【4】Pre-Training with Syntactic Structure Prediction for Chinese Semantic Error Recognition【PDF】
  • 【5】ECSpellUD: Zero-shot Domain Adaptive Chinese Spelling Check with User Dictionary【PDF】
  • 【6】SpelLM: Augmenting Chinese Spell Check Using Input Salience【PDF】【Code】【Data】
  • 【7】Pinyin-bert: A new solution to Chinese pinyin to character conversion task【PDF】

简单总结一下目前CSC的方法:

  • 基于BERT:以为CSC时是基于token(字符)级别的预测任务,输入输出序列长度一致,因此非常类似预训练语言模型的Masked Language Modeling(MLM),因此现如今绝大多数的方法是基于MLM实现的。而在BERT问世前,CSC则以RNN+Decoder、CRF为主;

  • 多模态融合:上文提到CSC涉及到字音字形,因此有一些方法则是考虑如何将Word Embedding、Glyphic Embedding和Phonetic Embedding进行结合,因此涌现出一些多模态方法;

6

最新技术

  • FASPell(爱奇艺)

技术方案 FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder Paradigm

code: https://github.com/iqiyi/FASPell

  • SpellGCN (阿里)

技术方案 SpellGCN: Incorporating Phonological and Visual Similarities into Language Models for Chinese Spelling Check

code: https://github.com/ACL2020SpellGCN/SpellGCN

  • Soft-Mask BERT (字节)

技术方案:Spelling Error Correction with Soft-Masked BERT

code: https://github.com/hiyoung123/SoftMaskedBert

  • Spelling Correction as a Foreign Language (ebay)

技术方案 Spelling Correction as a Foreign Language

7

中文纠错的开源项目

pycorrector

https://github.com/shibing624/pycorrector

中文文本纠错工具。支持中文音似、形似、语法错误纠正,python3开发。pycorrector实现了Kenlm、ConvSeq2Seq、BERT、MacBERT、ELECTRA、ERNIE、Transformer等多种模型的文本纠错,并在SigHAN数据集评估各模型的效果。

correction

https://github.com/ccheng16/correction

大致思路:

  • 使用语言模型计算句子或序列的合理性
  • bigram, trigram, 4-gram 结合,并对每个字的分数求平均以平滑每个字的得分
  • 根据Median Absolute Deviation算出outlier分数,并结合jieba分词结果确定需要修改的范围
  • 根据形近字、音近字构成的混淆集合列出候选字,并对需要修改的范围逐字改正
  • 句子中的错误会使分词结果更加细碎,结合替换字之后的分词结果确定需要改正的字
  • 探测句末语气词,如有错误直接改正

Cn_Speck_Checker

https://github.com/PengheLiu/Cn_Speck_Checker

  • 使用了贝叶斯定理
  • 初始化所有潜在中文词的先验概率,将文本集(50篇医学文章)分词后,统计各个中文词的出现频率即为其先验概率
  • 当给定一待纠错单词时,需要找出可能的正确单词列表,这里根据字符距离来找出可能的正确单词列表
  • 对构造出来的单词做了一次验证后再将其加入候选集合中,即判断了下该词是否为有效单词,根据其是否在单词模型中
  • 程序原理:

chinese_correct_wsd

https://github.com/taozhijiang/chinese_correct_wsd

  • 用于用户输入语句的同音自动纠错
  • 使用到了同义词词林
  • 方法:

Autochecker4Chinese

https://github.com/beyondacm/Autochecker4Chinese

  • 构造一个词典来检测中文短语的拼写错误,key是中文短语,值是在语料库中的频率
  • 对于该字典中未出现的任何短语,检测器会将其检测为拼写错误的短语
  • 使用编辑距离为错误拼写的短语制作正确的候选列表
  • 对于给定的句子,使用jieba做分割
  • 在分段完成后获取分段列表,检查其中是否存在保留短语,如果不存在,那么它是拼写错误的短语
  • 方法:

8

参考资料

  • 中文纠错(Chinese Spelling Correct)最新技术方案总结
  • 中文文本纠错算法--错别字纠正的二三事
  • 中文文本纠错算法走到多远了?
  • 中文输入纠错任务整理
  • nlp 中文文本纠错_百度中文纠错技术
  • 中文拼写检测(Chinese Spelling Checking)相关方法、评测任务、榜单
  • 中文(语音结果)的文本纠错综述 Chinese Spelling Check
  • https://github.com/shibing624/pycorrector


审核编辑 :李倩


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

    关注

    37

    文章

    1635

    浏览量

    111835
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61309
  • 文本
    +关注

    关注

    0

    文章

    118

    浏览量

    16922

原文标题:中文文本纠错任务简介

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

收藏 人收藏

    评论

    相关推荐

    请问stm32f429如何显示u盘中的中文文件名?

    大家有没有用f429实现显示u盘中中文文件名的功能?如何实现能说一下吗?
    发表于 04-17 08:23

    请问TouchGFX能不能实现中文文本编辑及显示?

    目前来看,TouchGFX显示的中文好像都是固定的。但是如果我串口收到一个中文unicode的编码,要将其显示出来,或者用户通过键盘,编辑任意中文文本的话,要怎么实现呢?
    发表于 04-09 08:23

    科普语音芯片和语音合成芯片的不同之处

     可发声芯片分为语音芯片和语音合成芯片,二者在技术和用途上不同。语音合成芯片能将任意文字实时转换并朗读出来,支持所有中文文本合成,无需烧录语音,适用于处理大量不固定文本信息。语音芯片可储存和控制播放语音,需先录音再烧录,长度受限,多用于大型公共场合。
    的头像 发表于 10-31 15:42 262次阅读

    在英特尔开发套件上用OpenVIN实现中文图文检索

    本文演示了使用 OpenVINO 与 Chinese-Clip 进行中文图文相似性匹配任务:CLIP 模型以自监督的方式在数亿或数十亿(图像,文本)对上进行训练,它从输入图像和文本中提
    的头像 发表于 10-27 11:06 338次阅读
    在英特尔开发套件上用OpenVIN实现<b class='flag-5'>中文</b>图文检索

    中文贾佳亚团队联手MIT发布超长文本扩展技术,打破LLM遗忘魔咒

    它代表着业界对长文本大语言模型的重新思考和关注,有效扩展了大语言模型的上下文窗口,允许模型考虑和处理较长的文本序列,是大语言模型的革新性发明。
    的头像 发表于 10-18 15:54 314次阅读
    港<b class='flag-5'>中文</b>贾佳亚团队联手MIT发布超长<b class='flag-5'>文本</b>扩展技术,打破LLM遗忘魔咒

    IAR中UTF-8中文字符串不显示怎么解决?

    字符串后,中文根本就没读取显示。想全部使用UTF-8的编码做界面文本显示。 各位大佬有没有遇到这种情况,有什么好的解决方法呢?
    发表于 10-07 07:11

    FreeRTOS中任务状态与任务优先级

    任务状态 FreeRTOS 中的任务永远处于下面几个状态中的某一个: ● 运行态 当一个任务正在运行时,那么就说这个任务处于运行态,处于运行态的任务
    的头像 发表于 09-28 11:10 595次阅读
    FreeRTOS中<b class='flag-5'>任务</b>状态与<b class='flag-5'>任务</b>优先级

    【KV260视觉入门套件试用体验】七、VITis AI字符和文本检测(OCR&amp;Textmountain)

    技术,包括传统文档图像识别与场景文字识别技术。 在计算机视觉领域,文本检测是其重要的一个子任务文本检测分为两个主要步骤:文本定位和文本
    发表于 09-26 16:31

    can总线规范2.0

    can 总线规范,包含两份文档:中文版为周立功的翻译版本英文版为BOSCH的原版英文文
    发表于 09-20 08:02

    一个任务通用的的指令微调Embedder!

    现有的文本嵌入表示方法在应用到新的任务或领域时,通常性能都会受损,甚至应用到相同任务的不同领域也会遇到同样的问题。常见的解决办法是通过针对下游任务和领域的数据集进一步微调
    的头像 发表于 09-05 17:13 581次阅读
    一个<b class='flag-5'>任务</b>通用的的指令微调Embedder!

    使用SIM800H发送文本信息

    使用带有 AT 命令的 GPRS 模块可能有点棘手,特别是在初始化和配置方面。nanoframework 驱动程序“隐藏”了开发人员的所有内容,使他能够专注于手头的任务。在此示例中,它发送文本消息 (SMS)。
    发表于 06-21 15:32 0次下载
    使用SIM800H发送<b class='flag-5'>文本</b>信息

    基于文本到图像模型的可控文本到视频生成

    文本到视频模型需要大量高质量的视频和计算资源,这限制了相关社区进一步的研究和应用。为了减少过度的训练要求,我们研究了一种新的高效形式:基于文本到图像模型的可控文本到视频生成。这个任务
    的头像 发表于 06-14 10:39 586次阅读
    基于<b class='flag-5'>文本</b>到图像模型的可控<b class='flag-5'>文本</b>到视频生成

    如何利用LLM做多模态任务

    大型语言模型LLM(Large Language Model)具有很强的通用知识理解以及较强的逻辑推理能力,但其只能处理文本数据。虽然已经发布的GPT4具备图片理解能力,但目前还未开放多模态输入接口
    的头像 发表于 05-22 15:57 517次阅读
    如何利用LLM做多模态<b class='flag-5'>任务</b>?

    基于HMM的文本域数学表达式提取研究

    本文以隐马尔科夫模型(HMM)为基础,针对英文文本,提出了一种基于HMM的在非结构化文档的文本域中提取数学表达式的方法。首先,针对传统HMM的结构缺陷,引入模型观察值对模型后一时刻状态的直接依赖性
    发表于 05-15 09:17 0次下载

    如何利用LLM做多模态任务

    大型语言模型LLM(Large Language Model)具有很强的通用知识理解以及较强的逻辑推理能力,但其只能处理文本数据。虽然已经发布的GPT4具备图片理解能力,但目前还未开放多模态输入接口并且不会透露任何模型上技术细节。因此,现阶段,如何利用LLM做一些多模态任务
    的头像 发表于 05-11 17:09 678次阅读
    如何利用LLM做多模态<b class='flag-5'>任务</b>?