CN112749552B - 文本转换方法、装置、存储介质及电子设备 - Google Patents
文本转换方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112749552B CN112749552B CN202110129830.4A CN202110129830A CN112749552B CN 112749552 B CN112749552 B CN 112749552B CN 202110129830 A CN202110129830 A CN 202110129830A CN 112749552 B CN112749552 B CN 112749552B
- Authority
- CN
- China
- Prior art keywords
- abstract syntax
- text
- sample
- parser
- parsers
- 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.)
- Active
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 179
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012549 training Methods 0.000 claims abstract description 135
- 230000008569 process Effects 0.000 claims abstract description 21
- 239000013598 vector Substances 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 13
- 238000013528 artificial neural network Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/253—Grammatical analysis; Style critique
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Devices For Executing Special Programs (AREA)
- Machine Translation (AREA)
Abstract
本公开涉及一种文本转换方法、装置、存储介质及电子设备。该文本转换方法包括:获取待转换文本;将所述待转换文本输入文本转换模型,得到所述文本转换模型输出的目标文本;其中,所述文本转换模型是通过如下方式得到的:对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器;将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。采用本公开的这种文本转换方法可以在文本转换过程中有效降低人工工作量,并且可以提升转换得到的目标文本的准确性。
Description
技术领域
本公开涉及文本处理技术领域,尤其涉及一种文本转换方法、装置、存储介质及电子设备。
背景技术
相关技术中,为了减轻程序员编写程序代码的压力,人们不断开发了各种辅助软件,以期望能够在程序员编写程序时降低程序员手敲代码的工作量。其中,代码自动生成领域的辅助软件尤为热门。
众所周知,编写程序的语言种类有很多,如C语言、C++、C#、Java、Javascript、Python等等。代码自动生成领域的辅助软件一般是指可以根据一种语言的代码自动生成另一种语言的代码的软件。目前,可以基于手工设计语法、词汇,或者利用候选逻辑形式排名的特性来实现代码自动生成的目的,然而这种方式仍然需要程序员手敲少量代码。
发明内容
为克服相关技术中存在的问题,本公开提供一种文本转换方法、装置、存储介质及电子设备,以实现在文本转换过程中进一步降低人工工作量的技术效果。
根据本公开实施例的第一方面,提供一种文本转换方法,所述方法包括:
获取待转换文本;
将所述待转换文本输入文本转换模型,得到所述文本转换模型输出的目标文本;
其中,所述文本转换模型是通过如下方式得到的:
对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,用于所述抽象语法解析器进行训练的样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;
将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
可选地,所述方法还包括:通过如下方式构造用于所述至少两个抽象语法解析器进行训练的样本数据:
获取所述待转换文本样本,以及与所述待转换文本样本对应的目标文本样本;
根据所述目标文本样本构建与所述目标文本样本的语言类型对应的所述抽象语法树;
根据多种遍历顺序遍历所述抽象语法树,得到多种所述样本语法树节点序列;
将每种所述样本语法树节点序列分别与所述待转换文本样本进行组合,得到多组样本数据,其中,一组样本数据用于对一个所述抽象语法解析器进行训练。
可选地,所述多种遍历顺序包括深度优先遍历顺序、广度优先遍历顺序、由左至右的横向遍历顺序、由右至左的横向遍历顺序、从上至下的纵向遍历顺序中的至少两种。
可选地,所述对至少两个抽象语法解析器进行联合训练,包括:
在对两个抽象语法解析器进行联合训练的情况下,根据所述两个抽象语法解析器的输出结果,计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异;
将所述其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异作为该其中一个抽象语法解析器的损失信息,并根据所述损失信息更新该其中一个抽象语法解析器的训练参数。
可选地,所述计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异,包括:
用KL散度计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异。
可选地,在对所述两个抽象语法解析器进行联合训练的过程中,通过如下算式更新所述两个抽象语法解析器的训练参数:
其中,J(D,θ)和J(D′,θ′)分别表征所述两个抽象语法解析器的训练目标,θ和θ′分别表征所述两个抽象语法解析器的所述训练参数,D={(x,a)}和D′={(x,a′)}分别表征所述两个抽象语法解析器的样本数据,x表征待转换文本样本,a和a′分别表征所述两个抽象语法解析器的样本数据中的样本语法树节点序列,T表征样本语法树节点序列的长度,λ是用于控制损失函数的重要性系数,KL(||)是KL散度,z表征所述样本语法树节点序列对应的抽象语法树,n表征抽象语法树z中的一个节点,t(n)和t′(n)表征所述两个抽象语法解析器的样本语法树节点序列中节点n分别对应的在抽象语法树z中的遍历时间步长,p表征概率,a<t(n)表征样本语法树节点序列中节点n之前的节点。
可选地,所述将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,包括:
将训练完成的目标抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,所述目标抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
可选地,所述将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,包括:
将第一抽象语法解析器和第二抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型;
其中,所述第一抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器,所述第二抽象语法解析器是样本数据中包括以广度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
可选地,所述文本转换模型具体用于:
对所述待转换文本进行编码,得到待转换文本向量;
将所述待转换文本向量输入所述第一抽象语法解析器,得到第一语法树节点序列;
将所述待转换文本向量输入所述第二抽象语法解析器,得到第二语法树节点序列;
根据所述第一语法树节点序列和所述第二语法树节点序列确定目标语法树节点序列;
基于所述目标语法树节点序列生成所述目标文本。
可选地,所述待转换文本和所述目标文本的语言类型不同;或者,
所述待转换文本和所述目标文本的语言类型相同、且单位文本的排列顺序不同。
根据本公开实施例的第二方面,提供一种文本转换模型的训练方法,包括通过如下方式训练得到所述文本转换模型:
使用样本数据对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,所述样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;
将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
根据本公开实施例的第三方面,提供一种文本转换装置,所述装置包括:
获取模块,被配置为获取待转换文本;
输入模块,被配置为将所述待转换文本输入文本转换模型,得到所述文本转换模型输出的目标文本;
训练模块,被配置为通过如下方式得到所述文本转换模型:对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,用于所述抽象语法解析器进行训练的样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
可选地,所述训练模块包括:
构建子模块,被配置为通过如下方式构造用于所述至少两个抽象语法解析器进行训练的样本数据:获取所述待转换文本样本,以及与所述待转换文本样本对应的目标文本样本;根据所述目标文本样本构建与所述目标文本样本的语言类型对应的所述抽象语法树;根据多种遍历顺序遍历所述抽象语法树,得到多种所述样本语法树节点序列;将每种所述样本语法树节点序列分别与所述待转换文本样本进行组合,得到多组样本数据,其中,一组样本数据用于对一个所述抽象语法解析器进行训练。
可选地,所述多种遍历顺序包括深度优先遍历顺序、广度优先遍历顺序、由左至右的横向遍历顺序、由右至左的横向遍历顺序、从上至下的纵向遍历顺序中的至少两种。
可选地,所述训练模块包括:
训练子模块,被配置为在对两个抽象语法解析器进行联合训练的情况下,根据所述两个抽象语法解析器的输出结果,计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异;将所述其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异作为该其中一个抽象语法解析器的损失信息,并根据所述损失信息更新该其中一个抽象语法解析器的训练参数。
可选地,所述训练子模块,还被配置为用KL散度计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异。
可选地,所述训练子模块,具体被配置为在对所述两个抽象语法解析器进行联合训练的过程中,通过如下算式更新所述两个抽象语法解析器的训练参数:
其中,J(D,θ)和J(D′,θ′)分别表征所述两个抽象语法解析器的训练目标,θ和θ′分别表征所述两个抽象语法解析器的所述训练参数,D={(x,a)}和D′={(x,a′)}分别表征所述两个抽象语法解析器的样本数据,x表征待转换文本样本,a和a′分别表征所述两个抽象语法解析器的样本数据中的样本语法树节点序列,T表征样本语法树节点序列的长度,λ是用于控制损失函数的重要性系数,KL(||)是KL散度,z表征所述样本语法树节点序列对应的抽象语法树,n表征抽象语法树z中的一个节点,t(n)和t′(n)表征所述两个抽象语法解析器的样本语法树节点序列中节点n分别对应的在抽象语法树z中的遍历时间步长,p表征概率,a<t(n)表征样本语法树节点序列中节点n之前的节点。
可选地,所述训练模块包括:
第一执行子模块,被配置为将训练完成的目标抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,所述目标抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
可选地,所述训练模块包括:
第二执行子模块,被配置为将第一抽象语法解析器和第二抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型;其中,所述第一抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器,所述第二抽象语法解析器是样本数据中包括以广度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
可选地,所述文本转换模型具体用于:对所述待转换文本进行编码,得到待转换文本向量;将所述待转换文本向量输入所述第一抽象语法解析器,得到第一语法树节点序列;将所述待转换文本向量输入所述第二抽象语法解析器,得到第二语法树节点序列;根据所述第一语法树节点序列和所述第二语法树节点序列确定目标语法树节点序列;基于所述目标语法树节点序列生成所述目标文本。
可选地,所述待转换文本和所述目标文本的语言类型不同;或者,所述待转换文本和所述目标文本的语言类型相同、且单位文本的排列顺序不同。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的文本转换方法的步骤。
根据本公开实施例的第五方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所提供的文本转换方法的步骤。
采用本公开提供的技术方案,至少可以达到以下有益技术效果:
通过获取待转换文本,并将待转换文本输入文本转换模型,得到文本转换模型输出的目标文本。这种利用文本转换模型来转换得到目标文本的方式,在文本转换过程中无需人工参与文本转换,因而这种方式相较于相关技术中的方式,实现了在文本转换过程中进一步降低人工工作量的目的。
并且,由于文本转换模型中的解码器组件(即抽象语法解析器)是由至少两个抽象语法解析器进行联合训练而得到的,加之该至少两个抽象语法解析器的样本数据中样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的,因而该至少两个抽象语法解析器中的任意一个抽象语法解析器不仅能从自身的样本数据中的样本语法树节点序列中学习到一种遍历维度的隐含特征信息,还能从联合训练的其他抽象语法解析器上学习到其他抽象语法解析器从其自身的样本数据中的样本语法树节点序列中学习到的另一种遍历维度的隐含特征信息。将训练完成的至少两个抽象语法解析器中的任意一个或多个考虑多种遍历维度隐含特征信息的抽象语法解析器作为文本转换模型的解码器组件,都能使得文本转换模型转换出更加精准的目标文本。在文本转换模型能够转换出更加精准的目标文本的基础上,无需人工在后续应用场景中对目标文本进行校对或纠错,可以直接对转换出的目标文本进行使用,因此在文本转换后目标文本的应用场景中也可以降低人工工作量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种文本转换方法的应用场景图。
图2是根据一示例性实施例示出的一种文本转换方法的流程图。
图3是根据一示例性实施例示出的一种抽象语法树。
图4是根据一示例性实施例示出的一种抽象语法解析器Tranx和Tranx'对同一待转换文本样本“if six.PY3:pass”进行解析的流程示意图。
图5是根据一示例性实施例示出的一种联合训练抽象语法解析器Tranx和Tranx'的训练框架。
图6是根据一示例性实施例示出的一种与图5对应的伪代码示意图。
图7是根据一示例性实施例示出的一种文本转换装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
相关技术中,可以基于手工设计语法、词汇,或者利用候选逻辑形式排名的特性等方式来实现代码自动生成的目的,然而这种方式仍然需要程序员手敲少量代码。
随着深度学习神经网络的蓬勃发展,本公开提出可以利用深度学习神经网络如LSTM(Long Short-Term Memory,长短期记忆网络)、集成学习(Ensemble Learning)来实现文本转换任务,这种方式可在文本转换过程中将人工工作量降低到零。并且又考虑到抽象语法树不仅有利于减少搜索空间(基于父节点搜索子节点相较于全排列方式大大降低了搜索复杂度),也使基于抽象语法树的解码器在解码过程中能够充分利用句法信息,因而可以采用基于抽象语法树的深度学习神经网络来实现代码自动生成。但相关技术中,基于抽象语法树的深度学习神经网络在预测序列时,均只考虑与训练该神经网络的样本语法树节点序列相同的遍历顺序维度的信息,加之训练该神经网络的样本语法树节点序列对应的遍历顺序维度是唯一的,所以这类神经网络的预测结果的准确性不够高,同时随着当前预测节点与已错误预测节点的距离的增加,当前预测节点的预测结果偏差越大,这会导致整个预测结果误差巨大。其中,本领域普通技术人员应当理解的是,基于抽象语法树的深度学习神经网络的各个样本语法树节点序列的遍历维度应当相同,若不同,则训练出的该基于抽象语法树的深度学习神经网络的预测准确度会更差。
有鉴于此,本公开实施例提供一种文本转换方法、装置、存储介质及电子设备,以在实现在文本转换过程中进一步降低人工工作量的基础之上,提升转换得到的目标文本的准确性。
下面首先对本公开技术方案的应用场景进行说明。
参见图1,本公开的文本转换方法用于根据用户输入的文本转换得到用户需求的输出文本。具体地,本公开的文本转换方法可以应用于跨语种的翻译场景,例如,将中文文本翻译为英文文本的应用场景。又例如,将由C语言编写的程序代码转换为由Java语言编写的相同功能的程序代码的应用场景。
本公开的文本转换方法还可以应用于文本语法纠正的应用场景中,例如,将文本“两个软件学院的学生”转换为文本“软件学院的两个学生”或“学生是两个软件学院的学生”的应用场景。
本公开的文本转换方法还可以应用于文本解释的应用场景中,例如将文本“方兴未艾”转换为文本“比喻事物正在发展,尚未达到止境”的应用场景。
此外,本公开的文本转换方法还可以应用于其他的生成文本应用场景中。对此本公开不作具体的限制。
下面对本公开的技术方案进行详细地实施例说明。
图2是根据一示例性实施例示出的一种文本转换方法的流程图,如图2所示,该文本转换方法用于终端或服务器中,具体包括以下步骤:
在步骤S11中,获取待转换文本。
在步骤S12中,将所述待转换文本输入文本转换模型,得到所述文本转换模型输出的目标文本。
其中,所述文本转换模型是通过如下方式得到的:
对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,用于所述抽象语法解析器进行训练的样本数据包括:待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
应当说明的是,文本转换模型可以是在训练完成之后,移植到终端上的。文本转换模型也可以是在终端上进行训练得到的。
可选地,所述至少两个抽象语法解析器的样本数据是通过如下方式进行构造的:
获取所述待转换文本样本,以及与所述待转换文本样本对应的目标文本样本;根据所述目标文本样本构建与所述目标文本样本的语言类型对应的所述抽象语法树;根据多种遍历顺序遍历所述抽象语法树,得到多种所述样本语法树节点序列;将每种所述样本语法树节点序列分别与所述待转换文本样本进行组合,得到多组样本数据,其中,一组样本数据用于对一个所述抽象语法解析器进行训练。
其中,在训练文本转换模型时,待转换文本样本和目标文本样本都是文本转换模型的输入数据,用于训练文本转换模型。在训练抽象语法解析器时,待转换文本样本和样本语法树节点序列是抽象语法解析器的输入数据,用于训练抽象语法解析器。
值得说明的是,抽象语法解析器的作用是进行语法检查、并构建由输入的文本组成的数据结构(一般是语法分析树、抽象语法树等层次化的数据结构),抽象语法解析器输出与抽象语法树/语法分析树的某一遍历顺序对应的语法树节点序列。抽象语法解析器是解码器/编译器/解释器的组件。本公开的抽象语法解析器为神经网络模型。至少两个抽象语法解析器进行联合训练是指该至少两个抽象语法解析器进行模型互学习。
其中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。本公开的抽象语法树不限于各种编程语言的语法结构的抽象表示,还可以为中文、英语、法语、德语等语法结构的抽象表示。
示例地,假设要联合训练两个抽象语法解析器A和B,那么先确定待转换文本样本,假设待转换文本样本为“我是学生”。进一步地,确定与“我是学生”对应的目标文本样本为“I’m a student”。根据目标文本样本“I’m a student”构建与英语语言类型对应的抽象语法树a,假设抽象语法树a如图3所示,图3中各节点可以表征词/句成分、词/句属性、词/句含义等信息。根据深度优先遍历顺序和广度优先遍历顺序遍历该抽象语法树a,得到两个样本语法树节点序列为序列a1、a2、a3、a4、a5、a6、a7、a8以及序列a1、a2、a6、a7、a8、a3、a5、a4。将待转换文本样本“我是学生”和样本语法树节点序列a1、a2、a3、a4、a5、a6、a7、a8作为抽象语法解析器A的样本数据。将待转换文本样本“我是学生”和样本语法树节点序列a1、a2、a6、a7、a8、a3、a5、a4作为抽象语法解析器B的样本数据。应当说明的是,在联合训练抽象语法解析器A和B时,样本数据的数量不止上述示例中示出的一条样本数据。
此外还值得说明的是,序列a1、a2、a3、a4、a5、a6、a7、a8以及序列a1、a2、a6、a7、a8、a3、a5、a4对应同一个抽象语法树a。抽象语法树a为英语语言类型对应的抽象语法树。根据抽象语法树a能够生成目标文本“I’m a student”。在抽象语法解析器A和B训练完成之后,可将抽象语法解析器A、或者抽象语法解析器B、或者抽象语法解析器A和B作为文本转换模型的解码器组件得到用于将中文转换为英文的文本转换模型。
一种可实现的实施方式,抽象语法解析器可以采用Tranx(Transition-basedabstract syntax parser)神经网络框架。若利用样本数据集D={(x,a)}训练抽象语法解析器Tranx,那么训练目标JMLE(D;θ)可被定义为:
其中,x为样本待转换数据,T为语法树节点序列a的长度,Tranx神经网络的语法树节点序列a可以是x对应的转换后文本数据的抽象语法树的深度优先遍历序列,可利用交叉熵计算抽象语法解析器Tranx输出的语法树节点序列和标准语法树节点序列之间的差异。抽象语法解析器Tranx输出的语法树节点序列可构成一棵抽象语法树,一棵抽象语法树通过脚本转换等方式可生成与抽象语法树的语言类型对应的文本数据。
详细地,用编码器(如基于双向循环神经网络BiLSTM)对输入的文本X进行编码,可编码为词粒度的语义表示在利用抽象语法解析器Tranx将/>转换为语法树节点序列。
其中,抽象语法解析器Tranx在解码过程中,在解码的t遍历时间步长,抽象语法解析器Tranx的LSTM单元读取并根据前一遍历时间步长的节点at-1的嵌入向量表示e(at-1)、临时的隐藏层状态向量当前节点的父节点向量和类型节点向量的拼接pt、以及前一个隐藏状态st-1,生成当前隐藏状态st和隐藏层状态向量/>
其中,Ws是一个参数矩阵,ct表征上下文向量,ct是由编码器端词级别的语义表示/>通注意力机制产生的包括各词语权重信息的向量。
进一步地,抽象语法解析器Tranx根据扩张节点(有子节点的节点)的类型计算选择节点at的概率。采用的计算方式为以下任一种:
第一种基本类型,抽象语法解析器Tranx执行选择节点at=GenToken[v],其中词汇v可以直接生成,也可以从输入的文本X中复制产生,依照如下算式计算选择节点at的概率:p(at=GenToken[v]|a<t,x)=p(gen|a<t,x)·pgen(v|a<t,x)+(1-p(gen|a<t,x))·pcopy(v|a<t,x)。若选择直接生成的方式,概率为p(gen|a<t,x),直接生成词汇v的概率则为pgen(v|a<t,x),选择从输入的文本X中复制词汇的v概率为pcopy(V|a<t,x),其概率均是基于抽象语法解析器Tranx的临时隐藏层状态向量的线性映射后得到的。
第二种复合类型,抽象语法解析器Tranx要么执行操作ApplyConstr来生成节点at,要么使用Reduce操作终止来自抽象语法树上当前节点的扩张。而选择节点at的概率为的值,其中Wa是线性映射的参数矩阵。
采用本公开的上述技术方案,通过获取待转换文本,并将待转换文本输入文本转换模型,得到文本转换模型输出的目标文本。这种利用文本转换模型来转换得到目标文本的方式,在文本转换过程中无需人工参与文本转换,因而这种方式相较于相关技术中的方式,实现了在文本转换过程中进一步降低人工工作量的目的。
并且,由于文本转换模型中的解码器组件(即抽象语法解析器)是由至少两个抽象语法解析器进行联合训练而得到的,加之该至少两个抽象语法解析器的样本数据中样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的,因而该至少两个抽象语法解析器中的任意一个抽象语法解析器不仅能从自身的样本数据中的样本语法树节点序列中学习到一种遍历维度的隐含特征信息,还能从联合训练的其他抽象语法解析器上学习到其他抽象语法解析器从其自身的样本数据中的样本语法树节点序列中学习到的另一种遍历维度的隐含特征信息。将训练完成的至少两个抽象语法解析器中的任意一个或多个考虑多种遍历维度隐含特征信息的抽象语法解析器作为文本转换模型的解码器组件,都能使得文本转换模型转换出更加精准的目标文本。在文本转换模型能够转换出更加精准的目标文本的基础上,无需人工在后续应用场景中对目标文本进行校对或纠错,可以直接对转换出的目标文本进行使用,如此在文本转换后目标文本的应用场景中也可以降低人工工作量。
可选地,所述多种遍历顺序包括深度优先遍历顺序、广度优先遍历顺序、由左至右的横向遍历顺序、由右至左的横向遍历顺序、从上至下的纵向遍历顺序中的至少两种。除此之外,本公开采用的遍历顺序还可以为其他的先父节点后子节点的遍历顺序。
一种可实现的实施方式,本公开还提供一种与前述抽象语法解析器Tranx不同的另一抽象语法解析器Tranx',若该抽象语法解析器Tranx'利用样本数据集D′={(x,a′)}与前述抽象语法解析器Tranx进行联合训练,那么与前述抽象语法解析器Tranx相类似的,抽象语法解析器Tranx'的训练目标JMLE(D′;θ′)可被定义为:
其中,与抽象语法解析器Tranx的训练过程不同的是,抽象语法解析器Tranx'采用的a′是x对应的转换后文本数据的抽象语法树的广度优先遍历序列/由左至右的横向遍历序列/由右至左的横向遍历序列/从上至下的纵向遍历序列。
示例地,假设抽象语法解析器Tranx'采用的a′是x对应的转换后文本数据的抽象语法树的广度优先遍历序列。那么可参见图4,图4中详细示出了抽象语法解析器Tranx和Tranx'对同一待转换文本样本“if six.PY3:pass”的解析流程,此处不再赘述。
可选地,所述对至少两个抽象语法解析器进行联合训练,包括:
在对两个抽象语法解析器进行联合训练的情况下,根据所述两个抽象语法解析器的输出结果,计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异;将所述其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异作为该其中一个抽象语法解析器的损失信息,并根据所述损失信息更新该其中一个抽象语法解析器的训练参数。
示例地,假设训练两个抽象语法解析器A和B,那么在对两个抽象语法解析器A和B进行联合训练的情况下,可以根据两个抽象语法解析器A和B的输出结果,计算抽象语法解析器A的输出结果与抽象语法解析器B的输出结果之间的差异,并将抽象语法解析器A的输出结果与抽象语法解析器B的输出结果之间的差异作为抽象语法解析器A的损失信息,且根据损失信息更新抽象语法解析器A的训练参数。
并且,计算抽象语法解析器B的输出结果与抽象语法解析器A的输出结果之间的差异,并将抽象语法解析器B的输出结果与抽象语法解析器A的输出结果之间的差异作为抽象语法解析器B的损失信息,且根据损失信息更新抽象语法解析器B的训练参数。
可实现的,在计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异时,具体可以用KL散度计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异。
其中,KL散度又称为交叉熵。继续以上述训练两个抽象语法解析器A和B为例,在根据两个抽象语法解析器A和B的输出结果,用KL散度计算抽象语法解析器A的输出结果与抽象语法解析器B的输出结果之间的差异时,将抽象语法解析器A的输出结果作为KL(p||q)算式中的原有概率分布p,将抽象语法解析器B的输出结果作为KL(p||q)算式中的近似概率分布q。将为KL(p||q)算式的值作为抽象语法解析器A的损失信息,且根据损失信息更新抽象语法解析器A的训练参数。
在根据两个抽象语法解析器A和B的输出结果,用KL散度计算抽象语法解析器B的输出结果与抽象语法解析器A的输出结果之间的差异时,将抽象语法解析器B的输出结果作为KL(p||q)算式中的原有概率分布p,将抽象语法解析器A的输出结果作为KL(p||q)算式中的近似概率分布q。将为KL(p||q)算式的值作为抽象语法解析器B的损失信息,且根据损失信息更新抽象语法解析器B的训练参数。
可选地,在对所述两个抽象语法解析器进行联合训练的过程中,通过如下算式更新所述两个抽象语法解析器的训练参数:
其中,J(D,θ)和J(D′,θ′)分别表征所述两个抽象语法解析器的训练目标,θ和θ′分别表征所述两个抽象语法解析器的所述训练参数,D={(x,a)}和D′={(x,a′)}分别表征所述两个抽象语法解析器的样本数据,x表征待转换文本样本,a和a′分别表征所述两个抽象语法解析器的样本语法树节点序列,T表征样本语法树节点序列的长度,λ是用于控制损失函数的重要性系数,KL(||)是KL(Kullback-Leibler)散度,z表征所述样本语法树节点序列对应的抽象语法树,n表征抽象语法树z中的一个节点,t(n)和t′(n)表征所述两个抽象语法解析器的样本语法树节点序列中节点n分别对应的在抽象语法树z中的遍历时间步长,p表征概率,a<t(n)表征样本语法树节点序列中节点n之前的节点。
示例地,以图4所示的抽象语法解析器Tranx和Tranx'为例子,抽象语法解析器Tranx和Tranx'的联合训练架构示意图如图5所示。图5中的X为待转换文本样本,Y为目标文本样本。由图5可知,通过相互蒸馏来联合训练抽象语法解析器Tranx和Tranx'。在联合训练的过程中,通过与图6相类似的方式同步执行两个抽象语法解析器Tranx和Tranx'反向的一对一知识转移/迁移,如此使得抽象语法解析器Tranx可以学习到抽象语法解析器Tranx'的知识,并且使得抽象语法解析器Tranx'可以学习到抽象语法解析器Tranx的知识。因此,使得训练完成的抽象语法解析器Tranx和Tranx'均兼备深度优先遍历序列样本a和广度优先遍历序列样本a′两个不同遍历维度的隐含特征信息。
对三个抽象语法解析器进行联合训练时,训练过程与前述对两个抽象语法解析器进行联合训练的过程相类似,区别仅在于在对三个抽象语法解析器进行联合训练时,是利用KL散度损失来量化任一抽象语法解析器与另两个抽象语法解析器之间的预测分布差异,因而此处不再赘述。
值得解释的是,t(n)和t′(n)表征两个抽象语法解析器的样本语法树节点序列中节点n分别对应的在抽象语法树z中的遍历时间步长。示例地,参见图4,节点n6分别对应于深度优先遍历和广度优先遍历的第6和第3时间步长。
可选地,所述将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,包括:
将训练完成的目标抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,所述目标抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
也就是说,一种可实现的实施方式,将训练完成的目标抽象语法解析器作为文本转换模型的解码器组件,得到文本转换模型。该目标抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历抽象语法树得到的样本语法树节点序列的抽象语法解析器。
可实现地,本公开中文本转换模型的解码器数量不限于一个,因而可选地,所述将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,包括:
将第一抽象语法解析器和第二抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型;其中,所述第一抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器,所述第二抽象语法解析器是样本数据中包括以广度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
也就是说,在文本转换模型的解码器个数为两个的情况下,可将第一抽象语法解析器和第二抽象语法解析器作为文本转换模型的解码器组件。其中,第一抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历抽象语法树得到的样本语法树节点序列的抽象语法解析器,第二抽象语法解析器是样本数据中包括以广度优先遍历顺序遍历抽象语法树得到的样本语法树节点序列的抽象语法解析器。
在文本转换模型的解码器个数为两个的情况下,所述文本转换模型具体用于:
对所述待转换文本进行编码,得到待转换文本向量;将所述待转换文本向量输入所述第一抽象语法解析器,得到第一语法树节点序列;将所述待转换文本向量输入所述第二抽象语法解析器,得到第二语法树节点序列;根据所述第一语法树节点序列和所述第二语法树节点序列确定目标语法树节点序列;基于所述目标语法树节点序列生成所述目标文本。
详细地,文本转换模型具体用于:对待转换文本进行编码,得到待转换文本向量。将待转换文本向量输入第一抽象语法解析器,得到第一语法树节点序列。将待转换文本向量输入第二抽象语法解析器,得到第二语法树节点序列。根据第一语法树节点序列和第二语法树节点序列确定目标语法树节点序列。基于目标语法树节点序列生成目标文本。
其中,根据第一语法树节点序列和第二语法树节点序列确定目标语法树节点序列的一种实施方式为,对第一语法树节点序列和第二语法树节点序列进行重排列。具体地,计算第一抽象语法解析器产生第二语法树节点序列的概率,假设概率为80%。并且计算第二抽象语法解析器产生第一语法树节点序列的概率,假设概率为90%。可将两个概率值中的最大值90%所对应的第一语法树节点序列作为目标语法树节点序列。采用这种方式,能够从由多个抽象语法解析器得到的多个语法树节点序列中选择出准确率相对最高的一个语法树节点序列作为目标语法树节点序列,进而得到准确率相对最高的目标文本。
基于前述本公开应用场景,可以确定本公开中的所述待转换文本和所述目标文本的语言类型不同;或者,所述待转换文本和所述目标文本的语言类型相同、且单位文本的排列顺序不同。单位文本是指文本数据中的单个字或词。
详细地,当待转换文本和目标文本的语言类型不同时,对应的应用场景为跨语种翻译或跨语种生成代码的场景。当待转换文本和目标文本的语言类型相同,但单位文本的排列顺序不同时,对应的应用场景为词语解释、语法纠错的场景。
本公开利用主流的数据集DJANGO,ATIS,GEO,IFTTT对本公开的上述文本转换方法进行了测试。具体以包括前述抽象语法解析器Tranx的文本转换模型ML-TRANX、包括前述抽象语法解析器Tranx'的文本转换模型ML-TRANX′、相关技术中的DRNN模型、ENSEMBLE模型、独立训练(即非联合训练)的TRANX模型、独立训练(即非联合训练)的TRANX′模型分别对数据集DJANGO,ATIS,GEO,IFTTT进行测试,得到的测试结果如下表1所示。
表1
由上表1可知,文本转换模型ML-TRANX的文本转换准确率最高。即优选的,将训练完成的目标抽象语法解析器作为文本转换模型的解码器组件,得到文本转换模型。该目标抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历抽象语法树得到的样本语法树节点序列的抽象语法解析器。
基于同一发明构思,本公开提出一种文本转换模型的训练方法,包括通过如下方式训练得到所述文本转换模型:
使用样本数据对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,所述样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;
将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
文本转换模型的训练方式已经在前述文本转换方法实施例中进行了详细的阐述,此处不再赘述。
图7是根据一示例性实施例示出的一种文本转换装置的框图。参照图7,该装置700包括获取模块701,输入模块702和训练模块703。
该获取模块701,被配置为获取待转换文本;
该输入模块702,被配置为将所述待转换文本输入文本转换模型,得到所述文本转换模型输出的目标文本;
训练模块703,被配置为通过如下方式得到所述文本转换模型:对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,用于所述抽象语法解析器进行训练的样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
采用这种装置,通过获取待转换文本,并将待转换文本输入文本转换模型,得到文本转换模型输出的目标文本。这种利用文本转换模型来转换得到目标文本的方式,在文本转换过程中无需人工参与文本转换,因而这种方式相较于相关技术中的方式,实现了在文本转换过程中进一步降低人工工作量的目的。
并且,由于文本转换模型中的解码器组件(即抽象语法解析器)是由至少两个抽象语法解析器进行联合训练而得到的,加之该至少两个抽象语法解析器的样本数据中样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的,因而该至少两个抽象语法解析器中的任意一个抽象语法解析器不仅能从自身的样本数据中的样本语法树节点序列中学习到一种遍历维度的隐含特征信息,还能从联合训练的其他抽象语法解析器上学习到其他抽象语法解析器从其自身的样本数据中的样本语法树节点序列中学习到的另一种遍历维度的隐含特征信息。将训练完成的至少两个抽象语法解析器中的任意一个或多个考虑多种遍历维度隐含特征信息的抽象语法解析器作为文本转换模型的解码器组件,都能使得文本转换模型转换出更加精准的目标文本。在文本转换模型能够转换出更加精准的目标文本的基础上,无需人工在后续应用场景中对目标文本进行校对或纠错,可以直接对转换出的目标文本进行使用,如此在文本转换后目标文本的应用场景中也可以降低人工工作量。
可选地,所述训练模块703包括:
构建子模块,被配置为通过如下方式构造用于所述至少两个抽象语法解析器进行训练的样本数据:获取所述待转换文本样本,以及与所述待转换文本样本对应的所述目标文本样本;根据所述目标文本样本构建与所述目标文本样本的语言类型对应的所述抽象语法树;根据多种遍历顺序遍历所述抽象语法树,得到多种所述样本语法树节点序列;将每种所述样本语法树节点序列分别与所述待转换文本样本进行组合,得到多组样本数据,其中,一组样本数据用于对一个所述抽象语法解析器进行训练。
可选地,所述多种遍历顺序包括深度优先遍历顺序、广度优先遍历顺序、由左至右的横向遍历顺序、由右至左的横向遍历顺序、从上至下的纵向遍历顺序中的至少两种。
可选地,所述训练模块703包括:
训练子模块,被配置为在对两个抽象语法解析器进行联合训练的情况下,根据所述两个抽象语法解析器的输出结果,计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异;将所述其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异作为该其中一个抽象语法解析器的损失信息,并根据所述损失信息更新该其中一个抽象语法解析器的训练参数。
可选地,所述训练子模块,还被配置为用KL散度计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异。
可选地,所述训练子模块,具体被配置为在对所述两个抽象语法解析器进行联合训练的过程中,通过如下算式更新所述两个抽象语法解析器的训练参数:
其中,J(D,θ)和J(D′,θ′)分别表征所述两个抽象语法解析器的训练目标,θ和θ′分别表征所述两个抽象语法解析器的所述训练参数,D={(x,a)}和D′={(x,a′)}分别表征所述两个抽象语法解析器的样本数据,x表征待转换文本样本,a和a′分别表征所述两个抽象语法解析器的样本语法树节点序列,T表征样本语法树节点序列的长度,λ是用于控制损失函数的重要性系数,KL(||)是KL散度,z表征所述样本语法树节点序列对应的抽象语法树,n表征抽象语法树z中的一个节点,t(n)和t′(n)表征所述两个抽象语法解析器的样本语法树节点序列中节点n分别对应的在抽象语法树z中的遍历时间步长,p表征概率,a<t(n)表征样本语法树节点序列中节点n之前的节点。log表示对数运算。∑表示求和运算。
可选地,所述训练模块703包括:
第一执行子模块,被配置为将训练完成的目标抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,所述目标抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
可选地,所述训练模块703包括:
第二执行子模块,被配置为将第一抽象语法解析器和第二抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型;其中,所述第一抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器,所述第二抽象语法解析器是样本数据中包括以广度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
可选地,所述文本转换模型具体用于:对所述待转换文本进行编码,得到待转换文本向量;将所述待转换文本向量输入所述第一抽象语法解析器,得到第一语法树节点序列;将所述待转换文本向量输入所述第二抽象语法解析器,得到第二语法树节点序列;根据所述第一语法树节点序列和所述第二语法树节点序列确定目标语法树节点序列;基于所述目标语法树节点序列生成所述目标文本。
可选地,所述待转换文本和所述目标文本的语言类型不同;或者,所述待转换文本和所述目标文本的语言类型相同、且单位文本的排列顺序不同。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的文本转换方法的步骤。
图8是根据一示例性实施例示出的一种用于文本转换的电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的文本转换方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件806为电子设备800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关数据。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述文本转换方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述文本转换方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的文本转换方法的代码部分。
图9是根据一示例性实施例示出的另一种用于文本转换的电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图9,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述文本转换方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种文本转换方法,其特征在于,所述方法包括:
获取待转换文本;
将所述待转换文本输入文本转换模型,得到所述文本转换模型输出的目标文本;
其中,所述文本转换模型是通过如下方式得到的:
使用样本数据对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,所述样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;
将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过如下方式构造用于所述至少两个抽象语法解析器进行训练的样本数据:
获取所述待转换文本样本,以及与所述待转换文本样本对应的目标文本样本;
根据所述目标文本样本构建与所述目标文本样本的语言类型对应的所述抽象语法树;
根据多种遍历顺序遍历所述抽象语法树,得到多种所述样本语法树节点序列;
将每种所述样本语法树节点序列分别与所述待转换文本样本进行组合,得到多组样本数据,其中,一组样本数据用于对一个所述抽象语法解析器进行训练。
3.根据权利要求2所述的方法,其特征在于,所述多种遍历顺序包括深度优先遍历顺序、广度优先遍历顺序、由左至右的横向遍历顺序、由右至左的横向遍历顺序、从上至下的纵向遍历顺序中的至少两种。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述对至少两个抽象语法解析器进行联合训练,包括:
在对两个抽象语法解析器进行联合训练的情况下,根据所述两个抽象语法解析器的输出结果,计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异;
将所述其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异作为该其中一个抽象语法解析器的损失信息,并根据所述损失信息更新该其中一个抽象语法解析器的训练参数。
5.根据权利要求4所述的方法,其特征在于,所述计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异,包括:
用KL散度计算其中一个抽象语法解析器的输出结果与另一个抽象语法解析器的输出结果之间的差异。
6.根据权利要求5所述的方法,其特征在于,在对所述两个抽象语法解析器进行联合训练的过程中,通过如下算式更新所述两个抽象语法解析器的训练参数:
其中,J(D,θ)和J(D′,θ′)分别表征所述两个抽象语法解析器的训练目标,θ和θ′分别表征所述两个抽象语法解析器的所述训练参数,D={(x,a)}和D′={(x,a′)}分别表征所述两个抽象语法解析器的样本数据,x表征待转换文本样本,a和a′分别表征所述两个抽象语法解析器的样本数据中的样本语法树节点序列,T表征样本语法树节点序列的长度,λ是用于控制损失函数的重要性系数,KL(||)是KL散度,z表征所述样本语法树节点序列对应的抽象语法树,n表征抽象语法树z中的一个节点,t(n)和t′(n)表征所述两个抽象语法解析器的样本语法树节点序列中节点n分别对应的在抽象语法树z中的遍历时间步长,p表征概率,a<t(n)表征样本语法树节点序列中节点n之前的节点。
7.根据权利要求1所述的方法,其特征在于,所述将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,包括:
将训练完成的目标抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,所述目标抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
8.根据权利要求1所述的方法,其特征在于,所述将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型,包括:
将第一抽象语法解析器和第二抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型;
其中,所述第一抽象语法解析器是样本数据中包括以深度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器,所述第二抽象语法解析器是样本数据中包括以广度优先遍历顺序遍历所述抽象语法树得到的样本语法树节点序列的抽象语法解析器。
9.根据权利要求8所述的方法,其特征在于,所述文本转换模型用于:
对所述待转换文本进行编码,得到待转换文本向量;
将所述待转换文本向量输入所述第一抽象语法解析器,得到第一语法树节点序列;
将所述待转换文本向量输入所述第二抽象语法解析器,得到第二语法树节点序列;
根据所述第一语法树节点序列和所述第二语法树节点序列确定目标语法树节点序列;
基于所述目标语法树节点序列生成所述目标文本。
10.根据权利要求1所述的方法,其特征在于,所述待转换文本和所述目标文本的语言类型不同;或者,
所述待转换文本和所述目标文本的语言类型相同、且单位文本的排列顺序不同。
11.一种文本转换模型的训练方法,其特征在于,包括通过如下方式训练得到所述文本转换模型:
使用样本数据对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,所述样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;
将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
12.一种文本转换装置,其特征在于,所述装置包括:
获取模块,被配置为获取待转换文本;
输入模块,被配置为将所述待转换文本输入文本转换模型,得到所述文本转换模型输出的目标文本;
训练模块,被配置为通过如下方式得到所述文本转换模型:对至少两个抽象语法解析器进行联合训练,得到训练完成的所述至少两个抽象语法解析器,其中,用于所述抽象语法解析器进行训练的样本数据包括待转换文本样本和样本语法树节点序列,各所述抽象语法解析器对应的样本数据中的待转换文本样本相同、且各所述抽象语法解析器对应的样本数据中的样本语法树节点序列是按照不同的遍历顺序对同一抽象语法树进行遍历得到的;将训练完成的所述至少两个抽象语法解析器中的任意一个或多个抽象语法解析器作为所述文本转换模型的解码器组件,得到所述文本转换模型。
13.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时实现权利要求1-10中任一项所述方法的步骤。
14.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-10中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129830.4A CN112749552B (zh) | 2021-01-29 | 2021-01-29 | 文本转换方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129830.4A CN112749552B (zh) | 2021-01-29 | 2021-01-29 | 文本转换方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749552A CN112749552A (zh) | 2021-05-04 |
CN112749552B true CN112749552B (zh) | 2023-11-21 |
Family
ID=75653422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110129830.4A Active CN112749552B (zh) | 2021-01-29 | 2021-01-29 | 文本转换方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749552B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000112768A (ja) * | 1998-10-02 | 2000-04-21 | Nec Corp | パーザ生成器プリプロセッサシステム、パーザ生成器用プリプロセス方法 |
CN108182069A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 程序语言转换方法、终端设备及计算机可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10983761B2 (en) * | 2019-02-02 | 2021-04-20 | Microsoft Technology Licensing, Llc | Deep learning enhanced code completion system |
-
2021
- 2021-01-29 CN CN202110129830.4A patent/CN112749552B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000112768A (ja) * | 1998-10-02 | 2000-04-21 | Nec Corp | パーザ生成器プリプロセッサシステム、パーザ生成器用プリプロセス方法 |
CN108182069A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 程序语言转换方法、终端设备及计算机可读介质 |
Non-Patent Citations (1)
Title |
---|
基于JavaCC的抽象语法树的构建与实现;黄松;黄玉;惠战伟;;计算机工程与设计(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112749552A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2749970C1 (ru) | Способ сжатия модели нейронной сети, а также способ и устройство для перевода языкового корпуса | |
CN107291690B (zh) | 标点添加方法和装置、用于标点添加的装置 | |
US11735184B2 (en) | Translation and speech recognition method, apparatus, and device | |
CN114613427B (zh) | 蛋白质三维结构预测方法及装置、电子设备和存储介质 | |
CN111368559A (zh) | 语音翻译方法、装置、电子设备及存储介质 | |
CN113139391B (zh) | 翻译模型的训练方法、装置、设备和存储介质 | |
CN111339789B (zh) | 一种翻译模型训练方法、装置、电子设备及存储介质 | |
CN111339788B (zh) | 交互式机器翻译方法、装置、设备和介质 | |
CN111563390B (zh) | 文本生成方法、装置和电子设备 | |
CN111681661B (zh) | 语音识别的方法、装置、电子设备和计算机可读介质 | |
CN112380876B (zh) | 基于多语言机器翻译模型的翻译方法、装置、设备和介质 | |
CN114065778A (zh) | 篇章级翻译方法、翻译模型训练方法及装置 | |
CN111046677A (zh) | 一种翻译模型的获取方法、装置、设备和存储介质 | |
CN113761888A (zh) | 文本翻译方法、装置、计算机设备及存储介质 | |
CN111382261A (zh) | 摘要生成方法、装置、电子设备及存储介质 | |
CN112036195A (zh) | 机器翻译方法、装置及存储介质 | |
CN111104796B (zh) | 用于翻译的方法和装置 | |
CN110781674B (zh) | 一种信息处理方法、装置、计算机设备及存储介质 | |
CN111523532A (zh) | 一种矫正ocr文字识别错误的方法及终端设备 | |
CN112749552B (zh) | 文本转换方法、装置、存储介质及电子设备 | |
CN111324214B (zh) | 一种语句纠错方法和装置 | |
CN117034923A (zh) | 一种训练方法、文本评估方法、装置、介质及设备 | |
CN111737572B (zh) | 搜索语句生成方法、装置和电子设备 | |
CN111862959B (zh) | 发音错误检测方法、装置、电子设备及存储介质 | |
CN113919372A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |