基于语种相似性挖掘的神经机器翻译语料库扩充方法

2021-12-07 10:08杨雅婷马玉鹏董瑞
计算机应用 2021年11期
关键词:维吾尔语语料音节

李 灿,杨雅婷,马玉鹏*,董瑞

(1.中国科学院新疆理化技术研究所,乌鲁木齐 830000;2.中国科学院大学,北京 100049;3.新疆民族语音语言信息处理实验室(中国科学院新疆理化技术研究所),乌鲁木齐 830000)

0 引言

近年来,随着长短期记忆(Long Short-Term Memory,LSTM)网络[1-2]、注意力(Attention)机制[3-5]、Transformer模型[6-7]的出现,机器翻译的水平取得了长足的进步。在英法、中英这样资源丰富的翻译任务上,机器翻译已经取得了非常不错的效果。然而,神经机器翻译(Neural Machine Translation,NMT)的成功往往依赖于大量高质量的双语语料作为训练数据。但是,诸如维吾尔语、哈萨克语等这些小语种,提供足够多的双语数据比较困难。甚至有些语言对几乎没有任何机器翻译双语平行语料,这种情况下通用框架的NMT就显得非常乏力。

随着神经机器翻译技术的不断进步,学者们渐渐开始加强对低资源语言机器翻译问题的探索与研究。Zoph等[8]用大量的英法双语语料训练出模型之后,在乌兹别克语-英语和土耳其语-英语双语机器翻译语料上分别进行进一步优化,成功提升了乌兹别克语到英语以及土耳其语到英语的翻译质量。Nguyen等[9]将字节对编码(Byte Pair Encoding,BPE)分词方法用于迁移学习,使用土耳其语-英语、乌兹别克语-英语和维吾尔语-英语平行语料,进行BPE 处理之后以迁移学习的方法训练出用于机器翻译的模型,在土耳其语-英语、乌兹别克语-英语和维吾尔语-英语三者的机器翻译上取得了显著效果。Gu 等[10]提出了基于元学习的神经机器翻译(Metalearning for Neural Machine Translation,MetaNMT),将元学习思维用于低资源语言机器翻译,以18 种欧洲语言作为源语言,分别为保加利亚文(Bg)、捷克文(Cs)、丹麦文(Da)、德文(De)、希腊文(El)、加泰罗尼亚文(Es)、爱沙尼亚文(Et)、法文(Fr)、匈牙利文(Hu)、意大利文(It)、立陶宛文(Lt)、荷兰文(Nl)、波兰文(Pl)、葡萄牙文(Pt)、斯洛伐克文(Sk)、斯洛文尼亚文(Sl)、瑞典文(Sv)和俄文(Ru),以5 种不同语言作为目标语言,分别为罗马尼亚文(Ro)、拉脱维亚文(Lv)、芬兰文(Fi)、土耳其文(Tr)和朝鲜文(Ko),取得了优于迁移学习的效果。低资源语言机器翻译发展到现阶段,主要涉及到元学习和迁移学习的方法,然而低资源语言标注数据的贫乏问题,却一直缺乏比较好的解决方案。在此种情况下,研究如何对低资源语言机器翻译平行语料库进行扩充则显得尤为重要。

本文选取维吾尔语和哈萨克语作为相似语言对,对低资源语言相似语种的机器翻译平行语料的扩充方法进行研究和探索。对维吾尔语-汉语(维-汉)、哈萨克语-汉语(哈-汉)平行语料和维吾尔语&哈萨克语混合-汉语平行语料分别使用词级别切分、BPE、音节切分以及本文提出的基于音节切分的BPE 四种对语料的处理方式进行处理,以深度挖掘相似语种间的语言相似性;引入“开始-中部-结束(Begin-Middle-End,BME)”序列标注方法对切分的音节进行标注,以消除音节输入所带来的一些歧义;利用Sockeye开源神经机器翻译框架[11]对NMT模型进行训练;对训练所得NMT模型的性能进行比较,以探求有效地挖掘语种间相似信息的方法,寻求有效的低资源语言相似语种的机器翻译平行语料的扩充方法。

1 语料相似性挖掘方法

维吾尔语和哈萨克语同属于阿尔泰语系中的突厥语族,二者非常相似;在词级别上维语和哈语存在一定的相似表达,在字节级别和音节级别上二者更是几乎完全相同。

