神经网络机器翻译方法和装置与流程

文档序号:15144189发布日期:2018-08-10 20:15阅读:137来源:国知局

本发明涉及计算机应用技术,特别涉及神经网络机器翻译方法和装置。



背景技术:

循环神经网络及其衍生网络作为目前最流行的深度学习网络结构,凭借着有效记忆历史信息等特点,在图像识别、语音识别以及自然语言处理等方面得到了越来越广泛的应用。

以翻译为例,神经网络机器翻译是近些年兴起的一种全新的机器翻译方式,相比于传统的统计翻译模型,翻译质量得到了很大地提升。

神经网络机器翻译主要包括编码和解码两个过程,编码过程主要是指将待翻译的源语句转换为向量序列,解码过程主要是指根据向量序列确定出作为翻译结果的目标语句。比如,源语句可为一种语言,目标语句可为另外一种语言。

其中,在解码过程中,在针对向量序列中的每个待翻译的词确定候选对象时,均需要针对词库中包括的所有词分别计算条件概率,而词库中包括的词的数量巨大,相应地,所需耗费的计算量也就会非常大,从而降低了翻译速度。



技术实现要素:

有鉴于此,本发明提供了神经网络机器翻译方法和装置,能够提升翻译速度。

具体技术方案如下:

一种神经网络机器翻译方法,包括:

获取待翻译的源语句;

将所述源语句转换为向量序列;

根据预先得到的、基于目标语句数据库所构建的前缀树,确定出所述向量序列对应的候选对象,根据所述候选对象确定出作为翻译结果的目标语句。

一种神经网络机器翻译装置,包括:编码单元和解码单元;

所述编码单元,用于获取待翻译的源语句,将所述源语句转换为向量序列,并将所述向量序列发送给所述解码单元;

所述解码单元,用于根据预先得到的、基于目标语句数据库所构建的前缀树,确定出所述向量序列对应的候选对象,根据所述候选对象确定出作为翻译结果的目标语句。

基于上述介绍可以看出,采用本发明所述方案,可预先基于目标语句数据库构建前缀树,进而在翻译过程中,可根据前缀树来确定候选对象,从而相比于现有技术减少了计算量,进而提升了翻译速度。

【附图说明】

图1为本发明所述神经网络机器翻译方法实施例的流程图。

图2为本发明所述前缀树的示意图。

图3为本发明所述解码过程的流程图。

图4为本发明所述神经网络机器翻译装置实施例的组成结构示意图。

【具体实施方式】

为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。

实施例一

图1为本发明所述神经网络机器翻译方法实施例的流程图,如图1所示,包括以下具体实现方式。

在11中,获取待翻译的源语句。

如何获取不作限制。

在12中,将源语句转换为向量序列。

即对源语句进行编码,从而得到所需的向量序列。

现有技术中,通常采用长短时间记忆网络(lstm,longshorttermmemory)模型来对源语句进行编码,这种模型的网络结构复杂,会导致编码速度较慢,从而降低了翻译速度。

针对上述问题,本实施例中提出,可采用门控递归单元(gru,gatedrecurrentunit)模型来代替lstm模型,从而降低了模型的复杂度,进而提升了翻译速度。

即本实施例中,通过gru模型,将源语句转换为向量序列,如何进行转换为现有技术。

在13中,根据预先得到的、基于目标语句数据库所构建的前缀树,确定出向量序列对应的候选对象,根据候选对象确定出作为翻译结果的目标语句。

即将向量序列解码为目标语句。

在实际应用中,可首先通过人工等方式构建出一个目标语句数据库,目标语句数据库中具体包括哪些语句可根据实际需要而定。之后,可基于所构建的目标语句数据库,进一步构建出前缀树。

前缀树,又可称为字典树等,是一种树形结构。

举例说明:

为简化表述,用每个字母来分别代表一个词;

假设目标语句数据库中包括以下语句:{inn、int、ate、age、adv、ant};

那么根据该目标语句数据库,可构建出图2所示前缀树,即图2为本发明所述前缀树的示意图。

这样,基于所构建的前缀树,针对向量序列中的各待翻译的词,可依次进行以下处理:

