本发明涉及文本纠错,具体指一种基于多维动态候选集的文本纠错方法。
背景技术:
1、文本纠错通常作为字符识别和语音识别的后续任务,旨在自动识别并改正识别、拼写、语法及语义错误,进而提升文本质量与可读性。目前,中文文本纠错任务受限于数据集的匮乏,模型性能往往受限于训练数据的质量。因此,为了减少对标注数据集的依赖,目前主流的文本纠错模型通常使用大量通用纠错数据进行预训练,然后在相应的应用领域进行微调弥补数据集的不足。然而,实际应用中,对于一些低频错误类型,模型可能因为样本不足而难以学习到有效的纠错策略。因此,解决汉字文本低频错误类型成为了新的研究方向。此外,文本纠错还面临着自然语言歧义性的问题。同时,在保证纠错质量的情况下满足纠错的实时性和效率也是一个值得研究的问题。
2、目前,汉字文本纠错的方法有许多,传统的文本纠错方法多依赖于统计语言模型和规则。基于规则的方法虽然直观有效,但建立规则需要专业人员参与,无法大规模应用。基于统计学习方法通过统计语料库中的字词序列概率来预测错误,解决了大规模处理文本数据的问题,但是不能解决错误多样性问题。随后,深度学习开始应用到文本纠错领域,后续研究者将序列标注方法引入到中文语法错误检测中,提升了检测性能。plome模型在训练阶段采用语义混淆集,在一定程度缓解了训练集不足的问题。dcn模型通过强化上下信息,解决语义不连贯问题。 dingmin等人提出了端到端混淆集引导编码器-解码器模型,提升了纠错性能。realise的模型将融合多模态特征。soft-masked bert模型提出基于软掩盖策略,通过保留部分原有字符特征,配合大量的数据进行预训练,缓解了自然语言纠错的歧义性,提升了识别的准确性。spellgcn 模型使用图神经网络对相似字音和相似字形进行图嵌入编码操作,约束了输出的范围是相似字形和相似字音中选取,bert 模型仅用于计算字向量,计算结果用于纠错,错误概率较低。
3、然而,当前的文本纠错方法还存在两个问题,限制了文本纠错准确性:
4、(1) 在实际的应用场景中,在处理领域文本的低频字符错误方面缺乏敏锐性,这限制了文本纠错在特定场景的应用能力。
5、(2) 字符细粒度特征与字形约束之间的关联性未能被充分利用,文本纠错往往与字符的字形特征密切相关。目前的方法在训练的过程中对于字符的替换策略仍然停留在简单的随机删改策略,丢失了原有的字符字形特征,偏离了原有的字符,这使得后续的纠错流程不可避免的出现纠错偏差。
技术实现思路
1、本发明针对现有技术的不足,提出一种基于多维动态候选集的文本纠错方法。
2、为了解决上述技术问题,本发明的技术方案为:
3、步骤1、获取汉字识别文本纠错的sighan系列数据集,获取输入文本s。
4、使用文本纠错任务的公开的通用数据集sighan系列,对该数据集进行训练集、验证集和测试集的数据划分,为后续实验提供基础数据支持。
5、步骤2、使用bert预训练模型作为文本编码器编码对于给定的输入文本序列,在输入到文本检错模型之前,将token嵌入、segment嵌入、position嵌入、词性嵌入通过向量加法进行合并,得到输入文本的最终嵌入表示,得到相应的嵌入序列表示。假设输入字符为xi,那么嵌入表示可以使用字符嵌入、位置嵌入和分割嵌入进行表示。随后将嵌入序列e输入传递给文本检错模型进行进一步的处理和分析。
6、步骤3、将得到的嵌入序列e,输入到由多个transformer模块组成的检错网络,利用transformer模块的注意力机制来检错可能发生错的字符,将得到的结果以概率p形式输出。输出错误序列l中第i个字符的错误概率以表示。其中,可以通过以下公式计算:
7、
8、式中,表示在给定输入(x)的条件下,检测网络输出第 个字符为错误标签的概率,这里 代表sigmoid函数,用于将线性组合的输出映射到[0,1]区间,从而表示概率,表示字符序列中第个字符的隐藏状态,代表训练过程中不断调整的权重,为模型在线性变化过程中使用的偏置值。步骤4、将错误序列l和文本序列e输入到语言模型中,使用软遮盖编码将两者组合成编码。
9、步骤5、将编码作为输入,利用bert语言纠错模块和特征融合模块组成的纠错网络对错误字符进行纠正,最终输出正确字符。
10、作为优选,步骤4的具体步骤包括:
11、步骤4.1、首先将字符嵌入编码e和错误概率p二者结合的加权和来计算软遮盖后的嵌入编码。例如,字符的第i个软编码定义为:
12、
13、式中,为掩码嵌入,用于在字符被认为是错误时提供替代信息;为输入嵌入,代表原始字符的编码。随着错误率的升高接近,反之,当错误率较低时,接近。这种软掩盖编码方式允许模型在保持原始字符信息的同时,灵活地考虑潜在的字符错误。
14、步骤4.2、将得到的软掩码标记,输入到字符纠错网络中。
15、作为优选,步骤5的具体方法为:将bert语言纠错模块得到的纠错结果和错误序列以及字根、字符和关键笔形特征输入到特征融合模块中,通过字符相似度算法匹配字形相似候选字和领域字符。其中汉字相似度的算法计算过程如下:
16、
17、式中,sim(m1, m2) 表示 m1和 m2的相似度,n 表示总特征数,包括笔画数、汉字结构数、偏旁部首和关键笔形,fi (m1, m2) 表示第 i 个特征空间中字符相似度,wi表示第 i个特征的权重;
18、将得到的结果进行相似度概率求和,再进行归一化处理处理。然后,计算字符离散度,如果离散度算法不再改变,输出;反之,将得到的结果输入到语言模型多次迭代,直到字符离散度检测算法判定不再改变,输出结果。
19、作为优选,步骤5的具体步骤包括:
20、步骤5.1、首先,将得到的软掩码输入到bert语言纠错模块进行文本纠错。其中,使用多头注意力机制并行地执行多个注意力函数来捕获输入序列中不同位置的信息,输出纠错结果。
21、步骤5.2、网络中还包含一个前馈神经网络(ffn),同于对bert语言纠错模块输出结果进行非线性变换,以增强模型的表达能力,其计算公式如下:
22、
23、式中,w1,w2为权重矩阵,b1和b2为偏置值。
24、步骤5.3、序列中每个位置的纠错概率,模型采用函数进行归一化,得到相应的字符的错误概率p。其中每个位置的纠错概率计算公式如下:
25、
26、式中, 表示在给定输入序列(x)的条件下,第i个字符被纠正为候选字符列表中第j个字符的概率,是编码模块输出的隐藏状态,和是模型参数。
27、步骤5.4、特征融合模块的输入是bert语言纠错模块的纠错文本。将纠错结果和错误序列,以及字符、字根和关键笔形特征一同输入特征融合模块中,通过字符相似度算法匹配字形相似候选字混淆集和领域字符混淆集。将得到的结果进行相似度概率求和,再进行归一化处理处理。然后,计算字符离散度,如果离散度算法不再改变,输出;反之,将归一化处理后的结果输入到语言模型多次迭代,直到字符离散度算法判定不再改变,输出结果。
28、作为优选,为了有效地评估字符多个维度特征的相似程度,设计了一种字符离散度检测算法。该算法通过计算每个字符的离散程度,以识别可能存在错误的字符。使用了以下公式计算每个字符的离散程度:
29、
30、
31、
32、式中,是字符离散检测的方差,表示在第 i 个位置字符的离散度,,表示第 i个位置字符在多个维度的概率平均值。在此,以融合结果为基础,计算该字符的多维离散度。同时,也针对检测生成的字符结果计算其在三个维度的离散度。当某个字符的离散度小于0.5时,将其视为不可信字符,并将其标记为存在错误位置。通过这种方式,可以判断字符迭代纠错过程是否有效改正错误的字符。
33、作为优选,使用交叉熵对错误检测损失和字符纠错损失进行优化,使得网络得到收敛。
34、为了准确计算模型的损失,使用交叉熵对错误检测损失和字符纠错损失进行优化,使得网络得到收敛。实验中,模型训练过程的损失可以表示为:
35、
36、
37、其中,是检测网络训练的目标损失,是文本纠错网络的训练损失。使用线性组合的方式计算总体的损失函数。
38、
39、其中,
