面向司法领域的高质量开源藏汉平行语料库构建
2021-12-27周鹭琴李洪政张天夫
沙 九,冯 冲,周鹭琴,李洪政,张天夫,慧 慧
(1. 北京理工大学 计算机学院,北京 100081;2. 北京理工大学 信息与电子学院,北京 10081;3. 信息智能处理与内容安全工业与信息化部重点实验室,北京 100081;4. 甘肃省迭部县初级中学,甘肃 迭部 747400)
0 引言
最近神经机器翻译(Neural Machine Translation, NMT)的进步已经证明,其在某些特定领域内的翻译质量基本上可以达到专业人工翻译水准,这些翻译模型通常受益于大量的平行语料库,它们对NMT模型效果的提升最为明显。然而,平行语料库的获取和构建需要大量的时间和精力,且并非所有域或语言对都可以使用相同的数据集。为此,不少研究者通过数据增强来提升翻译质量。数据增强是一种具有显著价值的技术,其既可用于缓解数据量不足的问题,同时还可用于提升模型的稳健性。在图像分类和文本分类等应用中,几乎所有表现最好的机器学习以及深度学习模型都会用到数据增强技术。例如,启发式的数据增强方案、词汇替换、反向翻译、随机噪声注入和语法树操作等。启发式的数据增强方案往往需要依靠具有丰富领域知识的人类专家进行人工调整,但这可能导致其所得到的增强方案并非最优方案。词汇替换,这种方法试图在不改变句子主旨的前提下替换文本中的单词,包括基于词典的替换[1]、基于词向量的替换[2]、基于TF-IDF的词替换。反向翻译是一种利用单语数据生成伪平行语料的方法,具体做法是使用已有的目标语言到源语言的NMT系统,将较大规模的目标语言翻译为源语言,从而获取到新生成的伪平行语料,与已有平行语料合并后训练可提升模型效果。随机噪声注入,其思想为在文本中加入噪声,使所训练的模型对扰动具有鲁棒性。语法树操作可以解析原始句子的依存关系,使用规则对其进行转换,并生成改写后的句子。这些增强方法对性能的影响如何,目前仅针对某些特定用例进行了研究,如果能系统地比较这些方法,并分析它们对更多任务性能的影响,将是一个有意义的研究方向。
与计算机视觉(Computer Vision, CV)中使用图像进行数据增强不同,CV中图像数据增强对模型性能的提升优于自然语言处理(Natural Language Processing, NLP)中文本数据增强对模型性能的提升,其主要原因之一是对图像的一些简单操作,如将图像旋转或转换为灰度,并不会改变其语义。语义不变这一性质使数据增强成为CV研究中的一个重要工具。常规数据增强方法的局限性表明这一领域还存在很大的研究空间。常规数据增强技术依赖相关领域的专家,耗时耗力成本高昂,因此研究者开始探索自动化数据增强技术。相对于人工设计的算法,自动化数据增强更具挑战性: 如何设计可学习的算法来寻找优于人类的启发式方法来增强数据;如何从实践出发解决具体问题;如何把相关理论研究落实到实践中;现有的大多数数据增强方法的关注重点基本都在于提升模型的整体性能,通常还需要在更细的粒度上关注数据的关键子集。当模型在数据的重要子集上的预测结果不一致时,又该如何利用数据增强来缩减其在相关指标上的表现差距?然而真正从根源上解决问题的方法并不多,为此本文对其中最根本、最实质性的构建高质量特定领域的平行语料库技术进行探究。
本文针对以上数据增强技术面临的挑战问题,研究NMT中通过半自动方式构建高质量特定领域的数据增强技术。本研究面向稀缺资源司法领域的藏汉平行语料在NMT中的构建,通过半自动化数据增强技术获取了大量司法领域中的藏汉语料库,进一步构建了在司法领域中具有裁判文书以及法庭判决书等子领域的庞大藏汉平行语料。此外,本研究还表明,使用CWMT2018的通用数据训练基线模型,并使用本文构建的数据集对模型进行微调,能显著提高特定领域的翻译质量。
本文的主要贡献为:
(1) 在稀缺资源司法领域公开了规模为160K的高质量藏汉平行语料库;
(2) 比较了几种识别句子边界以及句对齐的方法,用于构建NMT的平行语料库。通过实验表明,利用不同的句子边界识别技术的消融策略可以获得更可靠的可用数据,对藏汉互译的140K或160K个句子对进行微调以及预训练,可以大幅度地改善译文质量,在较大的数据集上翻译质量将继续提升。
1 相关工作
数据增强是一种普遍应用的技术,通过利用保留类标签的特定任务的数据转换来增加带标记的训练集大小。为了解决这一难题,Ratner 等人[3]提出了一种方法来实现这个过程自动化。具体是采用了对抗式方法训练变换函数序列生成器,以得到与训练数据相比更加真实的增强数据。2019年谷歌大脑提出了一种自动化数据增强方法(AutoAugment)[4],该方法创建了一个数据增强策略的搜索空间,利用搜索算法选取适合特定数据集的数据增强策略。此外,从一个数据集中学到的策略能够很好地迁移到其他相似的数据集上。发表在ICLR 2019上的文章[5]中介绍了几种NLP数据增强技术,并提出了四种简单的操作来进行数据增强,以防止过拟合并提高模型的泛化能力。
在NMT中,通过上下文软连接的方式来处理NMT中的数据增强问题[6],这篇文章跟以往在句子中随机删除或替换单词的增强方法有所不同,它将一个单词的一种表示替换为一个分布(由语言模型提供),将该词的嵌入替换为多个语义相似的词的加权组合。由于这些词的权重依赖于被替换词的上下文信息,因此新生成的句子比以前的增强方法捕捉到了更加丰富的信息。文献[7]中,作者通过增强数据来提高和扩展神经机器翻译的鲁棒性。他们通过扩展有限的噪声数据,进一步提高NMT对噪声的鲁棒性及较小的模型体量。合并双语词典的方法[8]用于实现半监督神经机器翻译,该方法通过一种简单的数据增强技术来解决反向翻译中低资源环境下合成句子产生不利影响的问题。并结合了广泛使用的双语词典,解码时先逐次生成词,再合成句子达到翻译的效果。在无监督机器翻译中,通过学习双语单词嵌入来提升数据增强效果[9],利用无监督机器翻译模型生成伪平行语料库,以提高两个嵌入空间的结构相似性,提高映射方法中双语词嵌入的质量。NEJM-enzh[10]中提出了一种在生物医学领域内构建英汉平行数据集的方法。有学者[11]尝试使用库尔德语平行语料库,具体是从多语言网站中检索可能对齐的新闻文章,并根据文字的词汇相似性和音译在不同方言和语言之间手动对齐,从而构建对应的平行语料。另外还有类似的通过多语语料库的构建方法[12],包括德语-英语和汉语-英语的平行语料库的提取方式。
本文将半自动化数据增强技术应用到NMT中,通过对现有藏汉数据的筛选和预处理,并利用一些技术和方法,针对司法领域资源稀缺的藏汉互译任务,构建了庞大的平行语料库,取得了突破性的进展。
2 语料库的构建
2.1 标题构建平行语料库的基本流程
通过多语言网站获取语料数据,从中抽取语句构建平行语料的操作包括以下几个步骤:
(1) 从多语言网站中抓取所需语料数据文档;
(2) 从获取的文档中提取纯文本并将其规范化;
(3) 根据其内容进行两种语言文档的匹配;
(4) 在每个文件中将段落分解成单独的句子;
(5) 随后将句子排列成句子对;
(6) 对对齐的句子对进行过滤,去掉重复的和低质量的句子对。
在这6个步骤中,前两步基本属于工程化任务,后四步的研究正处于不断探索之中。
对于第3步,在WMT16中使用了一个用于双语文档对齐的共享任务[13],其中最佳词条依赖于匹配不同的双语短语对[14]。对于步骤4而言,Read等人[14]系统地评估了九种现有的句子边界检测工具。第5步的句子对齐可能是目前最具挑战性的部分。与文档对齐相比,句子对齐使用更少的文本,但有更多的排列。第6步也属于工程化任务。
2.2 法律领域的语料库来源
本文的语料库主要来源于中国裁判文书网站、中国民族语文翻译局、中国知网以及一些官方微信公众平台。中国裁判文书网站提供了民族语言文书,其中,含有藏文和中文的刑事案件、民事案件、行政案件、赔偿案件、执行案件以及其他案件。中国民族语文翻译局每年会定期发布每季度的新词术语,例如,“带头攻坚克难、敢于担当”等。在中国知网上可以获取法律领域相关的论文,进一步获取其藏汉双语摘要部分。还有一些官方微信公众号,如“藏汉双语法律平台”“刚察藏汉双语普法平台”以及“TBL酥油灯青年法客”等,它们会推送相关法律立案以及法庭判决书等数据。以上四种数据的历史可追溯至2015年。
2.3 获取语料库并断章对齐
本文使用Selenium[15]抓取所有可用的藏文和相应的中文文章。首先,在爬取期间,为了易于检索内容,获取的文章都按时间顺序排列。其次,对应的文档对通过超链接连接,消除了文档对齐的需要。最后,把藏文和汉文两个对应的PDF或者Word文档按段落标识符分段对齐,研究文档由相关的统计人员校对。
2.4 检测并识别语句边界
2.5 清洗和过滤语料库
图1 藏文和汉文在句子数目过滤前后的对比过滤之后藏文的句子数目越来越接近汉文的句子数目
2.6 构建双语句对齐
虽然已经提出了一些句子对齐的方法[17],但这些方法在稀缺资源司法领域上的表现欠佳。本文比较了以下三种方法: 基于长度对齐(Gale-Church)[18]的方法,通过假设源句和目标句的长度相似来寻找句子对;基于词典对齐(Microsoft Aligner)[18-19]的方法,把单词对与句子长度结合搜索句子对;基于翻译对齐(Bleualign)[20]的方法,将原始文本和翻译文本进行比较搜索锚定句,然后使用Gale-Church算法对其余的文本进行对齐。为了比较这些方法,本文人工构建了两种语言不同来源的5 000句测试集。表1显示了Microsoft Aligner在5 000句测试集上的对齐类型的分布,将近82.64%的对齐是一对一的。
表1 Microsoft Aligner在5 000句测试集上的对齐测试结果
因为大多数句子对都是一对一对齐的,对于一对多对齐的情况,所有算法的性能都会显著下降,因此在本研究中主要针对一对一对齐这一情况。精确度、召回率以及F1值如图2所示。
图2 三种句子对准器在语料库上通过双向对齐(即藏对汉和汉对藏)的最终结果
其中,微软的Aligner获得最佳F1得分,因此本文选用Microsoft Aligner构建句对对齐。随后所有的句子对由专业的翻译人员逐句校正,为了保证句子的流畅性,偶尔会进行句子的衔接和分割,即把一个藏文句子分成两个句子或者更多的中文句子,反之亦然。最终的数据由专门的编辑小组成员进行校对和统计,如表2所示,用于NMT的训练。
表2 不同来源下获取的最终平行语料大小
3 实验设置
3.1 模型架构
本文使用基于PyTorch的OpenNMT[21]框架,使用Transformer-Base模型训练,本次实验中所有的网络参数跟文献[22]中的参数设置保持一致。模型有6层编码器和解码器,每个输出大小为512个隐藏单元[16],使用8个注意头和正弦位置嵌入。最后隐藏的前馈层大小为2 048。模型总共训练了100 000步,训练耗时约为1.5天。使用Adam优化器[21],其中,Beta1=0.9,Beta2=0.98,Epsilon=10-9,Pdrop=0.1。在藏译汉和汉译藏上使用相同的参数训练,使用CWMT2018官方评测工具衡量译文的质量,具体以BLEU4值为评测指标。本文在8台Nvidia TitanX GPU上训练模型。
3.2 训练语料
本文利用公开数据CWMT2018提供的新闻领域的藏汉数据集。以2017Dev作为开发集,2018Test作为测试集;另外把本文构建的数据JusticeCorpus分割为训练集JusticeTraining、开发集JusticeDev以及测试集JusticeTest。具体实验所用的数据如表3所示。
表3 两种不同训练数据的大小
在本文中,汉文统一使用Jieba[23]分词,随后处理为子词(Byte-Pair-Encoding,BPE)[24]。藏文先使用西北民族大学开源的TIP-LAS[25]分词,随后按照文献[26]中音词融合的方式处理,使用80K的源端和目标端词汇表。最终实验所用的所有数据的汉文以BPE为粒度单位,藏文以音词融合为粒度单位。主要设置了五种方案进行实验:
(1) 单独用CWMT2018和JusticeCorpus数据分别训练模型作为基线系统Topic1和Topic2;
(2) 先用CWMT2018数据进行训练,其次用JusticeCorpus数据进行微调Topic3;
(3) 先用JusticeCorpus数据进行训练,其次用CWMT2018数据进行微调Topic4;
(4) 把CWMT2018和JusticeCorpus数据合成再训练Topic5;
在方案(2)和方案(3)中具体微调方式参照之前相关工作[27]。另外还做了一些预训练的实验用以验证本文所构建的数据是否可靠。预训练使用BERT[28]和XLM[29],具体方式参考了Weng R等人的文章[30]。
4 实验结果
4.1 主要结果
本文的基线系统为CWMT2018和JusticeCorpus数据集上训练的模型,实验结果如表4所示。不难发现,单独在数据集CWMT2018和JusticeCorpus上训练时,不管在藏译汉还是汉译藏上,2017Dev和2018Test在JusticeCorpus数据上的BLEU值低于CWMT2018数据上的值。相反,JusticeDev和JusticeTest在JusticeCorpus数据上的BLEU高于CWMT2018上的值,至少提升了3.21个BLEU值。首先,我们发现同一领域内的数据具有较强的相似之处,所以针对特定领域的测试集使用跟它相同领域的训练集训练是至关重要的。为此,构建特定的法律领域数据是很有必要的;其次,本文所构建的数据集在新闻领域的测试集上虽然BLEU值偏低,但是跟用新闻领域的数据集训练的结果相比,相差最多也不到1.31个BLEU值。相反,在法律领域的测试集上,BLEU值远远超越了用新闻领域训练的结果。因此,可以认为本文所构建的平行数据集具有较高的质量。
表4 本文主要的实验结果
以上实验分别采用CWMT2018数据进行训练,在JusticeCorpus数据进行微调,以及采用JusticeCorpus数据进行训练,在CWMT2018数据进行微调。当用CWMT2018数据进行训练,以及用JusticeCorpus数据进行微调时,在2017Dev和2018Test测试集上的效果优于JusticeDev和JusticeTest测试集上的值;当用JusticeCorpus数据进行训练,以及用CWMT2018数据进行微调时,在JusticeDev和JusticeTest测试集上的效果优于2017Dev和2018Test测试集上的值。因此,虽然通过微调能提升一定的翻译效果,但是不如用该领域内的数据直接训练的效果好,故本文所构建的数据集很有价值。
从整体实验结果可以发现,所有测试集的值在藏译汉上的评分值都高于汉译藏上的评分值。因此可以认为,目标端的分词质量以及切分粒度相当重要。这是因为,藏译汉时目标端为汉文,而汉文具有很多开源的分词工具且比较成熟,但是藏语几乎没有统一成熟的开源工具,导致每个机构或者高校在藏语相关的分词任务上使用的工具各不相同,并且在很大程度上具有不同的分词粒度,直接影响了下游的工作。因此判断目标端的分词甚至比源端的分词更重要。从表4的最后一行(Topic5)可以看出,本次实验在CWMT2018和JusticeCorpus数据合并后的训练模型上译文质量最佳,比单独实验和其他的微调的结果都要好,证明只有具有高质量且大规模的平行语料训练模型,NMT才能获得最佳结果。
4.2 消融实验
本节通过预训练方法进行训练[30],因为GPT是单向语言模型,而BERT屏蔽语言模型可以获得更多的上下文信息。GPT可以对顺序信息进行建模。因此,本文用BERT初始化编码器,用GPT初始化解码器。将表5中的Topic6行中JusticeCorpus作为初始化参数语料,CWMT2018作为后期的NMT训练语料。将表5中的Topic7行中CWMT2018作为初始化参数语料,JusticeCorpus作为后期的NMT的训练语料。当编码器由BERT初始化并且解码器由GPT初始化时,BLEU值在四个测试集上都有所提升,并且本次实验结果都优于表4中的微调方法,说明这样的预训练方法比微调方法能够更有效地从预训练模型中获取更多知识。我们比较了两种不同语料作为初始化参数的方案,在Topic7中四个测试集上的实验结果始终比Topic6中的实验结果强,并且在新闻领域的测试集上明显大幅度提升了BLEU值。我们认为,通过利用领域内的数据进行预训练并初始化,其次用不同领域的数据训练,这样不仅保留了原领域内的信息特征,而且从更多的层次融合了外部领域的知识,因此让模型获得了更好的性能。由此说明,预训练方法不仅能提升译文质量,而且本文所构建的数据质量是值得信赖的。只有高质量的平行语料训练NMT,才能从输入的句子中获取语义,获得更多的上下文信息从而提升增益。当把CWMT2018作为初始化参数语料,JusticeCorpus作为后期NMT训练语料时,在藏译汉的JusticeDev测试集上,相比将JusticeCorpus作为初始化参数语料,CWMT2018作为后期的NMT训练语料,提升了1.04个BLEU值,在汉译藏上提升了2.12个BLEU值。无论在CWMT2018数据集上进行微调还是用CWMT2018数据初始化,均取得不错的效果。
表5 消融实验结果
续表
4.3 译文分析
为了更好地展示本文构建的平行语料库的效果,本文手动检查了Topic1至Topic7中的输出,并在图3中展示了部分示例。Topic7在四种测试集上都能较好地翻译出源文所含有的所有词。通过图3可知,CWMT2018数据和JusticeCorpus数据合并后的训练模型最好,如图3中的Topic5行能够正常翻译“毁损、灭失、承担、损害、赔偿以及责任”。其次为预训练方法,用CWMT2018数据初始化参数并用JusticeCorpus数据进行训练,如图3中的Topic7行能够准确翻译“毁损、灭失、损害、赔偿”。翻译质量随着数据集的增长不断提高。此外,使用领域外数据进行预训练也有助于提高翻译质量,甚至在全集级别上均是如此。
图3 藏译汉上同一条测试句在7个不同训练方法中的实验结果
5 总结及未来工作
本文中已经证明用CWMT2018藏汉平行语料库训练的基准模型在稀缺资源司法领域上可泛化性是有限的。针对此问题,本文构建了一个高质量的藏汉平行数据集。利用本文所构建的数据集训练司法领域的NMT,极大地提高了翻译质量,同时发现随着数据集的增长,翻译质量也不断得到提高。
我们的数据集大小为160K个句子对,这也弥补了到目前为止仅有公开的藏汉新闻领域数据的局限性。我们的数据集将会被公开供研究者们使用,以促进少数民族语言信息处理的发展。同时具有公开透明的可比性。在未来,我们计划针对藏汉语料的翻译模式进行一些语言知识调查,把稀缺资源司法领域语料库扩展到其他领域,包括政治和教育等领域,即通过某种领域的平行数据来构造另外一种领域的平行语料库。