一种基于语言模型和翻译模型的清洗平行语料方法及系统与流程

文档序号:16068512发布日期:2018-11-24 12:54阅读:346来源:国知局

本发明属于计算机软件技术领域,尤其涉及一种基于语言模型和翻译模型的清洗平行语料方法及系统。

背景技术

目前,业内常用的现有技术是这样的:机器翻译是一种利用机器学习的技术将一种自然语言翻译成另外一种自然语言的过程。作为计算语言学的一个重要分支,它涉及认知科学、语言学等学科,是人工智能的终极目标之一。现有主流的机器翻译模型是使用基于自注意力机制的编码-解码结构的神经网络模型,由编码器和解码器组成。二者均以自注意力层为主。翻译流程主要包括:首先把输入的词映射到高维的向量空间得到词向量,再把词向量输入到编码器,通过自注意力机制得到上下文向量,解码器再根据上下文向量和自注意力机制,通过softmax层输出到目标语言的词向量空间。最后通过词典得到目标语言词汇。由于神经网络模型中有大量参数,所以需要大量的双语平行语料训练,其语料的数量级一般在千万左右,对于语料的数量和质量要求较高。机器翻译系统需要较多的双语平行语料,即平行原文与平行译文对应的语料。一般的统计机器翻译系统或者神经网络机器翻译系统均为数据驱动,需要双语的平行语料,根据提供的双语平行语料训练模型。平行语料的数量和质量对机器翻译系统的性能有决定性的影响。在部分语言对中,如英中这个语言对,可供训练的双语平行语料早已超过千万,然而其质量较低,可供实际进行神经网络机器翻译训练的平行语料并没有那么多,也就是部分语料的质量并不能达到可供训练的标准。平行语料中经常出现语序不畅、翻译不准确以及各种其他无法预料的问题。现有处理语料的方法主要是基于各种启发式的规则,只有在发现问题后才能处理问题。然而现有语料规模都在千万以上,人工慢慢去发现问题的时间成本较大,并不能解决大部分问题。另外,对于语序不畅和翻译不准确的问题,基于启发式的规则的方法并不能解决,只能删除,无法解决大部分的问题。

综上所述,现有技术存在的问题是:

(1)现有处理语料的方法人工慢慢去发现问题的时间成本较大。

(2)现有处理语料的方法对于语序不畅和翻译不准确的问题并不能解决,而这类问题在大部分的语料中都是普遍存在的,会降低机器翻译模型的翻译质量。

解决上述技术问题的难度和意义:

解决了语料中普遍存在的语序不畅和翻译不准确的问题,可以较大地提升语料的质量,可利用的语料数量也可以有较大的提高,尤其对于双语语料较少的语言对。神经网络机器翻译模型可以从更高质量的双语语料中学习,其模型的翻译质量也会有部分提升。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于语言模型和翻译模型的清洗平行语料方法及系统。

本发明是这样实现的,一种基于语言模型和翻译模型的清洗平行语料方法,所述基于语言模型和翻译模型的清洗平行语料方法包括以下步骤:

步骤一,语料预处理主要使用神经网络机器翻译模型和语言模型预处理算法对语料进行预处理;

步骤二,使用源语言和目标语言的语言模型对平行语料进行筛选;

步骤三,使用神经网络机器翻译模型对双语平行语料筛选语料。

进一步,所述步骤一具体包括:

(1)分词,使用基于隐马尔科夫模型的分词算法进行分词;

(2)切分子词,使用字节对编码算法,根据词的频率,把低频词切分成子词的形式,保留高频词。对于低频词,切分成子词的形式,以保留词的原来形式而不会被替换未知词的形式。

进一步,所述步骤二具体包括:

(1)语言模型是根据给定若干个词,预测下一个词出现的概率,当一个句子为:

s=w1,w2,...,wk;

则其概率可以表示为:

p(s)=p(w1,w2,...,wk)=p(w1)p(w2|w1)...p(wk|w1,w2,...wk-1);

其中w1,w2......,wk为第1到k个词,那么一般使用n元语言模型来近似估算其概率:即当前词的概率只与前n-1个词有关,那么其概率可以表示为:

其中w1,w2......,wn为第1到n个词,那么以已经训练好的语言模型为标准,根据以下损失函数公式输出源语言和目标语言的损失值:

l=-∑iy′ilog(yi);

其中y′i为语言模型中预测下一个词wi的概率,yi为待打分的语料中下一个词wi的概率;

(2)对源语言和目标语言进行相同的(1)步骤,综合两种语言的语言模型打分,对语料进行排序;

(3)根据排序结果,删除质量较低的平行语料。

进一步,所述步骤三具体包括:

(1)使用基于自注意力的编码器到解码器的神经网络结构作为翻译模型,其计算主要如下:

点乘注意力:

其中,q,k,v均为词向量,t表示转置,dk表示k的维度,xi,xj为输入参数;

多头注意力:

multihead(q,k,v)=concat(head1,...,headn)

其中,q,k,v均为词向量,concat是指把向量拼接起来,wi为参数矩阵,head1...headi...,headn为第1到n个头向量;

