一种机器翻译模型的训练方法、系统、设备及存储介质与流程

文档序号:25170391发布日期:2021-05-25 14:39阅读:69来源:国知局
一种机器翻译模型的训练方法、系统、设备及存储介质与流程

本发明涉及机器翻译领域,具体涉及一种机器翻译模型的训练方法、系统、设备及存储介质。



背景技术:

通用的多语种机器翻译系统是基于端到端encoder-decoder框架,利用多种语言对的平行语料进行模型训练,训练好的模型具有多语种翻译的能力,同时该模型具有对训练语料中不存在平行语料的语言对进行翻译的能力,即零资源翻译(zero-shottranslation)的能力。例如,当使用语言对<l1,l0>和<l0,l2>的平行语料训练模型时,系统可以实现由语言l1翻译成语言l2,但由于不存在双语平行语料可供训练使用,在零资源翻译过程中会忽略给定的目标语言信息,导致其译文中出现大量非目标语言词汇,影响翻译质量。



技术实现要素:

本发明提供一种机器翻译模型的训练方法、系统、设备及存储介质,能够在多语种机器翻译模型的训练过程中,通过对共享词表进行mask掩膜处理来尽可能地避免译文中出现非目标语言词汇的问题,从而提高零资源翻译的质量,解决零资源翻译译文质量低的技术问题。

本发明解决上述技术问题的技术方案如下:

第一方面,本发明提供一种机器翻译模型的训练方法,包括:

为训练数据中包含的多种语言对的平行语料中的每个源语料添加目标语言标记;

利用所述平行语料,建立各语言的共享词表;

建立mask矩阵,所述mask矩阵中的元素表示所述共享词表中的每个词是否在各语言对应的词表中存在,若存在则为1,不存在则为0;

使用端到端的encoder-decoder框架读取所述平行语料,得到目标端向量表示;

通过目标语言标记确定所述mask矩阵中关于平行语料的语言对应的mask子矩阵;

将所述目标端向量表示、共享词表的向量表示和mask子矩阵输入softmax层,得到概率分布;

利用所述encoder-decoder框架,结合所述概率分布对训练数据进行训练,得到翻译模型。

本发明的有益效果是:

通过mask矩阵对词表中非目标语言词汇进行mask掩膜处理,可以使其在进行softmax计算时得到的概率接近或等于0,从而尽可能地避免非目标语言词汇出现在候选译文中,提高零资源翻译译文的质量。

进一步,所述利用所述平行语料,建立各语言的共享词表,具体包括:

利用所述平行语料,分别生成各语言对应的词表;

将各词表合并去重后得到一个共享词表。

进一步,所述使用端到端的encoder-decoder框架读取所述平行语料,得到目标端向量表示,具体包括:

encoder模块读取源语料并计算得到源端向量表示;

decoder模块读取所述源语料对应的目标语料并与所述源端向量表示一起计算得到目标端向量表示。

进一步,所述将所述目标端向量表示、共享词表的向量表示和mask子矩阵输入softmax层,得到概率分布,具体包括:

按照如下计算公式计算概率分布:

probabilities=softmax(hd*(v*mj))

其中,probabilities为概率分布,hd为目标端向量表示,v为共享词表的向量表示,mj∈[0,1]dv是语言lj对应的mask子矩阵,dv表示共享词表的大小。

第二方面,本发明提供一种机器翻译模型的训练系统,包括:

语料标记模块,用于为训练数据中包含的多种语言对的平行语料中的每个源语料添加目标语言标记;

词表建立模块,用于利用所述平行语料,建立各语言的共享词表;

矩阵建立模块,用于建立mask矩阵,所述mask矩阵中的元素表示所述共享词表中的每个词是否在各语言对应的词表中存在,若存在则为1,不存在则为0;

语料处理模块,用于使用端到端的encoder-decoder框架读取所述平行语料,得到目标端向量表示;

子矩阵确定模块,用于通过目标语言标记确定所述mask矩阵中关于平行语料的语言对应的mask子矩阵;

概率计算模块,用于将所述目标端向量表示、共享词表的向量表示和mask子矩阵输入softmax层,得到概率分布;

模型训练模块,用于利用所述encoder-decoder框架,结合所述概率分布对训练数据进行训练,得到翻译模型。

进一步,所述词表建立模块,具体包括:

词表生成单元,用于利用所述平行语料,分别生成各语言对应的词表;

词表合并单元,用于将各词表合并去重后得到一个共享词表。

进一步,所述语料处理模块,具体包括:

encoder模块,用于读取源语料并计算得到源端向量表示;

decoder模块,用于读取所述源语料对应的目标语料并与所述源端向量表示一起计算得到目标端向量表示。

进一步,所述概率计算模块,具体用于:

按照如下计算公式计算概率分布:

probabilities=softmax(hd*(v*mj))

其中,probabilities为概率分布,hd为目标端向量表示,v为共享词表的向量表示,mj∈[0,1]dv是语言lj对应的mask子矩阵,dv表示共享词表的大小。

第三方面,本发明提供一种终端设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述的方法。

第四方面,本发明提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行上述的方法。

附图说明

图1为本发明实施例提供的一种机器翻译模型的训练方法的流程图;

图2为本发明实施例提供的mask矩阵;

图3为本发明实施例提供的一种机器翻译模型的训练系统的结构框图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

根据本发明实施例的第一方面,本发明实施例提供的一种机器翻译模型的训练方法。

如图1所示,该方法包括:

110、为训练数据中包含的多种语言对的平行语料中的每个源语料添加目标语言标记;

