语法纠错方法及电子设备与流程
未命名
10-21
阅读:60
评论:0
1.本公开总体上涉及计算机领域,并且更具体地涉及语法纠错方法及电子设备。
背景技术:
2.自然语言处理(natural language processing,nlp)是计算机领域的一个重要方面,例如基于此可以实现有效的人机交互。在nlp的过程中,计算机需要对用户的输入进行识别和理解。如果用户的输入存在错误,那么对输入进行语法纠错是有必要的。
3.为了提高语法纠错的效率和准确性,可以基于深度学习或机器学习的方法来构建用于语法纠错的模型,例如神经网络模型。可以基于有监督训练方法来得到语法纠错模型,但是该过程需要大量的标注数据,而标注的过程会消耗大量的人力和物力成本。因此,亟需研究如何基于无监督训练方法得到模型。
技术实现要素:
4.根据本公开的示例实施例,提供了一种语法纠错方案,能够基于无监督训练方法得到用于语法纠错的模型,能够提升处理的效率。
5.在本公开的第一方面,提供了一种语法纠错方法,包括:获取经训练的语法纠错模型,所述经训练的语法纠错模型包括经训练的修正器,其中所述经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中所述初始修正器是通过无监督方法生成的;以及将待处理的语句输入到所述经训练的语法纠错模型,得到输出的经纠错语句。
6.在本公开的第二方面,提供了一种电子设备,包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,该指令当由至少一个处理单元执行时使得电子设备执行根据本公开的第一方面所描述的方法。
7.在本公开的第三方面,提供了一种语法纠错装置,包括:模型获取单元,被配置为获取经训练的获取经训练的语法纠错模型,所述经训练的语法纠错模型包括经训练的修正器,其中所述经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中所述初始修正器是通过无监督方法生成的;以及输出确定单元,被配置为将待处理的语句输入到所述经训练的语法纠错模型,得到输出的经纠错语句。
8.在本公开的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质具有在其上存储的机器可执行指令,该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法。
9.在本公开的第五方面,提供了一种计算机程序产品,包括计算机可执行指令,其中计算机可执行指令在被处理器执行时实现根据本公开的第一方面所描述的方法。
10.在本公开的第六方面,提供了一种电子设备,包括:处理电路,被配置为执行根据本公开的第一方面所描述的方法。
11.提供发明内容部分是为了以简化的形式来介绍一系列概念,它们在下文的具体实施方式中将被进一步描述。发明内容部分不旨在标识本公开的关键特征或必要特征,也不旨在限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
12.结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
13.图1示出了根据本公开的一些实施例的能够应用于其中的示例环境的结构示意图;
14.图2示出了根据本公开的一些实施例的模型训练的过程的示意流程图;
15.图3示出了根据本公开的一些实施例的生成初始修正器的示意流程图;
16.图4示出了根据本公开的一些实施例的生成初始批评器的示意流程图;
17.图5示出了根据本公开的一些实施例的模型使用过程的流程图;
18.图6示出了根据本公开的一些实施例的示例装置的框图;以及
19.图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
20.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
21.语法纠错旨在对用户的输入中的语法错误进行纠正,例如用户的输入可以具有特定的语种,如中文、英文等。可理解,通过语法纠错,能够帮忙用户的规范表达。
22.基于有监督训练方法的语法纠错模型需要大量的标注数据,通常情况下标注是由专家等人类进行手工标注的,这个过程涉及大量的成本和时间消耗,因此对于模型训练来说是低效的。
23.为了解决上述问题以及潜在的其他问题,本公开的实施例提供了一种语法纠错模型,该语法纠错模型包括修正器。可以通过批评器与修正器之间的联合训练,来得到经训练的修正器,并且初始的修正器是通过无监督方法训练得到的。以此方式,本方案提供了一种无监督的语法纠错模型,无需对数据进行标注,从而能够提高处理的效率。
24.本公开的实施例中的语法纠错(grammar error correction,gec)模型也可以被称为基于无监督的语法纠错模型、语法修正模型,或者也可以被简称为纠错模型、修正模型、或其他名称,本公开对此不限定。
25.图1示出了根据本公开的一些实施例的能够应用于其中的示例环境100的结构示意图。示例环境100包括模型训练阶段101和模型应用阶段102。
26.模型训练阶段101指的是语法纠错模型的训练过程。具体而言,可以获取单语语料库110,例如中文语料库、英文语料库、或其他语种的语料库。并且训练系统112可以基于单语语料库110,采用无监督训练方法对模型进行训练。示例性地,训练系统112可以对批评器114和修正器116进行训练。关于训练过程的更详细的介绍可以参照下述结合图2至图4的详
细描述。
27.模型应用阶段102指的是语法纠错任务的推理过程。具体而言,可以获取待处理的语句120,例如可以是用户输入的语句。应用系统122可以将待处理的语句120输入到经训练的语法纠错模型124,从而得到经纠错语句126,其中经训练的语法纠错模型124包括模型训练阶段101得到的修正器。
28.可理解,图1中的模型训练阶段101和模型应用阶段102可以在相同或不同的计算设备或计算系统上执行。例如模型训练阶段101和模型应用阶段102均在第一计算设备或第一计算系统上执行。例如模型训练阶段101在第一计算设备或第一计算系统上执行,而模型应用阶段102均在第二计算设备或第二计算系统上执行。例如,模型训练阶段101的一部分在第一计算设备或第一计算系统上执行,而模型训练阶段101的其余部分在第二计算设备或第二计算系统上执行。不同的计算设备或计算系统可以位于同一地理位置,也可以位于不同的地理位置。同一计算设备或计算系统可以包括位于同一位置或位于不同地理位置的多个物理实体或逻辑实体。
29.本公开的实施例中,具有计算能力的计算设备或计算系统可以包括终端设备、服务器、云等。终端设备可以涉及任何类型的移动终端、固定终端、或便携式终端,包括智能手机、台式计算机、膝上型计算机、笔记本计算机、平板计算机、可穿戴设备等。服务器可以包括大型机、边缘计算节点、云环境中的计算机等。
30.应注意的是,尽管在图1中在各个框之间示出了连线以表示彼此之间的数据传递,但是在实际场景中,数据或模型的传递方式不限于如图1所示的连线,可以具有更多或更少的连线,本公开对此不限定。
31.图2示出了根据本公开的一些实施例的模型训练过程200的示意流程图。在框210,获取初始修正器。在框220,基于单语语料库,利用初始修正器,构建初始批评器。在框230,通过对初始修正器和初始批评器进行联合训练,生成经训练的语法纠错模型。
32.在一些示例中,可以通过训练的方法得到初始修正器。示例性地,可以将得到初始修正器的过程称为预训练过程,并且得到初始修正器的预训练过程可以采用无监督训练的方法。可选地,可以将初始修正器称为无监督修正器,例如可以表示为f0。
33.图3示出了根据本公开的一些实施例的生成初始修正器的过程300的示意流程图。在框310,获取原始数据。在框320,基于原始数据构建合成数据。在框330,将合成数据作为源数据以及将原始数据作为目标数据,通过训练生成初始修正器。
34.在一些实施例中,在框310处可以从第一单语语料库(表示为单语语料库a)中获取原始数据。例如,已有的单语语料库a包括大量的数据项,可以将单语语料库a的部分或全部数据项作为目标训练数据集,即原始数据。举例而言,每个数据项或原始数据可以为语句。
35.在一些实施例中,在框320处可以针对原始数据,基于范畴分布来确定错误数量;并且可以基于错误数量来对原始数据进行处理,以得到与原始数据对应的合成数据。
36.具体而言,以原始数据中的语句a为例,来描述生成合成数据的过程。
37.针对语句a,可以从范畴分布中选取语句a所包含的错误数量。为了描述方便,可以将所选取的错误数量表示为n,其中n为正整数。例如n为1、2、3..中的任一值。随后,可以对语句a中的n个词进行处理,以得到与语句a对应的合成数据(即合成语句),其中处理可以包括删除、插入、或替换中的一项或多项。
38.示例性地,可以基于预定词汇表确定语句a中的词1,对词1进行处理;随后再基于预定词汇表确定词2,对词2进行处理;
…
最后基于预定词汇表确定词n,对词n进行处理。
39.下面将以第一词为例来描述对第一词进行处理的过程。在一些示例性的实施例中,可以从预定词汇表中采样第一词,例如第一词可以被表示为wv。预定词汇表可以是与单语语料库a的语种(如英语)所对应的词汇表,例如表示为v。预定词汇表中包括大量的词,并且不同的词在该预定词汇表中的频率可以相同或不同。在一些示例中,可以按照各个词在预定词汇表中的频率,通过随机采样的方式来确定第一词。
40.如果语句a中包括第一词,则可以基于第一概率将该第一词从语句a中删除。假设第一概率被表示为p
del
,可理解该第一概率可以是预先定义的固定值,或者该第一概率可以是从0至1的范围内随机采样的值,或者该第一概率可以是与第一词相关联的值。为了描述方便,可以将按第一概率删除第一词后的语句a称为第一语句。
41.示例性地,可以基于第二概率,将第一词插入到第一语句中,以得到第二语句。假设第二概率被表示为p
ins
,可理解该第二概率可以是预先定义的固定值,或者该第二概率可以是从0至1的范围内随机采样的值,或者该第二概率可以是与第一词相关联的值。可选地,与第一词相关联的第一概率和第二概率可以相等,或者也可以不相等。另外,示例性地,第一词被插入的位置(在第一语句中的位置)可以是随机确定的。也就是说,可以在第一语句的随机位置处,以第二概率插入第一词,以得到第二语句。
42.如果第二语句中包括第一词,可以基于第三概率将第一词替换为第二词。假设第三概率被表示为p
rep
,可理解该第三概率可以是预先定义的固定值,或者该第三概率可以是从0至1的范围内随机采样的值。具体而言,可以向将第二语句中的第一词替换为掩码词,再将掩码词替换为第二词。
43.示例性地,可以基于掩码语言模型,确定与掩码词所在的位置相关联的多个候选词。举例而言,可以基于掩码语言模型,根据掩码词周围的上下文来预测在掩码词所在的位置的多个候选词。可选地,掩码语言模型(mask language model,mlm)可以是已有的候选词预测模型。
44.示例性地,针对多个候选词,可以确定每个候选词与第一词之间的编辑距离。举例而言,编辑距离可以被理解是将第一词替换为候选词所需要修改(增加、删除、替换)的字母的数量。以此方式,可以确定与多个候选词一一对应的多个编辑距离。
45.示例性地,可以将编辑距离大于或等于阈值(例如3或其他值)的候选词剔除(或过滤),以得到各个编辑距离都小于阈值的至少一个候选词。举例而言,可以从多个候选词中确定对应的编辑距离小于阈值的至少一个候选词。
46.示例性地,可以基于统计信息,从至少一个候选词中选定第二词。具体而言,可以确定与至少一个候选词对应的至少一个编辑距离,随后可以获取与至少一个编辑距离对应的统计信息,然后可以基于统计信息确定至少一个候选词中各个词作为第二词的概率,进一步地可以按照该概率从至少一个候选词中采样出第二词。
47.作为一个例子,假设与至少一个候选词对应的至少一个编辑距离包括1和2,假设所获取的与编辑距离1对应的统计信息指示数值1,与编辑距离2对应的统计信息指示数值2。假设至少一个候选词中的某个候选词(例如候选词x)对应的编辑距离为1,那么其被采样为第二词的概率为数值1/(数值1+数值2)。
48.可理解,如果语句a中不存在从预定词汇表采样的第一词,则可以从预定词汇表重新采样,直到采样处语句a中的词。可理解,上述的删除、插入、和替换操作可以被部分或全部执行。
49.在一些示例中,如果已经针对语句a中的n个词执行了上述处理,则针对语句a的处理过程结束之后,便得到了与语句a对应的合成数据。
50.在本公开的一些实现方式中,如上结合第一词描述删除和插入操作的过程中,涉及从预定词汇表中采样得到第一词的过程。可理解,在确定语句a中的n个词(词1至词n)的过程中,其中的两个词有可能被采样为相同,例如采样的词i和词j可能为同一个词,这样可能导致对同一个词的重复处理。在一些示例中,可以基于第一词在预定词汇表中的频率排序值,通过平滑函数来确定上述的第一概率和/或第二概率。举例而言,可以根据预定词汇表中的词汇所出现的频率的降序排序,使用平滑函数来确定第一概率和/或第二概率。
51.示例性地,平滑函数可以包括预定的递增序列。可选地,递增序列中的每个数值均为非负整数。可选地,递增序列中相邻的两个数值的差值大于这两个数值中的较小值。可选地,递增序列中某个数值大于与其相邻的前一数值的两倍。例如,该递增序列可以被表示为list
id
=[id0,id1,id2,
…
idn]。作为一个特例,list
id
=[0,2,6,30,100,
…
]。
[0052]
示例性地,可以基于第一词在预定词汇表中的频率排序值,确定递增序列中的与频率排序值最接近的两个数值,其中频率排序值表示降序排序的位置序号。例如,频率排序值可以为非负整数,例如0表示在预定词汇表中出现最多次数。
[0053]
示例性地,可以基于递增序列中的与频率排序值最接近的两个数值中的至少一个(如较小的一个,或者两个数值)来确定第一概率和/或第二个概率。例如,响应于频率排序值为0,所确定的第一概率和/或第二个概率等于id1的倒数。例如,响应于频率排序值不为0,所确定的第一概率和/或第二个概率等于这两个数值之差的倒数。
[0054]
示例性地,可以将基于平滑函数所确定的第一概率和/或第二个概率标识为经平滑的概率,那么该过程可以被表示为如下算法1所示的伪代码:
[0055]
[0056]
这样,通过上面所描述的过程,可以针对目标训练数据集中的每个数据项都执行类似的处理,从而得到对应的合成数据。示例性地,可以将与目标训练数据集中的多个数据项所对应的所有合成数据确定为源训练数据集。进一步地,可以在框330处训练生成初始修正器。
[0057]
结合图3所述描述的预训练过程不涉及对数据进行标注,相反,该过程通过删除、插入、和/或替换等处理生成合成数据,并将合成数据作为源数据以及将原始数据作为目标数据,属于无监督训练方法。因此该训练过程所需的时间短,训练的效率高。并且可理解,由于该初始修正器基于第一单语语料库(如单语语料库a)生成,由于单语语料库a可以理解为包括语法正确的语句,因此该预训练过程得到的初始修正器的精度较高。
[0058]
图4示出了根据本公开的一些实施例的生成初始批评器的过程400的示意流程图。在框410,获取初始修正器。在框420,基于单语语料库,利用初始修正器,构建用于训练初始批评器的训练集。在框430,使用训练集,基于第一损失函数,通过训练生成初始批评器。
[0059]
在一些实施例中,框410处的初始修正器可以是通过前述如图3所示的预训练过程300所生成的初始修正器,例如可以被表示为f0。
[0060]
在一些实施例中,框420处的单语语料库可以不同于前述用于预训练初始修正器的语料库,例如在框420处的单语语料库可以被表示为单语语料库b。在一些示例中,可以将特定语种(如中文或英文)的已知语料库划分为两个子集,并分别定义为单语语料库a和单语语料库b,例如单语语料库a用于前述如图3所示的过程,而单语语料库b用于图4所示的过程以及后续的联合训练过程。
[0061]
示例性地,可以将单语语料库b中的每个语句输入到初始修正器中,以得到对应的输出。为了方便描述,可以将单语语料库b中的任一语句表示为x(i),将对应的初始修正器的输出表示为y(i)。可理解,初始修正器的输出还可以进一步包括初始修正器所生成的对应的输出y(i)的概率。
[0062]
示例性地,可以基于对应的输出的概率,来确定单语语料库b的子集,如表示为子集b’。具体而言,可以将概率大于或等于概率阈值(例如90%,88%,或其他值)的语句保留在子集b’中。以此方式,子集b’中的任一语句被输入到初始修正器之后,对应的输出的概率都大于或等于概率阈值。
[0063]
示例性地,针对子集b’中的每个语句,可以基于该语句与对应的输出之间的关系,确定该语句的伪标签。以子集b’中的语句x(i)为例,如果对应的输出y(i)(将语句x(i)输入到初始修正器所得到的输出)与x(i)相同,则伪标签为“语法正确”;相反,如果对应的输出y(i)与x(i)不同,则伪标签为“语法错误”。可选地,可以将伪标签“语法正确”标记为“1”,而将伪标签“语法错误”标记为“0”。或者可选地,可以将伪标签“语法正确”标记为“0”,而将伪标签“语法错误”标记为“1”。本公开对此不限定。
[0064]
进一步地,可以基于子集b’以及其中各个语句的伪标签来生成训练集。例如,可以将训练集表示为d
sub
。在一些示例中,训练集中包括多个数据项,每个数据项包括一个语句和对应的伪标签,例如语句x(i)以及对应的伪标签t(i)。可选地,多个数据项的数量与子集b’中的语句的数量相同,且小于单语语料库b中的语句的数量。
[0065]
在一些实施例中,框430处可以构建第一损失函数,并基于第一损失函数来通过训练生成初始批评器。
[0066]
示例性地,第一损失函数可以表示为l
aug
,例如表示为如下的式(1):
[0067][0068]
在式(1)中,θ
cr
表示要训练的批评器的模型权重,c表示类别的集合。举例而言,c={语法错误,语法正确},作为一个特定示例,c={0,1},,相应地,可理解j的取值为0或1。示例性地,
[0069]
在式(1)中,表示将x(i)中的至少一个词掩码之后所得到的经掩码语句,其中至少一个词的数量可以基于预先设定的掩码比例来确定。举例而言,预先设定的掩码比例为p%(例如10%或其他值),因此至少一个词的数量等于n0
×
p%的上取整或下取整的正数,例如至少一个词的数量为与n0
×
p%最接近的正整数,n0表示语句所包括的词的总数。
[0070]
以此方式,便可以基于初始修正器,通过训练生成初始批评器。示例性地,可以将收敛时的批评器的模型权重表示为θ
aug
。在另一些示例中,也可以通过模型权重θ
aug
来示意性地表示批评器。
[0071]
这样,可以通过如图3所示的过程得到初始修正器,通过如图4所示的过程得到初始批评器。示例性地,可以进一步进行联合训练,以得到经训练的修正器。示例性地,可以基于前述的单语语料库b,在初始修正器和初始批评器的基础上,通过联合训练,得到满足收敛条件的经训练的修正器。
[0072]
在本公开的一些实施例中,联合训练的过程可以包括:基于初始批评器,更新修正器;基于经更新的修正器,更新批评器;基于经更新的批评器,再更新修正器;
…
。
[0073]
示例性地,可以构建用于联合训练过程的第二损失函数,例如,第二损失函数可以被表示为如下的式(2):
[0074][0075]
在式(2)中,db表示单语语料库b,表示将x(i)中的至少一个词掩码之后所得到的经掩码语句,并且满足以下的式(3):
[0076]
[0077]
在式(3)中,表示针对类别j在软频率上的和,并且θ
′
cr
表示在前一轮迭代后的批评器的模型权重。
[0078]
具体而言,可以利用第一损失函数l
aug
,通过自我知识蒸馏(self knowledge distillation),在单语语料库b上进行训练,通过使用第二损失函数来更新批评器的模型权重θ
cr
,进而可以更新修正器。可选地,可以利用破坏它修复它(break-it-fix-it,bifi)的方法来更新修正器,关于bifi方法可以参照已有技术,为了简化,这里不再赘述。示例性地,可以将经训练的修正器表示为f。
[0079]
这样,通过前述结合图2至图4的过程,可以通过训练生成经训练的语法纠错模型,并且该语法纠错模型包括经训练的修正器。示例性地,可以将该训练过程示意性地表示为如下算法2所示的伪代码:
[0080][0081][0082]
根据上述结合图1至图4的一些实施例的描述,本公开提供了一种语法纠错模型,该语法纠错模型可以包括修正器,并且可以通过无监督方法通过训练过程而被生成。具体而言,可以通过无监督训练方法得到初始修正器,并基于初始修正器生成初始批评器,进而可以通过联合训练得到经训练的修正器。该训练过程无需依赖于人工标注,从而能够极大地降低人力和物力成本,提升了模型训练的效率。并且,该方案中通过批评器来判断语法的正确与否,能够辅助修正器的语法纠错,从而保证模型处理的精度。
[0083]
图5示出了根据本公开的一些实施例的示例使用过程500的示例流程图。在框510,获取经训练的语法纠错模型,经训练的语法纠错模型包括经训练的修正器,其中所述经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中初始修正器是通过无监督方法生成的。在框520,将待处理的语句输入到经训练的语法纠错模型,得到输出的经纠错语句。
[0084]
在本公开的实施例中,在框510处所获取的经训练的语法纠错模型可以如前所述,例如可以通过如图2至图4所描述的过程而被生成。
[0085]
在一些实施例中,在框520处的待处理的语句可以是用户输入的,或者可以是从文章、新闻等处或提取的。在一些示例中,待处理语句可以包括第一数量的多个单词。例如可以将待处理语句输入到经训练的修正器,得到对应的输出,该输出表示与待处理语句对应的经纠错语句。在一些实施例中,经纠错语句可以包括第二数量的多个单词。可选地,第一数量与第二数量相等或不相等。
[0086]
以此方式,本公开的实施例提供了一种训练方法以得到经训练的语法纠错模型,并且能够通过经训练的语法纠错模型来确定与待处理语句对应的经纠错语句,该确定过程的速度快,且性能优。
[0087]
例如,下述的表1和表2分别示出了采用本方案针对英文和中文的语料库进行测试的结果。示例性地,针对英文的修正器采用的是flan-x5-xxl架构,而针对中文的修正器采用的是中文双向和自回归变换器(bidirectional and auto-regressive transformers,bart)大(chinese bart large)架构,其中针对英文在conll-2014上进行了测试,针对中文在nlpcc-2018上进行了测试。
[0088]
表1
[0089] prf
0.5
初始修正器70.036.559.1
→
+有监督数据74.553.669.1
→
第一轮迭代75.542.065.2
→
第二轮迭代75.645.666.8
→
第三轮迭代75.049.668.0
→→
+有监督数据75.053.869.6
[0090]
表2
[0091] prf
0.5
初始修正器47.025.640.2
→
+有监督数据55.529.747.3
→
第一轮迭代51.625.442.8
→
第二轮迭代51.528.644.4
→→
+有监督数据55.930.347.8
[0092]
具体而言,表1和表2中示出的结果包括精度(p)、召回率(r)、以及f
0.5
,其中p表示正的真值的预测精度,r表示正的真值的召回率,而f
0.5
表示加权调和均值,其是基于p和r通过下式(4)得到的:
[0093][0094]
由此可见,本公开所提出的语法纠错模型能够通过无监督训练方法得到,并且对英文和中文均可以取得优异的性能。
[0095]
应理解,在本公开的实施例中,“第一”,“第二”,“第三”等只是为了表示多个对象可能是不同的,但是同时不排除两个对象之间是相同的,不应当解释为对本公开实施例的
任何限制。
[0096]
还应理解,本公开的实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在符合逻辑的情况下,可以相互结合。
[0097]
还应理解,上述内容只是为了帮助本领域技术人员更好地理解本公开的实施例,而不是要限制本公开的实施例的范围。本领域技术人员根据上述内容,可以进行各种修改或变化或组合等。这样的修改、变化或组合后的方案也在本公开的实施例的范围内。
[0098]
还应理解,上述内容的描述着重于强调各个实施例之前的不同之处,相同或相似之处可以互相参考或借鉴,为了简洁,这里不再赘述。
[0099]
图6示出了根据本公开的一些实施例的示例装置600的示意框图。装置600可以通过软件、硬件或者两者结合的方式实现。如图6所示,装置600包括模型获取单元610和输出确定单元620。
[0100]
模型获取单元610被配置为获取经训练的获取经训练的语法纠错模型,该经训练的语法纠错模型包括经训练的修正器。可选地,经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中初始修正器是通过无监督方法生成的。输出确定单元620被配置为将待处理的语句输入到经训练的语法纠错模型,得到输出的经纠错语句。
[0101]
可选地或附加地,装置600还可以包括训练单元605,被配置为:获取通过无监督方法生成的初始修正器;基于单语语料库,利用初始修正器,生成初始批评器;以及通过对初始修正器和初始批评器进行联合训练,生成经训练的语法纠错模型。
[0102]
在一些实施例中,训练单元605可以被配置为:获取原始数据;基于原始数据构建合成数据;以及将合成数据作为源数据以及将原始数据作为目标数据,通过训练生成初始修正器。
[0103]
示例性地,训练单元605可以被配置为:针对原始数据,基于范畴分布确定原始数据中的错误数量,错误数量被表示为n,n为正整数;以及通过对原始数据中的n个词进行处理,以得到与原始数据对应的合成数据,其中处理包括以下至少一项:删除、插入、或替换。
[0104]
示例性地,训练单元605可以被配置为将原始数据作为待处理数据,并执行以下过程n次:从预定词汇表中采样第一词;响应于待处理数据包括第一词,基于第一概率,将第一词从待处理数据中删除,以得到第一语句;基于第二概率,将第一词插入到第一语句中,以得到第二语句;以及响应于第二语句包括第一词,基于第三概率,将第一词替换为第二词,以得到下一过程的待处理数据。
[0105]
示例性地,训练单元605可以被配置为:基于第一词在预定词汇表中的频率排序值,通过平滑函数来确定第一概率和/或第二概率。
[0106]
可选地,平滑函数包括预定的递增序列。示例性地,训练单元605可以被配置为:基于第一词在预定词汇表中的频率排序值,确定递增序列中的与频率排序值最接近的两个数值;以及基于两个数值中的至少一个来确定第一概率和/或第二概率。
[0107]
示例性地,训练单元605可以被配置为:将第一词替换为掩码词;基于掩码语言模型,确定与掩码词所在的位置相关联的多个候选词;基于第一词与多个候选词的多个编辑距离,从多个候选词中选定第二词;以及将掩码词替换为第二词。
[0108]
示例性地,训练单元605可以被配置为:从多个候选词中确定对应的编辑距离小于阈值的至少一个候选词;以及基于至少一个候选词对应的至少一个编辑距离,以及与至少一个编辑距离相关联的统计信息,从至少一个候选词中选定第二词。
[0109]
在一些实施例中,训练单元605可以被配置为:基于单语语料库,利用初始修正器,构建用于训练初始批评器的训练集;以及使用训练集,基于第一损失函数,通过训练生成初始批评器。
[0110]
示例性地,训练单元605可以被配置为:将单语语料库中的每个语句输入到初始修正器中,以得到对应的输出;基于对应的输出的概率,来确定单语语料库的子集;基于子集中的每个语句与对应的输出之间的关系,确定子集中的每个语句的伪标签;以及可以子集中的每个语句以及子集中的每个语句的伪标签,来生成训练集。
[0111]
在一些实施例中,待处理的语句包括第一数量的多个单词,经纠错语句包括第二数量的多个单词,并且第一数量与第二数量相等或不相等。
[0112]
图6的装置600能够用于实现上述结合图2至图5所述的过程,为了简洁,这里不再赘述。
[0113]
本公开的实施例中对模块或单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在公开的实施例中的各功能单元可以集成在一个单元中,也可以是单独物理存在,也可以两个或两个以上单元集成为一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0114]
图7示出了可以用来实施本公开的实施例的示例设备700的框图。应当理解,图7所示出的设备700仅仅是示例性的,而不应当构成对本文所描述的实现方式的功能和范围的任何限制。例如,可以使用设备700来执行上文描述的图1至图6所述的过程。
[0115]
如图7所示,设备700是通用计算设备的形式。计算设备700的组件可以包括但不限于一个或多个处理器或处理单元710、存储器720、存储设备730、一个或多个通信单元740、一个或多个输入设备750以及一个或多个输出设备760。处理单元710可以是实际或虚拟处理器并且能够根据存储器720中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备700的并行处理能力。
[0116]
计算设备700通常包括多个计算机存储介质。这样的介质可以是计算设备700可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器720可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(random access memory,ram))、非易失性存储器(例如,只读存储器(read only memory,rom)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,eeprom)、闪存)或它们的某种组合。存储设备730可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备700内被访问。
[0117]
计算设备700可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图7中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器720可以包括计算机程序产品725,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各
种实现方式的各种方法或动作。
[0118]
通信单元740实现通过通信介质与其他计算设备进行通信。附加地,计算设备700的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备700可以使用与一个或多个其他服务器、网络个人计算机(personal computer,pc)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
[0119]
输入设备750可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备760可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备700还可以根据需要通过通信单元740与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备700交互的设备进行通信,或者与使得计算设备700与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(input/output,i/o)接口(未示出)来执行。
[0120]
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,提供了一种计算机程序产品,其上存储有计算机程序,该程序被处理器执行时实现上文描述的方法。
[0121]
这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0122]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0123]
可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0124]
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0125]
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
技术特征:
1.一种语法纠错方法,包括:获取经训练的语法纠错模型,所述经训练的语法纠错模型包括经训练的修正器,其中所述经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中所述初始修正器是通过无监督方法生成的;以及将待处理的语句输入到所述经训练的语法纠错模型,得到输出的经纠错语句。2.根据权利要求1所述的方法,其中所述经训练的语法纠错模型通过下述方式生成:获取通过无监督方法生成的所述初始修正器;基于单语语料库,利用所述初始修正器,生成初始批评器;以及通过对所述初始修正器和所述初始批评器进行联合训练,生成所述经训练的语法纠错模型。3.根据权利要求1所述的方法,其中所述初始修正器通过以下方式生成:获取原始数据;基于所述原始数据构建合成数据;以及将所述合成数据作为源数据以及将所述原始数据作为目标数据,通过训练生成所述初始修正器。4.根据权利要求3所述的方法,其中基于所述原始数据构建合成数据包括:针对所述原始数据,基于范畴分布确定所述原始数据中的错误数量,所述错误数量被表示为n,n为正整数;以及通过对所述原始数据中的n个词进行处理,以得到与所述原始数据对应的合成数据,其中所述处理包括以下至少一项:删除、插入、或替换。5.根据权利要求4所述的方法,其中通过对所述原始数据中的所述n个词进行处理以得到与所述原始数据对应的合成数据包括:将所述原始数据作为待处理数据,并执行以下过程n次:从预定词汇表中采样第一词;响应于所述待处理数据包括所述第一词,基于第一概率,将所述第一词从所述待处理数据中删除,以得到第一语句;基于第二概率,将所述第一词插入到所述第一语句中,以得到第二语句;以及响应于所述第二语句包括所述第一词,基于第三概率,将所述第一词替换为第二词,以得到下一过程的待处理数据。6.根据权利要求5所述的方法,还包括:基于所述第一词在所述预定词汇表中的频率排序值,通过平滑函数来确定所述第一概率和/或所述第二概率。7.根据权利要求6所述的方法,其中所述平滑函数包括预定的递增序列,基于所述第一词在所述预定词汇表中的所述频率排序值,确定所述递增序列中的与所述频率排序值最接近的两个数值;以及基于所述两个数值中的至少一个来确定所述第一概率和/或所述第二概率。8.根据权利要求5所述的方法,其中将所述第一词替换为第二词包括:将所述第一词替换为掩码词;基于掩码语言模型,确定与所述掩码词所在的位置相关联的多个候选词;
基于所述第一词与所述多个候选词的多个编辑距离,从所述多个候选词中选定所述第二词;以及将所述掩码词替换为所述第二词。9.根据权利要求8所述的方法,其中基于所述第一词与所述多个候选词的多个编辑距离从所述多个候选词中选定所述第二词包括:从所述多个候选词中确定对应的编辑距离小于阈值的至少一个候选词;以及基于所述至少一个候选词对应的至少一个编辑距离,以及与所述至少一个编辑距离相关联的统计信息,从所述至少一个候选词中选定所述第二词。10.根据权利要求2所述的方法,其中基于单语语料库,利用所述初始修正器,生成初始批评器包括:基于所述单语语料库,利用所述初始修正器,构建用于训练所述初始批评器的训练集;以及使用所述训练集,基于第一损失函数,通过训练生成所述初始批评器。11.根据权利要求10所述的方法,其中构建所述训练集包括:将所述单语语料库中的每个语句输入到所述初始修正器中,以得到对应的输出;基于所述对应的输出的概率,来确定所述单语语料库的子集;基于所述子集中的每个语句与对应的输出之间的关系,确定所述子集中的每个语句的伪标签;以及可以所述子集中的每个语句以及所述子集中的每个语句的所述伪标签,来生成所述训练集。12.根据权利要求1所述的方法,其中所述待处理的语句包括第一数量的多个单词,所述经纠错语句包括第二数量的多个单词,并且所述第一数量与所述第二数量相等或不相等。13.一种电子设备,包括:至少一个处理单元;至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时使得所述电子设备执行动作,所述动作包括:获取经训练的语法纠错模型,所述经训练的语法纠错模型包括经训练的修正器,其中所述经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中所述初始修正器是通过无监督方法生成的;以及将待处理的语句输入到所述经训练的语法纠错模型,得到输出的经纠错语句。14.一种语法纠错装置,包括:模型获取单元,被配置为获取经训练的获取经训练的语法纠错模型,所述经训练的语法纠错模型包括经训练的修正器,其中所述经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中所述初始修正器是通过无监督方法生成的;以及输出确定单元,被配置为将待处理的语句输入到所述经训练的语法纠错模型,得到输出的经纠错语句。15.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现
根据权利要求1至12中任一项所述的方法。
技术总结
本公开涉及语法纠错方法、装置、电子设备、计算机可读存储介质和计算机程序产品。该方法包括:获取经训练的语法纠错模型,经训练的语法纠错模型包括经训练的修正器,其中经训练的修正器是在初始修正器和初始批评器的基础上通过联合训练得到的,并且其中初始修正器是通过无监督方法生成的;以及将待处理的语句输入到经训练的语法纠错模型,得到输出的经纠错语句。以此方式,本公开可以通过无监督训练方法得到初始修正器,并基于初始修正器生成初始批评器,进而可以通过联合训练得到经训练的修正器。该训练过程无需依赖于人工标注,从而能够极大地降低人力和物力成本,提升了模型训练的效率。效率。效率。
技术研发人员:袁莉萍 曹瀚楠 张雨辰
受保护的技术使用者:脸萌有限公司
技术研发日:2023.08.04
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/