一种基于electra-gcnn-crf模型的中文文本语法错误检测方法
技术领域
1.本发明涉及自然语言处理技术领域,是一种基于electra-gcnn-crf模型的中文文本语法错误检测方法。
背景技术:2.随着互联网的普及,中文电子文本的数量呈爆炸式增长。由于文本质量参差不齐,语法错误严重影响了人们的阅读效率。面对海量的中文文本,如何快速高效地自动检测语法错误变成了一个亟需解决的问题。中文语法错误检测(chinese grammatical error diagnosis,cged)的目标是自动检测中文语句中的语法错误,如成分缺失或冗余、语序不当等。对于给定的文本,cged的检测任务一般包括是否有错误、错误的类型和错误的发生位置。中文语法错误检测对于辅助汉语写作和文章校对非常有意义。在中文辅助写作中,借助中文语法错误检测系统,学习者可以快速定位错误点和类型,并对文章进行修改,提高写作效率。此外,借助中文语法错误检测工具可以让审校人员节省大量时间,提高出版业校对过程中的工作效率。
3.传统的语法错误检测研究主要集中于英文。与英文相比,中文不存在显著词边界,也没有时态、单数和复数等识别元素,语法复杂度高且蕴含的语义信息丰富。目前,许多研究者参考了英文语法纠错方法,使用生成式方法直接进行改错,跳过了错误检测环节,只有少量研究采用序列标注方法进行中文语法错误检测。然而,生成式方法往往从全局语义出发,忽视了中文文本局部信息对语法检错的帮助,并存在所需数据量大、难以训练和可靠性差等问题,使其不能很好的适用于中文语法错误检测任务。因此,如何在数据有限的情况下充分利用文本局部信息提高中文语法错误检测的效果是该研究的一个难点。
技术实现要素:4.本发明为突出文本特征,提高语法错误检测的准确率,本发明提供了一种基于electra-gcnn-crf模型的中文文本语法错误检测方法,本发明提供了以下技术方案:
5.一种基于electra-gcnn-crf模型的中文文本语法错误检测方法,所述方法包括:
6.步骤1:在输入层使用electra预训练语言模型替换bert模型,取判别器作为最终的electra预训练语言模型;
7.步骤2:建立gcnn网络,在卷积网络中添加门控和残差机制,获取文本的局部信息,减轻语法错误对上下文语义的影响;
8.步骤3:通过crf获取文本标签的依赖关系;
9.步骤4:输出起始位置,结束位置和语法错误类型格式的三元组输出语法错误检测结果。
10.优选地,所述步骤1具体为:
11.输入层用于对文本进行向量化处理,使用electra模型代替bert模型以提高模型
的语法检错能力,所述electra模型由生成器和判别器两部分组成,生成器是个小型mlm模型,负责对输入的token进行随机替换,通过判别器判别生成器的输出是否发生了替换,最后取判别器作为最终的electra预训练语言模型。
12.优选地,所述步骤2具体为:
13.将每句话的字所对应的字向量直接作为输入,给残差门控卷积神经网络进行进一步处理;残差门控卷积神经网络由多个gcnn单元组成,每个gcnn单元包含带门控机制的卷积核和残差单元;
14.gcnn单元内的操作通过下式表示:
[0015][0016][0017]
其中,h表示由输入层得到的隐藏层向量,conv表示卷积操作,σ表示sigmoid激活函数,表示向量的哈达玛积,c表示经过门控卷积单元的局部特征向量,layernorm表示层归一化,表示向量相加,z表示经过gcnn得到的文本特征向量。
[0018]
优选地,所述步骤3具体为:
[0019]
crf层根据提取的文本特征向量输出标签,crf模型通过特征转移函数计算概率分数,判断当前位置与相邻位置标签的依赖关系。
[0020]
本发明具有以下有益效果:
[0021]
本发明使用electra预训练语言模型避免传统预训练语言模型在预训练阶段与微调阶段数据不匹配的问题;提出一种区别于传统方法的文本特征提取方法,通过残差门控卷积神经网络在文本全局语义信息的基础上提取文本的局部语义和位置信息,有效解决传统中文文本检错方法中忽视局部信息的问题,无需人工提取词法句法特征,节约了人力和时间成本,提升文本检错效果,满足了中文语法错误自动检测的需求。
附图说明
[0022]
图1为本发明的总体结构图;
[0023]
图2为electra预训练语言模型训练流程;
[0024]
图3为gcnn网络结构图;
[0025]
图4为实验结果图。
具体实施方式
[0026]
以下结合具体实施例,对本发明进行了详细说明。
[0027]
具体实施例一:
[0028]
根据图1至图4所示,本发明为解决上述技术问题采取的具体优化技术方案是:本发明涉及一种基于electra-gcnn-crf模型的中文文本语法错误检测方法。
[0029]
步骤1:在输入层使用electra预训练语言模型替换bert模型,取判别器作为最终的electra预训练语言模型;
[0030]
所述步骤1具体为:
[0031]
输入层用于对文本进行向量化处理,使用electra模型代替bert模型以提高模型
的语法检错能力,所述electra模型由生成器和判别器两部分组成,生成器是个小型mlm模型,负责对输入的token进行随机替换,通过判别器判别生成器的输出是否发生了替换,最后取判别器作为最终的electra预训练语言模型。这种预训练方式避免了因[mask]标记导致出现预训练阶段与微调阶段数据不匹配的问题,并且大幅提高了训练效率,也使electra模型对文本中的语义变化特别敏感,适用于语法错误检测任务,其性能大幅高于bert模型。
[0032]
由于文本中包含语法错误,传统如基于lstm网络的上下文语义提取方法会受到语法错误的影响,不利于语法错误检测任务。因此本发明使用残差门控卷积网络(gcnn)提取文本的局部语义,缓解语法错误对文本特征提取的影响。gcnn结构如图3所示,由卷积核长度分别为5和3的卷积单元组成。卷积单元中添加glu门控机制和残差机制使其能够更好地捕捉文本特征,降低无效信息带来的影响。
[0033]
步骤2:建立gcnn网络,在卷积网络中添加门控和残差机制,获取文本的局部信息,减轻语法错误对上下文语义的影响;
[0034]
所述步骤2具体为:
[0035]
将每句话的字所对应的字向量直接作为输入,给残差门控卷积神经网络进行进一步处理;残差门控卷积神经网络由多个gcnn单元组成,每个gcnn单元包含带门控机制的卷积核和残差单元;
[0036]
gcnn单元内的操作通过下式表示:
[0037][0038][0039]
其中,h表示由输入层得到的隐藏层向量,conv表示卷积操作,σ表示sigmoid激活函数,表示向量的哈达玛积,c表示经过门控卷积单元的局部特征向量,layernorm表示层归一化,表示向量相加,z表示经过gcnn得到的文本特征向量。
[0040]
步骤3:crf层根据提取的文本特征向量输出标签,crf模型通过特征转移函数计算概率分数,判断当前位置与相邻位置标签的依赖关系。。crf模型通过特征转移函数计算概率分数,以判断当前位置与相邻位置标签的依赖关系,可以解决输出序列与标注规则不符的问题,如“b-s”标签后不能接“b-w”标签等,只能接“i-s”或者“o”标签。
[0041]
步骤4:输出起始位置,结束位置和语法错误类型格式的三元组输出语法错误检测结果,使输出更加直观。
[0042]
为了验证本发明的有效性,使用nlptea中文语法错误检测数据集进行实验。该数据集是一份人工标注过的语法错误数据集,语料来源是母语不为汉语的学习者在中文写作中产生的错误样例。该数据集将语法错误分为四种类型:selection error(记为“s”,即用词不当),redundant error(记为“r”,即成分冗余),missing error(记为“m”,即成分缺失)和word ordering error(记为“w”,即词序不当)。对于每段语法错误生成“起始位置,结束位置,语法错误类型”格式的三元组,如果语句中不存在语法错误则输出“correct”。数据集里的语句可能没有语法错误,也可能包含一种或多种语法错误,数据规模如表1所示。
[0043]
表1数据集规模
[0044]
种类训练集验证集测试集句子3117877951457
字符141795035198655313s类型错误3042075171695r类型错误149323724768m类型错误205305165864w类型错误48231222327
[0045]
本实施例采用f1值评价模型性能,其中隐藏层维度为768,electra和bert预训练模型的transformer结构为12层,多头注意力机制的头数为12,每批次大小为240,优化器采用的是adam,丢弃率为0.15,最大迭代次数为20,同时使用早停法缓解过拟合。crf层的学习率为10-3,其他部分的学习率为10-5。gcnn层的卷积核宽度为5和3。
[0046]
本实施例在相同环境下设置了4组对照试验以验证本方法的有效性:
[0047]
(1)electra-softmax:仅使用electra预训练语言模型;
[0048]
(2)electra-crf:使用electra预训练模型和crf层;
[0049]
(3)bert-gcnn-crf:将本方法的预训练语言模型替换为bert-base预训练模型,其余部分不变;
[0050]
(4)electra-bilstm-crf:将本文模型的gcnn层替换为2层bilstm神经网络,其余部分不变;
[0051]
(5)electra-gcnn-crf:本发明提出的中文语法错误检测方法。
[0052]
实验结果如图4所示。本方法在所有模型中取得最高的f1值,表明electra的对抗式训练方式对语义变化较为敏感,与bert相比更适合中文语法错误检测任务;使用gcnn网络相较于bilstm网络能够更好地提取文本特征,缓解语法错误对于上下文语义的影响。
[0053]
本发明将文本语法错误检测视为序列标注任务,在输入层使用electra预训练语言模型替换bert模型,避免预训练阶段与微调阶段数据不匹配的问题;通过gcnn获取文本的局部信息,减轻语法错误对上下文语义的影响;通过crf得到表示文本中包含的语法错误范围和类型的标签序列,最后输出语法错误检测结果。本发明通用性较强,无需人工提取词法句法特征,节约了人力和时间成本,效果较好,满足了中文语法错误自动检测的需求。
[0054]
以上所述仅是一种基于electra-gcnn-crf模型的中文文本语法错误检测方法的优选实施方式,一种基于electra-gcnn-crf模型的中文文本语法错误检测方法的保护范围并不仅局限于上述实施例,凡属于该思路下的技术方案均属于本发明的保护范围。应当指出,对于本领域的技术人员来说,在不脱离本发明原理前提下的若干改进和变化,这些改进和变化也应视为本发明的保护范围。