具体的,训练数据包含多种语言对的双语平行语料,此处假设包含语言对<l0,l1>、<l1,l0>、<l0,l2>和<l2,l0>的平行语料,并为每个源句添加目标语言标记,如数字0来表明该句翻译到语言l0。

120、利用所述平行语料,建立各语言的共享词表;

例如,利用l0、l1和l2对应的数据,分别生成其对应的词表v0、v1和v2;然后将v0、v1和v2合并去重后得到一个共享词表。

130、建立mask矩阵,所述mask矩阵中的元素表示所述共享词表中的每个词是否在各语言对应的词表中存在,若存在则为1,不存在则为0;

具体的,建立共享词表后,按照语言对共享词表中的每个词wi进行分类,例如,对于语言l0,如果wi在v0中则分类为1,否则为0,从而得到一个与共享词表对应的mask矩阵m∈[0,1]dv*dl,如图2所示,其中,dv表示共享词表的大小,dl表示模型中包含的语言种类的数量,黑色矩阵表示1,白色矩阵表示0。

140、使用端到端的encoder-decoder框架读取所述平行语料,得到目标端向量表示;

具体的,该步骤中,通过encoder-decoder框架中的encoder模块读取源语料并计算得到源端向量表示;再通过encoder-decoder框架的decoder模块读取目标语料并与encoder模块的输出一起计算得到目标端向量表示。

150、通过目标语言标记确定所述mask矩阵中关于平行语料的语言对应的mask子矩阵;

具体的,例如,通过目标语言标记1,即可从步骤130建立的mask子矩阵中确定语言l1对应的mask子矩阵m1∈[0,1]dv,如图2中虚线框的部分所示。

160、将所述目标端向量表示、共享词表的向量表示和mask子矩阵输入softmax层,得到概率分布;

具体的,该步骤中,概率分布的具体计算公式如下:

probabilities=softmax(hd*(v*mj))

其中,probabilities为概率分布,hd为目标端向量表示,v为共享词表的向量表示,mj∈[0,1]dv是语言lj对应的mask子矩阵,dv表示共享词表的大小。

170、利用所述encoder-decoder框架,结合所述概率分布对训练数据进行训练,得到翻译模型。

具体的,通过计算概率分布,即可在翻译模型的训练过程中通过概率分布来计算交叉熵,训练模型,具体的计算过程属于现有技术,此处不再赘述。

本发明实施例提供的一种机器翻译模型的训练方法,通过mask矩阵对词表中非目标语言词汇进行mask掩膜处理,可以使其在进行softmax计算时得到的概率接近或等于0,从而尽可能地避免非目标语言词汇出现在候选译文中,提高零资源翻译译文的质量。

可选地,在该实施例中,步骤120,具体包括:

1201、利用所述平行语料,分别生成各语言对应的词表;

1202、将各词表合并去重后得到一个共享词表。

该实施例中,通过训练数据中所包含的所相关的各语言对的平行语料来生成对应的词表后合并去重,从而得到了共享词表,以供后续训练使用。

可选地,在该实施例中,步骤140,具体包括:

1401、encoder模块读取源语料并计算得到源端向量表示;

1402、decoder模块读取所述源语料对应的目标语料并与所述源端向量表示一起计算得到目标端向量表示。

该实施例中,通过encoder-decoder框架中的encoder模块读取源语料并计算得到源端向量表示;再通过encoder-decoder框架的decoder模块读取目标语料并与encoder模块的输出一起计算得到目标端向量表示。

根据本发明实施例的第二方面,本发明提供一种机器翻译模型的训练系统,该系统中各个功能模块的功能原理已在前述方法实施例中进行了具体说明,以下不再赘述。

如图3所示,该系统包括:

语料标记模块,用于为训练数据中包含的多种语言对的平行语料中的每个源语料添加目标语言标记;

词表建立模块,用于利用所述平行语料,建立各语言的共享词表;

矩阵建立模块,用于建立mask矩阵,所述mask矩阵中的元素表示所述共享词表中的每个词是否在各语言对应的词表中存在,若存在则为1,不存在则为0;

语料处理模块,用于使用端到端的encoder-decoder框架读取所述平行语料,得到目标端向量表示;

子矩阵确定模块,用于通过目标语言标记确定所述mask矩阵中关于平行语料的语言对应的mask子矩阵;

概率计算模块,用于将所述目标端向量表示、共享词表的向量表示和mask子矩阵输入softmax层,得到概率分布;

模型训练模块,用于利用所述encoder-decoder框架,结合所述概率分布对训练数据进行训练,得到翻译模型。

可选地,在该实施例中,所述词表建立模块,具体包括:

词表生成单元,用于利用所述平行语料,分别生成各语言对应的词表;

词表合并单元,用于将各词表合并去重后得到一个共享词表。

可选地,在该实施例中,所述语料处理模块,具体包括:

encoder模块,用于读取源语料并计算得到源端向量表示;

decoder模块,用于读取所述源语料对应的目标语料并与所述源端向量表示一起计算得到目标端向量表示。

可选地,在该实施例中,所述概率计算模块,具体用于:

按照如下计算公式计算概率分布:

probabilities=softmax(hd*(v*mj))

其中,probabilities为概率分布,hd为目标端向量表示,v为共享词表的向量表示,mj∈[0,1]dv是语言lj对应的mask子矩阵,dv表示共享词表的大小。

根据本发明实施例的第三方面,本发明提供一种终端设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述的方法。

处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器上存储有可执行代码,当可执行代码被处理器处理时,可以使处理器执行上文述及的方法中的部分或全部。

上文中已经参考附图详细描述了本发明的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本发明所必须的。另外,可以理解,本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本发明实施例装置中的模块可以根据实际需要进行合并、划分和删减。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中部分或全部步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤的部分或全部。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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