前馈神经网络:

ffn(x)=max(0,xw1+b1)w2+b2;

其中,w1,w2为权重参数,b1,b2为偏置,均可通过训练更新,a是参数;

最后通过softmax得到目标语言的词向量,再通过词典得到目标语言词汇;计算如下:

其中,θ,θi,θj为权重参数,t为转置,k为目标语言词表的大小。

以翻译模型为标准,根据语言模型中同样的损失函数公式分别输出源语言到目标语言,目标语言到源语言的损失值;

(2)结合双向的打分,对语料进行排序;

(3)根据排序结果,删除质量较低的平行语料;

经过语言模型和翻译模型筛选平行语料,得到高质量的双语平行语料。

本发明的另一目的在于提供一种应用所述基于语言模型和翻译模型的清洗平行语料方法,所述基于语言模型和翻译模型的清洗平行语料系统,基于语言模型和翻译模型的清洗平行语料系统包括:

语料预处理模块,用于处理相同语系的多个方向的双语平行语料;

第一筛选模块,语料预处理主要使用神经网络机器翻译模型和语言模型预处理算法对语料进行预处理;

第二筛选模块,使用翻译模型对双语平行语料筛选语料,去除语序不畅,翻译不准确的语料。

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

分词单元,用于使用基于隐马尔科夫模型的分词算法进行分词。

切分子词单元,用于使用字节对编码算法,根据词的频率,把低频词切分成子词的形式,保留高频词。

进一步,所述第一筛选模块包括:

损失值计算单元,用于以语言模型为标准,根据以下损失函数公式输出源语言和目标语言的损失值;

语料排序单元,用于结合源语言和目标语言的打分,对语料进行排序;

删除单元,用于根据实际情况,删除质量较低的平行语料;

所述第二筛选模块包括:

输出单元,用于以翻译模型为标准,根据语言模型中同样的损失函数公式分别输出源语言到目标语言,目标语言到源语言的损失值。

排序单元,用于结合双向的打分,对语料进行排序;

平行语料删除单元,用于根据实际情况,删除质量较低的平行语料;

去除单元,用于经过语言模型和翻译模型筛选平行语料之后,去除语序不畅,翻译不准确的语料,得到高质量的双语平行语料。

本发明的另一目的在于提供一种实现所述基于语言模型和翻译模型的清洗平行语料方法的计算机程序。

本发明的另一目的在于提供一种实现所述基于语言模型和翻译模型的清洗平行语料方法的信息数据处理终端。

本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于语言模型和翻译模型的清洗平行语料方法。

综上所述,本发明的优点及积极效果为:使用语言模型和翻译模型进行清洗语料,可以通过模型对语料进行打分,删除分数较低语料,留下质量较高的平行语料。既可以解决语序不畅和翻译不准确的问题,又可以节省成本,免去人工审核语料的时间和人力成本,可以在短时间内筛选出一批质量较高的语料。

本发明利用语言模型和翻译模型清洗大规模的双语语料,综合考虑了单语的质量以及双语的翻译质量。使用启发式的规则清洗平行语料的时间和人力成本都比较高,只有发现了问题,才能针对某个问题进行处理,无法大规模解决语序不畅和翻译不准确的问题。而使用语言模型和翻译模型可以在短时间内即可解决使用规则无法解决的问题,既节省了时间和人力成本,又可以清洗语料,而语料质量的提高,可有效提高机器翻译质量。

附图说明

图1是本发明实施例提供的基于语言模型和翻译模型的清洗平行语料方法流程图。

图2是本发明实施例提供的基于语言模型和翻译模型的清洗平行语料系统结构示意图;

图中:1、语料预处理模块;2、第一筛选模块;3、第二筛选模块。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明使用语言模型和翻译模型进行清洗语料,可以通过模型对语料进行打分,删除分数较低语料,留下质量较高的平行语料。

下面结合附图对本发明的应用原理作详细的描述。

如图1所示,本发明实施例提供的基于语言模型和翻译模型的清洗平行语料方法包括以下步骤:

s101:语料预处理主要是处理相同语系的多个方向的双语平行语料;

s102:使用源语言和目标语言的语言模型对平行语料进行筛选;

s103:使用翻译模型对双语平行语料筛选语料。

如图2所示,本发明实施例提供的基于语言模型和翻译模型的清洗平行语料系统包括:

语料预处理模块1,用于处理相同语系的多个方向的双语平行语料;

第一筛选模块2,用于使用源语言和目标语言的语言模型对平行语料进行筛选;

第二筛选模块3,使用翻译模型对双语平行语料筛选语料。

在本发明的优选实施例中:步骤s101具体包括:

(1)分词,使用基于隐马尔科夫模型的分词算法进行分词。

(2)切分子词,使用字节对编码算法,根据词的频率,把低频词切分成子词的形式,保留高频词。对于低频词,切分成子词的形式,以保留词的原来形式而不会被替换未知词的形式。

在本发明的优选实施例中:步骤s102具体包括:

