这是一篇论文翻译
论文标题:Spelling Error Correction with Soft-Masked BERT
论文地址:
https://arxiv.org/pdf/2005.07421.pdfarxiv.org概要
拼写纠错是一个有挑战的任务,因为一个完美的方案是需要有人类的语言理解能力。在这篇论文中,我们不失普偏性的讨论中文拼写纠错。使用最先进的bert模型(一个语言表示模型),从语料序列中一个一个的取出字符来进行更正处理。Bert模型的准确率还是相当不错的,不过,由于bert使用预处理模型是Masked Language Model(只有15%mask),不能发现每个位置上是否有错。所以,我们使用了一个新颖的神经网络结构来作为错误检测模块,使用bert来作为错误纠正模块,然后将这两个模块连接在一起,所以我们称之为soft-masking技术。我们的“Soft-Masked BERT”具有普偏性,可以使用在其他语言的拼写纠错里。测试结果表明,我们的方式比单独用bert效果要好。
1 介绍
拼写纠错是一个重要的任务,目的是纠正文本中拼写的错误,既要在字符级别也要在单词级别。在很多领域拼写纠错是关键的技术,比如:查询,OCR,论文评分。在这片论文里,我们考虑字符级别的拼写纠错。
拼写纠错是一个非常有挑战的任务,因为要完全解决这个问题,模型需要有人类的语言理解能力。在Table1中,至少有两个挑战,第一是需要了解金字塔这个知识,金子塔是金子做的塔,金字塔是埃及的古建筑,在这里人是可以通过上下文来识别问题。第二有时需要一定的推理,第二句里错误的把“生”写成了“胜”,但是“求胜欲”在词层面上比“求生欲”更常见。
拼写纠正有许多方法,可以分为两大类,一类是传统机器学习,另一类是深度学习。例如使用一个传统机器学习的统一框架来组成一个错误检测、备选生成、备选最终选择的通道。或者使用Seq2Seq深度学习模型将错误序列输入,然后输出一个拼写已经纠错的序列。
最近,BERT,一个语言表示模型,被成功的应用到许多语言理解的任务上,包括拼写纠错。使用BERT最先进的方式是,拿一个已经使用大量未标签的数据集训练BERT,作为预训练模型,然后使用有标签的数据集微调BERT模型。这个有标签的数据集可以通过收集易混淆的拼写错误来生成。最后这个模型被用在预测给定句子的每个位置的备选字符列表最有可能性的一个。这个模型很强大,因为BERT有能力获取语言领域知识。我们的实验结果显示模型准确率还有可能被进一步提升。观察到一个现象,BERT模型检测错误的能力不是足够高,当一个错误检测到,模型有一个更好的机会去纠正。我们估计这是因为BERT预训练的方式只使用了15%字符遮蔽,因此它只学习到遮蔽字符的分布和尽量选择不做任何纠正。这个现象是普遍的,如果用BERT来做拼写纠错就有一定的挑战了。
考虑到上面的问题,我们提出了一个新颖的神经网络结构,Soft-Masked BERT。它包含两个网络,检测网络和基于BERT的修正网络。修正网络和单独使用BERT相似。检测网络是一个BI-GRU,它预测在每一个位置上字符错误的概率