南京大学学报(自然科学), 2023, 59(2): 302-312 doi: 10.13232/j.cnki.jnju.2023.02.013

基于ChineseBert的中文拼写纠错方法

崔凡, 强继朋,, 朱毅, 李云

扬州大学信息工程学院,扬州,225127

Chinese spelling correction method based on ChineseBert

Cui Fan, Qiang Jipeng,, Zhu Yi, Li Yun

School of Information Engineering,Yangzhou University,Yangzhou,225127,China

通讯作者: E⁃mail:jpqiang@yzu.edu.cn

收稿日期: 2022-11-14  

基金资助: 国家自然科学基金.  62076217.  61906060
扬州大学“青蓝工程”

Received: 2022-11-14  

摘要

中文拼写错误主要集中在拼音相似和字形相似两个方面,而通用的预训练语言模型只考虑文本的语义信息,忽略了中文的拼音和字形特征.最新的中文拼写纠错(Chinese Spelling Correction,CSC)方法在预训练模型的基础上利用额外的网络来融入拼音和字形特征,但和直接微调预训练模型相比,改进的模型没有显著提高模型的性能,因为由小规模拼写任务语料训练的拼音和字形特征,和预训练模型获取的丰富语义特征相比,存在严重的信息不对等现象.将多模态预训练语言模型ChineseBert应用到CSC问题上,由于ChineseBert已将拼音和字形信息放到预训练模型构建阶段,基于ChineseBert的CSC方法不仅无须构建额外的网络,还解决了信息不对等的问题.由于基于预训练模型的CSC方法普遍不能很好地处理连续错误的问题,进一步提出SepSpell方法.首先利用探测网络检测可能错误的字符,再对可能错误的字符保留拼音特征和字形特征,掩码对应的语义信息进行预测,这样能降低预测过程中错误字符带来的干扰,更好地处理连续错误问题.在三个官方评测数据集上进行评估,提出的两个方法都取得了非常不错的结果.

关键词: 中文拼写纠错 ; Bert ; ChineseBert ; 多模态语言模型

Abstract

Chinese spelling errors mainly focuse on both phonetic and glyph similar. General pretrained language models only consider the semantic information of the text,ignoring the Chinese phonetic and glyph features. The latest Chinese Spelling Correction (CSC) methods incorporate pinyin and glyph features via additional networks on the basis of the pretrained language models. Compared with fine⁃tuning pretrained model directly,the improved model does not significantly improve the performance of CSC task. Because of the phonetic and glyphic features trained by the small⁃scale spelling task corpus,there is a serious information asymmetry compared with the rich semantic features obtained by the pre⁃training model. To betterly solve the information asymmetry,this paper tries to apply the multimodal pre⁃training language model ChineseBert to the CSC problem. Since ChineseBert combines phonetic and glyph information into the pre⁃training model building stage,CSC based on ChineseBert not only needn't to build additional networks,but also solve the problem of information asymmetry. The CSC method based on the pretrained model generally cannot deal with continuous errors very well. Therefore,we propose a novel method SepSpell,which firstly uses the probing network to detect potentially incorrect characters,and preserves the phonetic and glyphic features of the characters that may be incorrect to predict the corresponding semantic information of the mask. SepSpell reduces the interference caused by incorrect characters during the prediction process,so as to better handle the problem of continuous errors. Evaluating on three official evaluation datasets prove both methods with very good results.

Keywords: Chinese Spelling Correction ; Bert ; ChineseBert ; multimodal pretrained modeling