分别将最新获取到的各候选对象作为前缀,从前缀树中查找出位于该前缀的下一级节点上的词,将查找出的词分别拼接在对应的前缀上,得到各初选对象;

分别确定出各初选对象的条件概率,并按照条件概率的取值从大到小的顺序对各初选对象进行排序,将排序后处于前n位的初选对象作为候选对象,n为大于一的正整数;

若确定向量序列中不存在下一个待翻译的词,则将最新获取到的、排序后处于前m位的候选对象作为目标语句输出,m为正整数,m小于或等于n。

特殊地,对于向量序列中的第一个待翻译的词,由于此时还不存在候选对象,因此可进行以下处理:

将前缀树中位于树根之后的第一级节点上的词均作为初选对象;

分别确定出各初选对象的条件概率,并按照条件概率的取值从大到小的顺序对各初选对象进行排序,将排序后处于前n位的初选对象作为候选对象。

综合上述介绍,图3为本发明所述解码过程的流程图,如图3所示,包括以下具体实现方式。

在31中,针对向量序列中的第一个待翻译的词,将前缀树中位于树根之后的第一级节点上的词均作为初选对象。

以图2所示为例,位于树根之后的第一级节点即指“i”和“a”对应的节点。

在32中,分别确定出各初选对象的条件概率,并按照条件概率的取值从大到小的顺序对各初选对象进行排序,将排序后处于前n位的初选对象作为候选对象,n为大于一的正整数。

n的具体取值可根据实际需要而定。基于哪些信息来计算条件概率为现有技术。

在33中,确定向量序列中是否存在下一个待翻译的词,如果是,则执行34,否则,执行35。

假设向量序列中共包括五个待翻译的词,当前处理的即为第五个词,那么则不存在下一个待翻译的词,相应地,后续执行35,否则,执行34。

在34中,针对下一个待翻译的词,分别将最新获取到的各候选对象作为前缀,从前缀树中查找出位于该前缀的下一级节点上的词,将查找出的词分别拼接在对应的前缀上,得到各初选对象,之后重复执行32。

以图2所示为例,假设最新获取到的候选对象为“in”和“at”,将其分别作为前缀,查找下一级节点,并通过拼接可得到“inn”、“int”和“ate”,将inn”、“int”和“ate”均作为初选对象。

在35中,将最新获取到的、排序后处于前m位的候选对象作为目标语句输出,m为正整数,m小于或等于n,之后结束流程。

如果针对向量序列中的各待翻译的词均已处理完毕,则可直接将最新获取到的、排序后处于前m位的候选对象作为所需的目标语句输出。

m的具体取值可根据实际需要而定,比如,可取值为一,也可以大于一,但不会超过n。

通过上述介绍可以看出,采用本实施例所述方案,可预先基于目标语句数据库构建前缀树,进而在翻译过程中,可根据前缀树来查找和确定初选对象,并计算初选对象的条件概率以确定出候选对象,相比于现有技术中针对词库中包括的所有词分别计算条件概率的方式,显著地减少了计算量,从而提升了翻译速度。

而且,基于上述前缀树的构建方式及使用方式可知,最终得到的目标语句一定会是目标语句数据库中的语句,从而实现了定向翻译。

另外,现有技术中,通常采用softmax算法来计算各初选对象的条件概率,计算复杂度很高,针对这一问题,本实施例中提出,可以采用self-normalization算法来计算出各初选对象的条件概率,具体实现为现有技术,从而不但降低了计算复杂度,而且可以与本发明所述解码方式很好地进行匹配,进而进一步提升了翻译速度。

再有,图3所示流程的32中,在按照条件概率的取值从大到小的顺序对各初选对象进行排序,并得到排序后处于前n位的初选对象之后,可进一步进行剪枝处理,即对这n个初选对象进行筛选,从中筛选出条件概率大于预定阈值的初始对象,将筛选出的初始对象作为候选对象。

所述阈值的具体取值可根据实际需要而定,

由于条件概率过小的候选对象,后续处理过程中被保留下来的可能性很小,所以可筛选掉这类候选对象,从而进一步减少了后续的计算量,进而进一步提升了翻译速度。