基于以上理论基础,本文采用字节对编码(BPE)处理和音节切分处理两种特殊的语料处理方案,并提出基于音节切分的BPE 处理的语料编解码方案,以深度挖掘哈语与维语相似的信息,充分利用语料扩充所带来的效果,对维汉神经机器翻译和哈汉神经机器翻译模型的训练带来增益。

另外,在实验中对翻译错误的语句对进行研究发现,当维语或哈语作为音节输入时,会出现一些歧义问题,因此对单词的音节进行了BME标记处理,以消除这些歧义。

图1 展示了本文实验中所用到的所有语料处理方案,以下对相关方法进行一一介绍。

1.1 字节对编码

BPE 算法最早是一种数据压缩算法,由Sennrich 等[12]引入到自然语言处理(Natural Language Processing,NLP)领域并很快得到推广。BPE算法可以有效地平衡词汇表大小和步数(编码句子所需的token 数量),简单有效,因而成为了目前NLP 领域最流行的字节编码算法,其最基本的做法是将最常见的一对连续字节数据替换为该数据中不存在的字节,在后期使用时再使用一个替换表来重建原始数据。

BPE算法包含三个部分:获取子词词表,编码,解码。

1.1.1 获取子词词表

获取子词词表的操作步骤如下:

1)准备足够大的训练语料;

2)确定期望的子词词表的大小;

3)将单词拆分为字符序列并在末尾添加后缀“”,并统计单词频率;

4)统计每一个连续字节对的出现频率,选择最高频者合并成新的子词;

5)重复第4)步直到达到第2)步设定的子词词表大小或下一个最高频的字节对出现频率为1。

1.1.2 编码

将得到的子词词表按照子词长度由大到小排序。编码时,对于每个单词,遍历排好序的子词词表寻找是否有token是当前单词的子字符串,如果有,则该token 是表示单词的tokens之一。从最长的token 迭代到最短的token,尝试将每个单词中的子字符串替换为token。最终,将迭代所有的tokens,并将所有子字符串替换为tokens。如果仍然有子字符串没被替换但所有token都已迭代完毕,则将剩余的子词替换为特殊token,如。图2 展示了BPE 算法的编码过程,图中的数字表示子词在词表中的排序。

图2 BPE算法编码过程示意图Fig.2 Schematic diagram of BPE algorithm coding process

编码的计算量很大。在实践中,可以pre-tokenize 所有单词,并在词典中保存单词tokenize 的结果,如若发现字典中不存在的未知单词,则应用上述编码方法对单词进行tokenize,然后将新单词的tokenization添加到字典中备用。

1.1.3 解码

解码过程比较简单,如果相邻子词间没有中止符,则将两子词直接拼接,否则两子词之间添加分隔符。

1.2 音节自动切分

音节是最小的语音结构,是人的听觉能够自然感受到的最小语音片段。每一种语言都有自己的发音习惯和自己的语音特点[13]。汉语中的每一个汉字都对应一个音节,每个音节都是由声调、韵母和声母组成。在维吾尔语中,一个音节一般由一个元音音素单独构成或与其他辅音音素结合构成。维吾尔语中,一共有32 个字母,其中包含24 个辅音和8 个元音,这32 个字母在词语中的位置大概有130 种形式,另外包含一个特殊符号Hamze。当一个元音在词中表示另一个音节的开始或者当其出现在词首时,需要附加Hamze。Hamze 是一个新音节开始或切分的标志[14]。

维吾尔语固有的音节结构是(起音)-领音-(收音),其中领音必须是元音,音节中可以没有起音和收音,但是不能没有领音[15]。目前的研究结果表明,现代维吾尔语的音节类型一共有12种,如表1所示,其中,c(consonant)表示辅音,v(vowel)表示元音。

表1 维吾尔语音节类型Tab.1 Syllable types of Uyghur

如表1 所示,7~12 号音节结构用于记录外来词;其中10号和11 号音节结构都包含2 个元音,它们用于记录来自汉语等语言中有2个元音的词语。基于表1中的音节类型[14],通过人工分析,可以大致总结出29种音节切分规则。

在本文的实验中依照总结得出的29 种切分规则设计维吾尔语自动切分工具对语料进行自动音节切分。具体做法为:采用Hamze 对维吾尔语词语进行切分→从维吾尔词语的词尾开始遍历→查找词语的边界标志cv→检查音节结构(有问题则进行修复)。把Hamze符号看成音节开始的标志,首先用Hamze对维吾尔文词语进行切分;然后,再对切分之后的每一个分块进行音节切分——从维吾尔文词语的词尾开始遍历,每当遇到cv(先遇到v然后遇到c)时,把c作为音节边界进行音节切分;最后,对音节结构进行检查,依照规则库和附加辅助音节库对有问题的音节结构进行修复。

1.3 基于音节切分的BPE

为了探究有效的低资源语言相似语种的机器翻译平行语料的扩充方法,本文将以上两种语料处理方式结合到一起,称之为基于音节切分的BPE。对BPE算法中获取子词词表部分进行调整,不再统计每一个连续字节对的出现频率,选择最高频者合并成新的子词;而是统计每一个连续音节对的出现频率,选择最高频者合并成新的子词。

在基于音节切分的BPE方法中获取子词词表的具体步骤如下:

1)准备足够大的训练语料;

2)确定期望的子词词表的大小;

3)对语料进行自动音节切分处理,将单词拆分为音节序列并在末尾添加后缀“”,并统计单词频率;

4)统计每一个连续音节对的出现频率,选择最高频者合并成新的子词;

5)重复第4)步直到达到第2)步设定的子词词表大小或下一个最高频的音节对出现频率为1。

此方法的编码和解码部分与传统的BPE算法思想及具体操作步骤相同。

1.4 BME标记方案

为消除音节作为输入所带来的歧义,本文引入了BME 标记方案对音节进行标记。如图3 所示,将维吾尔语和哈萨克语的音节的开头标记为“B”,音节的中间部分标记为“M”,音节的末尾部分标记为“E”,单独的音节标记为“BE”;如图4 所示,对汉语按照字级别进行处理,在汉语中,词的开头标记为“B”,词的中间部分标记为“M”,词的末尾部分标记为“E”,单独的一个字标记为“BE”。

图3 维吾尔语BME标记示例Fig.3 Examples of Uyghur BME tagging

图4 汉语BME标记示例Fig.4 Examples of Chinese BME tagging

2 实验与结果分析

2.1 数据集

如表2 所示,本文实验用到的数据集包含两部分:维-汉平行语料采用的是CWMT2015 提供的维汉双语平行语料。对语料进行数据清洗、乱码过滤,剔除带有乱码或不规则符号的语料。然后,将汉语按字切分,进行字级别的处理,并将语料划分为训练集、验证集和测试集三部分。

由表2 可以看出,最终训练集包含维汉双语平行语句对331763 对,验证集包含700 对,测试集包含1000 对。哈-汉平行语料进行同样的处理之后得到哈汉双语平行语句对训练集346371对,验证集700对,测试集1000对。

表2 数据集具体信息Tab.2 Specific information of datasets

2.2 实验基础设置

在本文的实验中,使用亚马逊公司基于Apache Mxnet 开发的神经网络机器翻译框架Sockeye。使用Transformer 模型,参数采用Transformer_base 的设置(Transformer 一个比较好的基线设置)。

如表3所示,编码端和解码端的层数都是6层,采用ReLU激活函数,dropout 均设置为0.1,学习率设置为0.0002,前馈神经网络隐层维度设置为2048,词向量维度设置为512,Attention Heads设置为8。

表3 实验基本参数设置Tab.3 Basic parameter setting of experiment

在训练过程中使用早停机制,以双语评估替补(BiLingual Evaluation Understudy,BLEU)值为衡量值,当验证集上的BLEU 值10 轮不再提升时就停止训练。BLEU 值为目前使用最广泛的机器翻译自动评价指标,其具体计算式如式(1):

其中BP为长度惩罚因子,其计算式如式(2):

其中:c表示机器翻译结果的长度;r表示参考译文的有效长度;N表示参考译文与翻译结果进行匹配时设置的N-gram 最大长度,an为N-gram 匹配准确率所对应的权重,Pn表示N-gram匹配的比例。在本文的实验中,N值设置为4。

在解码过程中使用Beam-search策略,beam size设置为5。采用基于Moses 的multi-bleu-detok.perl 脚本[16]来计算BLEU值,并通过BLEU值来衡量翻译质量的好坏。

2.3 基础语料实验

使用维汉机器翻译平行语料和哈汉机器翻译平行语料分别进行模型训练。

2.3.1 维-汉机器翻译基础实验

此部分实验中,训练集包含维汉双语平行语句对331763对,验证集包含700 对,测试集包含1000 对。对汉语语料进行字级别的处理,对维吾尔语语料分别进行词级别处理、BPE处理、音节切分处理、基于音节切分的BPE 处理。实验采用2.2节中的基础设置,使用早停机制,以BLEU 值为衡量值,当验证集上的BLEU 值10 轮不再提升时就停止训练。表4 展示了实验中参数以及实验过程。