PDF (827KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

崔凡, 强继朋, 朱毅, 李云. 基于ChineseBert的中文拼写纠错方法. 南京大学学报(自然科学)[J], 2023, 59(2): 302-312 doi:10.13232/j.cnki.jnju.2023.02.013

Cui Fan, Qiang Jipeng, Zhu Yi, Li Yun. Chinese spelling correction method based on ChineseBert. Journal of nanjing University[J], 2023, 59(2): 302-312 doi:10.13232/j.cnki.jnju.2023.02.013

中文拼写纠错(Chinese Spelling Correction,CSC)是一项中文自然语言处理任务,旨在检测并校正文本错误,可用于浏览器搜索优化1、光学字符识别2和论文评分3等任务.早期的CSC研究遵循错误检测、候选生成和候选选择的流程4-6,但由于缺乏标注语料,这些方法几乎都采用了无监督的n⁃gram统计语言模型.尽管这些模型具有简单、容易解释等优势,但由于其很难获取文本的深层语义信息,效果不佳.

最近,随着大型预训练语言模型的成功(如Bert7,Roberta8),基于预训练语言模型的CSC方法也被提出.Hong et al2提出FASpell模型,采用Bert作为CSC的去噪自动编码器来生成候选字符,并通过计算字符之间的相似度来筛选字符.虽然获得了不错的结果,但由于Bert等预训练语言模型只考虑字符的语义信息,导致生成的候选字符更多地只考虑语义相似的字符.Liu et al9指出,大约83%的错误与语音相似性有关,48%与视觉相似性有关.如图1a所示,一些工作在预训练语言模型中,通过额外网络融入语音和视觉信息辅助生成候选字符.例如,Cheng et al10提出SpellGCN模型,利用Bert初始化每个字符的节点特征,再使用两个图卷积网络在混淆集上分别学习字符之间的形状和拼音的相似关系.Xu et al11提出REALISE模型,通过额外的GRU (Gated Recurrent Unit)网络和卷积网络分别获取字符的字音和字形特征.Huang et al12提出PHMOSpell模型,通过VGG19和神经TTS网络分别获取字符的字形和字音特征等.但基于该框架训练的CSC模型只能利用CSC语训练得到的拼音和字形特征,与预训练模型获取的语义特征之间存在特征不对等的问题.但如果预训练语言模型在构建时融入拼音和字形等特征(如图1b所示),就不需要构建额外的网络,可直接进行中文拼写纠错,不仅简化了模型结构,也解决了因训练数据不同带来的特征信息不对等问题.

图1

图1   CSC模型结构对比:(a)现有方法通过添加额外的语音和视觉提取网络来获取字符多模态信息;(b)仅通过多模态预训练模型进行中文拼写纠错

Fig.1   Comparison of two different CSC frameworks:(a) existing methods which acquire character multimodal information by adding additional speech and visual extraction networks,(b) CSC performed only through multi⁃model pre⁃trained model


近期,Sun et al13提出ChineseBert预训练模型,联合了中文的字形和拼音两个重要特征.和只关注语义特征的预训练模型相比,ChineseBert提升了一些中文下游任务的性能,但还没有工作利用ChineseBert进行CSC任务.本文首次将ChineseBert预训练模型应用到CSC任务,在不添加任何额外网络的情况下,仅利用ChineseBert在CSC数据上进行微调.在三个人工标注的数据集SIGHAH2013,SIGHAH2014,SIGHAH2015上进行实验,获得了非常好的结果.

ChineseBert直接对输入的句子进行预测,当句子中存在连续拼写错误时,其真实含义可能会因为错误字符而发生很大的变化,模型几乎不能捕捉句子准确表达的意思,而两个及更多字组成的词出错是很常见的.例如,用户想输入句子“他上课经常迟到”,而根据拼音“chidao”选择词的时候,有可能选择“赤道”,造成拼写错误.连续的错误字符通常会混淆上下文语义环境,预测“赤”的可能候选词时会受“道”的干扰,反之亦然,导致模型不能正确预测14.

为了更好地处理连续拼写错误的问题,本文基于ChineseBert进一步提出新的CSC方法SepSpell,包含一个探测模型和校正模型,其中探测模型采用与探测任务更吻合的ELECTRA15作为模型编码器,校正模型仍然采用ChineseBert模型.校正过程中,利用探测网络找到可能错误的字符的位置,利用mask字符屏蔽错误字符的语义特征,保留对预测输出有帮助的字形和字音特征.和直接利用ChineseBert的方法相比,SepSpell能较好地处理连续的拼写错误.在三个人工标注的数据集SIGHAH2013,SIGHAH2014,SIGHAH 2015上,SepSpell的校正水平比ChineseBert的F1分别提高3.0%,1.9%和2.1%.考虑到官方基准数据集中缺乏连续错误的案例,根据拼音输入法会出现连续错误的特点,构建用于训练和评估连续错误的数据集.在相同数据集训练下,SepSpell的校正水平比直接微调预训练模型的Roberta8F1提高约10%,验证了SepSpell针对连续错误问题的有效性.

1 相关工作

近几年CSC得到了关注16-18.和中文语法错误纠正(Grammatical Error Correction,GEC)19-20不同,GEC包括删除多余的字符和插入缺失的字符,而CSC只专注于检测和纠正字符.尽管CSC只进行字符的替换,但设计高效的CSC方法仍然是一项艰巨的任务.

早期的CSC研究主要集中在基于规则的无监督方法上,设计各种规则来处理不同类型的拼写错误4-6.这些方法几乎都使用了n⁃gram语言模型,即如果一个字符在n⁃gram语言模型中出现的概率低于预定义的阈值,就被认为是拼写错误.在校正方面,混淆集被广泛使用作为候选词的生成.随着神经网络的发展,一些研究将CSC任务视为序列标记任务21,使用双向LSTM (Long Short⁃Term Memory)作为模型框架.序列对序列框架中的复制机制也被引入CSC,但其只是从混淆集中复制可能的校正词22.

随着大型预训练语言模型的巨大成功7-8,许多基于Bert的CSC模型被提出,也取得了很大进展.Hong et al2提出的FASpell中,语言模型被用作候选词生成器,并采用置信度⁃相似度曲线来选择最佳候选词.Soft⁃Masked⁃Bert23由基于GRU的错误检测模块和基于Bert的错误纠正模块组成,但Bert预训练语言模型只考虑字符的语义特征,忽略了字符的字形字音特征.为此,很多工作都设计了独特的网络将字形字音特征融入预训练模型10-12,然而,这种通过额外网络融合拼音和字形特征的方法,不仅使CSC模型整体更加复杂,而且由于拼音和字形特征和语义特征训练时的语料不同,导致得到的字形、拼音和语义出现特征信息不对等的问题,使模型的性能提升有限.不同于先前的基于预训练语言模型的工作,本文尝试利用文本、拼音和字形训练的多模态中文预训练语言模型ChineseBert来解决CSC任务.

最近,一些研究开始关注由错误字符引起的噪声信息问题.Guo et al24提出一个全局注意力解码器(Global Attention Decoder,GAD)来缓解噪声信息的影响.Wang et al14提出动态连接网络(Dynamic Connected Networks,DCN)来学习两个相邻汉字之间的依赖关系,一定程度上避免了模型因噪声影响输出不连贯的语句.Wang and Shang25通过对候选句子重新进行评估,找到与原始错误字符相比在字符概率和相似度方面最好的句子来避免噪声的影响.这些方法虽然在一定程度上提高了模型的性能,但本质上都是对模型校正之后结果的重新筛选和排序,噪声信息仍被输入了模型,干扰了模型的预测.与这些方法不同,本文提出的SepSpell方法通过mask字符将屏蔽噪声之后的语句输入模型,从源头解决了噪声干扰问题.

2 基于ChineseBert的CSC方法

2.1 ChineseBert简介

预训练模型最初是为英语设计的,所以在当前的大规模中文预训练模型中缺少两个特定于中文的重要特征:字形信息和拼音信息.中文是象形文字,字形和字音特征包含重要信息,对语言理解十分重要.在此背景下,Sun et al13提出全新的中文预训练模型Chinese⁃Bert,如图2所示,根据中文特点,对每个汉字,首先将其语义特征、字形特征和字音特征串联起来,然后通过一个全连接层映射到同一维度,形成融合特征,最后将融合特征向量与位置编码向量一起作为Bert模型的输入,同时使用全词掩蔽8和字符掩蔽进行预训练.和通用的中文预训练模型相比,ChineseBert在广泛的中文NLP (Natural Language Processing)任务上实现了最佳性能,也验证了获取的字形字音特征的有效性.

图2

图2   ChineseBert模型框架

Fig.2   The framework of ChineseBert


2.2 模型方法

给定一个输入文本序列X=x1,

x2,,xN,CSC任务的目标是自动纠正拼写错误的字符,生成正确的目标序列Y=y1,y2,,

yN,其中xi,yi1iN表示一个中文字符,N表示字符个数.

基于ChineseBert的CSC方法是在不添加额外的网络的前提下,仅利用ChineseBert预训练模型在CSC训练数据集上进行微调,输入包含拼写错误的句子,输出正确的句子.和Bert模型相比,ChineseBert唯一不一样的是输入的是字符的多模态特征.具体地,利用式(1)融合字符xi的语义向量ewi、字形向量esi和字音向量epi,得到融合向量efusion_i;利用式(2)将融合特征向量efusion_i与位置编码向量epos_i一起作为Bert模型的输入进行训练.

efusion_i=Wfcewiesiepi
y^i=SoftmaxWoBERTefusion_i+epos_i

其中,表示拼接操作,Wfc3ds×ds是可学习参数的全连接层,+表示相加操作,BERT表示Bert编码器,Wods×v表示映射到词表上的全连接层,y^i表示预测第i个字符的概率分布.

最终,ChinesBert使用交叉熵损失对模型进行优化:

y^,y=-i=1Nyilgy^i

3 SepSpell方法

除了ChineseBert的方法,现有的基于预训练模型的CSC方法10-12都是直接根据输入句子的信息生成目标句子,其优势是简化了纠错过程,但在句子有连续错误时,此类方法会利用错误字符的语义对另一个错误字符进行预测,所以不能很好地处理连续错误的问题.例如,一个句子里有两个错误字符xixj,生成字符xi的正确字符时利用了错误字符xj的信息.为此,在ChineseBert方法的基础上,本文进一步提出SepSpell方法.

SepSpell的框架如图3所示,该方法将CSC任务分为探测模型和校正模型两个部分.首先,探测模型找到文本中可能错误的字符,屏蔽其语义特征(图3中用M表示),仅保留对模型最终预测有帮助的字形字音特征;然后,将降噪后的融合特征输入校正模型中进行校正.由于校正模型在输入时就已经屏蔽了错误字符的语义特征,再加上字形字音对模型预测的限制,使SepSpell方法能更好地处理连续错误问题.

图3

图3   SepSpell方法框架

Fig.3   The framework of SepSpell method


3.1 探测模型

探测模型的目标是识别错误字符位置,一般被转化为序列标注问题,分别用0和1表示正确和错误字符.由于探测任务中错误字符相当于对正确字符进行了替换,所以本文采用和探测任务更吻合的ELECTRA15作为模型编码器.模型输入的是embeddings的序列E=e1,e2,,eN,其中,ei表示字符xi特征向量(字符语义特征向量、位置向量和句子段向量之和).输出标签序列O={o1,o2,,oN},其中,oi表示第i个字符的标签,1表示该字符不正确,0表示正确.对于每个字符,利用sigmoid函数获取的概率Pi表示字符错误的概率,Pi越高,字符错误的可能性越大.对于序列的每个字符,其错误概率Pi定义如下:

Pi=Pdoi=1X=σWdHdi+bd

其中,Hdi表示字符xi经过编码器之后最后一层的输出,Wdbd是可学习二分类参数.

最后,使用二分类的交叉熵损失函数对探测模型进行优化.由于在CSC任务中,句子中的正确字符数远大于错误字符数,为了解决正负样本不均衡的问题,将正确字符与错误字符的损失权重设置为1∶5,如式(5)所示:

=-1Ni=1N5oilgPi+1-oilg1-Pi

校正模型对预测正确的字符采取直接复制的方式,所以,为了尽可能发现错误字符,降低了探测模型判断为正类的阈值Err.在二分类任务中,该值通常为0.5.本文实验中将阈值设置为0.05,Pi0.05时判定该字符错误,Pi<0.05时判定该字符正确,如式(6)所示:

Pi=1,    if Pi0.050,    if Pi<0.05

3.2 校正模型

从训练阶段和推理阶段对校正模型进行介绍.训练阶段,校正模型知道错误字符的位置,不需要进行预测;推理阶段,因为错误字符位置不可见,需要利用探测模型的输出.

3.2.1 训练阶段

在模型的训练阶段使用修改的融合特征作为校正模型的输入,将句中所有已知错误字符的语义特征用mask字符屏蔽,此时对应错误字符xi的融合特征向量(式(1))被改写如下:

efusion_i=Wfcemaskesiepi,if oi=1

其中,emask表示mask字符的语义特征向量.

在模型的推理阶段,错误字符的位置是未知的,很大程度上依赖于探测模型的能力.由于探测模型的准确率不可能达到100%,为了验证校正模型的预测能力,在训练阶段随机屏蔽句子长度20%的正确字符的语义信息.模型的预测和优化如式(2)和式(3)所示.

3.2.2 推理阶段

在校正模型进行推理时,由于错误字符的位置未知,需要先借助探测模型找出句子中可能错误的字符,然后将可能错误字符的语义特征用mask字符进行屏蔽,保留字形字音特征.不同于训练阶段,字符xi的融合特征efusion_i表示为:

efusion_i=Wfcewiesiepi,     if Pi=0Wfcemaskesiepi,    if Pi=1

由于在输入时屏蔽了错误字符的语义特征,校正模型仅通过上下文信息对屏蔽的语义进行预测,再加上字形和字音信息的限制,能够更好地降低错误字符的影响.

在获取所有的预测字符时,模型没有直接使用所有的预测字符作为最后的输出结果.对于探测模型预测为正确的字符,保留输入的原字符;探测模型预测为错误的字符,才使用校正模型的输出结果.如图3所示,校正模型虽然输出了每个字符的预测,但在最终阶段,仅保留探测模型预测为错误的字符“经”“赤道”对应的输出“经”“迟到”.

4 实验与分析

4.1 实验准备

4.1.1 评估指标

从字符和句子两个层面进行评估.和字符层面相比,句子层面要求句子中的所有错误都被检测或校正时,才被认为是正确的210.字符层面和句子层面的评估都从探测和校正两个角度进行,采用准确率(Acc)、精确率(P)、召回率(R)和F1作为评价指标.

4.1.2 数据集

遵循先前的工作210,使用SIGHAN官方训练数据和Wang et al21生成的伪数据作为训练集,并使用SIGHAN2013,SIGHAN 2014,SIGHAN2015为测试集.训练集和测试集的统计结果如表1所示.由于原始数据是繁体中文,使用OpenCC (https:∥github.com/BYVoid/OpenCC)将其转化为简体中文,再利用Xu et al11的方法,对转化过程中的错误进行处理(如著→着,妳→你).由于SIGHAN2013测试集中人为标注语料的质量较差,相当多的助词“的”“地”“得”的混合用法没有标注10,导致性能良好的模型在该数据集上的分数不佳.为了缓解这个问题,本文也采用Xu et al11的后处理方法,从模型输出中删除所有检测和更正的“的”“地”“得”.

表1   实验中使用的数据集统计

Table 1  Dataset statistics used in experiments

Train Set#SentAvg.Length#Errors
(wang)27132944.4271329
SIGHAN201370049.2350
SIGHAN2014343549.73432
SIGHAN2015233930.02339
Test Set#SentAvg.Length#Errors
SIGHAN2013100074.1996
SIGHAN2014106250.1529
SIGHAN2015110030.5550

新窗口打开| 下载CSV


4.1.3 实验参数设置

在具体训练中,所有特征的向量维度均设置为768;学习率设置为5e-5,并使用线性衰减;dropout设置为0.1;batch size设置为32;epoch设置为10;学习率预热步数warmup设置为5000;使用Adam优化算法.

4.1.4 对比方法

Roberta8:直接使用CSC训练数据微调Roberta⁃base得到.

SpellGCN10:通过图卷积网络(Graph Convolutional Networks,GCN)将预定义的字符混淆集合并到基于Bert的校正模型中.

REALISE11:通过一个GRU网络获取拼音特征,通过卷积网络获取字形特征,最后通过基于Transformer的自适应融合进行预测输出.

DCN14:通过一个独特的动态连接网络,在模型输出阶段生成Kn个路径(K表示候选词数,n表示句子长度),再通过动态连接网络打分,选择一条最优路径.

4.2 实验结果分析

表2给出了本文方法和四个基线模型在测试集SIGHAN2013,SIGHAN 2014,SIGHAN2015上字符级别和句子级别检测和校正水平的评估结果,表中黑体字表示结果最优.

表2   各算法在SIGHAN2013,SIGHAN2014和SIGHAN2015三个测试集上的实验结果

Table 2  Experimental results of different algorithms on three test sets of SIGHAN2013,SIGHAN2014 and SIGHAN2015

Character LevelSentence Level
Detection LevelCorrection LevelDetection LevelCorrection Level
SIGHAN2013PRFPRFAccPRFAccPRF
SpellGCN82.6%88.9%85.7%98.4%88.4%93.1%(-)80.1%74.4%77.2%(-)78.3%72.7%75.4%
REALISE(-)(-)(-)(-)(-)(-)82.7%88.6%82.5%85.4%81.4%87.2%81.2%84.1%
DCN(-)(-)(-)(-)(-)(-)(-)86.8%79.6%83.0%(-)84.7%77.7%81.0%
Roberta80.5%88.0%84.1%98.0%86.5%91.9%77.3%85.1%76.9%80.8%75.6%83.6%76.0%79.6%
ChineseBert79.4%91.2%84.9%98.1%95.3%96.7%81.4%85.6%81.3%83.4%80.0%84.1%79.9%81.9%
SepSpell78.9%91.4%84.7%98.4%95.4%96.9%83.9%88.5%84.0%86.2%82.7%87.2%82.8%84.9%
SIGHAN2014PRFPRFAccPRFAccPRF
SpellGCN83.6%78.6%81.0%97.2%76.4%85.5%(-)65.1%69.5%67.2%(-)63.1%67.2%65.3%
REALISE(-)(-)(-)(-)(-)(-)78.4%67.8%71.5%69.6%77.7%66.3%70.0%68.1%
DCN(-)(-)(-)(-)(-)(-)(-)67.4%70.4%68.9%(-)65.8%68.7%67.2%
Roberta82.6%78.0%80.2%96.9%75.9%85.1%74.1%61.2%67.3%64.1%73.6%60.3%66.4%63.2%
ChineseBert80.3%79.4%79.8%97.1%88.4%92.5%77.1%66.0%68.1%67.1%76.4%64.6%66.5%65.5%
SepSpell79.9%79.6%79.8%98.0%89.2%93.4%78.3%67.2%71.2%69.1%77.5%65.5%69.4%67.4%
SIGHAN2015PRFPRFAccPRFAccPRF
SpellGCN88.9%87.7%88.3%95.7%83.9%89.4%(-)74.8%80.7%77.7%(-)72.1%77.7%75.9%
REALISE(-)(-)(-)(-)(-)(-)84.7%77.3%81.3%79.3%84.0%75.9%79.9%77.8%
DCN(-)(-)(-)(-)(-)(-)(-)77.1%80.9%79.0%(-)74.5%78.2%76.3%
Roberta86.9%87.3%87.1%95.1%82.0%88.1%82.9%73.2%80.4%76.7%81.7%71.0%78.0%74.5%
ChineseBert87.5%87.6%87.5%96.1%92.1%94.0%84.9%77.1%81.3%79.1%83.8%75.0%79.1%77.0%
SepSpell87.0%86.5%86.7%97.3%92.4%94.8%86.6%81.7%80.6%81.1%85.6%79.6%78.6%79.1%

新窗口打开| 下载CSV


由表可见,在字符级别,ChineseBert的探测和校正水平优于Roberta.SepSpell由于在探测模型阶段为了召回更多的错误字符将阈值Err设置得很低,使输入校正模型的噪声增多,导致其探测水平的精确率比SpellGCN和ChineseBert低.在校正水平上,现有的评估方法只针对探测模型预测正确的字符计算得到.以测试集SIGHAN2013为例,对于探测模型预测正确的所有字符,SepSpell的校正模型对其中95.4%的字符都进行了修改,且98.4%的修改都是正确的.与其他最先进的模型相比,在校正水平上,SepSpell在三个测试集上均获得了最好的结果.

在句子级别的评估结果中,ChineseBert的性能接近之前最先进的模型.和ChineseBert相比,SepSpell在SIGHAN2015上检测和校正水平的F1分别又提高了2.0%和2.1%,在SIGHAN 2013上分别提高了2.8%和3.0%.和以往的最佳模型REALISE相比,SepSpell仅在SIGHAN2014测试集上校正水平的F1低0.7%,此结果仍然非常具有竞争力,而在SIGHAN2013和SIGHAN2015测试集上校正水平的F1分别提高了0.8%和1.3%.与之前的先进模型相比,使用ChineseBert作为预训练语言模型,将字符的字音和字形特征的提取工作放到预训练模型阶段,不仅极大地简化了整体CSC模型的结构,而且,由于字音和字形特征是经过大规模语料统一训练得到的,也使训练得到的字音特征和字形特征更具泛化性.

此外,表3还给出了使用CSC官方测试评估工具(http:∥nlp.ee.ncu.edu.tw/resource/csc.html)评估测试集SIGHAN2015的结果,表中黑体字代表结果最优.与最新的方法相比,ChineseBert和SepSpell均获得了非常好的结果,充分证明了这两个方法的有效性.

表3   SIGHAN2015官方工具评估的性能

Table 3  Performance evaluated by SIGHAN2015 official tools

MethodDetection LevelCorrection Level
AccPRFAccPRF
SpellGCN83.7%85.9%80.6%83.1%82.2%85.4%77.6%81.3%
DCN84.6%88.0%80.2%83.9%83.2%87.6%77.3%82.1%
Roberta82.9%84.1%80.4%82.2%81.7%83.7%78.0%80.8%
ChineseBert84.9%87.1%81.3%84.1%83.8%86.8%79.1%82.8%
SepSpell86.6%91.2%80.6%85.6%85.6%91.0%78.6%84.3%

新窗口打开| 下载CSV


4.3 阈值对于探测模型性能的影响

为了探究阈值Err对探测模型的影响,将其分别设定为0.03,0.05,0.1,0.2和0.5,并且只使用字符级别的PRF1作为评估指标.

实验结果如图4所示.由图可见,随着阈值的降低,探测模型的P下降,错误字符的召回率R提高.但由于召回率R已接近最大值100%,Err的降低对召回率R的提升增益在不断减小,而精确率P却下降得很快,导致综合性能的F1一直在下降.实验中选择F1最好的Err,即0.05.

图4

图4   阈值Err对探测模型性能的影响

Fig.4   The effect of threshold Err on performance of the detection model


进一步发现探测模型的召回率R在SIGHAN 2014上远低于SIGHAN2013和SIGHAN2015,最高也只有91.3%,导致SepSpell在SIGHAN2014上没有达到最先进的水平.而在SIGHAN2013上,当Err=0.05时,模型在精确度P=62.3%的前提下,召回率R高达95.9%,这也使SepSpell和ChineseBert相比,在SIGHAN2013测试集上的校正性能提升得更明显.可以看出,一个性能优良的探测模型对于模型整体性能的提升必不可少.

4.4 阈值对于校正模型性能的影响

为了进一步探究探测模型中的超参数Err对校正模型的影响,将Err分别设定为0.03,0.05,0.1,0.2,0.5进行实验.由于Err对三个测试集影响的趋势相同,所以仅在SIGHAN2015上进行测试,实验结果如图5所示.由图可见,随着探测器阈值Err的降低,校正模型的探测和校正水平的F1在不断提高,在Err=0.05时达到最高,随后开始下降.通过前面的实验可以发现,虽然降低Err能提高错误字符的召回率R,但不断的下降使其对召回率R的影响越来越小,而精确率下降得更明显,显然当Err=0.03时,校正模型的性能反而降低了.

图5

图5   阈值Err对校正模型性能的影响

Fig.5   The effect of threshold Err on the performance of the correction model


4.5 案例分析

为了更直观地展示字形特征和字音特征对模型预测的影响,表4给出了三个案例的预测结果.和Roberta相比,本文提出的两个方法都融合了字符的字形和字音特征.第一种情况,词语“凭断”中的“凭”是错误字符,如果没有字音限制,模型倾向于将其修改为“判断”.第二种情况,“田”和“由”的字形非常相似,ChineseBert和SepSpell均能将“田来”纠正为更好的“由来”.第三种情况更常见,因为汉字的特点,往往字形相似的两个汉字也同时具有相似的发音.尽管Roberta将“开郎”修改为“开心”并没有语法错误,但对比原句,结合字形和字音的限制,显然纠正为“开朗”更合适.从这些案例中,可以看出字符的字形特征和字音特征能将不正确的字符修改为具有发音和形状约束的正确字符.

表4   案例分析

Table 4  Cases' analysis

Pronunciation:píng→píng
Src:…就主观立场来凭断任何一句人事物,….
Roberta:…就主观立场来判断任何一句人事物,….
ChineseBert:…就主观立场来评断任何一句人事物,….
SepSpell:…就主观立场来评断任何一句人事物,….
Shape:田→由
Src:…的文章田来经常都是下了很大的功夫…
Roberta:…的文章出来经常都是下了很大的功夫…
ChineseBert:…的文章由来经常都是下了很大的功夫…
SepSpell:…的文章由来经常都是下了很大的功夫…
Both:láng→lǎng;郎→朗
Src:…不好的事情也要开郎地度过…
Roberta:…不好的事情也要开心地度过…
ChineseBert:…好的事情也要开朗地度过…
SepSpell:…不好的事情也要开朗地度过…

新窗口打开| 下载CSV


4.6 连续错误问题上的研究

由于官方基准数据集中缺乏连续错误案例,为了充分验证SepSpell方法在连续错误问题上的有效性,根据工作时用户使用拼音输入法会出现连续错误的特点,使用一个简单但有效的方法构建用于训练和评估连续错误问题的数据集.具体步骤如下:

(1)收集了32万多条常用词语(https:∥github.com/mapull/chinese⁃dictionary),不考虑音调,只根据它们拼音的不同将词语进行分类.

(2)收集了12万多条人民日报的句子(https:∥github.com/chenhui⁃bupt/PeopleDaily 1998)作为模型输入的句子.

(3)用jieba分词(https:∥github.com/fxsjy/jieba)对收集的句子进行分词,每个句子中都随机选择一个词语将其替换为拼音相同的另一个词语,完成连续错误的构造.

表5是构造测试集中两种类型的句子:第一种类型,“几折”应为“记者”;第二种类型,“人”应为“认”.尽管第二句只有一个错字,但这样其实更符合拼音打字时因疏忽造成的错误,因为“认为”和“人为”拼音相同,经常同时存在于拼音输入法的候选词中.为了使构造的数据集更具有真实性,保留了这种类型的错误.经过统计,共构建119509条训练集,1047条测试集,其中第一种和第二种类型句子的数量比接近2∶1.

表5   连续错误数据集举例

Table 5  Examples of connection error dataset

几折1日从广东省湛江市中级人民法院获悉,…
普京人为,针对平民的恐怖主义行为没有任何道理…

新窗口打开| 下载CSV


为了进行对比,将Roberta,ChineseBert,SepSpell三种方法使用相同的训练集和实验参数设置进行训练,并使用句子级别的评估指标来进行对比,最终的实验结果如表6所示,表中黑体字代表结果最优.由表可见,SepSpell的探测和校正水平的指标都是最好的.值得注意的是,虽然Roberta和ChineseBert方法在探测水平上均获得了不错的F1分数,但在校正水平上,两个方法的F1分数和探测水平相比,均出现断崖式下降,分别下降了15%和10.1%,说明在含有噪声的文本环境中,Roberta和ChineseBert虽然能检测句子中的错误,但不能将其正确校正.相反,SepSpell校正水平的F1比Roberta提高接近10%,证明SepSpell对连续错误的校正的有效性.

表6   SepSpell方法在连续错误问题上的表现

Table 6  Performance of SepSpell on continuous error problems

探测水平校正水平
AccPRFAccPRF
Roberta87.3%91.3%87.3%89.3%72.7%76.0%72.7%74.3%
ChineseBert85.2%88.8%85.2%86.9%75.5%78.6%75.5%77.0%
SepSpell88.8%92.8%88.8%90.8%81.6%85.2%81.6%83.4%

新窗口打开| 下载CSV


4.7 模型推理速度的探究

为了探究模型的推理效率,按照Hong et al2的设定,根据每句话的绝对时间消耗来衡量模型的推理速度.为了减少硬件造成的速度差异,在i5⁃6300 CPU上比较FASpell,Roberta,ChineseBert,SepSepll四个模型的推理速度,实验结果如表7所示.由表可见,因为不需要进行任何后处理操作,ChineseBert和Roberta的速度最快,而SepSpell需要经过两遍的网络探测和校正,和Roberta和ChinseeBert相比耗时翻倍,但由于采用了非自回归的解码方式,加上模型性能的提升,增加的时间损耗还是值得的.另外,和FASpell相比,两者虽然耗时相差不大,但SepSpell仍然具有优势,因为SepSpell可以直接输出对文本的预测结果,不需要对模型的预测重新进行筛选和排序.

表7   模型的推理速度(ms per sentence)

Table 7  Model inference speed (ms per sentence)

Test SetFASpellRobertaChineseBertSepSpell
SIGHAN2013446160.3164.2335.0
SIGHAN2014284132.5138.0266.2
SIGHAN201517781.883.7179.3

新窗口打开| 下载CSV


5 结论

本研究首次利用多模态语言模型ChineseBert解决中文拼写纠错问题,但是,尽管直接微调ChineseBert在CSC数据集上取得了非常不错的结果,还是不能很好地解决连续字符错误的问题.针对该问题,本文提出一种新的CSC方法SepSpell,将探测与纠错任务完全分开,有效缓解了该问题.与其他先进模型相比,SepSpell在测试集SIGHAN2013和SIGHAN2015上均获得了最佳性能.

因为SepSpell中的校正模型仅对探测模型中被探测为错误的字符进行校正,所以探测模型的预测越准确,模型整体性能的提高就越明显.

未来将进一步提高探测模型的性能,如采用多模型“投票”机制,即多个模型同时预测,当多数模型同时预测为错误时才最终判定字符错误;或增加词性规则,动词之后是名词、数量词、形容词,等等.

参考文献

Gao J FLi X LMicol Det al.

A large scale ranker⁃based system for search query spelling correction

Proceedings of the 23rd International Conference on Computational Linguistics. Beijing,ChinaAssociation for Computational Linguistics2010358-366.

[本文引用: 1]

Hong Y ZYu X GHe Net al.

FASPell:A fast,adaptable,simple,powerful Chinese spell checker based on DAE⁃decoder paradigm

Proceedings of the 5th Workshop on Noisy User⁃generated Text. HongKong,ChinaAssociation for Computational Linguistics2019160-169.

[本文引用: 6]

Burstein JChodorow M.

Automated essay scoring for nonnative English speakers

Proceedings of a Symposium on Computer Mediated Language Assessment and Evaluation in Natural Language Processing. College Park,MarylandAssociation for Computational Linguistics199968-75.

[本文引用: 1]

Xie W JHuang P JZhang X Ret al.

Chinese spelling check system based on N⁃gram model

Proceedings of the 8th SIGHAN Workshop on Chinese Language Processing. Beijing,ChinaAssociation for Computational Linguistics2015128-136.

[本文引用: 2]

Yeh J FLi S FWu M Ret al.

Chinese word spelling correction based on n⁃gram ranked inverted index list

Proceedings of the 7th SIGHAN Workshop on Chinese Language Processing. Nagoya,JapanAsian Federation of Natural Language Processing201343-48.

Yu J JLi Z H.

Chinese spelling error detection and correction based on language model,pronunciation,and shape

Proceedings of The 3rd CIPS⁃SIGHAN Joint Conference on Chinese Language Processing. Wuhan,ChinaAssociation for Computational Linguistics2014220-223.

[本文引用: 2]

Devlin JChang M WLee Ket al.

Bert:Pre⁃training of deep bidirectional transformers for language understanding

Proceedings of 2019 Conference of the North American Chapter of the Association for Computational Linguistics:Human Language Technologies,Volume 1 (Long and Short Papers). Minneapolis,MI,USAAssociation for Computational Linguistics20194171-4186.

[本文引用: 2]

Cui Y MChe W XLiu Tet al.

Pre⁃training with whole word masking for Chinese BERT

IEEE/ACM Transactions on Audio,Speech,and Language Processing,2021(29):3504-3514.

[本文引用: 5]

Liu C LLai M HTien K Wet al.

Visually and phonologically similar characters in incorrect Chinese words:Analyses,identification,and applications

ACM Transactions on Asian Language Information Processing,201110(2):10.

[本文引用: 1]

Cheng X YXu W DChen K Let al.

SpellGCN:Incorporating phonological and visual similarities into language models for Chinese spelling check

Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Seatle,Washington DC,USAAssociation for Computational Linguistics2020871-881.

[本文引用: 7]

Xu H DLi Z LZhou Q Yet al.

Read,listen,and see:Leveraging multimodal information helps Chinese spell checking

Findings of the Association for Computational Linguistics. Bangkok, ThailandAssociation for Computational Linguistics2021716-728.

[本文引用: 4]

Huang LLi J JJiang W Wet al.

PHMOSpell:Phonological and morphological knowledge guided Chinese spelling check

Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1:Long Papers). Bangkok, ThailandAssociation for Computational Linguistics20215958-5967.

