CN116306597A - 一种中文拼写纠错方法 - Google Patents
一种中文拼写纠错方法 Download PDFInfo
- Publication number
- CN116306597A CN116306597A CN202310311640.3A CN202310311640A CN116306597A CN 116306597 A CN116306597 A CN 116306597A CN 202310311640 A CN202310311640 A CN 202310311640A CN 116306597 A CN116306597 A CN 116306597A
- Authority
- CN
- China
- Prior art keywords
- word
- words
- probability
- pinyin
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012549 training Methods 0.000 claims abstract description 52
- 238000001514 detection method Methods 0.000 claims abstract description 23
- 238000013145 classification model Methods 0.000 claims abstract description 14
- 239000013598 vector Substances 0.000 claims description 38
- 101000762967 Homo sapiens Lymphokine-activated killer T-cell-originated protein kinase Proteins 0.000 claims description 20
- 102100026753 Lymphokine-activated killer T-cell-originated protein kinase Human genes 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000011176 pooling Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 230000000877 morphologic effect Effects 0.000 claims description 3
- 238000002156 mixing Methods 0.000 claims description 2
- 238000003825 pressing Methods 0.000 claims description 2
- 239000010410 layer Substances 0.000 description 36
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 5
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000393496 Electra Species 0.000 description 1
- 241000590419 Polygonia interrogationis Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
- G06F40/44—Statistical methods, e.g. probability models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Probability & Statistics with Applications (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种中文拼写纠错方法,本发明通过将原始数据集中的常用词和常用字分别替换为易混词和易混字以增加训练难度,从而增加模型预测的准确性;同时本发明提供的纠错模型是在Macbert模型的基础上融合了字形和拼音信息进行优化,得到较为准确的检错分数从而较为准确的获得纠正字;当纠错模型无法针对句子的某个特定位置得到合适的纠正字时,本发明引入了二分类模型,将该特定位置的每个候选字进行预测以得到纠正字,从而能够较为准确、高效的对中文拼写进行纠错。
Description
技术领域
本发明属于自然语言处理领域,具体涉及一种中文拼写纠错方法。
背景技术
中文文本纠错(Chinese Text Correction,CTC)属于自然语言处理(NaturalLanguage Processing,NLP)的基本任务,中文文本纠错包含两种任务,一种是中文拼写纠错(Chinese Spelling Check,CSC),另一种是语法纠错(Grammatical Error Correction,GEC)。
中文拼写纠错对中文文本中的拼写错误(错字,别字)进行检测和纠正。一般使用对齐语料库,对齐语料是指训练数据中,错误的句子和正确的句子长度相等。中文语法纠错对中文文本中的拼写、标点、语法等类型错误进行纠正。可以使用非对齐语料库。可更正多字、少字、乱序等语法类错误。
目前中文拼写纠错分为工业界和学术界的做法。
工业界以百度的中文文本纠错为例(目前没有开源,只有介绍流程,提供了收费接口),百度的中文文本纠错的核心技术为:
1)语言知识:词法、句法的应用,结合语言模型。传统语言模型利用前面一串词语预测下一个词,百度使用受限语言模型,受限词表基于原词生成,能够利用错字的部分信息,如拼音、字形等。
2)知识计算:基于Memory/IR知识辅助,包含关联知识和文本理解,解决低频领域的知识泛化问题。
百度中文纠错的特点:
1)纠正多种类型的错误,包含拼写纠错和语法纠错。
2)支持文本、语音等不同输入形态。
3)快速灵活,可配置的深度定制。
但百度文本纠错每一步使用的技术很多,所用到的语料数据量很大,个人很难实现。
学术界和工业界的区别在于工业界一般是三步策略(PipeLine模式),学术界重点放在模型结构上,主要用到的是基于Transformer结构的模型及其衍生模型,如Bert、Roberta、Electra等,同时引入不同角度的注意力机制、文本不同模态的输入,比如语音、图像等,属于端到端的模型(end-to-end)。学术界主要关注的是语义、语法上的错误,对于知识性错误则在工业界关注更多。学术界重点在提出不同的模型,有的论文使用预训练+微调(Finetune)的策略,使用大规模语料库进行预训练(上百万个样本),成本依然很大。
发明内容
本发明提供了一种中文拼写纠错方法,该方法能够达到较高的纠错水准的同时,该方法所使用的模型较为容易获得,所需语料库的容量较低。
一种中文拼写纠错方法,包括:
获得原始数据集,根据易混字替换概率将原始数据集中的常用汉字替换成对应的易混字得到第一训练样本子集,根据易混词替换概率将原始数据集中的常用词中的一个字替换成对应的易混词中的一个字得到第二训练样本子集,第一训练样本子集和第二训练样本子集构建训练样本集,每个训练样本包括原始句子和对应的正确句子;
获得纠错模型,所述纠错模型包括Macbert模块、字形编码和拼音编码模块和输出融合模块;
其中,将原始句子输入Macbert模块得到原始句子中每个位置的检错概率,对应汉字表中每个字位于对应位置的第一概率组,以及每个位置对应的隐状态输出;
通过字形编码和拼音编码模块将原始句子分别进行字形编码和拼音编码得到初始字形编码和初始拼音编码,将初始字形编码和初始拼音编码分别进行全连接和激活函数得到字形编码和拼音编码;
通过输出融合模块将字形编码和拼音编码分别与对应位置的隐状态输出进行点乘,将点乘结果分配权重后相加,将相加的结果与对应位置的隐状态输出进行残差连接,将残差连接结果通过全连接层得到对应汉字表中每个字位于对应位置的第二概率组;
当第一概率组中最大的概率值满足概率分数阈值时,则将第二概率组中最大的概率值对应的字作为最终纠正字;
当第一概率组中最大的概率值不满足概率分数阈值时,则从原始句子中每个位置对应的第一概率组中筛选概率值排名TOPK的概率,通过筛选出的TOPK的概率对应的字与对应位置的原始字构建对应位置的候选字集;
获得二分类模型,将原始句子中每个位置的候选字集对应的候选排序特征分别输入二分类模型,获得每个位置对应的多个候选字的二分类结果,当原始句子中特定位置对应的每个候选字的二分类结果均为0时,则所述特定位置的最终纠正字为对应的第二概率组中最大的概率值对应的字;
当原始句子中特定位置对应的每个候选字预测值至少一个不为0时,则将二分类结果为1且二分类预测概率最大的候选字作为最终纠正字。
进一步的,将训练样本的原始句子输入VGG19网络,通过VGG19网络的倒数第二个全连接层得到初始字形编码。
进一步的,通过拼音编码模块将原始句子进行拼音编码得到初始拼音编码,包括:
获取训练样本中原始句子每个字的拼音和音调,将所述原始句子的每个字的拼音和音调通过拼音与向量表示的映射关系得到对应的下标向量,所述下标向量由数字下标组成,每个字的下标向量的维度相同;
将每个字的下标向量依次通过GRU层和池化层进行维度变换得到原始句子的初始拼音编码。
进一步的,所述拼音与向量表示的映射关系的构建方法,包括:
将声母和韵母由26个英文字符表示,通过“1”、“2”、“3”、“4”表示声调的一声、二声、三声、四声,将“0”用来填充,“5”表示未使用,共计32个字符,每个字符对应0-31的数字下标,每个字对应一个设定维数的下标向量。
进一步的,将训练样本中特定位置的候选字对应的候选排序特征输入二分类模型,所述候选排序特征包括以下特征:
(1)每个候选字与原始句子对应的原始字的拼音编码、字形编码、词向量的余弦相似度、欧式距离、切比雪夫距离和曼哈顿距离;
(2)每个候选字分别与原始句子对应的原始字的拼音、笔画顺序编码的最短编辑距离;
(3)针对每个候选字的第一概率值;
(4)将每个候选字替换原始字后得到的训练样本原始句子,通过语言模型计算替换后的训练样本原始句子的PPL困惑度;
(5)将每个候选字对应的原始字在原始句子中的位置的前后分别至多三个原始字的汉字语义、拼音编码、字形编码和词向量编码,分别与所述候选字的汉字语义、拼音编码、字形编码和词向量编码计算余弦相似度、欧式距离、切比雪夫距离和曼哈顿距离;其中,所述汉字语义通过Macbert模块的Encoder layer层获得,所述词向量编码通过Macbert模块的Embedding层获得;
(6)将每个候选字与原始句子中所述候选字对应的原始字所在的位置前后分别至多三个原始字形成的词语的词频;
(7)在MacBert模型的第6和第12层加上Linear层,计算训练样本的原始句子中每个位置的检错概率;
(8)原始句子中每个位置对应的TOPK概率的熵值;
(9)每个候选字在候选字集合中的排名分数特征;以及
(10)二分类模型标签,所述二分类模型标签表示每个候选字是否为正确字,正确字的标签为1,错误字的标签为0。
进一步的,从原始句子中每个位置对应的第一概率组中筛选概率值排名TOPK的概率的熵值H(x)为:
其中,x为原始句子中每个位置对应的TOPK的概率对应的字的索引,p(x)为第x个字对应的第一概率值,K为原始句子中每个位置对应的TOPK的概率对应的字数。
进一步的,所述纠错模型的总损失为:
MacBert模型包括多层Encoder layer层,以及与部分Encoder layer层相连的Linear层,通过Linear层预测得到训练样本中原始句子的每个位置上的字为错字的检错概率,通过Focal loss函数对检错概率进行计算得到检错损失;
通过纠错模型的全连接层输出纠正原始句子的预测结果,基于预测结果与正确句子采用交叉熵损失函数得到纠错损失;
对检错损失和纠错损失分配权重后加和得到所述纠错模型的总损失。
进一步的,所述根据易混字替换概率将常用字替换成对应的易混字,其中:
所述易混字是通过从所述常用汉字对应的混淆集获得,所述混淆集包括从数据字典中筛选的与所述常用汉字的拼音和字形相近的多个字;
所述混淆集包括音似字和形似字,所述音似字分包括同音同调、同音异调、近音同调或近音异调;
设定音似字和形似字替换常用字的概率作为易混字替换概率。
进一步的,所述根据易混词替换概率将常用词中的一个字替换成对应的易混词中的一个字,其中,易混词集包括与所述常用词对应的全拼相同词、简拼相同词和错词;
所述全拼相同词、简拼相同词的获得方法为:通过拼音输入法输入所述常用词时能够得到所述常用词的全拼相同词和简拼相同词;
所述错词的的获得方法为:通过拼音输入法输入所述常用词时按错相邻键形成的错词;
所述易混词替换概率为分别设定的全拼相同词、简拼相同词和错词替换常用词的概率,其中设定全拼相同词的概率最高。
与现有技术相比,本发明的有益效果为:
本发明通过将原始数据集中的常用词和常用字分别替换为易混词和易混字以增加训练难度,从而增加模型预测的准确性;同时本发明提供了检错模型是在Macbert模型的基础上进行优化,将字形信息和拼音信息进行融合从而较为准确的获得纠正字;当检错模型针对句子的某个特定位置没有把握得到合适的纠正字时,即第一概率值不满足预测概率值时,本发明引入了二分类模型,将该特定位置的每个候选字进行预测以得到纠正字,从而能够较为准确、高效的对中文拼写进行纠错。
附图说明
图1为本发明具体实施例提供的的中文拼写纠错方法框架图;
图2为本发明具体实施例提供的检错模型示意图。
具体实施方式
本发明提供了一种中文拼写纠错方法,如图1所示,包括:
获得原始数据集,原始数据集包括下载开源的28万(27万+1万)条句子数据(以下简称28万Data)、人民日报2014中的文章中获得的句子和从NLPCC数据集中获取长度接近于28万Data中句子平均长度的句子。
本发明具体实施例提供的28万Data的处理方式为:计算28万Data训练集中所有样本的平均句子长度(约45个字)和每个样本的平均错字数量(1到2个字)。同时统计该数据集中汉字的分布、错字的分布、连续错字的数量(如连续出现2个错字、三个错字、四个错字)等信息,这一步的统计是为了下一步构造训练数据时提供参考。
本发明具体实施例提供了将人民日报2014中的文章全部提取出来。对于提取出的文章,根据28万Data的处理后统计的信息,截断成适当长度的句子,并且不从句子中截断,保留句子的完整信息,以句号、问号、叹号结尾。
本发明具体实施例从相关网站获取汉字、词的统计信息,基于获取汉字、词的统计信息得到常用字,常用词,以及构建每个汉字的字典,字典可以对每个汉字获取到其对应的字频、包含该字的词语的词频和词性、笔画顺序编码(使用数字对汉字的笔画进行编码,可以在一定程度上表示字形,比如‘一’用1表示,‘二’就用‘11’,‘三’就用‘111’)、对应的图片、与该字同音近音的字、与该字形似字等信息。汉字、词的统计信息包括但不限于以下信息:
(1)获取常用汉字数据集,约3500个字(常用的3500个汉字已经包含28万数据集中几乎所有汉字)。
(2)获取现代汉语语料库词频表。
(3)获取现代汉语语料库字频表。
(4)获取现代汉语语料库分词类词频表(内容是词语的词性以及词频信息)。(5)获取汉字拼音、字形的混淆集,包含繁体、简体以及对应的转换表。
(6)获取汉字的笔画顺序编码。
(7)获取汉字的某种字体对应的图片。
本发明具体实施例提供的混淆集的易混字可以分为五类:音:代表拼音,调:代表音调,包含1,2,3,4,以及轻声,形:代表字形,近音:表示两个汉字发音相似,但不完全相同。同音:表示两个汉字拼音相同,不包含音调。五类分别是:同音同调、同音异调、近音同调、近音异调、形似。其中,前四类也可以是形似,就是有的汉字之间拼音相同、字形也相似。
本发明具体实施例提供了通过易混字构建训练样本集的方法,包括:
根据易混字替换概率将原始数据集中的常用汉字替换成对应的易混字得到第一训练样本子集,根据易混词替换概率将原始数据集中的常用词中的一个字替换成对应的易混词中的一个字得到第二训练样本子集,第一训练样本子集和第二训练样本子集构建训练样本集,每个训练样本包括原始句子和对应的正确句子。
在一具体实施例中,仅对汉字字频最高的前2000个字进行替换。对于这2000个常用字,根据数据字典可以获取每个常用字对应的混淆字集,同时需要对混淆字集进行过滤(过滤的目的是去除非常见字,繁体字)。混淆字集包含音似字和形似字。音似字分为四类:同音同调、同音异调、近音同调、近音异调。由于混淆集包含易混字较多,所以只选择常见的易混字,必要时进行人工选择。这些易混字之间会设置不同的概率,每个易混字有不同的替换概率,概率大的可以多构造一些样本。
在一具体实施例中,设定每个混淆字的替换概率的方式为:
对于一个字的混淆集,包含了前面说的五类。首先同音同调易混字最少,也更相似,对这类可以构造更多的训练样本。后面几类可以依次设置不同的替换概率。当前策略为:首先选择替换成拼音相似还是字形相似。可以设置70%的几率选择拼音相似的字,30%的几率选择字形相似的字。选择7 3开是因为拼音相似的错字出现更多。如果选择拼音相似的字,又可以设置不同的几率:同音同调:60%;同音异调:20%;近音同调:15%;近音异调:5%,当确定选择是同音同调、同音异调、近音同调、近音异调中的哪一种,就可以从该类别中随机选择一个汉字进行替换。
对于每一个数据集,如果包含这2000个常用字中的一个,且该字在原句中不是错字、并且相邻的前后字也不是错字,那么将该字特定概率替换成混淆集中某一个易混字。构造完后使数据集每个样本中原始句子的平均错字数量维持在1到2个左右,并且控制训练集中连续错字的数量。此步骤中有几个超参数:1、常用字数量(这里选2000);2、对每个热门汉字构造样本数量(对每个热门汉字构造样本数量是使用公式:汉字的频率除以250得到。汉字的频率是从汉字字频表中获取到。分母设置成250,同时使用前2000个热门汉字,最终可以在原始训练集中增加约10万个错字。设置2000和分母250,取决于加多少错字)。通过对测试集中的错误样例进行观察,发现模型对常见易混字如“得的地”,“那哪”,“他她它”等等,以及连续错两个字以上的情形预测效果较差,可以多构造这些类别的错误样本,提升模型在该类错误的纠错能力。
本发明具体实施例提供了通过易混词构建训练样本集的方法,包括:
根据常见的两种输入法即拼音26键、拼音9键构造数据。拼音输入一般习惯为全拼输入和简拼输入。用户输错的情况如,由于看错选择形似字词、由于输入拼音点成了同音字词和音似字词等。同时由于26键、9键分布的规则、按键相邻的原因,用户可能点错按键导致最终选择错误词语。首先对于训练集中的正确句子,使用分词工具(jieba分词)进行分词,根据汉语词频表选择出常用词,对于每个词语,根据全拼、简拼和由于按错相邻按键导致选择错误的词语,构造常用词与对应的混淆词语表,同时每一部分赋予不同的替换概率,全拼替换概率最高,其余概率依次递减。对于训练集中出现的常用词(长度可为2、3、4),在该词语对应混淆词中选择一个作为替换词参考(不是替换整个词,只替换词语中的一个字),使用选择的替换词中的某一个字替换原始词语中对应位置的字。
本发明具体实施例提供了常见词的混淆集,可以分为三部分。全拼相同、简拼相同、由于输入法相邻按键点错导致的。这三部分的数量递增的,与原始词的相似度确实递减的。所以对全拼相同的词语赋予更高的替换概率,其他两类,替换概率依次递减。
本发明具体实施例提供了纠错模型,如图2所示,该纠错模型包括Macbert模块、字形编码和拼音编码模块和输出融合模块,将训练样本中的原始句子输入Macbert模块得到原始句子中每个位置的检错概率、对应汉字表(vocab.txt,中文Bert模型对应的字表,约2万条)中每个字位于对应位置的第一概率组,第一概率组包括21128个概率值,每个概率值为汉字表中每个字在对应位置的概率、以及每个位置对应的隐状态输出;
本发明实施例通过字形编码和拼音编码模块将原始句子分别进行字形编码和拼音编码得到初始字形编码和初始拼音编码,将初始字形编码和初始拼音编码分别进行全连接和激活函数得到字形编码和拼音编码。
在一具体实施例中,将训练样本的原始句子输入VGG19网络,通过VGG19网络的倒数第二个全连接层得到初始字形编码。
在一具体实施例中,利用拼音与向量表示的映射关系得到初始拼音编码,构建所述拼音与向量表示的映射关系的方法,包括:
将声母和韵母由26个英文字符表示,通过“1”、“2”、“3”、“4”表示声调的一声、二声、三声、。四声,将“0”用来填充,“5”表示未使用,共计32个字符,每个字符对应0-31的数字下标,同时建立字符映射表【0:’0’,1:’1’,2:’2’,3:’3’,4:’4’,5:’5’,6:’a’,7:’b’,…31:’z’,】,对汉字拼音进行词向量(Embedding,词嵌入)表示,每个字符对应一个128维的向量,整个词向量权重矩阵为32×128。对于句子中的非汉字字符,拼音编码设置为全零。
在一具体实施例中,利用拼音与向量表示的映射关系得到初始拼音编码,包括:获取训练样本中原始句子中每个汉字的拼音(含音调),将所述字的拼音和音调通过向量表示的映射关系得到特定长度的,由对应下标组成的下标向量;将下标向量依次通过GRU层和池化层进行维度变换得到初始拼音编码。
在一具体实施例中,对于汉字“今”,使用pypinyin库中的pinyin()函数获取该字的所有拼音(含有音调,音调用数字表示,放在拼音最后,可能是多音字),结果为“jin1”,若为多音字,则选择第一个拼音。对于“jin1”中的每个字符,获取每个字符对应的下标并组成列表,结果为[15,14,19,1,0,0,0,0]。该列表长度为8的原因是,每个汉字的拼音长度不一定相同,所以对每个汉字的字符列表进行填充,填充后长度固定为8。接着通过Embedding层计算该字的词向量,维度为8×128。同理可以获取句子中所有字符的拼音词向量。使用单层双向GRU层对句子的拼音词向量进行维度变换。GRU的输出作为句子中每个字符的拼音词向量,通过池化层得到汉字“今”的初始拼音编码。
由于汉字语义、拼音编码、字形编码、Embedding维度较高(768维),在进行候选排序之前需要对这些特征进行降维,本发明具体实施例使用的方法是主成分分析(PCA)。
本发明通过输出融合模块将字形编码和拼音编码分别与对应位置的隐状态输出进行点乘,将点乘结果分配权重后相加,将相加的结果与对应位置的隐状态输出进行残差连接,将残差连接结果通过全连接层得到对应汉字表中每个字位于对应位置的第二概率组,第二概率组包括21128个概率值;通过融合模块将字形信息和编码信息融合到隐状态输出,使得预测的第二概率组更加准确。
如图2所示,本发明实施例提供的当第一概率组中最大的概率值满足概率分数阈值时,则将第二概率组中最大的概率值对应的字作为最终纠正字,进而得到纠正后的句子。
本发明实施例提供的当第一概率组中最大的概率值不满足概率分数阈值时,则从原始句子中每个位置对应的第一概率组中筛选概率值排名TOPK的概率,通过筛选出的TOPK的概率对应的字与对应位置的原始字构建对应位置的候选字集。
本发明具体实施例提供了当第一概率组中最大的概率值不满足概率分数阈值时,则从原始句子中每个位置对应的第一概率组中筛选概率值排名TOPK的概率,通过筛选出的TOPK的概率对应的字与对应位置的原始字构建对应位置的候选字集。
在一具体实施例中,TopK中K的值是通过分析候选中正确字的分布计算到的。经过分析,Top5可以有效包含正确结果(96%以上)。对于获取的TopK个字加入原始字使得该特定位置得到最多6个候选字。
在一具体实施例中,本发明纠错模型的总损失为:
MacBert模型包括多层Encoder layer层,以及与部分Encoder layer层相连的Linear层,通过Linear层预测得到训练样本中原始句子的每个位置上的字为错字的检错概率通过Focal loss函数对检错概率进行计算得到检错损失;通过纠错模型的全连接层输出纠正原始句子的预测结果,基于预测结果与正确句子采用交叉熵损失函数得到纠错损失;对检错损失和纠错损失分配权重后加和得到所述纠错模型的总损失。
在一具体实施例中,在本发明提供的MacBert模型的第六层和第十二层分别加上一个Linear层进行错误检测。使用Focal Loss损失函数的原因是,由于一个长句子中(四五十个字),错字的数量较少(1到2个),Focal Loss损失函数可以解决正负样本数量极不平衡问题。正样本:一个字是错字,称为正样本,也是模型要更关注的样本。负样本:句子中的正确字,称为负样本。由于错字数量少,防止负样本的损失占据主要部分,所以使用FocalLoss损失函数。
本发明具体实施例提供的二分类模型,将原始句子中每个位置的候选字集对应的候选排序特征分别输入二分类模型,获得每个位置对应的多个候选字的二分类结果,当原始句子中特定位置对应的每个候选字的二分类结果均为0时,则所述特定位置的最终纠正字为对应的第二概率组中最大的概率值对应的字。当原始句子中特定位置对应的每个候选字预测值至少一个不为0时,则将二分类结果为1且二分类预测概率最大的候选字作为最终纠正字。在一具体实施例中,将训练样本中特定位置的候选字对应的候选排序特征输入二分类模型,该候选排序特征主要包括以下特征:
(1)每个候选字与原始句子对应的原始字的拼音编码、字形编码、词向量的余弦相似度、欧式距离、切比雪夫距离和曼哈顿距离等。
(2)每个候选字分别与原始句子对应的原始字的拼音(含音调)、笔画顺序编码(使用数字对汉字的笔画进行编码,可以在一定程度上表示字形,比如‘一’用1表示,‘二’就用‘11’,‘三’就用‘111’)的最短编辑距离。
(3)针对每个候选字的第一概率值。
(4)将每个候选字替换原始字后得到的训练样本原始句子,通过语言模型(用来预测一个句子的合理程度或者通顺程度)计算替换后的训练样本原始句子的PPL困惑度(代表句子的合理程度,值越小,句子越通顺)。。
(5)将每个候选字对应的原始字所在原始句子中的位置的前后分别至多三个原始字的汉字语义、拼音编码、字形编码和词向量编码,分别与所述候选字的汉字语义、拼音编码、字形编码和词向量编码计算余弦相似度、欧式距离、切比雪夫距离和曼哈顿距离;其中,所述汉字语义通过Macbert模块的Encoder layer层获得,所述词向量编码通过Macbert模块的Embedding层获得。
(6)将每个候选字替换原始字后,与训练样本的原始句子中所述每个候选字对应的原始字所在的位置前后分别至多三个原始字形成的词语的词频。
(7)在MacBert模型的第6和第12层加上Linear层,计算训练样本的原始句子中每个位置的检错概率。
(8)原始句子中每个位置对应的TOPK概率的熵值;
从原始句子中每个位置对应的第一概率组中筛选概率值排名TOPK的概率的熵值H(x)为:
其中,x为原始句子中每个位置对应的TOPK的概率对应的字的索引,p(x)为第x个字对应的第一概率值,K为原始句子中每个位置对应的TOPK的概率对应的字数。
(9)每个候选字在候选字集合中的排名分数特征。
以及(10)二分类模型标签,所述二分类模型标签表示每个候选字是否为正确字,正确字的标签为1,错误字的标签为0。
在一具体实施例中,本发明提供的排名分数特征对于6个候选,每个候选都有个概率值。对这6个候选依据其概率进行降序排序。Rank:排序后,第一个候选rank值为1,第二个候选rank值为2,以此类推。TopP:P表示probability,概率。对于每个候选的TopP值:排序后,排在该字前面的所有候选字,包含当前字对应概率的累加和。TopK值:排序后,排在该字前面的所有候选字,包含当前字对应rank值的累加和。比如排序后第二个候选:它的TopK=1+2=3。1是第一个字的rank值,2是第二个字的rank值。
在一具体实施例中,当Macbert模块对样本中某个位置的最大预测概率小于特定阈值时,获取该位置的TopK个候选,对每个候选字构造所有特征,一共K组样本(每个候选的所有特征都是二分类模型的训练数据),由于最多只有一个样本的标签为0,所以正负样本比例不均衡(正样本,对应的候选字为正确的结果,标签为1的样本;负样本,对应的候选字为不正确的结果,标签为0的样本)。
在一具体实施例中,使用XGBOOST分类器,该模型本身有较多的超参数,如树的最大深度、学习率、弱分类器的数量、特征采样率、样本均衡调整参数等。通过GridSearchCV方法(网格化参数搜索)选择出最佳的一组超参数。
Claims (9)
1.一种中文拼写纠错方法,其特征在于,包括:
获得原始数据集,根据易混字替换概率将原始数据集中的常用汉字替换成对应的易混字得到第一训练样本子集,根据易混词替换概率将原始数据集中的常用词中的一个字替换成对应的易混词中的一个字得到第二训练样本子集,第一训练样本子集和第二训练样本子集构建训练样本集,每个训练样本包括原始句子和对应的正确句子;
获得纠错模型,所述纠错模型包括Macbert模块、字形编码和拼音编码模块和输出融合模块;
其中,将原始句子输入Macbert模块得到原始句子中每个位置的检错概率,对应汉字表中每个字位于对应位置的第一概率组,以及每个位置对应的隐状态输出;
通过字形编码和拼音编码模块将原始句子分别进行字形编码和拼音编码得到初始字形编码和初始拼音编码,将初始字形编码和初始拼音编码分别进行全连接和激活函数得到字形编码和拼音编码;
通过输出融合模块将字形编码和拼音编码分别与对应位置的隐状态输出进行点乘,将点乘结果分配权重后相加,将相加的结果与对应位置的隐状态输出进行残差连接,将残差连接结果通过全连接层得到对应汉字表中每个字位于对应位置的第二概率组;
当第一概率组中最大的概率值满足概率分数阈值时,则将第二概率组中最大的概率值对应的字作为最终纠正字;
当第一概率组中最大的概率值不满足概率分数阈值时,则从原始句子中每个位置对应的第一概率组中筛选概率值排名TOPK的概率,通过筛选出的TOPK的概率对应的字与对应位置的原始字构建对应位置的候选字集;
获得二分类模型,将原始句子中每个位置的候选字集对应的候选排序特征分别输入二分类模型,获得每个位置对应的多个候选字的二分类结果,当原始句子中特定位置对应的每个候选字的二分类结果均为0时,则所述特定位置的最终纠正字为对应的第二概率组中最大的概率值对应的字;
当原始句子中特定位置对应的每个候选字预测值至少一个不为0时,则将二分类结果为1且二分类预测概率最大的候选字作为最终纠正字。
2.根据权利要求1所述的中文拼写纠错方法,其特征在于,将训练样本的原始句子输入VGG19网络,通过VGG19网络的倒数第二个全连接层得到初始字形编码。
3.根据权利要求1所述的中文拼写纠错方法,其特征在于,通过拼音编码模块将原始句子进行拼音编码得到初始拼音编码,包括:
获取训练样本中原始句子每个字的拼音和音调,将所述原始句子的每个字的拼音和音调通过拼音与向量表示的映射关系得到对应的下标向量,所述下标向量由数字下标组成,每个字的下标向量的维度相同;
将每个字的下标向量依次通过GRU层和池化层进行维度变换得到原始句子的初始拼音编码。
4.根据权利要求3所述的中文拼写纠错方法,其特征在于,所述拼音与向量表示的映射关系的构建方法,包括:
将声母和韵母由26个英文字符表示,通过“1”、“2”、“3”、“4”表示声调的一声、二声、三声、四声,将“0”用来填充,“5”表示未使用,共计32个字符,每个字符对应0-31的数字下标,每个字对应一个设定维数的下标向量。
5.根据权利要求1所述的中文拼写纠错方法,其特征在于,将训练样本中特定位置的候选字对应的候选排序特征输入二分类模型,所述候选排序特征包括以下特征:
(1)每个候选字与原始句子对应的原始字的拼音编码、字形编码、词向量的余弦相似度、欧式距离、切比雪夫距离和曼哈顿距离;
(2)每个候选字分别与原始句子对应的原始字的拼音、笔画顺序编码的最短编辑距离;
(3)针对每个候选字的第一概率值;
(4)将每个候选字替换原始字后得到的训练样本原始句子,通过语言模型计算替换后的训练样本原始句子的PPL困惑度;
(5)将每个候选字对应的原始字在原始句子中的位置的前后分别至多三个原始字的汉字语义、拼音编码、字形编码和词向量编码,分别与所述候选字的汉字语义、拼音编码、字形编码和词向量编码计算余弦相似度、欧式距离、切比雪夫距离和曼哈顿距离;其中,所述汉字语义通过Macbert模块的Encoder layer层获得,所述词向量编码通过Macbert模块的Embedding层获得;
(6)将每个候选字与原始句子中所述候选字对应的原始字所在的位置前后分别至多三个原始字形成的词语的词频;
(7)在MacBert模型的第6和第12层加上Linear层,计算训练样本的原始句子中每个位置的检错概率;
(8)原始句子中每个位置对应的TOPK概率的熵值;
(9)每个候选字在候选字集合中的排名分数特征;以及
(10)二分类模型标签,所述二分类模型标签表示每个候选字是否为正确字,正确字的标签为1,错误字的标签为0。
7.根据权利要求1所述的中文拼写纠错方法,其特征在于,所述纠错模型的总损失为:
MacBert模型包括多层Encoder layer层,以及与部分Encoder layer层相连的Linear层,通过Linear层预测得到训练样本中原始句子的每个位置上的字为错字的检错概率,通过Focal loss函数对检错概率进行计算得到检错损失;
通过纠错模型的全连接层输出纠正原始句子的预测结果,基于预测结果与正确句子采用交叉熵损失函数得到纠错损失;
对检错损失和纠错损失分配权重后加和得到所述纠错模型的总损失。
8.根据权利要求1所述的中文拼写纠错方法,其特征在于,所述根据易混字替换概率将常用字替换成对应的易混字,其中:
所述易混字是通过从所述常用汉字对应的混淆集获得,所述混淆集包括从数据字典中筛选的与所述常用汉字的拼音和字形相近的多个字;
所述混淆集包括音似字和形似字,所述音似字分包括同音同调、同音异调、近音同调或近音异调;
设定音似字和形似字替换常用字的概率作为易混字替换概率。
9.根据权利要求1所述的中文拼写纠错方法,其特征在于,所述根据易混词替换概率将常用词中的一个字替换成对应的易混词中的一个字,其中,易混词集包括与所述常用词对应的全拼相同词、简拼相同词和错词;
所述全拼相同词、简拼相同词的获得方法为:通过拼音输入法输入所述常用词时能够得到所述常用词的全拼相同词和简拼相同词;
所述错词的的获得方法为:通过拼音输入法输入所述常用词时按错相邻键形成的错词;
所述易混词替换概率为分别设定的全拼相同词、简拼相同词和错词替换常用词的概率,其中设定全拼相同词的概率最高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310311640.3A CN116306597A (zh) | 2023-03-28 | 2023-03-28 | 一种中文拼写纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310311640.3A CN116306597A (zh) | 2023-03-28 | 2023-03-28 | 一种中文拼写纠错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306597A true CN116306597A (zh) | 2023-06-23 |
Family
ID=86834153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310311640.3A Pending CN116306597A (zh) | 2023-03-28 | 2023-03-28 | 一种中文拼写纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306597A (zh) |
-
2023
- 2023-03-28 CN CN202310311640.3A patent/CN116306597A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489760B (zh) | 基于深度神经网络文本自动校对方法及装置 | |
CN109918666B (zh) | 一种基于神经网络的中文标点符号添加方法 | |
CN100492350C (zh) | 以无模式输入将一种文本形式转换成另一种文本形式的语言输入体系结构 | |
KR100766169B1 (ko) | 컴퓨터-구현 사전 학습 방법 및 상기 방법을 사용하는 장치, 입력 방법 및 상기 입력 방법을 사용하는 사용자 단말기 장치 | |
CN110276069B (zh) | 一种中国盲文错误自动检测方法、系统及存储介质 | |
CN109241540B (zh) | 一种基于深度神经网络的汉盲自动转换方法和系统 | |
EP0830668A1 (en) | Systems and methods for word recognition | |
CN113435203A (zh) | 多模态命名实体识别方法、装置以及电子设备 | |
CN105404621A (zh) | 一种用于盲人读取汉字的方法及系统 | |
CN114153971B (zh) | 一种含错中文文本纠错识别分类设备 | |
CN102214238B (zh) | 一种汉语词语相近性匹配装置及方法 | |
CN113268576B (zh) | 一种基于深度学习的部门语义信息抽取的方法及装置 | |
JP6626917B2 (ja) | 英語の音節計算法に基づいた可読性評価方法及びシステム | |
CN114970503A (zh) | 一种基于预训练的字音字形知识增强的中文拼写纠正方法 | |
KR20230009564A (ko) | 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치 | |
CN114757184B (zh) | 实现航空领域知识问答的方法和系统 | |
CN113449514A (zh) | 一种适用于特定垂直领域的文本纠错方法及其纠错装置 | |
CN114780582A (zh) | 基于表格问答的自然答案生成系统及其方法 | |
CN101667099B (zh) | 一种连笔键盘文字输入的方法和设备 | |
KR100542757B1 (ko) | 음운변이 규칙을 이용한 외래어 음차표기 자동 확장 방법및 그 장치 | |
CN116306597A (zh) | 一种中文拼写纠错方法 | |
CN114896966A (zh) | 一种中文文本语法错误定位方法、系统、设备及介质 | |
CN112528003B (zh) | 一种基于语义排序和知识修正的多项选择问答方法 | |
CN111429886B (zh) | 一种语音识别方法及系统 | |
CN111090720B (zh) | 一种热词的添加方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |