发明内容
针对现有技术中机器翻译系统需要大规模的语料库进行训练,最终由于语料库中的低质量句对严重影响机器翻译效果等不足,本发明要解决的问题是提供一种可将大部分低质量句对从语料中过滤掉,并在清洗后采用几种方式对数据的整体质量进行自动评估的提高语料整体质量的数据预处理方法。
为解决上述技术问题,本发明采用的技术方案是:
本发明一种提高语料整体质量的数据预处理方法,包括以下步骤:
1)输入原数据集,原数据集包含源语及目标语,逐行对源语及目标语进行读取;
2)将读取到的单行句对输入到数据过滤模块进行数据过滤工作;对数据清洗操作后的数据进行检测,将检测出来的低质量句对直接在原数据集中去除,并将低质量句对输入到日志文件中;
3)对于去除低质量句对后剩余的数据直接对齐进行自动评价操作,得到多个评估分数指标;
4)根据自动评价操作得到的评估分数指标进行过滤,滤除低于规定阈值的存在语义问题的句对;
5)将最终得到的高质量句对存储在输出文件中,得到高质量语料库。
步骤1)中,输入源语及目标语分别构成源语数据文件及目标语数据文件,并且源语和目标语是逐行对应句对。
步骤2)中,对于每一个单行句对,在输入到数据过滤模块之前,需要事先对齐进行分词操作,在数据处理中的长度比过滤及后期的自动质量评价时都需要基于词进行过滤操作。
步骤2)中,将读取到的单行句对输入到数据清洗模块进行数据清洗工作,是对数据语料中常见错误进行过滤,包括:
201)语种过滤,在数据过滤期间对源语及目标语的语种进行精确识别,并对语种不符合数据集要求的句对进行滤除;
202)长度比过滤,两个具有互译关系的句对中,源语句子与其译文的长度成正比关系,依靠长度比的方式对句对进行过滤,将长度比低于20%的句对过滤掉;
203)HTML标签过滤,对于当前的NMT模型,通过大规模数据集进行训练,由网络爬虫爬取互联网上的双语句对而可能存在的不规整标签信息进行滤除;
204)乱码过滤,在前期获取句对的过程中,对由于转码操作导致的句子中出现的乱码进行滤除;
205)连续重复词过滤,对机器翻译时导致重复翻译而在句子中出现连续重复内容进行去除;
206)多语种混用情况过滤,对源语端或目标语端的句子中出现非其所属语种词数高于句长的80%的句对进行滤除;
207)多余括号过滤,在获取数据语料的过程中,在句子末端带有的包括括号在内的标注信息进行滤除。
步骤4)中,根据自动评价操作得到的评估分数指标进行过滤,是在自动质量评价任务中,从多个角度评价当前句对质量,通过不同的方式对句对进行评分,每一种评分均能够表示出一个方面的句对互译信息,通过每一种评分值的大小来进一步判断当前句对的质量,将质量低的句对滤除。
步骤3)中,对于去除低质量句对后剩余的数据直接对齐进行自动评价操作,是对多个评分值自动调整权重,最终得到每一种评分值稳定的权重分配;对评分值进行正规化操作,使每一个评分值分布到相同的区间内,包括以下步骤:
301)分数正规化
多个评分值中,cover_forward,cover_reverse属于区间[0,1]中,分别为句对的正向覆盖度和逆向覆盖度,LS(s)以及LTP(t|s)均属于区间[-∞,0]中,分别为基于语言模型的流畅度评分和基于翻译概率的互译度评分;在调整权重前,将LS(s)以及LTP(t|s)均执行正规化操作,让其同样分布在区间[0,1]之中,分数具体调整方式如下式所示:
其中,mins为所有s分数中的最小值,si为当前句子未经过正规化前的分值,s′i为当前句子经过正规化后的分值;
302)权重调优算法
对于数据质量自动评价的方法使用人工标注数据集,数据集中由人工标注数据质量的句对,句对采用0,4,5分制形式,0分代表数据质量很差,4分代表句子有问题但可以接受,5分代表句对质量好;
通过线性回归的方式对各分值的权重进行估计,模型的公式为:
其中cf、cr分别代表cover_forward,cover_reverse,
代表当前估计的权重最终的估计分数,b为偏置项;
在模型估计的过程中,使用最小二乘法对各个分值的参数进行估计,模型在数据上的误差为:W1、W2、W3、W4分别为cf、cr、LS(s)以及LTP(t|s)的权重;
其中L为损失函数,m为人工标注数据集中句对的数量,yi为人工标注的句对分值,i为当前句对索引值;
通过优化L使得其取得最小值,得到最优的参数值,通过对各个未知权重求其偏导数,使其偏导数为0以求出各个点的极值,从而获得最优的权重值。
步骤301)中,正向覆盖度评分通过以下公式计算得到:
其中ls代表源语句子的长度,也就是源语句子的单词数;wi代表源语句子中的词,trans(wi)代表源语句子中当前词在目标语句子中是否存在译文单词,若存在则其值为1,不存在则其值为0;i为当前源语句对的索引值。
步骤301)中,逆向覆盖度评分通过以下公式计算得到:
其中lt代表目标语句子的长度,也就是目标语句子的单词数;wj代表源语句子中的词,trans(wj)代表目标语句子中当前词在源于句子中是否存在译文单词,若存在则其值为1,不存在则其值为0;j为当前目标语句对的索引值。
步骤301)中,基于语言模型的流畅度评分通过以下公式计算得到:
其中l代表源语句子的长度,sk当前索引位置的词,为k为当前词的索引值,N为当前索引依赖之前出现的单词数量,p(sk|sk-N+1,…,sk-1)代表词sk在语言模型下的翻译概率。
步骤301)中,基于翻译概率的互译度评分通过以下公式计算得到:
其中lt代表目标语句子的长度,t为目标语句子,s为源语句子,a为词对齐信息,p(tm|sn)为源语句子中指定单词翻译为目标语句子中指定单词
的概率,n为目标语句子中词的索引值,m为源语句子中词的索引值,trans(t|s,a)根据源语句子及词对齐信息得到目标语句子的翻译评分,由以下公式得到:
本发明具有以下有益效果及优点:
1.本发明提出的一种提高语料整体质量的数据预处理方法,能够过滤掉数据集中一些常见且严重的低质量句子,整个过程均由计算机自动完成,处理速度远远超越了一般水平。
2.本发明方法是使用数据预处理及自动质量评价的方式来解决数据集整体质量较低的问题,是过滤低质量句子、处理大规模数据集的自动化方法,与机器翻译模型无关,无需任何复杂的计算,可以非常便捷的处理多个语种的数据,便捷而高效。
3.本发明采取多个角度和指标来检测语料中句对可能会出现的问题,同时,对于数据集中经常出现的问题基本均能够达到很高的检测和修正精度,处理结果可以得到非常有效的保证。
具体实施方式
下面结合说明书附图对本发明作进一步阐述。
如图1所示,本发明一种提高语料整体质量的数据预处理方法,包括以下步骤:
1)输入原数据集,原数据集包含源语及目标语,逐行对源语及目标语进行读取;
2)将读取到的单行句对输入到数据过滤模块进行数据过滤工作;对数据清洗操作后的数据进行检测,将检测出来的低质量句对直接在原数据集中去除,并将低质量句对输入到日志文件中;
3)对于去除低质量句对后剩余的数据直接对齐进行自动评价操作,得到多个评估分数指标;
4)根据自动评价操作得到的评估分数指标进行过滤,滤除低于规定阈值的存在语义问题的句对;
5)将最终得到的高质量句对存储在输出文件中,得到高质量语料库。
步骤1)中,输入源语及目标语分别构成源语数据文件及目标语数据文件,并且源语和目标语是逐行对应句对。
对于每一个句对,在输入到数据过滤模块之前,需要事先对齐进行分词操作,在数据处理中的长度比过滤及后期的自动质量评价的时候都需要基于词进行操作。
一个中文句子分词后的结果如下:
从无价值中发现生活的真谛–>从/无/价值/中/发现/生活/的/真谛
得到分词后的结果后,后续的很多操作均可以基于词进行操作,这在两个语种互译的句对之间,将大大提升一些操作的精确度,原因是大部分句子的互相翻译是根据词进行的。
步骤2)中,对于每一个单行句对,在输入到数据过滤模块之前,需要事先对齐进行分词操作,在数据处理中的长度比过滤及后期的自动质量评价时都需要基于词进行过滤操作。
201)语种过滤
在数据过滤期间对源语及目标语的语种进行精确识别,并对语种不符合数据集要求的句对进行滤除。
众所周知,在机器翻译领域,大部分使用的训练语料均为双语句对的形式,即源语和目标语均是来自于不同语种且为互译的关系,但在语料中经常出现源语/目标语是由另一种语言组成的情况,这将会对后期翻译模型的翻译效果产生某些潜在的影响,所以在模型训练前期对源语及目标语的语种进行精确识别,并对语种不符合数据集要求的句对进行过滤是十分必要的。下面是一个来自中-英数据集中的句对:
设保资产的描述,описание обремененных активов,
上面的例子很明显,源语端是一句中文句子,但与之相对应的目标语端却由俄语组成。虽然句子的互译程度且数据质量均能保持一个不错的水平,但其出现在中-英数据集中,所以对于当前数据集来说,这并不是一个好的句对,应该将其过滤掉。
202)长度比过滤
两个具有互译关系的句对中,源语句子与其译文的长度成正比关系,依靠长度比的方式对句对进行过滤,将长度比低于20%的句对过滤掉;
在两个语种进行互译的过程中,一定长度的源语言翻译成目标语言的长度应该是有一定规律可循的,就像是只由一个词组成的源语句子翻译成为的目标语肯定不可能很长,图3说明了对源语-目标语进行分词后数据集整体的长度分布情况。
由此可见,在数据语料中一定长度的源语句子,与其译文的长度之间基本是成正比的关系,所以,依靠长度比的方式对句对进行过滤,将长度比过小的句对过滤掉,是一种十分可靠的过滤方式。句对之间的长度比(lr)计算规则如下所示:
其中lr表示当前句对的长度比值,src_word_account表示源语句子中的总词数,tgt_word_account表示目标语句子中的总词数。若当前句对的长度比非常小,就表示一句很短的句子和一句很长的译文对应,当前句对就很有可能为低质量句对或存在严重漏译的情况。下面为在中-英数据集中,长度比非常小的句对:
源语:请问
目标语:With whom am I speaking?Toward heaven's Jade City,
203)HTML标签过滤
对于当前的NMT模型,通过大规模数据集进行训练,由网络爬虫爬取互联网上的双语句对而可能存在的不规整标签信息进行滤除;
由于当前NMT模型主要依赖大规模数据集进行训练,所以为了能够快速地获取到足够规模的数据集,经常需要依赖网络爬虫在爬取互联网上的双语句对,在句子中可能存在许多不规整的标签信息,下面以中-英的句对展示了此种情况:
源语:<span>经理和员工(6)</span>
目标语:Accept personal responsibility.
若在数据集中存在大量此种情况的句对,以上例来说,很有可能导致在英-中翻译任务中,翻译模型对于句子Accept personal responsibility.的翻译,译文中极有可能也会存在<span>标签。这将会对译文质量产生很大的影响,所以对于存在多余标签的句对进行过滤操作是十分必要的。
204)乱码过滤
在前期获取句对的过程中,对由于转码操作导致的句子中出现的乱码进行滤除;
在前期获取句对的过程中,由于转码等部分原因,可能导致句子中某些部分出现乱码的情况,这种情况也有可能导致模型在学习的过程中受到某些影响。下面的例子展示了中-英数据集中的乱码问题:
源语:缁勭粐寮€灞曟€€€枃鍖栧
目标语:Russian curling athletes say one of their coaches told them
205)连续重复词过滤
对机器翻译时导致重复翻译而在句子中出现连续重复内容进行去除;
这种情况主要的原因是由机器翻译导致的,在数据语料的获取过程中,存在一种方式是将源语的单语句子经过机器翻译后将其翻译成为对应语种的目标语言,对于这样的句对将其称之为伪数据。而对于机器翻译的结果来说,有许多情况可能导致重复翻译的问题,这就导致了源语或目标语句子中可能会出现大量连续出现重复词。下面例子展示了这种情况。
源语:本集团二零一零年
目标语:INVENTORIES The Group Group Group Group Group
同样的,若在语料库中以上的句子大量出现,可能会导致最终翻译系统对句子进行翻译的时候,产生的译文中也会出现许多重复词的情况,因此在数据清洗的过程中,需要将语料库中此种情况的句子过滤掉。
206)多语种严重混用情况过滤
多语种混用情况过滤,对源语端或目标语端的句子中出现非其所属语种词数高于句长的80%的句对进行滤除;
在数据语料中还可能经常会出现此种情况,即源语端或目标语端的句子中,出现大量的、非其所属语种的词,称之为多语种混用情况,但对于互译的句对来说,少量此种情况的出现也是可能的(对于句中存在命名实体或专有名词来说),如下所示:
源语:旅店(BLRU)
目标语:Universitaires(BLRU)
但对于某些句对,源语端或目标语端大量出现其他语种的词,如下所示:
源语:Lane London EC3R 7NE United Kingdom电话:
目标语:Lane London EC3R 7NE United Kingdom Tel:
对于以上这种情况,在数据过滤的过程中也需要将其过滤掉。
207)多余括号问题过滤
在获取数据语料的过程中,在句子末端带有的包括括号在内的标注信息进行滤除。
在获取数据语料的过程中,由于许多语料都是从网络上爬取到的双语句对,而对于新闻等领域的双语语料,在句子末端经常会带有一些作者的标注信息,如下所示:
源语:《新华字典》(第一版编辑:魏建功)
目标语:"Xinhua Dictionary"
对于数据语料中出现的此种问题,最终将会导致机器翻译系统的翻译结果末尾也有可能带有多余的括号信息,因此,对于此种问题的过滤也是十分必要的工作。
如图2所示,步骤3)中,对于去除低质量句对后剩余的数据直接对齐进行自动评价操作,是对多个评分值自动调整权重,最终得到每一种评分值稳定的权重分配;对评分值进行正规化操作,使每一个评分值分布到相同的区间内,包括以下步骤:
301)分数正规化
多个评分值中,cover_forward,cover_reverse属于区间[0,1]中,分别为句对的正向覆盖度和逆向覆盖度,LS(s)以及LTP(t|s)均属于区间[-∞,0]中,分别为基于语言模型的流畅度评分和基于翻译概率的互译度评分;在调整权重前,将LS(s)以及LTP(t|s)均执行正规化操作,让其同样分布在区间[0,1]之中,分数具体调整方式如下式所示:
其中,mins为所有s分数中的最小值,si为当前句子未经过正规化前的分值,s′i为当前句子经过正规化后的分值;
步骤301)中,正向覆盖度评分通过以下公式计算得到:
其中ls代表源语句子的长度,也就是源语句子的单词数;wi代表源语句子中的词,trans(wi)代表源语句子中当前词在目标语句子中是否存在译文单词,若存在则其值为1,不存在则其值为0;i为当前源语句对的索引值。
在语料库自动评价操作中,基于词典的双向覆盖度得分是一个非常重要的评价标准。因为在双语句对中对影响质量的一个关键因素就是句对之间的互译程度,而词典是由人工标注的高质量双语词典,能够非常充分的体现词和词之间的互译关系。因此,基于词典来评价当前句对之间的互译关系得分是一个非常可靠的评价方式。而在本发明中,将分别对源语-目标语、目标语-源语分别进行覆盖度打分,能够最大限度地降低由于双语语言特性、分词等相关操作对于词和词之间的互译关系的影响。
步骤301)中,逆向覆盖度评分通过以下公式计算得到:
其中lt代表目标语句子的长度,也就是目标语句子的单词数;wj代表源语句子中的词,trans(wj)代表目标语句子中当前词在源于句子中是否存在译文单词,若存在则其值为1,不存在则其值为0;j为当前目标语句对的索引值。
步骤301)中,基于语言模型的流畅度评分主要是对整个句子的语言流畅度进行考察。使用n-gram模型对句子流畅度进行评价,事先需要引入马尔科夫假设,假设当前词出现的概率仅与前面N-1个词有关;
基于语言模型的流畅度评分通过以下公式计算得到:
其中l代表源语句子的长度,sk当前索引位置的词,为k为当前词的索引值,N为当前索引依赖之前出现的单词数量,p(sk|sk-N+1,...,sk-1)代表词Sk在语言模型下的翻译概率,可以通过以下公式得到:
步骤301)中,本发明采用了依赖fast-align对齐结果的词汇化翻译概率(LexicalTranslation Probability,LTP)作为句对互译程度的评价特征,相对于仅依赖词对词的翻译概率,此种翻译概率得分更尊重词对齐的结果,能够考虑到一对多或多对一的情况。基于翻译概率的互译度评分通过以下公式计算得到:
其中lt代表目标语句子的长度,t为目标语句子,s为源语句子,a为词对齐信息,p(tm|sn)为源语句子中指定单词翻译为目标语句子中指定单词的概率,n为目标语句子中词的索引值,m为源语句子中词的索引值,trans(t|s,a)根据源语句子及词对齐信息得到目标语句子的翻译评分,由以下公式得到:
翻译概率可以通过以下公式计算:
其中使用s代表源语言,t代表目标语言。为了消除因句长不一而对翻译概率产生的影响,本发明将会对trans值做
操作,使其每个句对之间最终得到的翻译概率得分互相之间是可比的。
302)权重调优算法
对于数据质量自动评价的方法使用人工标注数据集,数据集中由人工标注数据质量的句对,句对采用0,4,5分制形式,0分代表数据质量很差,4分代表句子有问题但可以接受,5分代表句对质量好;
通过线性回归的方式对各分值的权重进行估计,模型的公式为:
其中cf、cr分别代表cover_forward,cover_reverse,
代表当前估计的权重最终的估计分数,b为偏置项;
在模型估计的过程中,使用最小二乘法对各个分值的参数进行估计,模型在数据上的误差为:W1、W2、W3、W4分别为cf、cr、LS(s)以及LTP(t|s)的权重;
其中L为损失函数,m为人工标注数据集中句对的数量,yi为人工标注的句对分值,i为当前句对索引值;
通过优化L使得其取得最小值,得到最优的参数值,通过对各个未知权重求其偏导数,使其偏导数为0以求出各个点的极值,从而获得最优的权重值。
本发明方法能够过滤掉数据集中一些常见且严重的低质量句子,整个过程均由计算机自动完成,处理速度远远超越了一般水平,使用数据预处理及自动质量评价的方式来解决数据集整体质量较低的问题,是过滤低质量句子、处理大规模数据集的自动化方法,与机器翻译模型无关,无需任何复杂的计算,可以非常便捷的处理多个语种的数据,便捷而高效。同时,本发明采取多个角度和指标来检测语料中句对可能会出现的问题,对于数据集中经常出现的问题基本均能够达到很高的检测和修正精度,处理结果可以得到非常有效的保证。