语法纠错方法及装置与流程

文档序号:31562433发布日期:2022-09-20 17:25阅读:39来源:国知局
语法纠错方法及装置与流程

1.本技术实施例涉及人工智能领域以及自然语言生成领域,尤其涉及一种语法纠错方法及装置。


背景技术:

2.语言是必不可少的沟通手段,但是由于语言本身的复杂性,翻译人员或翻译软件往往难以避免会出现错误,影响语义表达的准确性。因此,在语言翻译过程中,为了进行检错和纠错,需要利用算法模型对输入语言进行自然语言处理,但是在自然语言处理过程中又难免会引入新的错误,如语法错误。
3.基于此,语法纠错(grammatical error correction,gec)领域发展成为研究热点和难点。其中,基于序列到序列(sequence to sequence,seq2seq)的策略逐渐成为主流策略,seq2seq策略能够对一般语法错误进行检错和纠错。
4.但是,由于语法错误的多样性和随机性,现有语法纠错策略并不能高效充分的进行语法纠错,导致语法纠错效果不理想。


技术实现要素:

5.本技术实施例提供的语法纠错方法及装置,能够利用输入文本的特征对输入文本进行语法纠错,提升语法纠错效果。并且,将特征和输入文本并行进行编码,有效提高语法纠错效率。
6.为达到上述目的,本技术实施例采用如下技术方案:
7.第一方面,本技术实施例提供一种语法纠错方法,该方法可以包括:获取输入文本,以及获取输入文本的特征。对特征执行第一编码过程,获得第一编码向量,并对输入文本执行第二编码过程,获得第二编码向量;第一编码过程和第二编码过程并行。利用第一编码向量和第二编码向量,获得输入文本向量。对输入文本向量进行解码,输出解码后的输出文本。
8.如此,利用特征向量参与语法纠错过程。不仅能够提升语法纠错的性能,使得纠错模型能够提供更具表达能力和可辨别性的编码词向量,为后续解码过程提供良好基础。并且,并行进行输入文本编码过程以及特征编码过程,还能够降低特征编码过程对纠错模型推理效率上的影响,提升语法纠错效率。
9.其中,第一编码向量也可以理解为外部特征编码向量,第二编码向量也可以理解为输入文本对应的编码向量。
10.在一种可能的实现方式中,利用第一编码向量和第二编码向量,获得输入文本向量,包括:获得第二编码向量中每一词向量与第一编码向量中的特征向量对应的权重,基于权重,获得输入文本向量。
11.在一些实施例中,获得第一编码向量和第二编码向量后,能够通过自注意力(self-attention)机制将第一编码向量和第二编码向量进行结合,用于学习词与词之间的
关系,编码其上下文信息,从而获得输入文本向量。
12.示例性的,在attention机制中,纠错模型为第二编码向量的每个词向量对应的第一编码向量序列中的每一特征向量赋予不同的权重,从而抽取出更加关键以及重要的信息,使纠错模型能够做出更加准确的语法纠错判断,同时不会对纠错模型的计算和存储带来更大的开销。
13.比如,在注意力机制(attention)机制中,当前时刻t的编/解码向量s
t
(如第二编码向量中的时刻t对应的词向量)在使用注意力机制对另一个向量序列{hj}(如第一编码向量序列)进行语义抽取时,需要计算编/解码向量s
t
在向量序列{hj}中对应的权重α
tj
。其中,第一编码向量序列和第二编码向量序列的序列长度一致或存在对应关系。t和j为自然数。
14.在一种可能的实现方式中,第一编码向量与第二编码向量相对应;获得第二编码向量中每一词向量与第一编码向量中的特征向量对应的权重,包括:确定第一时刻时,第二编码向量中的第一词向量在第一编码向量中对应的第一特征向量;第一编码向量包含第一部分特征向量和第二部分特征向量,第一部分特征向量包含第一特征向量,第二部分特征向量不包含第一特征向量。获得第一词向量与第一部分特征向量中每一特征向量对应的第一权重,以及获得第一词向量与第二部分特征向量中按照预设规则抽取的特征向量对应的第二权重。
15.在一些实施例中,根据先验知识可知,与s
t
相关的语义信息一般存在于其当前所在的句子或者相邻句子当中,距离较远的文本中可能含有强相关语义信息的概率较低,且无关语义信息还可能对s
t
造成干扰。因此,采用根据词向量位置的自适应权重计算方法,计算s
t
对应的权重。
16.示例性的,以第二编码向量中包含的标点符号作为稠密权重与稀疏权重计算的划分节点,将对应与第二编码向量在同一句中强相关的第一编码向量进行稠密权重计算,将对应与第二编码向量不在同一句中非强相关的第一编码向量进行稀疏权重计算。
17.在一种可能的实现方式中,获取输入文本的特征,包括:根据输入文本对应的应用场景,利用第一知识库,获取输入文本在应用场景中对应的特征。
18.其中,第一知识库中可以包含领域知识。利用第一知识库,可以获得与输入文本对应的领域知识。
19.在一种可能的实现方式中,对特征执行第一编码过程,获得第一编码向量,包括:基于transformer编码模型,在第一编码过程中,对特征中的每一特征进行编码,获得第一编码向量。或者,基于知识图谱,在第一编码过程中,建立输入文本中目标单词或目标文本片段与知识图谱中对应的语义信息的映射关系,获得第一编码向量。
20.一些实施例中,纠错模型在接收到输入文本后,对输入文本进行外部特征提取,利用预训练语言模型或轻量级学习模型对外部特征进行编码,生成外部特征向量。其中,外部特征也可以称之为领域知识,用于表示当前语法纠错语句(即输入文本)对应的其所在领域或相近领域的相关知识,例如包括语义信息、实体特征(如相关城市名、国家名等)、其他语言特征等。
21.另一些实施例中,设计专门的学习模型,在训练过程中针对特定特征进行参数更新,从而实现更好的特征提取效果。后续,在外部特征向量编码过程中,应用该专门的学习模型,进行外部特征向量编码。
22.在一种可能的实现方式中,对输入文本执行第二编码过程,获得第二编码向量,包括:基于transformer编码模型,在第二编码过程中,对输入文本进行词语切分后,对切分后的每一词语进行编码,获得第二编码向量。
23.一些实施例中,纠错模型在接收到可能含有语法错误的输入文本后,基于transformer纠错模型,对输入文本进行编码,得到输入文本对应的向量序列,该向量序列可以利用input_emb进行表示。
24.第二方面,本技术实施例提供一种语法纠错装置,包括:处理器和存储器;存储器与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器从存储器中读取计算机指令,使得语法纠错装置执行如下操作:获取输入文本,以及获取输入文本的特征。对特征执行第一编码过程,获得第一编码向量,并对输入文本执行第二编码过程,获得第二编码向量;第一编码过程和第二编码过程并行。利用第一编码向量和第二编码向量,获得输入文本向量。对输入文本向量进行解码,输出解码后的输出文本。
25.在一种可能的实现方式中,利用第一编码向量和第二编码向量,获得输入文本向量,包括:获得第二编码向量中每一词向量与第一编码向量中的特征向量对应的权重,基于权重,获得输入文本向量。
26.在一种可能的实现方式中,第一编码向量与第二编码向量相对应;获得第二编码向量中每一词向量与第一编码向量中的特征向量对应的权重,包括:确定第一时刻时,第二编码向量中的第一词向量在第一编码向量中对应的第一特征向量;第一编码向量包含第一部分特征向量和第二部分特征向量,第一部分特征向量包含第一特征向量,第二部分特征向量不包含第一特征向量。获得第一词向量与第一部分特征向量中每一特征向量对应的第一权重,以及获得第一词向量与第二部分特征向量中按照预设规则抽取的特征向量对应的第二权重。
27.在一种可能的实现方式中,获取输入文本的特征,包括:根据输入文本对应的应用场景,利用第一知识库,获取输入文本在应用场景中对应的特征。
28.在一种可能的实现方式中,对特征执行第一编码过程,获得第一编码向量,包括:基于transformer编码模型,在第一编码过程中,对特征中的每一特征进行编码,获得第一编码向量。或者,基于知识图谱,在第一编码过程中,建立输入文本中目标单词或目标文本片段与知识图谱中对应的语义信息的映射关系,获得第一编码向量。
29.在一种可能的实现方式中,对输入文本执行第二编码过程,获得第二编码向量,包括:基于transformer编码模型,在第二编码过程中,对输入文本进行词语切分后,对切分后的每一词语进行编码,获得第二编码向量。
30.此外,第二方面所述的语法纠错装置的技术效果可以参考第一方面所述的语法纠错方法的技术效果,此处不再赘述。
31.第三方面,本技术实施例提供一种语法纠错装置,该语法纠错装置具有实现如上述第一方面及其中任一种可能的实现方式中所述的语法纠错方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
32.第四方面,本技术实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在语法纠错装置上运行时,使得语法纠错装置执行如第一方面及其中任一种可能的
实现方式中任一项所述的语法纠错方法。
33.第五方面,本技术实施例提供一种计算机程序产品,当计算机程序产品在语法纠错装置上运行时,使得语法纠错装置执行如第一方面及其中任一种可能的实现方式中任一项所述的语法纠错方法。
34.第六方面,本技术实施例提供一种电路系统,电路系统包括处理电路,处理电路被配置为执行如上述第一方面及其中任一种可能的实现方式中所述的语法纠错方法。
35.第七方面,本技术实施例提供一种芯片系统,包括至少一个处理器和至少一个接口电路,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,当至少一个处理器执行指令时,至少一个处理器执行如上述第一方面及其中任一种可能的实现方式中所述的语法纠错方法。
附图说明
36.图1为本技术实施例提供的通信系统的示意图;
37.图2为本技术实施例提供的系统架构的示意图;
38.图3为本技术实施例提供的芯片的硬件结构示意图;
39.图4为本技术实施例提供的纠错模型示意图一;
40.图5为本技术实施例提供的纠错模型示意图二;
41.图6为本技术实施例提供的语法纠错方法流程图;
42.图7为本技术实施例提供的纠错模型示意图三;
43.图8为本技术实施例提供的attention机制应用场景示意图;
44.图9为本技术实施例提供的语法纠错装置的结构示意图一;
45.图10为本技术实施例提供的语法纠错装置的结构示意图二。
具体实施方式
46.下面结合附图对本技术实施例提供的语法纠错方法及装置进行详细地描述。
47.本技术实施例的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
48.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
49.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
50.如图1所示,为本技术实施例提供的一种语法纠错方法的应用场景的示意图。该语法纠错方法应用于第一设备100中,或者应用于包含第一设备100的系统中。
51.可选的,第一设备100可以是具有语法纠错能力的服务器或设备。其中,若第一设
备100为服务器,则第一设备100可以为云服务器或者网络服务器等具有计算功能的设备或网络设备。第一设备100可以是一台服务器,也可以分别是由多台服务器组成的服务器集群,或者分别是一个云计算服务中心。例如,在图1中第一设备100可以执行本技术实施例提供的语法纠错方法。
52.在一些实施例中,本技术实施例可以应用于外语辅助写作、自然语言生成和外语翻译等可能出现语法错误的场景。如图1所示,第一设备100通过交互接口接收原始输入文本等,基于存储器中存储的算法模型、外部特征等,通过处理器对原始输入文本进行自然语言处理(natural language processing,nlp)以及语法纠错等处理。可选的,第一设备100还可以通过交互接口接收外部特征,进一步对自然语言处理过的原始输入文本进行语法纠错,提升纠错性能。之后,第一设备100通过交互接口输出经过自然语言处理和语法纠错的文本。其中,第一设备100中的存储器可以是一个统称,包括本地存储以及存储历史数据的数据库,数据库可以在第一设备100上,也可以在其它云服务器上。
53.在一些实施例中,如图1所示,本技术实施例提供的语法纠错方法还可以应用于包含第一设备100的系统中。如图1所示,第一设备100通过有线连接或无线连接的方式与第二设备200之间建立通信连接。其中,本技术实施例不对第一设备100和第二设备200之间的连接方式做具体限定。
54.可选的,第二设备200具体可以是手机、平板电脑、车载设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)、人工智能(artificial intelligence)设备等具有显示功能的终端设备,本技术实施例对第二设备200的具体类型不作任何限制。
55.在一些场景中,第一设备100提供人机交互接口(如键盘、触摸屏、语音采集模块等),接收用户输入的原始输入文本。在另一些场景中,第一设备100接收第二设备200发送原始输入文本,并将处理后的文本发送至第二设备200。如第二设备200将接收到的用户输入的中文文本发送至第一设备100进行翻译,并接收第一设备100翻译后的英文文本。
56.图2示例性的给出了本技术实施例提供的一种系统架构。
57.如图2中的系统架构所示,第一设备100配置输入/输出(input/output,i/o)接口111,用于与外部设备进行数据交互,用户可以通过第二设备200向i/o接口111输入数据,该输入数据在本技术实施例中可以包括:原始输入文本、外部特征等。第一设备100利用生成模块112、规则处理模块113、纠错模块114以及检测模块115,对原始输入文本进行处理,输出经过语法纠错的输出文本。
58.生成模块112,用于将第一设备100接收到的原始输入文本进行自然语言处理,输出可能含有语法错误的自然语句,如自然语句101。其中,自然语句101本身的语义表达无歧义且准确。比如,在生成模块112中预置用于进行自然语言处理的模板,以输出自然语句101。在该模板中具体的槽位(slot)值可以利用槽位类型代替。其中,槽位用于表示对原始输入文本进行自然语言处理过程中的约束条件,槽位识别是一种序列标记的任务,如基于预设规则、基于传统机器学习算法(如深度神经网络(deep neural network,dbn)、支持向量机(support vector machine,svm)等)、基于深度学习算法(如长短期记忆网络(long short-term memory,lstm)、双向循环神经网络(bidirection-recurrent neural network,bi-rnn)等)进行自然语言处理标记。
59.规则处理模块113,用于对含有语法错误的自然语句101中的高频语法错误进行处理,以减少语法错误。但是,规则处理模块113无法对一些少见且随机的语法错误进行纠错,因此,规则处理模块113在对自然语句101进行语法纠错后,需要将生成的输入文本102发送到纠错模块114进行进一步的语法纠错,以提升语法纠错的准确率。
60.纠错模块114,用于对输入文本102利用预置模型算法进行语法纠错,提升语言处理效果。本技术实施例中提供一种语法纠错方法,用于提升纠错模块114语法纠错的效率和准确率。可选的,纠错模块114能够获得数据库300中保存的外部特征301,进一步提升纠错准确率。其中,外部特征301例如包括语义信息、实体特征(如相关城市名、国家名等)、其他语言特征等,如利用外部特征301实现更加精确的外语翻译等。外部特征301可以由专门的采集设备采集外部特征后保存至数据库300,还可以接收第二设备200采集的用户输入的外部特征。此外,第一设备还可以直接接收用户根据原始输入文本情况和文本处理情况输入的外部特征。其中,具体的纠错方法详见下文描述,在此不再赘述。
61.检测模块115,用于对纠错模块114输出的纠错后的输入文本103进行检测,确定文本无误后,输出对应的输出文本104。可选的,检测模块115还可以确定当前纠错后的输入文本103中的语句表达方式是否常见,以及规则处理模块113中是否存在对应的纠错规则。若语句表达方式较为常见和/或规则处理模块113中不存在对应的纠错规则,则在规则处理模块113中添加新的纠错规则,以扩展规则处理模块113可以处理的错误范围,进一步提升第一设备100语法纠错的准确率。
62.需要说明的是,图2仅是本技术实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。例如,在图2中,数据库300相对第一设备100是外部存储器,在其它情况下,也可以将数据库300置于第一设备100中。
63.图3为本技术实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器(neural-network processing units,npu)300。该芯片可以被设置在如图2所示的第一设备100中,用以完成原始输入文本的自然语言处理及纠错过程。
64.神经网络处理器npu300作为协处理器挂载到主中央处理器(central processing unit,cpu)(host cpu)上,由主cpu分配任务。npu 300的核心部分为运算电路303,控制器304控制运算电路303提取存储器(权重存储器或输入存储器)中的数据并进行运算。
65.在一些实现中,运算电路303内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
66.举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路303从权重存储器302中取矩阵b相应的数据,并缓存在运算电路303中每一个pe上。运算电路303从输入存储器301中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器308(accumulator)中。
67.向量计算单元307可以对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
68.在一些实现中,向量计算单元能307将经处理的输出的向量存储到统一存储器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。
69.在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。
70.在一些实现中,处理过的输出的向量能够用作到运算电路303的激活输入,例如,用于在神经网络中的后续层中的使用。
71.统一存储器306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器305(direct memory access controller,dmac)将外部存储器中的输入数据存入至输入存储器301和/或统一存储器306、将外部存储器中的权重数据存入权重存储器302,以及将统一存储器306中的数据存入外部存储器。
72.总线接口单元310(bus interface unit,biu),用于通过总线实现主cpu、dmac和取指存储器309之间进行交互。
73.与控制器304连接的取指存储器309(instruction fetch buffer)用于存储控制器304使用的指令。控制器304用于调用取指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
74.一般地,统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为片上(on-chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
75.首先,为了便于理解,下面先对本技术实施例可能涉及的相关术语和概念进行介绍。
76.(1)语法错误
77.语法错误是指由于处理过程中产生的不符合语法规则的错误。例如包括:表达式不完整、缺少必要的标点符号、关键字错误、循环语句等。
78.(2)语法纠错(grammatical error correction,gec)
79.gec是自然语言生成(natural language generation,nlg)领域中的一个重要任务。利用gec技术能够检测语句中是否存在语法错误,并自动将检测出的语法错误进行纠正,gec在文本校对、外文学习辅助中都有重要的应用。
80.目前,gec任务主要采用类似于机器翻译任务的序列到序列(sequence to sequence,seq2seq)策略来实现。具体的,seq2seq策略是输出的长度不确定时采用的模型。比如,将一句中文翻译成英文,那么这句英文的长度有可能会比输入的中文语句长度短,也有可能会比输入的中文语句长度长。如利用seq2seq策略,输入的中文语句为“机器学习”,中文语句长度为4,对应输出的英文语句为“machine learning”,输出的英文语句长度为2。
81.其中,seq2seq策略的模型结构属于编码-解码(encoder-decoder,enc-dec)结构中的一种。在enc-dec结构中包含两个循环神经网络(recurrent neural network,rnn),一个rnn作为编码器(encoder),另一个rnn作为解码器(decoder)。encoder对应于编码过程,用于将输入序列压缩成指定长度的向量,该向量用于表示对应序列的语义,也可以描述为语义向量。decoder对应于解码过程,用于根据语义向量生成指定的序列。
82.(3)预训练语言模型
83.预训练语言模型是一种迁移学习的应用,能够自动学习输入句子中的每一个词的上下文相关含义表示,隐式地学习通用的语法语义知识。其中,transformer模型是预训练语言模型中的一种关键技术。
84.具体的,transformer模型和seq2seq策略模型一样采用了enc-dec结构。一般的,transformer模型中encoder层由多个encoder堆叠在一起,decoder层由多个decoder堆叠在一起。具体的,在encoder层中包含多组encoder,每一组encoder中包含一个自注意力(self-attention)层和一个前馈神经网络。在decoder层中包含多组decoder,每一组decoder中包含一个自注意力(self-attention)层、一个前馈神经网络,以及一个编码-解码注意力(enc-dec attention)层。
85.示例性的,图4示出一种基于transformer模型的纠错模型,该纠错模型能够结合外部特征进行语法纠错。如图4所示,在当前模型中,编码层(encoder layer)41包含self-attention层411和前馈神经网络412。将经过预训练语言模型编码的特征向量输入encoder层,即如图4所示将经过bert模块43处理的特征向量输入到encoder层41中,如将特征向量输入到bert-enc attention模块413和self-attention层411中。在encoder层41中,通过自注意力(self-attention)机制将特征向量与输入文本向量进行结合,用于学习词与词之间的关系,编码其上下文信息。再通过一个前馈网络412进行非线性变化处理,输出综合了上下文特征的各个词的向量表示(即编码向量)。之后,将编码向量以及特征向量输入解码层(decoder layer)42,如将编码向量以及特征向量输入bert-dec attention模块424和自注意力(self-attention)层421中。在decoder层42中还包含编码-解码注意力(enc-dec attention)层423,enc-dec注意力层423用于帮助当前节点获取到当前需要关注的重点内容(如前一时刻的向量解码后的内容)。之后,通过前馈神经网络422映射到词表的大小的一个解码向量,完成编码-解码过程。
86.如此,基于自注意力机制(attention)的方式将外部特征融入transformer模型的编码器和解码器中,能够很好地利用外部特征,提升纠错模型嵌入(embedding)的表达能力,从而提升纠错模型的性能。
87.但是,可以看出在图4所示的纠错模型中,编码器(即encoder层41)和解码器(即decoder层42)中都加入了自注意力机制与特征向量进行结合,虽然能够提高对特征向量的应用,提升纠错模型的纠错性能。但是同样增加了纠错模型的学习参数量,进而增加了纠错模型的计算资源消耗量,不利于其在实际场景中的应用。
88.此外,图4所示的纠错模型采用串联的方式运行,即预训练语言模型对特征的编码过程(即bert模块43对应的处理过程)、seq2seq框架的纠错模型对输入文本的编码过程(即encoder层41对应的处理过程)以及纠错模型的解码过程(即decoder层42对应的处理过程)这三个环节需要依次进行。由于预训练语言模型参数量巨大(如可以达到数亿之多),使得特征向量编码时间较长,从而使得纠错模型的推理时间更长,导致该纠错模型的应用难度较大。
89.在另一些实施例中,提出一种包含多层的编码器的纠错模型,用于进行自动语法纠错。如图5所示,该纠错模型中使用了双向的循环神经网络(即前向注意力机制和反向注意力机制)对输入文本进行字符级别的编码,从而实现更准确地从单词级别生成句子,可以
在训练数据中有效地学习到可能存在的错误类型,并得到其对应的纠错方式,进而在实际应用过程中能够获得更好的语法纠错效果。
90.但是,图5所示的纠错模型只能处理训练数据中所包含的语法错误类型,且对训练数据的要求较高,限定训练数据和测试数据应在同一领域或相近领域,导致该纠错模型对训练数据的规模要求较大。在实际应用场景中,大规模高质量的训练数据往往是难以获取,这也就限制了该纠错模型的应用范围。
91.此外,图5所示的纠错模型中,没有外部特征介入语法纠错过程。在不借助于外部特征(或称之为领域知识)的前提下,对一些较为少见的错误类型或其他领域的常识,该纠错模型往往难以准确的进行语法纠错处理。
92.基于此,本技术实施例提供一种语法纠错方法,在借助外部特征提高纠错效果的前提下,提升语法纠错效率,且能够降低模型中的参数量。
93.图6所示为本技术实施例提供的语法纠错方法示意图,如图6所示,该方法可以包括s601-s604:
94.s601、获取外部特征,对外部特征进行编码,获得外部特征向量。
95.在一些实施例中,纠错模型对应于图2中所示的第一设备100中的纠错模块114,其中,纠错模块114在接收到可能含有语法错误的输入文本102后,利用其内配置的纠错模型,对输入文本102进行语法纠错。
96.一些实施例中,纠错模型在接收到输入文本后,对输入文本进行外部特征提取,利用预训练语言模型或轻量级学习模型对外部特征进行编码,生成外部特征向量,外部特征向量可以利用feature_emb进行表示。其中,外部特征也可以称之为领域知识,用于表示当前语法纠错语句(即输入文本)对应的其所在领域或相近领域的相关知识,例如包括语义信息、实体特征(如相关城市名、国家名等)、其他语言特征等。
97.比如,若基于预训练语言模型对外部特征进行编码,则利用transformer纠错模型的编码器对外部特征进行编码,输出外部特征对应的向量序列,即feature_emb。又比如,若外部特征是基于完备的知识图谱,则基于轻量级学习模型对外部特征进行编码。如将输入文本中指定单词(如含有关键语义信息的实体)或文本片段的语义信息与其在知识图谱中相应的语义信息建立关联关系,从而生成对应的知识图谱关系编码向量,即feature_emb。
98.示例性的,图7为本技术实施例提供的一种纠错模型示意图。如图7所示,该纠错模型为基于transformer语法纠错策略建立的纠错模型,采用了enc-dec结构,包含编码器和解码器。并且,该纠错模型同样基于注意力机制,能够提高纠错性能。其中,外部特征编码模块712利用预训练语言模型或轻量级学习模型,对输入文本对应的外部特征711进行编码,生成外部特征向量。
99.另一些实施例中,设计专门的学习模型,在训练过程中针对特定特征进行参数更新,从而实现更好的特征提取效果。后续,在外部特征向量编码过程中,应用该专门的学习模型,进行外部特征向量编码。
100.s602、获取输入文本,对输入文本进行编码,获得编码向量。
101.在一些实施例中,纠错模型对应于图2中所示的第一设备100中的纠错模块114,其中,纠错模块114在接收到可能含有语法错误的输入文本102后,利用其内配置的纠错模型,对输入文本102进行语法纠错。
102.一些实施例中,纠错模型在接收到可能含有语法错误的输入文本后,基于transformer纠错模型,对输入文本进行编码,得到输入文本对应的向量序列,该向量序列可以利用input_emb进行表示。
103.示例性的,如图7所示的纠错模型,transformer编码模块722基于transformer纠错模型,对输入文本721进行编码。在编码过程中transformer编码模块722基于预设的字典,将输入文本721中包含的每个单词进行词语切分(tokenization)。之后,将每一单词对应的标记(token)进行分布式表达,得到每一单词对应的词向量,进而得到包含整个句子中各个单词对应向量的编码向量input_emb。
104.需要说明的是,在本技术实施例提供的纠错模型中,外部特征编码过程和输入文本编码过程互不依赖,因此两个过程能够实现并行处理。即如图6所示,第一设备同时执行上述步骤s601和步骤s602,从而节省纠错模型的推理过程中的编码时间。如图7所示的纠错模型,虚线框71所示的外部特征编码过程和虚线框72所示的输入文本编码过程并行处理,获得外部特征向量(也可以描述为第一编码向量)和编码向量(也可以描述为第二编码向量)后,共同输入注意力机制模块73进行处理,以获得输入文本向量。
105.如此,本技术实施例提供的语法纠错方法,能够在高效利用预训练语言模型或者知识图谱等获得较为完备的外部特征的同时,运行编码模块对输入文本进行编码。不仅能够提升语法纠错的性能,使得纠错模型能够提供更具表达能力和可辨别性的编码词向量,为后续解码过程提供良好基础,还能够降低外部特征编码过程对纠错模型推理效率上的影响。
106.在一些实施例中,基于纠错模型中的并行处理机制,使得纠错模型能够针对特定的错误类型配置相应的外部特征,从而在保证推理性能的前提下,提升编码的表达能力。比如,开发者基于先验知识(如特定应用场景中错误类型的分布等),根据语法错误类型为纠错模型动态适配不同的特征组合,使得纠错模型能够对外部特征进行灵活的应用。如假设存在多个外部特征,开发者能够根据实际计算资源和先验知识自主进行外部特征配置,提高外部特征编码效率。其中,先验知识能够预配置与知识库中,用户能够获得知识库中的先验知识,或者由第一设备直接获得该先验知识,进行自适应的外部特征获取调整。
107.s603、利用外部特征向量和编码向量,获得输入文本向量。
108.在一些实施例中,如图7所示的纠错模型中,注意力机制模块73获得外部特征向量和编码向量后,能够通过自注意力(self-attention)机制将特征向量以及编码向量进行结合,用于学习词与词之间的关系,编码其上下文信息,从而获得输入文本向量。
109.具体的,在注意力机制(attention)机制中,纠错模型为输入向量的每个词向量对应的外部特征向量序列中的每一外部特征向量赋予不同的权重,从而抽取出更加关键以及重要的信息,使纠错模型能够做出更加准确的语法纠错判断,同时不会对纠错模型的计算和存储带来更大的开销。比如,在attention机制中,当前时刻t的编/解码向量s
t
(如编码向量中的时刻t对应的词向量)在使用注意力机制对另一个向量序列{hj}(如外部特征向量序列)进行语义抽取时,需要计算编/解码向量s
t
在向量序列{hj}中对应的权重α
tj
。其中,编码向量序列和外部特征向量序列的序列长度一致或存在对应关系。t和j为自然数。
110.示例性的,如图8中(a)所示为外部特征向量(feature_emb)序列,图8中(b)所示为编码向量(input_emb)序列,外部特征向量序列和编码向量序列的序列长度一致。假设在t
时刻,需要获得编码向量81在外部特征向量序列中对应的权重。根据先验知识可知,与s
t
相关的语义信息一般存在于其当前所在的句子或者相邻句子当中,距离较远的文本中可能含有强相关语义信息的概率较低,且无关语义信息还可能对s
t
造成干扰。
111.因此,采用根据词向量位置的自适应权重计算方法,计算s
t
对应的权重。如图8中(b)所示,编码向量81(即enc_emb_5)对应于图8中(a)所示的外部特征向量82(即fea_emb_5),则可以对外部特征向量82所在句子中的外部特征向量序列进行稠密权重α
tj
计算。如对图8中(a)所示的在外部特征向量83(即标点符号向量“.”)之前且含外部特征向量83的外部特征向量序列(如图8中(a)所示虚线框84内所示的外部特征向量序列)进行稠密的权重α
tj
计算,即计算编码向量81与其中每一外部特征向量对应的权重α
tj
。并且,对距离外部特征向量82距离较远的文本片段中的外部特征向量序列进行稀疏的权重α
tj
计算。如对图8中(a)所示的在外部特征向量83(即标点符号向量“.”)之后的外部特征向量序列(如图8中(a)所示虚线框85内所示的外部特征向量序列)进行稀疏的权重α
tj
计算,即计算编码向量81与其中间隔为k的外部特征向量对应的权重α
tj
,k为正整数。如图8中(a)所示,进行间隔1个外部特征向量的稀疏的权重计算。综上,在计算编码向量81的权重时,采用基于内容的自适应attention机制,仅计算如图8中(a)所示的黑色填充的外部特征向量(如fea_emb_0至fea_emb_8,fea_emb_10,fea_emb_12,fea_emb_14以及fea_emb_16)对应的权重α
tj

112.如此,利用上述方法,基于编码向量对应的文本内容位置,对编码向量序列中的每一编码向量计算其与特征向量序列对应的权重,实现基于内容的自适应attention机制,降低运算参数量,提升效率。
113.在一些实施例中,在基于内容的自适应attention机制进行权重计算的过程中,若feature_emb可以对input_emb向量序列中的每个词向量进行增强(即采用稠密的权重计算),则第一设备利用注意力机制模块进行嵌入(embedding)的加权融合。比如,若外部特征向量与编码向量强相关,此时feature_emb以及input_emb均为输入文本向量的表达,则为了提高效率,对两者进行加权,实现并行计算。如可以利用如下公式表示并行计算过程,feature_emd=f1(input),input_emd=f2(input),atten_parallel=a1*f1(input)+a2*f2(input)。其中,a1和a2为两者对应的加权权重。若feature_emb是对input_emb向量序列中特定编码向量进行embedding增强(即采用稀疏的权重计算),则第一设备直接将编码向量和外部特征向量进行合并。比如,若外部特征向量与编码向量非强相关(如利用较少的输入文本的信息获取的外部特征,或利用与输入文本无关的信息获取的外部特征),则直接对feature_emb和input_emb进行向量拼接,即实现串行计算。如可以利用如下公式表示串行计算过程,feature_emd=f1(feature),input_emd=f2(input),atten_seq=f(input,feature)。
114.可以理解的是,上述以编码向量中包含的标点符号作为稠密权重与稀疏权重计算的划分节点为例,对基于内容的自适应attention机制进行说明。此外,还可以采用其他方法,确定划分节点,比如基于距离进行划分,如将与待计算的编码向量对应的外部特征向量以及其前后相邻的l个外部特征向量进行稠密权重计算,前后相邻l个外部特征向量以外的特征向量进行稀疏权重计算等。其中,l为正整数,l的取值可以根据编码向量序列的长度确定。并且,在稀疏的权重计算过程中,还可以采用其他密度进行计算,如间隔(2k+1)个外部特征向量计算权重等。
115.在一些实施例中,第一设备采用上述基于内容的自适应attention机制将外部特征向量和编码向量进行有效结合,获得输入文本向量,该输出文本向量可以利用attn_emb进行表示。自适应attention机制能够提升纠错模型在解码环节时词向量的表达能力和可辨别性,进而改善纠错性能。
116.如此,本技术实施例提供的语法纠错方法,能够在有效利用外部特征向量进行语法纠错的前提下,综合纠错模型的复杂度和计算资源消耗问题,对与当前词向量相关性较弱的文本片段采用稀疏的权重计算的注意力机制,以降低模型中的参数量。相对于现有技术中对每一外部特征向量均计算权重的注意力机制,不会增加计算消耗,降低无关语义对词向量的干扰,进而降低资源消耗。
117.s604、对输入文本向量进行解码,输出解码后的输出文本。
118.在一些实施例中,利用transformer策略,在获得输入文本向量后,将输入文本向量输入解码器进行解码,以输出纠错模型语法纠错后的输出文本。
119.示例性的,基于上文对transformer模型的介绍可知,transformer模型的解码器中包含自注意力(self-attention)层、前馈神经网络以及编码-解码注意力(enc-dec attention)层。那么,如图7所示的纠错模型,transformer解码模块74获得注意力机制模块73输出的输入文本向量attn_emb后,结合transformer解码模块74在之前时刻获得的经过自注意力层处理以及前馈神经网络归一化处理后的解码向量(即dec_emb),利用enc-dec注意力层对attn_emb和dec_emb进行内容处理,获得最终参与解码的向量,该向量可以利用fused_emb进行表示。如此,提升transformer解码模块中参与生成的embedding的可辨别性和表达能力。
120.之后,获得用于解码的向量后,如图7所示,transformer解码模块74基于其中预设的解码字典,利用预设算法(如集束搜索算法等)选择最终生成的单词,获得文本纠错结果。transformer解码模块74将该文本纠错结果输出,即最终纠错模型能够输出原始输入文本对应的纠错后的文本,如输出如图2所示的纠错后的输入文本103。
121.如此,本技术实施例提供的语法纠错方法,能够有效的利用文本纠错策略中的外部特征,并利用并行编码策略,在提升语法纠错性能的同时保证语法纠错效率,扩大纠错模型的应用场景,提高用户使用体验。
122.以上详细说明了本技术实施例提供的语法纠错方法。以下结合图9详细说明本技术实施例提供的语法纠错装置。
123.在一种可能的设计中,图9为本技术实施例提供的语法纠错装置的结构示意图。如图9所示,语法纠错装置900包括:处理模块901和收发模块902。语法纠错装置900可用于实现上述方法实施例中涉及的第一设备的功能。其中,语法纠错装置900可以为第一设备本身,也可以为第一设备中的功能单元或者芯片,或者与第一设备匹配使用的装置。
124.其中,处理模块901,用于支持语法纠错装置900执行图6中的步骤s601、步骤s602、步骤s603以及步骤s604;和/或用于本文所描述的技术的其它过程。
125.收发模块902,用于支持语法纠错装置900执行图6中的步骤s601和步骤s604;和/或用于本文所描述的技术的其它过程。
126.可选的,收发模块902可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。收发模块902可以包括接收模块和发送模块,该接收模块用于接收其他通信装置
发送的信号,该发送模块用于向其他通信装置发送信号。
127.可选的,图9所示的语法纠错装置900还可以包括存储单元(图9中未示出)。其中,存储单元存储有程序或指令。当处理模块901和收发模块902执行该程序或指令时,使得图9所示的语法纠错装置900可以执行上述方法侧实施例所述的语法纠错方法。
128.图9所示的语法纠错装置900中的各个单元的操作和/或功能分别为了实现上述方法侧实施例所述的语法纠错方法的相应流程,为了简洁,在此不再赘述。语法纠错装置900的技术效果可以参考上述方法侧实施例所述的语法纠错方法的技术效果,此处不再赘述。
129.图10所示为本技术实施例提供的装置的硬件结构示意图。该装置包括至少一个处理器1001,通信线路1002,存储器1003以及至少一个通信接口1004。其中,存储器1003还可以包括于处理器1001中。
130.处理器1001可以是一个通用中央处理器(central processing unit,cpu),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本技术方案程序执行的集成电路。
131.通信线路1002可包括一通路,在上述组件之间传送信息。
132.通信接口1004,用于与其他设备通信。在本技术实施例中,通信接口可以是模块、电路、总线、接口、收发器或者其它能实现通信功能的装置,用于与其他设备通信。可选的,当通信接口是收发器时,该收发器可以为独立设置的发送器,该发送器可用于向其他设备发送信息,该收发器也可以为独立设置的接收器,用于从其他设备接收信息。该收发器也可以是将发送、接收信息功能集成在一起的部件,本技术实施例对收发器的具体实现不做限制。
133.存储器1003可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路与处理器相连接。存储器也可以和处理器集成在一起。
134.其中,存储器1003用于存储用于实现本技术方案的计算机执行指令,并由处理器1001来控制执行。处理器1001用于执行存储器1003中存储的计算机执行指令,从而实现本技术下述实施例提供的语法纠错方法。
135.可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码、指令、计算机程序或者其它名称,本技术实施例对此不作具体限定。
136.在具体实现中,作为一种实施例,处理器1001可以包括一个或多个cpu,例如图10中的cpu0和cpu1。
137.在具体实现中,作为一种实施例,该装置可以包括多个处理器,例如图10中的处理器1001和处理器1005。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于
处理数据(例如计算机程序指令)的处理核。
138.需要说明的是,上述的装置可以是一个通用设备或者是一个专用设备,本技术实施例不限定该装置的类型。本技术实施例示意的结构并不构成对该装置的具体限定。在本技术另一些实施例中,该装置可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
139.本技术实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。
140.可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
141.可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术实施例并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
142.示例性的,该芯片系统可以是现场可编程门阵列(field programmable gate array,fpga),可以是专用集成芯片(application specific integrated circuit,asic),还可以是系统芯片(system on chip,soc),还可以是中央处理器(central processor unit,cpu),还可以是网络处理器(network processor,np),还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
143.应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
144.本技术的实施例还提供了一种存储介质,用于存储为上述通信装置所用的指令。
145.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在服务器上运行时,使得服务器执行上述相关方法步骤实现上述实施例中的语法纠错方法。
146.本技术实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的语法纠错方法。
147.另外,本技术实施例还提供一种装置,该装置具体可以是组件或模块,该装置可包括相连的一个或多个处理器和存储器;其中,存储器用于存储计算机程序,一个或多个计算机程序包括指令。当该指令被一个或多个处理器执行时,以使装置执行上述各方法实施例中的语法纠错方法。
148.其中,本技术实施例提供的装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
149.结合本技术实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read only memory,rom)、可擦除可编程只读存储器(erasable programmable rom,eprom)、电可擦可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuit,asic)中。
150.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
151.在本技术所提供的几个实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
152.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
153.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
154.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
155.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1