(1)语言模型是根据给定若干个词,预测下一个词出现的概率,当一个句子为:

s=w1,w2,...,wk;

则其概率可以表示为:

p(s)=p(w1,w2,...,wk)=p(w1)p(w2|w1)...p(wk|w1,w2,...wk-1);

其中w1,w2......,wk为第1到k个词,那么一般使用n元语言模型来近似估算其概率:即当前词的概率只与前n-1个词有关,那么其概率可以表示为:

其中w1,w2......,wn为第1到n个词,那么以已经训练好的语言模型为标准,根据以下损失函数公式输出源语言和目标语言的损失值:

l=-∑iy′ilog(yi);

其中y′i为语言模型中预测下一个词wi的概率,yi为待打分的语料中下一个词wi的概率;

(2)对源语言和目标语言进行相同的(1)步骤,综合两种语言的语言模型打分,对语料进行排序;

(3)根据排序结果,删除质量较低的平行语料。

在本发明的优选实施例中:步骤s103具体包括:

(1)使用基于自注意力的编码器到解码器的神经网络结构作为翻译模型,其计算主要如下:

点乘注意力:

其中,q,k,v均为词向量,t表示转置,dk表示k的维度,xi,xj为输入参数;

多头注意力:

multihead(q,k,v)=concat(head1,...,headn)

其中,q,k,v均为词向量,concat是指把向量拼接起来,wi为参数矩阵,head1...headi...,headn为第1到n个头向量;

前馈神经网络:

ffn(x)=max(0,xw1+b1)w2+b2;

其中,w1,w2为权重参数,b1,b2为偏置,均可通过训练更新,a是参数;

最后通过softmax得到目标语言的词向量,再通过词典得到目标语言词汇;计算如下:

其中,θi,θj为权重参数,t为转置,k为目标语言词表的大小。

以翻译模型为标准,根据语言模型中同样的损失函数公式分别输出源语言到目标语言,目标语言到源语言的损失值;

(2)结合双向的打分,对语料进行排序;

(3)根据排序结果,删除质量较低的平行语料;

经过语言模型和翻译模型筛选平行语料,得到高质量的双语平行语料。

本发明是这样实现的,一种基于语言模型和翻译模型的清洗平行语料方法,所述基于语言模型和翻译模型的清洗平行语料方法包括以下步骤:

步骤一,语料预处理主要使用神经网络机器翻译模型和语言模型预处理算法对语料进行预处理;

步骤二,使用源语言和目标语言的语言模型对平行语料进行筛选;

步骤三,使用神经网络机器翻译模型对双语平行语料筛选语料。

进一步,所述步骤一具体包括:

(1)分词,使用基于隐马尔科夫模型的分词算法进行分词;

(2)切分子词,使用字节对编码算法,根据词的频率,把低频词切分成子词的形式,保留高频词。对于低频词,切分成子词的形式,以保留词的原来形式而不会被替换未知词的形式。

进一步,所述步骤二具体包括:

(1)语言模型是根据给定若干个词,预测下一个词出现的概率,当一个句子为:

s=w1,w2,...,wk;

则其概率可以表示为:

p(s)=p(w1,w2,...,wk)=p(w1)p(w2|w1)...p(wk|w1,w2,...wk-1);

其中w1,w2......,wk为第1到k个词,那么一般使用n元语言模型来近似估算其概率:即当前词的概率只与前n-1个词有关,那么其概率可以表示为:

其中w1,w2......,wn为第1到n个词,那么以已经训练好的语言模型为标准,根据以下损失函数公式输出源语言和目标语言的损失值:

l=-∑iy′ilog(yi);

其中y′i为语言模型中预测下一个词wi的概率,yi为待打分的语料中下一个词wi的概率;

(2)对源语言和目标语言进行相同的(1)步骤,综合两种语言的语言模型打分,对语料进行排序;

(3)根据排序结果,删除质量较低的平行语料。

进一步,所述步骤三具体包括:

(1)使用基于自注意力的编码器到解码器的神经网络结构作为翻译模型,其计算主要如下:

点乘注意力:

其中,q,k,v均为词向量,t表示转置,dk表示k的维度,xi,xj为输入参数;

多头注意力:

multihead(q,k,v)=concat(head1,...,headn)

其中,q,k,v均为词向量,concat是指把向量拼接起来,wi为参数矩阵,head1...headi...,headn为第1到n个头向量;

前馈神经网络:

ffn(x)=max(0,xw1+b1)w2+b2;

其中,w1,w2为权重参数,b1,b2为偏置,均可通过训练更新,a是参数;

最后通过softmax得到目标语言的词向量,再通过词典得到目标语言词汇;计算如下:

其中,θi,θj为权重参数,t为转置,k为目标语言词表的大小。

以翻译模型为标准,根据语言模型中同样的损失函数公式分别输出源语言到目标语言,目标语言到源语言的损失值;

(2)结合双向的打分,对语料进行排序;

(3)根据排序结果,删除质量较低的平行语料;

经过语言模型和翻译模型筛选平行语料,得到高质量的双语平行语料。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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

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