CN115034218A - 一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法 - Google Patents
一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法 Download PDFInfo
- Publication number
- CN115034218A CN115034218A CN202210657210.2A CN202210657210A CN115034218A CN 115034218 A CN115034218 A CN 115034218A CN 202210657210 A CN202210657210 A CN 202210657210A CN 115034218 A CN115034218 A CN 115034218A
- Authority
- CN
- China
- Prior art keywords
- error
- chinese
- errors
- model
- word
- 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
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/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- 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/49—Data-driven translation using very large corpora, e.g. the web
Abstract
本发明提出一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法。属于自然语言处理技术领域。本发明的目的是为了解决复杂的中文语法错误诊断问题,识别出中文文本中存在的语法错误,输出错误的位置和类型,并给出纠正意见,节省人工复核的时间。本发明设计了三类模型处理不同的问题:中文语法错误检查模型、中文语法错误纠正模型、中文拼写错误纠正模型,并使用编辑级别投票的方法集成三类模型的输出。中文语法错误诊断任务是一项低资源任务,本发明提出使用多阶段的训练策略缓解这一现象,其中一个预训练阶段使用无监督合成语法错误的数据,两个微调阶段使用真实语法错误的数据。本发明可用于各种文本校对场景,提高了校验文章的效率。
Description
技术领域
本发明属于自然语言处理技术领域,特别是涉及一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法。
背景技术
语法错误在日常生活中十分常见,这些错误通常是由语言使用者的书写、自动语音识别、光学字符识别等原因引起的。中文语法错误诊断(Chinese Grammar ErrorDiagnosis, CGED)技术可以自动识别出文本中的语法错误,具有重要的研究意义。
随着互联网的飞速发展,中文语法错误诊断技术的应用前景也愈发广阔。数字化存储的电子文本已经渗透了如今人们生活的各个方面,尤其是电子文本数量的增长速度也愈发势不可挡。尤其是在新闻媒体等领域,每天都会新增海量的文本信息,同时这些领域文字表述的准确性和流畅性是至关重要的,传统的以人工为主的查错已经不能适应日益增多的电子文本信息的发展,迫切需要中文语法错误诊断系统自动发现并修改文本中的语法错误。此外汉语是世界上使用人口最多的语言,随着中国国际影响力不断提高,近年来,越来越多的人开始学习汉语。然而汉语是一门复杂的语言,具有不同语言和知识背景的人很难很好地学习汉语。非母语的汉语初学者在使用汉语时,非常容易出现语法错误。中文语法错误诊断技术可以为汉语初学者提供便利,及时找出初学者们使用汉语时产生的语言错误。
中文语法错误诊断任务通常处理四种语法错误:字符串冗余(Redundant words,R)、缺失(Missing word,M)、误用(Selection errors,S)、乱序(Word ordering errors,W)。输入句子可能没有错误,也可能同时包含多个错误类型。系统需要给出(1)该输入是否包含错误;(2)识别句子所含错误类型;(3)标记出句子中语法错误的位置和范围;(4)对缺失和误用错误给出修正答案。考虑到汉语是由许多象形文字组成的语言,并且没有形式上的分词符,当上下文发生变化时,每个字符的含义都可能发生巨大的变化,因此中文语法错误诊断是一项具有挑战性的技术。本发明提出的基于多阶段训练和编辑级别投票的中文语法错误诊断系统试图解决如下困难:
一、中文语法错误诊断任务要求系统针对多类错误进行检查和纠正,这是单一模型难以完成的,本发明设计了三类模型处理不同的问题,分别是中文语法错误检查模型、中文语法错误纠正模型、中文拼写纠正模型,并使用编辑级别投票的方法集成三类模型的输出;
二、中文语法错误诊断任务是一项低资源任务,目前已公开的数据较少,当采用复杂度较高的模型时,容易发生过拟合现象。本发明为了缓解这一现象,引入更大规模的数据,包括无监督合成语法错误的数据等。具体地,本发明使用多阶段的训练策略,包括一个预训练阶段和两个微调阶段。
发明内容
本发明提出了一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法,所述方法能够识别出中文文本中可能存在的语法错误,输出错误位置、错误类型和纠正意见。
本发明是通过以下技术方案实现的,本发明提出一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法,所述方法具体包括:
步骤一、对系统中的模型进行多阶段训练,包括1个预训练阶段和2个微调阶段,其中预训练阶段使用无监督合成语法错误的数据,微调阶段使用真实语法错误的数据;
步骤二、对于输入的文本,使用中文语法错误检查模型,以字符为单位进行序列标注建模,给出文本中可能存在的错误的类型和位置;
步骤三、使用中文语法错误纠正模型,采用基于序列到编辑的方法,除了确定文本中错误的类型和位置外,还给出缺失和误用错误的纠正意见;
步骤四、使用中文拼写错误纠正模型,针对文本中最常出现的误用错误进行检查,并给出相应的纠正结果;
步骤五、对于上述三类模型的输出,使用编辑级别的投票策略集成多个模型的输出结果。
进一步地,对系统中的模型进行多阶段训练,包括1个预训练阶段和2个微调阶段,其中预训练阶段使用无监督合成语法错误的数据,微调阶段使用真实语法错误的数据,具体过程包括以下步骤:
步骤1.1、使用包含合成语法错误的大量平行句对进行预训练,生成过程中错误的具体概率和比例是从CGED数据中统计得到;语料来源于中文维基百科和中文新闻语料,对其进行分句、清洗后,随机选取一部分得到;合成的语法错误分为词级别和字符级别两个粒度;
步骤1.2、使用中文GEC语料库和CGED语料库中有错误的数据进行微调;GEC语料库源自NLPCC 2018的语法修正任务训练集,数据中包含错误句和正确句的平行句对;GEC 任务和CGED任务不完全一致,GEC任务的输入是可能包含语法错误的文本,输出是正确的纠正过的文本;而CGED任务需要指出错误的类型和位置,并对应给出纠正结果;为了将GEC任务的数据用于CGED任务,使用编辑抽取工具ERRANT从错误句-正确句的句对中抽取出错误的类型、位置和纠正结果;
步骤1.3、使用数量少且质量高的CGED语料库进行微调;本阶段使用有错误和无错误的数据参与训练。
进一步地,在步骤1.1中,
在词级别生成语法错误,首先需要使用中文分词工具将每个无错误的句子分割成词,然后随机选择一定数量的词,所选词的数量是从正态分布中抽样的概率与句子中单词数量的乘积;对于每个选定的单词,以一定概率执行四个操作,分别是模拟误用错误的替换操作、针对缺失错误的删除操作、针对冗余错误的插入操作、针对乱序错误的打乱操作,四种修改操作均不会对命名实体进行;四种操作具体执行为:(1)50%的概率执行替换操作,所选词将被具有相似含义、发音或者包含相同字符的词所替换;40%的情况下模拟相似意义造成的混淆,使用开源工具Synonyms选取所选词的同义词进行替换;30%的情况下模拟相似发音造成的混淆,将所选单词替换为具有相似或相同发音的词;30%的情况下从词表中选择和所选词拥有至少一个相同字符的词进行替换;(2)20%的概率执行删除操作,所选词将被删除;(3)20%的概率执行插入操作,在所选词的前面或后面添加一个词;60%的情况下从CGED往年数据中的冗余词错误分布中随机采样,20%的情况下从中文停用词中随机选择,20%的情况下从词表中随机选择;(4)10%的概率执行打乱操作,将所选词与前后距离不大于2的词进行交换,交换不会跨越标点符号;
字符级别生成语法错误合成方法具体为:(1)50%的概率执行替换操作,所选字将被具有相似发音或者字形的字所替换;60%的情况下替换为发音相似的字;20%的情况下替换为字形相似的字;20%的情况下从词表中随机选择;(2)20%的概率执行删除操作,所选字将被删除;(3)20%的概率执行插入操作,在所选字的前面或后面添加一个词;(4)10%的概率执行打乱操作,将所选字与前后距离不大于2的字进行交换,交换不会跨越标点符号。
进一步地,步骤二中所述的中文语法错误检查模型,旨在找出句中可能存在的语法错误,并给出其错误类型和具体位置,该模型以字符为单位进行序列标注建模,采用BIO标注方法;模型整体采用ELECTRA-CRF结构;将输入Transformer Encoder的wordembedding层和ELECTRA最后一层隐藏层的输出拼接,作为输出的上下文向量;在深度神经网络中,每一层学习到的表示不同,网络的底层更关注词法,而高层更关注语义;为了考虑标签的上下文信息,加入CRF层,CRF可以考虑相邻数据的标记信息,学到标签之间的约束信息,从而尽可能避免最终预测的序列标注结果中的不合法情况。
进一步地,步骤三中所述的中文语法错误纠正模型,旨在确定错误的类型和位置的同时,给出缺失和误用错误的纠正意见;对输入的可能存在语法错误的句子,序列到编辑的模型预测其编辑序列,通过一系列编辑操作,即可把存在语法错误的句子转变为正确的句子,将上述的编辑操作被定义为针对Token的变换;变换分为五类:$KEEP,$DELETE, $REORDER,$APPEND,$REPLACE;其中$KEEP,$DELETE,$REORDER是与Token无关的变换,$KEEP表示不做修改,$DELETE表示删除当前Token,$REORDER表示当前 Token是需要重新排序的一部分;$APPEND,$REPLACE是与Token相关的变换, $APPEND_X表示在当前Token前的位置插入X;$REPLACE_X表示将当前Token替换为X;从GEC数据集和CGED数据集中收集变换集合,包括3个与Token无关的变换 $KEEP、$DELETE、$REORDER,2661个$APPEND变换,3307个$REPLACE变换。
进一步地,步骤三中所述的中文语法错误纠正模型的结构由一个上下文特征提取器 BERT和两个预测头组成;对于输入序列X={x1,x2,…,xn},使用BERT提取其上下文特征{h1,h2,…,hn},位置i存在语法错误的概率计算方式如下,
Pd(gi=1|X)=σ(Wdhi+bd)
Pc(yi=j|X)=softmax(Wchi+bc)[j]
解码时采用迭代的策略,将上一次获得的纠正结果作为下一次迭代的输入,一直迭代直到没有发现新的错误或者到达最大迭代次数后停止。
进一步地,步骤四中所述的中文拼写错误纠正模型,旨在针对误用错误进行定位和纠正;误用错误是出现频率最高的语法错误,中文拼写错误纠正模型使用BERT提取文本的上下文特征,使用词表大小的分类器对每个字符位置进行分类,将分类结果对应的字符作为输出结果;具体地,对于输入的待纠错文本X={x1,x2,…,xn},取BERT最后一层隐藏层输出的上下文表示H={h1,h2,…,hn},用于进行分类,
P(yi=j|X)=softmax(Whi)[j]
其中W是分类器的可训练参数;模型输出预测的正确文本序列Y={y1,y2,…,yn},将具有最高概率的Token作为错误纠正的预测结果,
通过检查预测结果是否与输入相同,即判断是否满足xi=yi,来实现错误检测。
进一步地,步骤四中所述的中文拼写错误纠正模型,将BERT的Token Embeddings层的权重和分类器的权重矩阵W权值共享;两个权重矩阵的大小相同,并且在语义上也是相通的,矩阵中的每一行都和词表中的词一一对应,共享二者权重可以加快收敛速度。
进一步地,步骤五中所述的编辑级别的投票策略,对于中文语法错误检查、中文语法错误纠正、中文拼写错误纠正三类模型进行模型集成,每一类的模型集合均包含了多个模型;通过选择不同的随机数种子和dropout概率训练多组模型,选择效果更好的模型加入到各类的模型集合中。
进一步地,步骤五中所述的编辑级别的投票策略,结合多个类别的模型的结果;形式上,对于输入的文本序列X={x1,x2,…,xn},模型的预测输出表示为Y={y1,y2,…,ym};式中n表示输入序列的文本长度;m表示模型预测句中存在的错误个数;yi是一个表示模型预测句中可能存在的具体错误的四元组(start_off,end_off,error_type,correction),其中“start_off”表示错误的开始位置,“end_off”表示错误的结束位置,“error_type”表示错误的类型,“correction”表示错误的修改意见,其中只有缺失和误用错误需要给出“correction”部分;
对错误的位置和类型进行投票,采用绝对多数投票法;收集所有三类模型的预测结果,针对错误的位置和类型进行投票,只有当获得的投票数超过一定阈值,即足够多个模型的预测结果中包含具有相同的错误位置和类型的四元组(start_off,end_off,error_type,*)时,才接受这一错误预测;
对错误的纠正意见进行投票,采用相对多数投票法;对于所有被接受的缺失和误用错误,收集所有中文语法错误纠正模型和中文拼写错误纠正模型的预测结果中,具有和这些错误相同错误位置和类型的四元组,对错误的纠正意见进行投票,根据投票结果对预测候选结果进行排序,选择得票最多的纠正意见作为输出结果。
本发明所涉及的基于多阶段训练和编辑级别投票的中文语法错误诊断方法,设计了三类模型处理不同的问题:中文语法错误检查模型、中文语法错误纠正模型、中文拼写错误纠正模型。CGED任务是一项低资源任务,本发明提出多阶段训练策略缓解这一现象。本发明还采用了编辑级别投票的方法集成三类多个模型的输出结果。本发明方法可以帮助使用者轻松地找到中文文本中的语法错误,节省人工校验的时间。此外,本发明所述方法可以应用在文章自动评分系统中,分析文章中的语法错误的类别和数量,将其作为文章评分的参考之一;或是应用在公文文本、或新闻文本的校验系统上,这类文本数量庞大,并且文本表述的准确性至关重要,校验人员可以在此方法的帮助下快速锁定可能存在的语法错误。
附图说明
图1为本发明方法实施例流程图;
图2为本发明中中文语法错误检查模型的模型结构图;
图3为本发明中中文语法错误纠正模型的模型结构图;
图4为本发明中中文拼写错误纠正模型的模型结构图;
图5为本发明中编辑级别投票的模型集成步骤示例图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
结合图1-图5,本发明提出一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法,所述方法具体包括:
步骤一、对系统中的模型进行多阶段训练,包括1个预训练阶段和2个微调阶段,其中预训练阶段使用无监督合成语法错误的数据,微调阶段使用真实语法错误的数据。
本发明采用多阶段训练策略,模型的训练包括三个阶段:(1)对合成错误的数据进行预训练;(2)对GEC语料库和CGED语料库中有错误的数据进行微调;(3)对CGED语料库中有错误和无错误的数据进行微调。具体过程包括以下步骤:
步骤1.1、使用包含合成语法错误的大量平行句对进行预训练。生成过程中错误的具体概率和比例是从CGED数据中统计得到。语料来源于中文维基百科和中文新闻语料,对其进行分句、清洗后,随机选取一部分得到。合成的语法错误分为词级别和字符级别两个粒度。
在词级别生成语法错误,首先需要使用中文分词工具将每个无错误的句子分割成词,然后随机选择一定数量的词,所选词的数量是从正态分布中抽样的概率与句子中单词数量的乘积。对于每个选定的单词,以一定概率执行四个操作,分别是模拟误用错误的替换操作、针对缺失错误的删除操作、针对冗余错误的插入操作、针对乱序错误的打乱操作,四种修改操作均不会对命名实体进行。(1)50%的概率执行替换操作,所选词将被具有相似含义、发音或者包含相同字符的词所替换。40%的情况下模拟相似意义造成的混淆,使用开源工具Synonyms选取所选词的同义词进行替换;30%的情况下模拟相似发音造成的混淆,将所选单词替换为具有相似或相同发音的词;30%的情况下从词表中选择和所选词拥有至少一个相同字符的词进行替换。(2)20%的概率执行删除操作,所选词将被删除。(3) 20%的概率执行插入操作,在所选词的前面或后面添加一个词。60%的情况下从CGED往年数据中的冗余词错误分布中随机采样,20%的情况下从中文停用词中随机选择,20%的情况下从词表中随机选择。(4)10%的概率执行打乱操作,将所选词与前后距离不大于2的词进行交换,交换不会跨越标点符号。
字符级别生成语法错误通过类似的方法合成:(1)50%的概率执行替换操作,所选字将被具有相似发音或者字形的字所替换。60%的情况下替换为发音相似的字;20%的情况下替换为字形相似的字;20%的情况下从词表中随机选择。(2)20%的概率执行删除操作,所选字将被删除。(3)20%的概率执行插入操作,在所选字的前面或后面添加一个词,具体方法和词级别的插入操作相同。(4)10%的概率执行打乱操作,将所选字与前后距离不大于2的字进行交换,交换不会跨越标点符号。
步骤1.2、使用中文GEC语料库和CGED语料库中有错误的数据进行微调。GEC语料库源自NLPCC 2018的语法修正(Grammatical Error Correction,GEC)任务训练集,数据中包含错误句和正确句的平行句对。GEC任务和CGED任务不完全一致,GEC任务的输入是可能包含语法错误的文本,输出是正确的纠正过的文本;而CGED任务需要指出错误的类型和位置,并对应给出纠正结果。因此为了将GEC任务的数据用于CGED任务,本发明使用编辑抽取工具ERRANT从错误句-正确句的句对中抽取出错误的类型、位置和纠正结果。
步骤1.3、使用数量少且质量高的CGED语料库进行微调。本阶段使用有错误和无错误的数据参与训练。
步骤二、对于输入的文本,使用中文语法错误检查模型,以字符为单位进行序列标注建模,给出文本中可能存在的错误的类型和位置;
步骤二中所述的中文语法错误检查模型旨在找出句中可能存在的语法错误,并给出其错误类型和具体位置,该模型以字符为单位进行序列标注建模,采用BIO标注方法。模型整体采用ELECTRA-CRF结构,如图2所示。
本发明将输入Transformer Encoder的word embedding层和ELECTRA最后一层隐藏层的输出拼接,作为输出的上下文向量。在深度神经网络中,每一层学习到的表示不同,网络的底层更关注词法,而高层更关注语义。本发明更关注底层网络的词法信息,而在关注语法性质的CGED任务中,词法信息是十分重要的。
ELECTRA只能学习到句子序列的上下文信息,但是学习不到标签的上下文信息。为了考虑标签的上下文信息,加入CRF层。CRF可以考虑相邻数据的标记信息,学到标签之间的约束信息,例如在BIO标注方法中标签“I-”始终出现在标签“B-”之后。从而尽可能避免最终预测的序列标注结果中的不合法情况。
步骤三、使用中文语法错误纠正模型,采用基于序列到编辑的方法,除了确定文本中错误的类型和位置外,还可以给出缺失和误用错误的纠正意见;
步骤三中所述的中文语法错误纠正模型旨在确定错误的类型和位置的同时,给出缺失和误用错误的纠正意见。本发明使用在英文语法检查任务中取得较好结果的基于序列到编辑的GECToR模型解决该任务。
语法错误纠正的输入输出句对通常是十分相似的,只是在存在语法错误的地方会有不同的地方。对输入的可能存在语法错误的句子,序列到编辑的模型预测其编辑序列,通过一系列编辑操作,即可把存在语法错误的句子转变为正确的句子。将上述的编辑操作被定义为针对Token的变换。变换分为五类:$KEEP,$DELETE,$REORDER,$APPEND, $REPLACE。其中$KEEP,$DELETE,$REORDER是与Token无关的变换,$KEEP表示不做修改,$DELETE表示删除当前Token,$REORDER表示当前Token是需要重新排序的一部分。$APPEND,$REPLACE是与Token相关的变换,$APPEND_X表示在当前 Token前的位置插入X;$REPLACE_X表示将当前Token替换为X。与Token相关的变换依赖于词表,而词表集合的大小是有限的,因此不在词表中的不常见词会被遗漏。本发明从GEC数据集和CGED数据集中收集变换集合,包括3个与Token无关的变换$KEEP、$DELETE、$REORDER,2661个$APPEND变换,3307个$REPLACE变换。
中文语法错误纠正模型的结构如图3所示。模型由一个上下文特征提取器BERT和两个预测头组成。对于输入序列X={x1,x2,…,xn},使用BERT提取其上下文特征 {h1,h2,…,hn},位置i存在语法错误的概率计算方式如下,
Pd(gi=1|X)=σ(Wdhi+bd)
Pc(yi=j|X)=softmax(Wchi+bc)[j]
解码时采用迭代的策略,将上一次获得的纠正结果作为下一次迭代的输入,一直迭代直到没有发现新的错误或者到达最大迭代次数后停止。
步骤四、使用中文拼写错误纠正模型,针对文本中最常出现的误用错误进行检查,并给出相应的纠正结果;
步骤四中所述的中文拼写错误纠正模型旨在针对误用错误进行定位和纠正。误用错误是出现频率最高的语法错误,据统计在往年的CGED数据中,误用错误在所有错误中占比44.04%。
中文拼写错误纠正模型使用BERT提取文本的上下文特征,使用词表大小的分类器对每个字符位置进行分类,将分类结果对应的字符作为输出结果,其模型结构如图4所示。具体地,对于输入的待纠错文本X={x1,x2,…,xn},取BERT最后一层隐藏层输出的上下文表示H={h1,h2,…,hn},用于进行分类,
P(yi=j|X)=softmax(Whi)[j]
其中W是分类器的可训练参数。模型输出预测的正确文本序列Y={y1,y2,…,yn},将具有最高概率的Token作为错误纠正的预测结果,
通过检查预测结果是否与输入相同,即判断是否满足xi=yi,来实现错误检测。
此外,将BERT的Token Embeddings层的权重和分类器的权重矩阵W权值共享。两个权重矩阵的大小相同,并且在语义上也是相通的,矩阵中的每一行都和词表中的词一一对应。共享二者权重可以加快收敛速度。
步骤五、对于上述三类模型的输出,使用编辑级别的投票策略集成多个模型的输出结果。
步骤五中对于中文语法错误检查、中文语法错误纠正、中文拼写错误纠正三类模型进行模型集成,每一类的模型集合均包含了多个模型。本发明通过选择不同的随机数种子和 dropout概率训练多组模型,选择效果更好的模型加入到各类的模型集合中。
步骤五中使用编辑级别投票的模型集成策略,结合多个类别的模型的结果,如图5所示。形式上,对于输入的文本序列X={x1,x2,…,xn},模型的预测输出表示为Y= {y1,y2,…,ym}。式中n表示输入序列的文本长度;m表示模型预测句中存在的错误个数;yi是一个表示模型预测句中可能存在的具体错误的四元组(start_off,end_off, error_type,correction),其中“start_off”表示错误的开始位置,“end_off”表示错误的结束位置,“error_type”表示错误的类型,“correction”表示错误的修改意见,其中只有缺失和误用错误需要给出“correction”部分。
对错误的位置和类型进行投票,采用绝对多数投票法。收集所有三类模型的预测结果,针对错误的位置和类型进行投票,只有当获得的投票数超过一定阈值,即足够多个模型的预测结果中包含具有相同的错误位置和类型的四元组(start_off,end_off,error_type,*)时,才接受这一错误预测。
对错误的纠正意见进行投票,采用相对多数投票法(plurality voting)。对于所有被接受的缺失和误用错误,收集所有中文语法错误纠正模型和中文拼写错误纠正模型的预测结果中,具有和这些错误相同错误位置和类型的四元组,对错误的纠正意见进行投票。根据投票结果对预测候选结果进行排序,选择得票最多的纠正意见作为输出结果。
以上对本发明所提出的一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法,其特征在于,所述方法具体包括:
步骤一、对系统中的模型进行多阶段训练,包括1个预训练阶段和2个微调阶段,其中预训练阶段使用无监督合成语法错误的数据,微调阶段使用真实语法错误的数据;
步骤二、对于输入的文本,使用中文语法错误检查模型,以字符为单位进行序列标注建模,给出文本中可能存在的错误的类型和位置;
步骤三、使用中文语法错误纠正模型,采用基于序列到编辑的方法,除了确定文本中错误的类型和位置外,还给出缺失和误用错误的纠正意见;
步骤四、使用中文拼写错误纠正模型,针对文本中最常出现的误用错误进行检查,并给出相应的纠正结果;
步骤五、对于上述三类模型的输出,使用编辑级别的投票策略集成多个模型的输出结果。
2.根据权利要求1所述的方法,其特征在于,对系统中的模型进行多阶段训练,包括1个预训练阶段和2个微调阶段,其中预训练阶段使用无监督合成语法错误的数据,微调阶段使用真实语法错误的数据,具体过程包括以下步骤:
步骤1.1、使用包含合成语法错误的大量平行句对进行预训练,生成过程中错误的具体概率和比例是从CGED数据中统计得到;语料来源于中文维基百科和中文新闻语料,对其进行分句、清洗后,随机选取一部分得到;合成的语法错误分为词级别和字符级别两个粒度;
步骤1.2、使用中文GEC语料库和CGED语料库中有错误的数据进行微调;GEC语料库源自NLPCC 2018的语法修正任务训练集,数据中包含错误句和正确句的平行句对;GEC任务和CGED任务不完全一致,GEC任务的输入是可能包含语法错误的文本,输出是正确的纠正过的文本;而CGED任务需要指出错误的类型和位置,并对应给出纠正结果;为了将GEC任务的数据用于CGED任务,使用编辑抽取工具ERRANT从错误句-正确句的句对中抽取出错误的类型、位置和纠正结果;
步骤1.3、使用数量少且质量高的CGED语料库进行微调;本阶段使用有错误和无错误的数据参与训练。
3.根据权利要求2所述的方法,其特征在于,在步骤1.1中,
在词级别生成语法错误,首先需要使用中文分词工具将每个无错误的句子分割成词,然后随机选择一定数量的词,所选词的数量是从正态分布中抽样的概率与句子中单词数量的乘积;对于每个选定的单词,以一定概率执行四个操作,分别是模拟误用错误的替换操作、针对缺失错误的删除操作、针对冗余错误的插入操作、针对乱序错误的打乱操作,四种修改操作均不会对命名实体进行;四种操作具体执行为:(1)50%的概率执行替换操作,所选词将被具有相似含义、发音或者包含相同字符的词所替换;40%的情况下模拟相似意义造成的混淆,使用开源工具Synonyms选取所选词的同义词进行替换;30%的情况下模拟相似发音造成的混淆,将所选单词替换为具有相似或相同发音的词;30%的情况下从词表中选择和所选词拥有至少一个相同字符的词进行替换;(2)20%的概率执行删除操作,所选词将被删除;(3)20%的概率执行插入操作,在所选词的前面或后面添加一个词;60%的情况下从CGED往年数据中的冗余词错误分布中随机采样,20%的情况下从中文停用词中随机选择,20%的情况下从词表中随机选择;(4)10%的概率执行打乱操作,将所选词与前后距离不大于2的词进行交换,交换不会跨越标点符号;
字符级别生成语法错误合成方法具体为:(1)50%的概率执行替换操作,所选字将被具有相似发音或者字形的字所替换;60%的情况下替换为发音相似的字;20%的情况下替换为字形相似的字;20%的情况下从词表中随机选择;(2)20%的概率执行删除操作,所选字将被删除;(3)20%的概率执行插入操作,在所选字的前面或后面添加一个词;(4)10%的概率执行打乱操作,将所选字与前后距离不大于2的字进行交换,交换不会跨越标点符号。
4.根据权利要求3所述的方法,其特征在于,步骤二中所述的中文语法错误检查模型,旨在找出句中可能存在的语法错误,并给出其错误类型和具体位置,该模型以字符为单位进行序列标注建模,采用BIO标注方法;模型整体采用ELECTRA-CRF结构;将输入Transformer Encoder的word embedding层和ELECTRA最后一层隐藏层的输出拼接,作为输出的上下文向量;在深度神经网络中,每一层学习到的表示不同,网络的底层更关注词法,而高层更关注语义;为了考虑标签的上下文信息,加入CRF层,CRF可以考虑相邻数据的标记信息,学到标签之间的约束信息,从而尽可能避免最终预测的序列标注结果中的不合法情况。
5.根据权利要求4所述的方法,其特征在于,步骤三中所述的中文语法错误纠正模型,旨在确定错误的类型和位置的同时,给出缺失和误用错误的纠正意见;对输入的可能存在语法错误的句子,序列到编辑的模型预测其编辑序列,通过一系列编辑操作,即可把存在语法错误的句子转变为正确的句子,将上述的编辑操作被定义为针对Token的变换;变换分为五类:$KEEP,$DELETE,$REORDER,$APPEND,$REPLACE;其中$KEEP,$DELETE,$REORDER是与Token无关的变换,$KEEP表示不做修改,$DELETE表示删除当前Token,$REORDER表示当前Token是需要重新排序的一部分;$APPEND,$REPLACE是与Token相关的变换,$APPEND_X表示在当前Token前的位置插入X;$REPLACE_X表示将当前Token替换为X;从GEC数据集和CGED数据集中收集变换集合,包括3个与Token无关的变换$KEEP、$DELETE、$REORDER,2661个$APPEND变换,3307个$REPLACE变换。
6.根据权利要求5所述的方法,其特征在于,步骤三中所述的中文语法错误纠正模型的结构由一个上下文特征提取器BERT和两个预测头组成;对于输入序列X={x1,x2,…,xn},使用BERT提取其上下文特征{h1,h2,…,hn},位置i存在语法错误的概率计算方式如下,
Pd(gi=1|X)=σ(Wdhi+bd)
Pc(yi=j|X)=softmax(Wchi+bc)[j]
解码时采用迭代的策略,将上一次获得的纠正结果作为下一次迭代的输入,一直迭代直到没有发现新的错误或者到达最大迭代次数后停止。
7.根据权利要求6所述的方法,其特征在于,步骤四中所述的中文拼写错误纠正模型,旨在针对误用错误进行定位和纠正;误用错误是出现频率最高的语法错误,中文拼写错误纠正模型使用BERT提取文本的上下文特征,使用词表大小的分类器对每个字符位置进行分类,将分类结果对应的字符作为输出结果;具体地,对于输入的待纠错文本X={x1,x2,…,xn},取BERT最后一层隐藏层输出的上下文表示H={h1,h2,…,hn},用于进行分类,
P(yi=j|X)=softmax(Whi)[j]
其中W是分类器的可训练参数;模型输出预测的正确文本序列Y={y1,y2,…,yn},将具有最高概率的Token作为错误纠正的预测结果,
通过检查预测结果是否与输入相同,即判断是否满足xi=yi,来实现错误检测。
8.根据权利要求7所述的方法,其特征在于,步骤四中所述的中文拼写错误纠正模型,将BERT的Token Embeddings层的权重和分类器的权重矩阵W权值共享;两个权重矩阵的大小相同,并且在语义上也是相通的,矩阵中的每一行都和词表中的词一一对应,共享二者权重可以加快收敛速度。
9.根据权利要求8所述的方法,其特征在于,步骤五中所述的编辑级别的投票策略,对于中文语法错误检查、中文语法错误纠正、中文拼写错误纠正三类模型进行模型集成,每一类的模型集合均包含了多个模型;通过选择不同的随机数种子和dropout概率训练多组模型,选择效果更好的模型加入到各类的模型集合中。
10.根据权利要求9所述的方法,其特征在于,步骤五中所述的编辑级别的投票策略,结合多个类别的模型的结果;形式上,对于输入的文本序列X={x1,x2,…,xn},模型的预测输出表示为Y={y1,y2,…,ym};式中n表示输入序列的文本长度;m表示模型预测句中存在的错误个数;yi是一个表示模型预测句中可能存在的具体错误的四元组(start_off,end_off,error_type,correction),其中“start_off”表示错误的开始位置,“end_off”表示错误的结束位置,“error_type”表示错误的类型,“correction”表示错误的修改意见,其中只有缺失和误用错误需要给出“correction”部分;
对错误的位置和类型进行投票,采用绝对多数投票法;收集所有三类模型的预测结果,针对错误的位置和类型进行投票,只有当获得的投票数超过一定阈值,即足够多个模型的预测结果中包含具有相同的错误位置和类型的四元组(start_off,end_off,error_type,*)时,才接受这一错误预测;
对错误的纠正意见进行投票,采用相对多数投票法;对于所有被接受的缺失和误用错误,收集所有中文语法错误纠正模型和中文拼写错误纠正模型的预测结果中,具有和这些错误相同错误位置和类型的四元组,对错误的纠正意见进行投票,根据投票结果对预测候选结果进行排序,选择得票最多的纠正意见作为输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210657210.2A CN115034218A (zh) | 2022-06-10 | 2022-06-10 | 一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210657210.2A CN115034218A (zh) | 2022-06-10 | 2022-06-10 | 一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115034218A true CN115034218A (zh) | 2022-09-09 |
Family
ID=83125151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210657210.2A Pending CN115034218A (zh) | 2022-06-10 | 2022-06-10 | 一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115034218A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115935957A (zh) * | 2022-12-29 | 2023-04-07 | 广东南方网络信息科技有限公司 | 一种基于句法分析的句子语法纠错方法及系统 |
CN116306620A (zh) * | 2023-05-24 | 2023-06-23 | 上海蜜度信息技术有限公司 | 文本处理方法、训练方法、存储介质及电子设备 |
CN116644738A (zh) * | 2023-05-04 | 2023-08-25 | 合芯科技(苏州)有限公司 | 一种基于神经网络模型的文本纠错方法与装置 |
-
2022
- 2022-06-10 CN CN202210657210.2A patent/CN115034218A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115935957A (zh) * | 2022-12-29 | 2023-04-07 | 广东南方网络信息科技有限公司 | 一种基于句法分析的句子语法纠错方法及系统 |
CN115935957B (zh) * | 2022-12-29 | 2023-10-13 | 广东南方网络信息科技有限公司 | 一种基于句法分析的句子语法纠错方法及系统 |
CN116644738A (zh) * | 2023-05-04 | 2023-08-25 | 合芯科技(苏州)有限公司 | 一种基于神经网络模型的文本纠错方法与装置 |
CN116306620A (zh) * | 2023-05-24 | 2023-06-23 | 上海蜜度信息技术有限公司 | 文本处理方法、训练方法、存储介质及电子设备 |
CN116306620B (zh) * | 2023-05-24 | 2023-09-05 | 上海蜜度信息技术有限公司 | 文本处理方法、训练方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489760B (zh) | 基于深度神经网络文本自动校对方法及装置 | |
CN109918666B (zh) | 一种基于神经网络的中文标点符号添加方法 | |
CN106599032B (zh) | 一种结合稀疏编码和结构感知机的文本事件抽取方法 | |
CN110276069B (zh) | 一种中国盲文错误自动检测方法、系统及存储介质 | |
CN115034218A (zh) | 一种基于多阶段训练和编辑级别投票的中文语法错误诊断方法 | |
CN113435179B (zh) | 一种作文评阅方法、装置、设备及存储介质 | |
CN111709242B (zh) | 一种基于命名实体识别的中文标点符号添加方法 | |
CN114386371B (zh) | 中文拼写纠错方法、系统、设备及存储介质 | |
JP2022552029A (ja) | Transformerのディープラーニングモデルに基づいて多言語による地名の語根を中国語に翻訳する方法 | |
CN109410949B (zh) | 基于加权有限状态转换器的文本内容添加标点方法 | |
CN112417854A (zh) | 中文文档抽取式摘要方法 | |
CN113268576B (zh) | 一种基于深度学习的部门语义信息抽取的方法及装置 | |
CN112926345A (zh) | 基于数据增强训练的多特征融合神经机器翻译检错方法 | |
CN111553159B (zh) | 一种问句生成方法及系统 | |
CN115034208A (zh) | 一种基于bert的中文asr输出文本修复方法及系统 | |
CN113449514A (zh) | 一种适用于特定垂直领域的文本纠错方法及其纠错装置 | |
CN115510863A (zh) | 一种面向问句匹配任务的数据增强方法 | |
Namysl et al. | NAT: Noise-aware training for robust neural sequence labeling | |
CN115658898A (zh) | 一种中英文本实体关系抽取方法、系统及设备 | |
Sherif et al. | Bootstrapping a stochastic transducer for Arabic-English transliteration extraction | |
CN112989839A (zh) | 一种基于关键词特征嵌入语言模型的意图识别方法及系统 | |
CN115310433A (zh) | 一种针对中文文本校对的数据增强方法 | |
CN115840815A (zh) | 基于指针关键信息的自动摘要生成方法 | |
Ma et al. | Bootstrapping structured page segmentation | |
CN114330350A (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 |