本领域技术人员公知,在编码和解码过程中,会涉及到大量的矩阵运算,为进一步提升翻译速度,本实施例中提出,对于稀疏矩阵,可采用向量拆分和线程池并行计算的方式进行矩阵运算,对于非稀疏矩阵,可采用因特尔数学核心函数库(intelmathkernellibrary)进行多线程并发的矩阵运算,具体实现均为现有技术。

另外,现有技术中,硬件设备普遍采用中央处理器(cpu,centralprocessingunit),这也限制了翻译速度,本实施例中,硬件设备可采用图形处理器(gpu,graphicsprocessingunit)或现场可编程门阵列(fpga,fieldprogrammablegatearray),即可在gpu或fpga上运行本实施例所述方法,以便进一步提升翻译速度。

以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。

实施例二

图4为本发明所述神经网络机器翻译装置实施例的组成结构示意图,如图4所示,包括:编码单元41和解码单元42。

编码单元41,用于获取待翻译的源语句,将源语句转换为向量序列,并将向量序列发送给解码单元42。

解码单元42,用于根据预先得到的、基于目标语句数据库所构建的前缀树,确定出向量序列对应的候选对象,根据候选对象确定出作为翻译结果的目标语句。

现有技术中,通常采用lstm模型来对源语句进行编码,这种模型的网络结构复杂,会导致编码速度较慢,从而降低了翻译速度。

针对上述问题,本实施例中提出,编码单元41可通过gru模型,将源语句转换为向量序列,从而降低了模型的复杂度,进而提升了翻译速度。

在实际应用中,可首先通过人工等方式构建出一个目标语句数据库,目标语句数据库中具体包括哪些语句可根据实际需要而定。之后,可基于所构建的目标语句数据库,进一步构建出前缀树。

这样,基于所构建的前缀树,解码单元42可针对向量序列中的各待翻译的词,依次进行以下处理:

分别将最新获取到的各候选对象作为前缀,从前缀树中查找出位于前缀的下一级节点上的词,将查找出的词分别拼接在对应的前缀上,得到各初选对象;

分别确定出各初选对象的条件概率,并按照条件概率的取值从大到小的顺序对各初选对象进行排序,将排序后处于前n位的初选对象作为候选对象,n为大于一的正整数;

若确定向量序列中不存在下一个待翻译的词,则将最新获取到的、排序后处于前m位的候选对象作为目标语句输出,m为正整数,m小于或等于n。

特殊地,对于向量序列中的第一个待翻译的词,由于此时还不存在候选对象,因此解码单元42可进行以下处理:

对于向量序列中的第一个待翻译的词,将前缀树中位于树根之后的第一级节点上的词均作为初选对象;

分别确定出各初选对象的条件概率,并按照条件概率的取值从大到小的顺序对各初选对象进行排序,将排序后处于前n位的初选对象作为候选对象。

另外,现有技术中,通常采用softmax算法来计算各初选对象的条件概率,计算复杂度很高,从而影响了翻译速度,针对这一问题,本实施例中提出,解码单元42可采用self-normalization算法,分别计算出各初选对象的条件概率,以降低计算复杂度。

再有,解码单元42在按照条件概率的取值从大到小的顺序对各初选对象进行排序,并得到排序后处于前n位的初选对象之后,可进一步进行剪枝处理,即对这n个初选对象进行筛选,从中筛选出条件概率大于预定阈值的初始对象,将筛选出的初始对象作为候选对象。

本领域技术人员公知,在编码和解码过程中,会涉及到大量的矩阵运算,为进一步提升翻译速度,本实施例中提出,编码单元41在进行矩阵运算时,对于稀疏矩阵,可采用向量拆分和线程池并行计算的方式进行矩阵运算,对于非稀疏矩阵,可采用intelmathkernellibrary进行多线程并发的矩阵运算,同样地,解码单元42在进行矩阵运算时,对于稀疏矩阵,可采用向量拆分和线程池并行计算的方式进行矩阵运算,对于非稀疏矩阵,可采用intelmathkernellibrary进行多线程并发的矩阵运算。

图4所示装置实施例的具体工作流程请参照前述方法实施例中的相应说明,此处不再赘述。

综上,本发明所述方案中提出了一种神经网络定向机器翻译方案,能够相比于现有技术显著地提升翻译速度。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1