Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >中文文本纠错任务简介

中文文本纠错任务简介

作者头像
致Great
发布于 2022-10-28 07:43:49
发布于 2022-10-28 07:43:49
2.1K00
代码可运行
举报
文章被收录于专栏:自然语言处理自然语言处理
运行总次数:0
代码可运行

任务简介

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

  • 写作辅助:在内容写作平台上内嵌纠错模块,可在作者写作时自动检查并提示错别字情况。从而降低因疏忽导致的错误表述,有效提升作者的文章写作质量,同时给用户更好的阅读体验。
  • 公文纠错:针对公文写作场景,提供字词、标点、专名、数值内容纠错,包含领导人姓名、领导人职位、数值一致性等内容的检查与纠错,辅助进行公文审阅校对。
  • 搜索纠错:用户在搜索时经常输入错误,通过分析搜索query的形式和特征,可自动纠正搜索query并提示用户,进而给出更符合用户需求的搜索结果,有效屏蔽错别字对用户真实需求的影响。
  • 语音识别对话纠错 将文本纠错嵌入对话系统中,可自动修正语音识别转文本过程中的错别字,向对话理解系统传递纠错后的正确query,能明显提高语音识别准确率,使产品整体体验更佳

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

中文拼写常见错误类型

错误类型

示例

同音字相似错误

强烈推荐-墙裂推荐、配副眼睛-配副眼镜

近音字相似错误

牛郎织女-流浪织女

字形相似错误

顽强拼搏-顽强拼博

词序混乱

两户人家-两家人户

缺字少字

浩瀚星海-浩瀚星

中文全拼拼写

天下-tianxia

中文首字母缩写

北京-bj

中文简拼

明星大侦探-明侦

语法错误

无法言说-言说无法

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

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

主流技术

中文本纠错的 paper 很多,整体来看,可以统一在一个框架下,即三大步:

  • 错误识别

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

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

  • 候选召回

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

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

  • 纠错排序

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

中文文本纠错评测

