SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型

文本纠错概述

文本纠错任务,指的是识别输入文本中出现的拼写错别字及其位置信息,并给出正确的修改建议的任务。文本纠错是自然语言处理领域一项非常重要的任务,在搜索引擎、语音识别、教育等领域有广泛的应用,能够显著地提高各种场景下语义的准确性。比如在搜索引擎场景下,用户经常在搜索时输入错误,利用文本纠错纠正搜索query并提示给用户,可以帮助用户得到更符合要求的搜索结果。对于自动语音识别(Automatic Speech Recognition, ASR)的场景,通过将文本纠错嵌入到对话系统中,可以自动修正语音转文本过程中的错别字。利用ASR模型的结果,针对模型特点训练出的文本纠错模型,可以显著提高语音识别的准确率,提升智能音箱的产品体验。文本纠错可以检测出学生作文中的错别字、标点误用,可以应用于对作文的预批改,减轻语文老师批改作文的工作量。文本纠错还可以辅助出版社进行文本校对工作,辅助光学文字识别(Optical Character Recognition, OCR)纠错,音似、形似错别字的纠正,可用于中文拼音、笔画输入法的错误纠正。

SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第1张图片

模型结构

中文错别字的通常是由于发音相同或者相似(比如警踢-警惕)或者字形相近(但护-袒护),也有字音和字形都相似的情况(逆竟-逆境)。由于中文词与词之间没有明确的边界,相比于英文文本纠错,中文纠错更加依赖于上下文的信息。
传统的中文文本纠错方法包括基于错别字词典、语言模型(比如n-gram)等,这种算法多是分成错误检测和错误纠正两阶段,比如Pycorrector。早期的机器学习算法包括基于RNN序列、机器翻译和CNN的算法,比如百度的文本纠错模型。
谷歌推出BERT之后,基于BERT和Transformer的纠错算法去的了很好的效果,比如Soft-Masked BERT,FASpell等。

SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第2张图片

当前的模型均是在Bert-base的基础上,通过引入更多的语言学特征提升性能,其中一方面是增加检错能力,另一方面是引入字音、形约束,这两点的目的均在于Bert-base纠错时仅从预训练的语料规律出发,容易在SIGHAN测试集上产生过纠行为,会造成比较高的过纠率(False Alarm Rates,FAR)。在实际应用场景中,错误的字词通常只占整个文本的很少一部分,因此过纠的问题会比较显著。
基于以上调研和现有方法的不足,我们提出了一种两阶段的文本纠错算法:DCSpell。限制Bert-base的纠错能力,并使纠错结果收敛到相近的字音、字形下。DCSpell由两部分组成:检测器(Detector)和纠正器(Corrtor)。
SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第3张图片

检测器(Detector)

Detector使用序列标注算法,进行文本错误位置的检测,将输入的文本中错误的字标出来,用[MASK]替代。Detector参考了ELECTRA的预训练方法:replaced token detector。ELECTRA由生成器和判别器组成。ELECTRA的生成器是一个小的MLM模型,随机选取15%的token替换为[MASK],训练生成器生成[MASK]位置的token。ELECTRA的判别器用来判断每个位置的字符是否被生成器替换过。我们先利用原始文本对模型进行replaced token detector预训练。然后利用错误文本针对错误检测进行训练。这种训练方法提升了模型的泛化能力,具有较好的鲁棒性。
SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第4张图片
在这里插入图片描述
在这里插入图片描述

纠正器(Corrector)

Corrector用来进行进行文本错误纠正。Corrector利用原始的错误文本和被遮罩后的文本进行MLM任务训练,令Corrector预测词表里面的词在被Detector标记为[MASK]位置的概率。因为BERT模型可以输入双句,我们将被[MASK]的错误文本和原本的错误文本都输入模型中。通过Transformer中的自注意力层,错误文本的字形和字音信息可以辅助对[MASK]位置的预测。得到词表里的词的条件概率后,结合混淆集合进行错误纠正。
在这里插入图片描述
在这里插入图片描述

SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第5张图片

实验结果

除了常用的SIGHAN数据集外,我们还利用语音识别生成了错误文本。使用Speech Transformer模型进行语音识别,得到包含错别字的错误文本。我们针对语音识别的场景生成了混淆集。
在对SIGHAN数据集和语音识别数据集上,我们都取得了很好的效果。
SIGHAN数据集的实验结果:
SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第6张图片

语音识别数据集的实验结果:
SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第7张图片

同时,基于两阶段算法的特点,我们取得了很低的过纠率:

SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第8张图片

由于双句输入使得错误文本的字形和字音信息可以辅助对[MASK]位置的预测,以及基于混淆集合的后处理操作,相比于其他一阶段模型,我们的算法更少出现语义通顺但是与原意不符合的过纠情况:
SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型_第9张图片
并且,对于输入的错误文本中出现的未登录词,如果模型的判别器判断出该词是正确的,则不需要对该未登陆词进行纠正了,从而能减少对未登陆词的纠错,降低了由此引起的错误率。进一步地,这种两阶段纠错的方式也可以很容易地和一阶段纠错的方法结合,降低一阶段方法的过纠率。对垂直专业的文本,基于ELECTRA的预训练方案可以用少数文本迅速训练得到鲁棒的纠错模型。

未来的工作

  1. 这是一个两阶段的模型,未来还是希望能够检测和纠正一起做,能够借助视觉的目标检测任务的端到端模型的设计方式来改进现有的模型。
  2. 探索预训练在文本纠错方向的潜力,现有的预训练出来的模型并不天生适合文本纠错,能否在文本纠错领域设计一个更好的预训练方式,来进一步提升模型的识别能力。

论文作者

作者列表:
李晶,创新工场算法工程师
吴高升,创新工场算法工程师
尹大朏,创新工场技术总监
王号召,华中科技大学博士在读
王咏刚,创新工场人工智能工程院院长

参考文献

DCSpell: A Detector-Corrector Framework for Chinese Spelling Error Correction
Jing Li, Gaosheng Wu, Dafei Yin, Haozhao Wang and Yonggang Wang

SIGIR 2021 DCSpell一个代价比较小的预训练文本纠错的模型

你可能感兴趣的:(人工智能,自然语言处理)