[本文引用: 3]

Sun Z JLi X YSun X Fet al.

ChineseBERT:Chinese pretraining enhanced by glyph and pinyin information

Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1:Long Papers). Bangkok, ThailandAssociation for Computational Linguistics20212065-2075.

[本文引用: 2]

Wang B XChe W XWu D Yet al.

Dynamic connected networks for Chinese spelling check

Findings of the Association for Computational Linguistics. Bangkok, ThailandAssociation for Computational Linguistics20212437-2446.

[本文引用: 3]

Clark KLuong M TLe Q Vet al.

Electra:Pre⁃training text encoders as discriminators rather than generators

The 8th International Conference on Learning Representations. Addis Ababa,EthiopiaOpenReview.net2020,.

[本文引用: 2]

Wu S HLiu C LLee L H. Chinese spelling check evaluation at SIGHAN bake⁃off 2013∥Proceedings of the 7th SIGHAN Workshop on Chinese Language Processing. Nagoya,JapanAsian Federation of Natural Language Processing201335-42.

[本文引用: 1]

Yu L CLee L HTseng Y Het al.

Overview of SIGHAN 2014 bake⁃off for Chinese spelling check

Proceedings of the 3rd CIPS⁃SIGHAN Joint Conference on Chinese Language Processing. Wuhan,ChinaAssociation for Computational Linguistics2014126-132.