表4 维-汉机器翻译基础实验参数Tab.4 Basic experimental parameters of Uyghur-Chinese machine translation

2.3.2 哈-汉机器翻译基础实验

此部分实验中,训练集包含哈汉双语平行语句对346371对,验证集包含700 对,测试集包含1000 对。对汉语语料进行字级别的处理,对哈萨克语语料分别进行词级别处理、BPE处理、音节切分处理、基于音节切分的BPE 处理。实验采用2.2节中的基础设置,使用早停机制,以BLEU 值为衡量值,当验证集上的BLEU 值10 轮不再提升时就停止训练。表5 给出了实验中参数以及实验过程。

表5 哈-汉机器翻译基础实验参数Tab.5 Basic experimental parameters of Kazakh-Chinese machine translation

2.3.3 结果分析

基础实验部分训练得到4 个维-汉机器翻译模型和4 个哈-汉机器翻译模型;使用基于Moses 的multi-bleu-detok.perl脚本在对应的测试集上计算BLEU值,结果如表6所示。

表6 基础实验BLEU值Tab.6 Basic experimental BLEU

从测试集上的BLEU 值来看,BPE 处理、音节切分处理和基于音节切分的BPE处理三种语料处理方案的表现效果差距不大,BPE处理方案的效果略优,音节切分处理方案的效果则略差一点。

2.4 BME标记实验

此部分实验使用跟基础实验部分相同的语料,针对音节切分和基于音节切分的BPE两种处理方案进行改进。引入本文1.4节中的BME标记方案对语料进行进一步处理。实验采用2.2节中的基础设置,使用早停机制,以BLEU 值为衡量值,当验证集上的BLEU 值10 轮不再提升时就停止训练。表7 给出了实验中参数以及实验过程。

表7 BME标记实验参数Tab.7 BME tagging experimental parameters

实验训练得到2 个维-汉机器翻译模型和2 个哈-汉机器翻译模型;使用基于Moses 的multi-bleu-detok.perl 脚本在对应的测试集上计算BLEU值,结果如表8所示。

表8 BME标记实验BLEU值Tab.8 BME tagging experimental BLEU

从测试集上的BLEU 值来看,引入BME标记之后,翻译质量有一个比较高的提升。维-汉翻译部分音节切分处理的BLEU 值为50.65,在引入BME 标记之后BLEU 值为54.21,BLEU 值提升了3.56;基于音节切分的BPE 处理的BLEU 值为51.09,在引入BME 标记之后BLEU 值为54.32,BLEU 值提升了3.23。哈-汉翻译部分音节切分处理的BLEU 值为50.91,在引入BME标记之后BLEU值为54.42,BLEU 值提升了3.51;基于音节切分的BPE 处理的BLEU 值为51.26,在引入BME标记之后BLEU值为54.57,BLEU值提升了3.31。

2.5 语料扩充实验

在此部分实验中,将维-汉和哈-汉平行语料的训练集和验证集分别进行混合,而后对语料分别进行词级别处理、BPE处理、音节切分处理、基于音节切分的BPE 处理以及音节BME 标记处理。实验采用2.2 节中的基础设置,使用早停机制,以BLEU 值为衡量值,当验证集上的BLEU 值10 轮不再提升时就停止训练。表9展示了实验中参数以及实验过程。

表9 语料扩充实验参数Tab.9 Corpus expansion experimental parameters

实验训练得到6 个维&哈-汉跨语言机器翻译模型;使用基于Moses 的multi-bleu-detok.perl 脚本分别在维语和哈语对应的测试集上计算BLEU值,结果如表10所示。

表10 语料扩充实验BLEU值Tab.10 Corpus expansion experimental BLEU

从测试集上的BLEU 值来看,使用词级别处理方式处理语料无法充分挖掘维哈语料的相似信息,甚至会带来噪声,从而导致了相较于基础实验而言BLEU 值不升反降;使用其他语料处理方式时,能充分挖掘维哈语料的相似信息,因此BLEU值相较于基础实验而言都会有一定的提升。其中,本文提出的基于音节切分的BPE处理方式挖掘维哈语料的相似信息的效果最好,而且引入BME 标记进行音节输入消歧对翻译质量的提升也产生了很大的帮助。

2.6 实验整体分析

