CPLM-CSC基于单字级别预训练语言模型的中文错别字纠正方法

更新时间:2023-07-09 06:03:30 阅读: 评论:0

第35卷第5期2021年5月
中文信息学报
火亘JO U R N A L OF CHINESE INFORM ATION PROCESSING
Vol. 35,No. 5
M ay,2021
文章编号:1003-0077(2021)05-0038-08
CPLM-CSC:基于单字级别预训练语言模型的中文错别字纠正方法谢海华李奥林|,李亚博1,陈志优1,程静1,吕肖庆汤帜I-2
(1.北大方正集团有限公司数宇出版技术国家重点实验室,北京100871;
2.北京大学王选计算机研究所,北京100871)
积的成语摘要:由于汉语语义表达的多样性和复杂性.中文错别字自动纠正目前存在很多挑战。现有的错别字纠正算法的性能普遍不够理想,而且需要大量高质量的语料进行训练。该文提出一种基于预训练语言模
型的错别字纠正方法CPLM-C'SC',能够显著地提高纠错性能。C PL M-C SC采用基于单字级别预训练语言模型来进行错别字检测,并采用掩字语言模型来进行错别字纠正。为了提高纠正性能,C P L M-C S C采用音近、形近字判断等多种筛选纠正结果的方法.并针对一些典型且特殊的错误,例如“的地得”误用,采取了专门的數据增强方法。C P L M-C S C在S1GHAN 2015的评测数据集上进行了测试.取得了0.654的F,值,其性能优于其他模型。
关键词:中文错别字纠正;预训练语言模型;单字级别模型
中图分类号:TP391 文献标识码:A
CPLM-CSC:Character-bad Pre-trained Language Model for
Chine Spelling Checking and Correction
X IE H a ih u a1, LI A o lin1 . 1,1Y a h o1 . C'HF.N Zhiyou1, C H E N G J i n g1 . I.V X iaoqing12 , T A N G Zhi1'2
(1. State Key Laboratory of Digital Publishing Technology. Peking University
Founder Group Co. L T D.»Beijing 100871, China;
2. Wangxuan Institute of Computer Technology,
Peking University, Beijing 100871, China)
Abstract:Due to the variability and complexity of Chine mantic expression, Chine spelling checking and cor­rection is a challenging task. This paper propos an approach bad on pre-trained language models for Chine spelling checking and correction»named as CPLM-CSC. which significantly improves the correction performance. In C'PLM-CSC. the character-bad pre-trained language model is employed for spelling checkings and a masked lan­guage model is applied for spelling correction. To enhance the correction performance* CPLM-CSC employs veral ways of final result filtering,and applies data enhancement means for certain special errors such as misu of “的’’,“地 ” and “得Tested on the datat of SIGH AN 2015,the propod method achieves the state-of-the-art perform- ance of 0.654 F i score.
Keywords:Chine spelling checking and correction;pre-trained language model; char-bad model
〇引言
中文错别字检测和纠正(Chine spelling chec­king and correction,CSC)的 目标是 检测并纠正中文语句里的字词误用情况。与英文等拼音文字的拼写检查类似,C S C可以分为两个类別:词错误(word erro r)纠正和非同错误(non-word erro r)纠 正。词错误指的是两个正常词之间的误用,例如英文中的q u a n tity和q u a lity互相误用,中文里的“权 力”和“权利”互相误用。非词错误指的是把一个正常词误写为一个非词(不在词典中的词),例如:把
收稿日期:2019-09-19 定稿日期:2019-10-19
基金项目:国家重点研发计划(2019YFB1406302);国家f t然科学基金(61472014, 61573028, 61432020);北京市自然科学基金(4142023);北京市科技新星计划(XX2015B010)
谢海华等:CPLM-CSC:基于单字级别预训练语言模型的中文错别字纠正方法39 5期
quantity误写为quatity,把“进人”写成“进人”。
错别字通常发生在音近字(读音相近或相同的字)之间或者形近字(形状相似的字)之间。一般地,错别字纠正的方法分成两步。第一步是错别字的检测,即发现句子中的错别字并确定它们的位置。通 常基于语言模型的原理来设计错别字检测算法。第 二步是错别字纠正,通常基于一个大规模的混淆集(confusion t)来给出正确字的候选集,并评估每个候选正确字的概率,概率最高且大于一定阈值的候选字被认为是纠正的结果。评估候选正确字的概率的方法也主要基于语言模型的原理来设计[1]。
草莓的单词汉语的某些特征使得中文错别字纠正具有很大的难度。首先,汉语中有错误的词,但是没有错误的字,而很多错别字发生在单字词之间(例如:“在”和 “再”)。单字词的用法种类很多,需要结合上下文语义才能判断它们是否误用。其次,由于中文的词之间没有分隔符,非词出现在句子中不一定是错误的,例如:“进人”在句子“化合物被注射进人体”中就没 有错误。另外,发生错别字的词,在语句分词时不能被正确地切分。因此,不适宜以词为单位进行错别字的纠正。
在当前的错别字纠正模型中,非词错误纠正是主要的研究内容,但是目前的准确率也只有70%左 右[2]。而词错误纠正的准确率更低,因为词错误主要发生在易混淆词之间,例如:“无需”和“无须”,不 仅读音相同而且意思相近,需要基于语义分析才能准确地检测和纠正[3]。除了词错误和非词错误的纠错困难,错别字纠正工作还存在一个问题,即很多非 错别字被误报。误报情况主要发生在训练数据或者词典中很少出现的词语当中,例如,专业名词、人名 地名、网络用语等。
针对上述问题,我们提出一种基于单字级别预训练语言模型(CPLM-CSC)的方法来进行错别字纠正。由于错别字变化多端而且层出不究,错词典的构建非常困难,因此CPLM-C S C的错别字检测模块和纠正模块都基于预训练语言模型来设计,以避 免词典构建,并减少训练数据规模。而且由于词级别纠错模型的固有缺点,即:发生错别字的词无法被准确地切分,而且错别字纠正的目标是找出错字而非错词,CPLM-C S C采用单字级别的模型来进行纠错,即:模型的输入和输出都是字序列,以避免分词的错误。在错别字纠正阶段,CPLM-C S C采用掩字模型的方式,B卩:将检测出来的错别字掩
盖,然后 基于语言模型给出候选正确字的列表,并计算每个候选字的概率以选择其中最优一个作为输出。CI^LM-C S C还采取了语言模型微调、数据增强、排 名阈值和概率阈值等方法,来提升错别字纠正的性能。在SIGHAN2015的数据集上进行测试,CPLM-C S C取得了 68.95%的准确率和62.19%的召回率,F,值为0.654,性能优于其他模型。
1相关工作
在现有的中文错别字纠正(CSC)算法和系统当中,语言模型理论、词切分、混淆集、错词典等是常用的技术和工具。C S C的流程主要包括两个步骤:错 别字检测和错别字纠正。错别字检测的目标是判断语句中哪个位置出现了错别字,而错别字纠正的目标是纠正识别出来的错别字。
错别字检测是C S C的重点和难点。(^31^[4]提 出了一个简单的做法,假设语句中所有字都可能是错误的,然后对每个字进行纠正。为了减少计算量,L i n等[5]提出了一个优化的方案,假设语句分词之后所有的单字都可能是错误的。除此之外,Hsieh 等[6]使用基于未知词检测和语言模型校验的方法,以及基于由混淆集生成的词典来识别错别字。最 后,将各种方法产生的结果结合起来形成最终的识别结果。其中,混淆集里面包含所有汉字以及每个字对应的音近字和形近字。由混淆集生成的词典,即错词典,包含正确词与它对应的可能错词,而一个 正确词对应的错词是基于音近字和形近字生成的。Y a n g等[7:提出了一个高性能的模式识别器来增强分词后候选词识别的效果。Z h a o等[8]为每个句子构建了一个有向无环图,并运用单源最短路径算法识别一般的错别字情况。
在错别字纠正方面,Chang[<]基于混淆集,用音近 字或形近字替换掉语句中的可能错字,然后使用二元语言模型来计算原始句子的概率和所有更改的句子的概率。尽管该方法能够有效地识别错别字,但是它 的计算时间长,而且有非常多的漏报。C h iu等%运用 了统计机器翻译模型来将含有错别字的句子翻译成正确的句子,并选择拥有最高的翻译概率的句子为最终正确的句子。丫3呢等[1°]使用e P M l矩阵统计字词之间的共现情况,并基于eP M I矩阵,选择与前后文经常共现的字词作为错别字的纠正候选。FU等[11]将 含有错别字的语句“翻译”成语法正确的语句,并从翻 译后的句子中找出错别字纠正的结果。
上述方法大多需要构建大规模的混淆集和错词
40中文信息学报2021 年典.并基于大规模语料训练语言模型和分类器,总体
上效率低下,而且性能不佳。另外,词切分是一项基础工作。然而,间切分本身带来的错误,会对错别字的检测和纠正带来非常大的影响。2算法基本流程
图1是CPLM-CSC错别字检测和纠正的基本流程。
基于预训练语言模型错别字检测基于掩字
语言模型
错别字纠正:排名、概率
音形判断
m1C PLM-C SC错別字检测和纠正的基本流程
模型的输入是待检查的中文段落(可包含多个语句),而输出是经过错别字纠正之后的段落。流程 中间的三个步骤简单介绍如下。
2.1单字级别词性标注和语句长度一致化调整
在训练和预测阶段,对输人模型的原始中文语句,需要进行如下的词性标注和长度一致化调整。
(1)单字级别词性标注。词性特征对有些错別字的检测非常有用.例如:“的”字之后的词一般是名词,如果其后是动词的话,则“的”字用错了。由于 输人C PL M-C S C的是字序列,即输人序列中每个单元是一个字,因此这里需要进行字级别的词性标注。对字序列进行词性标注的流程如下:
①对语句进行分词并标注词性。
②基于每个词的词性,按照B IE S方式给语句中的每个字标注词性。B IE S的含义如下:
a)B:词的起始字;
b)I:词的中间字;
c)E:词的结尾字;
d)S:单字词。
例如,“哈尔滨”的词性为地名(ns),其中每个字的词性为:哈(n.s-B),尔(ns-I),滨(ns_E)。
(2)长度一致化调整。过短的语句很可能没有包含完整的文本信息,而过长的语句在模型中容易发生信息丟失。我们设计了基于规则的文本切割方法,并通过实验设置了语句长度范围,效果明显优于按照终结符进行语句切分的方法。例如,设置语句的长度范围为15〜30字。对于长度大于30字的语句,则截 取30字以内的分句。对于长度小于15字的句子,则 根据情况拼到前后句子中。具体的算法如下。
ALGORITHM 1: ntence gmentation ALGORITHM 2: ntence merging
Input: list of ntences 5, upper limit max Output: list of gmented ntences.^ JT—[]
for s in S do
if length^) > max then
•L —sp liu b y(‘,’m‘一
for s' in L do
if length(.vf) > max then
_//—split,by
append every element in L(to ^
el
| append .v' to .yf
end
end
el
| append s to .'ff
end
end Input: list of ntences lower threshold min Output: list of merged ntences ^
w h ild n o t empty do
pop first ntence of
while length(5,)< min do
s2 *— pop first ntence of ^
53 <— pop first ntence of ^
if length(.v:)< length(.v3)or
_‘v3 ends "w ith
5, ^-.V,+5,
append .v3 to
el
push s: back to .yf
end
end
append .v, to
end
2.2基于预训练语言模型的错别字检测
CPLM-CSC的错別字检测模块是基于单字级別预 训练语言模型设计的(详细描述见3.1节)。单字级別预训练语言模型(例如:BERT™.E R N IE S)接受字序 列作为输入。由于预训练语言模型是运用大规模语料 训练的.因此CPLM-C SC的错别字检测模块不需要大量语料来训练,只需要少量数据进行模型微调。
错别字纠正
之后的语句
待检查的
中文语句---------^^
谢海华等:CPLM-CSC:基于单字级别预训练语言模型的中文错别字纠正方法41 5期
2.3基于掩字语言模型的错别字纠正
CPLM-C S C的错别字纠正模块依然基于预训练语言模型设计以减少训练语料(详细描述见3.2 节)。
在输人的语句中,由错别字检测模块识别出来的错别字被掩盖,并在输出端产生错別字的候选纠正结果。针对现有方法误报较多的问题,为了提升错别字纠正性能,CPLM-C S C采取概率阈值、排名 阈值、音近、形近判断等方式,以筛除不合适的纠正结果,并选择最优的结果输出。3算法的具体步骤
3.1基于单字级别预训练语言模型的错别字检测
图2显示的是CPLM-C S C错别字检测模块的基本框架。输入模型的是中文语句字序列,以及单字级别词性序列。以:r表示语句中的一个汉字,pos(_r)表示它的词性标注,C P L M表示单字级别预训练语言模型,P()S M表示词性编码矩阵。
窗帘怎么洗
CRF
预测层Bi-LSTM 编码层
语言模型编码层
X经过C P L M编码,输出的结果如式(1)所示。
•u'C j) =C PL M(x)(1)输出结果t/(:r)是结合深度上下文信息的字表征,维度为1X768。
pos(:r)是以one_h o t模式表7K的x的词性,维 度为1X144(36种词性标签,以及B/I/E/S这四种单字级别标签)。P〇s(_r)经过词性编码矩阵的输出如式(2)所示。
pos’(_r) =P()S M(pos(_r)) (2) P()S M是一个144 X72的矩阵,在训练之前随机初始化,并在训练后确定矩阵元素值。P〇s'(x)是 维度为1X72的向量。字编码和词性编码在链接之后[见公式(3)]作为语言模型编码层的输出,并输人 到 Bi-LSTM 层。
v(x) =catenation(w,(j:)^os7(x)) (3) t;(:r)是维度为1X840的向量。经过Bi-LSTM 层,输出如式(4)所示。
教师的英语w(x) =B L S T M(d(x)) (4) w(_r)的维度为256,输人到C R F预测层,以给 出每个汉字对应的标签。标签为‘£’(表示错别字)或者‘O’(表示正确字)。C R F预测层会计算每个可能的标签序列的概率,并将概率最大的序列作为输出。标签序列彳/;,•••,&}的概率计算如式(5) 所示。K表示输人汉字序列的长度表示第w 个字的标签。
K
P(L') =+f(l'k,k)}(5)
k=l
课题研究计划
H是表达标签之间转移概率的矩阵,由于标签只有和‘O’,因此H是2X2的矩阵。
表示转移至“的概率。表示语句中第々个元素被标注为的得分。P是2X V的矩阵,其中V是字符集(包含汉字、标点及其他字符)的基 数,2是标签集(O和E)的大小。H和p的元素
设计准则
42
中文信息学报2021 年
随机初始化生成,并在训练后确定。
基于错别字检测模块的输出.标注为“
的汉
字被认为是可能的错字.需要在下一步进行纠正。 而标注为“()”的字,不需要进行处理。
3.2基于掩字语言模型的错别字纠错模块
CPLM -C S C 采用掩字语言模型进行错别字的
纠正。错别字纠正模块的框架见图3。
m  3 CPLM__CSC 错別字纠正模块的基本框架
模型的输入是一个中文语句,在错别字检测阶 段中被识别出来的错别字被掩盖。经过C P L M 计 算之后,输出为一个维度为1X V 的向量{P ,,P 2, …,P v y .Pv •丨(V 是字符集的基数),向量中的元素 值表示相应字符是正确字的概率(称为正确字置信 度),可以将置信度最高的字作为模型输出,但是
好车无忧
效 果并不理想。为了提升最终输出结果的准确率,本 文采用了以下三种方法来处理正确字置信度向量, 以筛选最优的输出结果。
(1)
排名阈值判断。如果被掩盖的可能错字
(例如图3中的“婺”)的正确字置信度在所有字符的 正确字置信度的排名大于一定阈值(例如:100),说 明它很有可能是正确的用法。这样,它被选为最终 输出,即该字不做纠正。
(2)
音近、形近判断。由于绝大多数错别字出
现在音近/字或形近字之间,因此首先排除音不近及 形不近的候选字。基于公开的音近、形近字混淆集 (Confusion  S et ).按照正确字置信度从大到小的顺 序,筛掉与疑似错字(即被掩盖的字)音不近且形不 近的字,直到出现一个音相近或者形相近的字。
(3)
概率阈值判断。在音近、形近判断之后,
如果剩余的字符里面正确字置信度最大者(即置
信度最大的音近字或形近字)的置信度大于一定 阈值,则将该字输出;否则.由于该字的置信度不 高,纠正的把握不大,因此不做纠正,输出(被掩盖 的)疑似错字。
基于以上处理,最终的输出结果可能是原来的 字,即不做修改,或者是满足排名阈值和概率阈值, 与识别结果读音相近或者字形相近,而且正确字置 信度最大的字。
错别字纠错模块的参数不需要经过训练来确
定。掩字语言模型直接采用公开的、已经训练过的 预训练语言模型,而概率阈值和排名阈值则由人工 来确定和更新。
4实验与分析
4.1评测数据集
实验采用的数据是SIGHAN  2015数据集1], 其中的数据采集自初学汉语的外国人写的作文,并 由汉语母语者进行标注。S 1G H A N  2015数据集包 含词错误和非词错误两种类型,分成以下两个部分。
(1)训练集:包含970篇中文作文,3 143个错
别字错误

本文发布于:2023-07-09 06:03:30,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1086830.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:错别字   纠正   模型   语言   训练   语句
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图