Tseng Y HLee L HChang L Pet al.

Introduction to SIGHAN 2015 bake⁃off for Chinese spelling check

Proceedings of the 8th SIGHAN Workshop on Chinese Language Processing. Beijing,ChinaAssociation for Computational Linguistics201532-37.

[本文引用: 1]

Rao G QGong QZhang B let al. Overview of NLPTEA⁃2018 share task Chinese grammatical error diagnosis∥/Proceedings of the 5th Workshop on Natural Language Processing Techniques for Educational Applications. Melbourne,AustraliaAssociation for Computational Linguistics201842-51.

[本文引用: 1]

Fu R JPei Z QGong J Fet al.

Chinese grammatical error diagnosis using statistical and prior knowledge driven features with probabilistic ensemble enhancement

Proceedings of the 5th Workshop on Natural Language Processing Techniques for Educational Applications. Melbourne,AustraliaAssociation for Computational Linguistics201852-59.

[本文引用: 1]

Wang D MSong YLi Jet al.

A hybrid approach to automatic corpus generation for Chinese spelling check

Proceedings of 2018 Conference on Empirical Methods in Natural Language Processing. Brussels,BelgiumAssociation for Computational Linguistics20182517-2527.

[本文引用: 2]

Wang D MTay YZhong L.

Confusionset⁃guided pointer networks for Chinese spelling check

Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence,ItalyAssociation for Computational Linguistics20195780-5785.

[本文引用: 1]

Zhang S HHuang H RLiu J Cet al.

Spelling error correction with soft⁃masked BERT

Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Seatle,Washington DC,USAAssociation for Computational Linguistics2020882-890.

[本文引用: 1]

Guo ZNi YWang K Qet al.

Global attention decoder for Chinese spelling error correction

Findings of the Association for Computational Linguistics.Bangkok, ThailandAssociation for Computational Linguistics20211419-1428.

[本文引用: 1]

Wang SShang L.

Improve Chinese spelling check by reevaluation

The26th Pacific⁃Asia Conference on Knowledge Discovery and Data Mining. Springer Berlin Heidelberg,2022237-248.

[本文引用: 1]

/