表6 和表8 展示了维-汉机器翻译和哈-汉机器翻译基础实验的BLEU值,表10展示了语料扩充实验的维-汉机器翻译和哈-汉机器翻译的BLEU值。

维-汉机器翻译实验中,词级别处理基础实验BLEU 值为46.13,语料扩充实验BLEU 值为45.02,进行语料扩充后BLEU 值降低了1.11;BPE 处理基础实验BLEU 值为51.24,语料扩充实验BLEU 值为52.31,进行语料扩充后BLEU 值提升了1.07;音节切分处理基础实验BLEU 值为50.65,语料扩充实验BLEU 值为52.45,进行语料扩充后BLEU 值提升了1.8;基于音节切分的BPE 处理基础实验BLEU 值为51.09,语料扩充实验BLEU 值为53.18,进行语料扩充后BLEU 值提升了2.09;音节切分(BME)处理基础实验BLEU 值为54.21,语料扩充实验BLEU 值为55.47,进行语料扩充后BLEU 值提升了1.26;基于音节切分的BPE 处理(BME)基础实验BLEU 值为54.32,语料扩充实验BLEU 值为55.79,进行语料扩充后BLEU值提升了1.47。

哈-汉机器翻译实验中,词级别处理基础实验BLEU 值为46.38,语料扩充实验BLEU 值为45.07,进行语料扩充后BLEU 值降低了1.31;BPE 处理基础实验BLEU 值为51.46,语料扩充实验BLEU 值为52.48,进行语料扩充后BLEU 值提升了1.02;音节切分处理基础实验BLEU 值为50.91,语料扩充实验BLEU 值为52.51,进行语料扩充后BLEU 值提升了1.6;基于音节切分的BPE 处理基础实验BLEU 值为51.26,语料扩充实验BLEU 值为53.23,进行语料扩充后BLEU 值提升了1.97;音节切分(BME)处理基础实验BLEU 值为54.42,语料扩充实验BLEU 值为55.56,进行语料扩充后BLEU 值提升了1.14;基于音节切分的BPE 处理(BME)基础实验BLEU 值为54.57,语料扩充实验BLEU 值为55.82,进行语料扩充后BLEU值提升了1.25。

综合实验效果来看,当仅采用词级别处理时,扩充实验中挖掘到的维语和哈语的相似信息较少,甚至都无法抵消语料混合所带来的噪声影响,从而导致BLEU 值不升反降;而采用特殊的语料处理方式时,语料扩充实验中的BLEU 都有一定程度的提升,采用本文提出的基于音节切分的BPE 处理方案进行语料扩充实验时BLEU 值提升最高;有效说明了本文提出的基于音节切分的BPE处理方案能最大限度地挖掘并利用维语和哈语的相似信息,从而为维&哈-汉跨语言机器翻译模型的训练带来极大的增益;另外,根据2.4节中对BME标记实验结果的分析可知引入BME 标记对切分的音节进行标注,能很好地消除音节输入所带来的一些歧义,从而能更有效地提升维-汉机器翻译和哈-汉机器翻译的翻译质量。

3 结语

本文为解决维吾尔语、哈萨克语到汉语等低资源语言机器翻译的任务上一直存在的标注数据资源匮乏的问题,对维&哈语料相似性挖掘的方法进行探究。采用BPE 处理、音节切分处理以及基于音节切分的BPE处理三种语料处理方式对语料进行处理以挖掘维语和哈语的相似信息并加以利用;引入BME 标记对切分的音节进行标注,以消除音节输入所带来的一些歧义。

通过对基础实验与语料扩充实验中训练所得的模型进行对比,验证了本文提出的基于音节切分的BPE 处理方法的有效性以及引入BME标记所带来的增益效果。

在后续的研究中,我们将基于当前实验,探究BPE处理和基于音节切分的BPE处理两种方案中子词词表大小对翻译质量的影响。同时,后续也会引入乌兹别克语和土耳其语等语言,在本文研究的基础上进行进一步的研究,以探究更多相似语种语料扩充的可能性。

猜你喜欢
维吾尔语语料音节
海量标注语料库智能构建系统的设计与实现
r(re)音节单词的拼读规则
浅析维吾尔语表可能语气词
浅谈视频语料在对外汉语教学中的运用
可比语料库构建与可比度计算研究综述
拼拼 读读 写写
维吾尔语数词历时演变发展研究
现代维吾尔语的词缀功能及从中存在的奇异现象的处理探讨
维吾尔语助动词及其用法
看音节说句子