数据集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SIGHAN Bake-off 2013: [http://ir.itc.ntnu.edu.tw/lre/sighan7csc.html](http://ir.itc.ntnu.edu.tw/lre/sighan7csc.html)

SIGHAN Bake-off 2014 : [http://ir.itc.ntnu.edu.tw/lre/clp14csc.html](http://ir.itc.ntnu.edu.tw/lre/clp14csc.html)

SIGHAN Bake-off 2015 : [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 更难接受,本来对了改成错的这个更离谱,可构造下述评价指标:

,其中

相关方法

相关论文

整理来自: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进行结合,因此涌现出一些多模态方法;

最新技术

  • 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

中文纠错的开源项目

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做分割
    • 在分段完成后获取分段列表,检查其中是否存在保留短语,如果不存在,那么它是拼写错误的短语

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Soft-Masked BERT:文本纠错与BERT的最新结合
地址 | https://zhuanlan.zhihu.com/p/144995580
朴素人工智能
2020/06/05
2.3K0
Soft-Masked BERT:文本纠错与BERT的最新结合
一键式文本纠错工具,整合了BERT、ERNIE等多种模型,让您立即享受纠错的便利和效果
pycorrector: 中文文本纠错工具。支持中文音似、形似、语法错误纠正,python3开发。实现了Kenlm、ConvSeq2Seq、BERT、MacBERT、ELECTRA、ERNIE、Transformer等多种模型的文本纠错,并在SigHAN数据集评估各模型的效果。
汀丶人工智能
2023/08/13
4.8K0
一键式文本纠错工具,整合了BERT、ERNIE等多种模型,让您立即享受纠错的便利和效果
NLP 论文领读|中文拼写纠错:怎样改善模型对 multi-typo 的纠正效果?
欢迎来到「澜舟论文领读」专栏!快乐研究,当然从研读 paper 开始——澜舟科技团队注重欢乐的前沿技术探索,希望通过全新专栏和大家共同探索人工智能奥秘、交流 NLP「黑科技」,踩在「巨人」肩上触碰星辰!
澜舟科技
2022/07/08
1.2K0
NLP 论文领读|中文拼写纠错:怎样改善模型对 multi-typo 的纠正效果?
CCL2022 中文语法纠错评测
每天给你送来NLP技术干货! ---- 中文语法纠错任务(Chinese Grammatical Error Correction,CGEC)旨在自动检测并修改中文文本中的标点、拼写、语法、语义等错误,从而获得符合原意的正确句子。近年来,中文语法纠错任务越来越受到关注,也出现了一些有潜在商业价值的应用。为了推动这项研究的发展,研究者通过专家标注以及众包等形式构建一定规模的训练和测试数据,在语法检查以及语法纠错等不同任务上开展技术评测。同时,由于中文语法纠错任务相对复杂、各评测任务以及各数据集之间存在差异,
zenRRan
2022/05/18
2.9K0
CCL2022 中文语法纠错评测
中文文本纠错模型
中文文本纠错任务是一项NLP基础任务,其输入是一个可能含有语法错误的中文句子,输出是一个正确的中文句子。语法错误类型很多,有多字、少字、错别字等,目前最常见的错误类型是错别字。
小爷毛毛_卓寿杰
2022/05/10
1.5K0
中文文本纠错模型
中文文本纠错工具推荐:pycorrector
中文文本纠错工具。音似、形似错字(或变体字)纠正,可用于中文拼音、笔画输入法的错误纠正。python3开发。
致Great
2023/08/25
1.8K0
全国中文纠错大赛达观冠军方案分享:多模型结合的等长拼写纠错
中文拼写检查任务是中文自然语言处理中非常具有代表性和挑战性的任务,其本质是找出文本段落中的错别字。这项任务在各种领域,如公文,新闻、财报中都有很好的落地应用价值。而其任务的困难程度也赋予了它非常大的研究空间。达观数据在CCL2022汉语学习者文本纠错评测比赛的赛道一中文拼写检查(Chinese Spelling Check)任务中取得了全国冠军,赛道二中文语法纠错(Chinese Grammatical Error Diagnosis)任务中获得了亚军。本文基于赛道一中文拼写检查任务的内容,对比赛过程中采用的一些方法进行分享,并介绍比赛采用的技术方案在达观智能校对系统中的应用和落地。赛道二中文语法纠错的获奖方案已经分享在达观数据官方公众号中。
用户10103085
2022/12/22
2.1K0
全国中文纠错大赛达观冠军方案分享:多模型结合的等长拼写纠错
基于语言模型的拼写纠错
本文则针对中文拼写纠错进行一个简要的概述,主要分享基于n-gram语言模型和困惑集来做中文拼写纠错的方法。
腾讯知文实验室
2018/07/04
7.7K0
ASR文本纠错模型
文本纠错任务是一项NLP基础任务,其输入是一个可能含有错误字词的句子,输出是一个正确的中文句子。ASR(语音识别)文本的错误类型很多,有多字、少字、错别字、同音近音字等等。
小爷毛毛_卓寿杰
2022/11/30
2.7K0
ASR文本纠错模型
文本纠错与BERT的最新结合,Soft-Masked BERT
1.http://www.doc88.com/p-8038708924257.html
机器学习AI算法工程
2020/07/14
1.7K0
文字语义纠错技术探索与实践
文本语义纠错的使用场景非常广泛,基本上只要涉及到写作就有文本纠错的需求。书籍面市前就有独立的校对的环节来保障出版之后不出现明显的问题。在新闻中我们也时不时看到因为文字审核没到位造成大乌龙的情况,包括上市公司在公开文书上把“临时大会”写成为“临死大会”,政府文件把“报效国家”写成了“报销国家”。有关文本纠错的辅助工具能给文字工作人员带来较大的便利,对审核方面的风险也大幅降低。
用户10103085
2022/12/21
1.4K0
文字语义纠错技术探索与实践
中文文本纠错算法走到多远了?
错误检测部分先通过结巴中文分词器切词,由于句子中含有错别字,所以切词结果往往会有切分错误的情况,这样从字粒度和词粒度两方面检测错误, 整合这两种粒度的疑似错误结果,形成疑似错误位置候选集;
悟乙己
2019/05/26
7K0
中文语法纠错全国大赛获奖分享:基于多轮机制的中文语法纠错
中文语法纠错任务旨在对文本中存在的拼写、语法等错误进行自动检测和纠正,是自然语言处理领域一项重要的任务。同时该任务在公文、新闻和教育等领域都有着落地的应用价值。但由于中文具有的文法和句法规则比较复杂,基于深度学习的中文文本纠错在实际落地的场景中仍然具有推理速度慢、纠错准确率低和假阳性高等缺点,因此中文文本纠错任务还具有非常大的研究空间。 达观数据在CCL2022汉语学习者文本纠错评测比赛的赛道一中文拼写检查(Chinese Spelling Check)任务中取得了冠军,赛道二中文语法纠错(Chinese Grammatical Error Diagnosis)任务中获得了亚军。本文基于赛道二中文语法纠错任务的内容,对比赛过程中采用的一些方法进行分享,并介绍比赛采用的技术方案在达观智能校对系统中的应用和落地。赛道一中文拼写检查的冠军方案会在后续的文章分享。
用户10103085
2022/12/22
9530
中文语法纠错全国大赛获奖分享:基于多轮机制的中文语法纠错
NLP任务之中文拼写 语法纠错 介绍与综述
在很多中文NLP相关的落地场景都会涉及到文本纠错的相关技术,例如跟各种形式机器人的语音或者文字对话,或者用手机扫描相关的PDF或者图片,或者跟人聊天时用输入法打字等等,无论是通过ASR识别的语音信息,通过OCR识别得到的图片信息,还是用户真实通过输入法的文字,都有可能出现错误。这些错误会影响文本的可读性,不利于人和机器的理解,如果这些错误不加处理,会传播到后续的环节,影响后续任务的效果。常见的中文错误类型包括以下几种:
大鹅
2022/07/20
4.2K1
错字修改 | 布署1个中文文文本拼蟹纠错模型
内容一览:中文文本错误的种类之一为拼写错误,本篇文章为利用 BART 预训练方法实现中文文本纠错功能的模型部署教程。
HyperAI超神经
2022/11/29
6680
错字修改 | 布署1个中文文文本拼蟹纠错模型
​合合信息对于文本纠错:提升OCR任务准确率的方法理解
近年来深度学习在OCR领域取得了巨大的成功,但OCR应用中识别错误时有出现。错误的识别结果不仅难以阅读和理解,同时也降低文本的信息价值。在某些领域,如医疗行业,识别错误可能带来巨大的损失。因此如何降低OCR任务的错字率受到学术界和工业界的广泛关注。合合信息通过本文来讲解文本纠错技术帮助更多人解决业务问题。通常文本纠错的流程可以分为错误文本识别、候选词生成和候选词排序三个步骤。文本纠错方法可包括基于CTC解码和使用模型两种方式,下面分别对这两种纠错方式进行介绍。
合合技术团队
2022/08/26
8670
​合合信息对于文本纠错:提升OCR任务准确率的方法理解
基于语义关联的中文查询纠错框架
本文作者:内部搜索平台部推荐中心组长,2009年加入腾讯,从事搜索相关工作,包括社区问答,网页搜索,音乐、视频、应用宝等项目,方向涉及query理解,文本相关性、智能问答等。目前从事天天快报、新闻客户端等资讯个性化,包括用户兴趣、推荐策略、工程架构等。 搜索引擎中, 一个好的纠错系统能够将用户输入查询词进行纠错提示, 或者将正确结果直接展示给用户,提高了搜索引擎的智能化。和传统文本纠错相比, 搜索引擎的纠错具有几个难点. 一是搜索引擎的query很短, 由几个独立的key words组成(Chen et
腾讯技术工程官方号
2018/01/26
4.7K0
2018 NLPCC Chinese Grammatical Error Correction 论文小结
这一段时间,笔者一直在研究语音识别后的文本纠错,而就在八月26-30日,CCF的自然语言处理和中文计算会议召开了,笔者也从师兄那里拿到了新鲜出炉的会议论文集,其中重点看的自然是其shared task2:grammatical error correction的overview以及优胜团队的论文。本文总结了优胜团队的论文并给出了一些可能的改进方向。
zenRRan
2018/10/09
2.3K0
2018 NLPCC Chinese Grammatical Error Correction 论文小结
电商搜索全链路(PART II)Query理解
大家好,我是kaiyuan。电商搜索全链路系列文章们躺在我的草稿箱里已经N久了,上一篇整理还是在上次,错过的小伙伴点击传送门:电商搜索全链路(PART I)Overview
NewBeeNLP
2022/11/11
2.2K0
电商搜索全链路(PART II)Query理解
文本智能校对大赛冠军方案!已落地应用,来自苏州大学、达摩院团队
近期参加了2022 蜜度中文文本智能校对大赛,经过2个月的比赛,在600余名参赛者中取得了第一名的成绩,相关技术也已在钉钉文档等产品落地应用。借此机会,笔者想和大家分享下对中文文本纠错任务的一些看法。
Datawhale
2022/10/31
1.6K0
文本智能校对大赛冠军方案!已落地应用,来自苏州大学、达摩院团队
推荐阅读
相关推荐
Soft-Masked BERT:文本纠错与BERT的最新结合
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验