基于NMT的RS10-CLOUD工业软件生产全过程的业务标签同步翻译

2022-05-26 13:01杨英樱乔运华赵怡静
制造业自动化 2022年5期
关键词:源语言目标语言语料

杨英樱,乔运华,赵怡静

(1.北京机械工业自动化研究所,北京 100120;2.北京机械工业自动化研究所有限公司,北京 100120)

0 引言

RS10-CLOUD快速开发平台

RS10-CLOUD快速开发平台(RS10-CLOUD DEVELOPMENT PLATFORM)隶属于国家重大项目RS10-CLOUD云平台,是一个基于微服务开发的、容器化的前后台代码快速开发系统,具有可持续集成、独立服务部署、自带授权页面、独立于业务逻辑等特点。

该平台可以为用户提供可视化的业务数据管理以及基于配置项的页面数据绑定,为匹配业务系统通用模板的开发以及特殊业务的个性化定制开发提供了匹配的配置方式、并且可以根据配置信息自动生成可供开发的代码。实现了业务系统低代码的开发,减少大量重复性工作,为企业节约开发过程中的人力成本时间成本。

快速开发平台的后台工具首先通过服务器获取前台文件,后台开发工具根据页面配置调用自动生成代码服务后封装代码java文件存储上传到服务器中。快速开发平台流程图如图1所示:

图1

RS10-CLOUD中的业务标签维护

业务标签主要是对于数据表下字段的中文名称,在不同的子系统下业务标签名是不同的。

在RS10-CLOUD快速开发平台中的页面业务标签维护,实现了业务类数据标签的统一规范管理、并且维护后的所有页面可及时动态生效。本文训练翻译模型旨在该满足模块的多语言翻译功能,满足该平台智能化、高效率的特点,不需要手动输入进行维护翻译,而是调用翻译模型的接口进行自动翻译,满足不同语种的需求,更加国际化。

业务标签维护的逻辑流程图如图2所示。

图2

针对中英的翻译训练,本文将在下面详细介绍几种针基于NMT的对平行语料进行处理的训练模型方法并且进行对比分析。

1 神经机器翻译NMT

神经机器翻译NMT是一种不同于统计机器翻译的方法,它是神经网络利用端到端的建模方式进行翻译的过程,具有捕获长距离依赖关系的能力。随着2017年Transformer横空出世后,NMT(Neural Machine Translation)领域得到了飞速的发展,注意力机制在NMT中起着至关重要的作用,因为它表明解码器应该关注哪些源词,以便预测下一个目标词。

NMT仍然很大的发展空间,为了使训练的模型翻译更加准确,本文研究了将先验知识融合到NMT模型中,即给模型加入人为设计的先验信息会让模型学习到一些关键的特征,主要是针对一些新词术语的约束。

基于词汇约束的NMT研究大致可分为硬约束和软约束两大类。

1.1 基于硬词汇约束的NMT

硬约束通过修改解码算法来确保所有约束都出现在输出端中。

Hokamp和Liu[2017]引入了一种算法,用于强制某些单词出现在输出中,称为网格波束搜索(GBS)。该算法在beam search的基础上,beam扩展到grid的形式,多了约束的维度,可以保证某个词一定会出现在最终输出序列中.但是因为它的解码复杂度在约束数量上是线性的,这导致它的解码速度非常慢且计算时复杂度高。因为大多数解码器会在模型加载时为了优化计算图形会指定波束大小,那每个句子的波束大小发生变化还会使增加吞吐量的波束搜索优化变得复杂。

Post和Vilar[2018]提出了一种新的算法动态波束分配(DBA)算法,他的算法复杂度是恒定的。通过约束训练或解码方法调整NMT中的词汇约束,将假设按满足约束数量分组成bank,并在每个时间步将一个固定大小的波束(beam)动态的分配到不同的bank,他不再将波束大小K乘以约束的数量C,这样降低了计算复杂度,从而加快了GBS的速度。并且,该算法能够容易地缩放并扩展到使用例如BPE等技术处理产生的大词或短语约束集。

这些硬约束的共同点是,它们以完全相同的形式将词汇约束复制到输出中,因此不适合使用噪声约束进行解码。也就是说,如果使用一种形式作为解码的硬约束,那么另一种形式就不会出现在句子的翻译中,硬约束缺少了对于根元素多种形式形态自然语言现象的考虑。

1.2 基于软词汇约束的NMT

相比之下,软约束并不确保所有约束都出现在翻译后的输出中。软约束通过修改NMT模型或者训练过程来实现对于词汇约束的翻译。

Song等人(2019)根据双语词典,用目标术语约束替换成对应的源术语,通过混合初始的平行语料库和合成的平行语料库来增加NMT的训练数据集。同时,Dinu等人(2019)提出了类似的方法,将字典中对应的目标术语替换源术语或追加到源术语后,即使用ETA(exact target annotations)来修改源术语进而准备训练数据集。他们的方法都是只能做到有限的复制,在目标语言与源语言语态形式等复杂的情况下表现得并不好。并且这两种方法都是使用双语词典构建训练数据,因此其翻译性能在很大程度上取决于双语词典的质量。此外,当术语约束没有出现在双语词典中或对应的源语言单词不连续时,推理模型就会失效。

在此基础上,Bergmanis and Pinnis (2021)做了一些修改。他们不使用ETA(exact target annotations)的目标术语来代替源术语,而是用TLA(target language lemmas)来约束源术语,这样这些数据训练的模型不会像Song等人(2019)和Dinu等人(2019)那样简单机械地学习复制词汇的样子,而是学习复制变化的行为过程,从而解决软术语约束的需求和单词输出和上下文不一致的问题。Jon and Paulo Aires等人(2021)也做了类似的工作,他们并没有像Bergmanis and Pinnis(2021)那样进行源语言和目标语言的词对齐以及标注动词和名词,而是直接将进行词性还原的目标词连接到源语言的后面,通过这种方式,不但简化了训练数据的准备工作,并且根据他们得到的实验结果这样做对训练结果性能造成的影响微乎其微。

2 实验

为了保证训练效果可以包容更多复杂的词汇形式,以及实验的可行性考虑,本文采用Jon and Paulo Aires等人(2021)的方法来进行模型训练。

在Bergmanis和Pinnis(2021)以及Jon and Paulo Aires等人(2021)的实验中,为了减少对双语词典的依赖,他们都进行了随机提取子序列的实验。他们的随机选择策略不同,但本文经过大量的实验数据计算,目标词被选中的概率趋于0.5左右。实验过程中我认为这样每个单词被选中的概率有点大,所以本文改变了一下策略,在下文中会详细介绍,本策略经过大数据计算后每个词被选中的概率为0.36。

2.1 实验预处理

1)配置相关环境,下载相关数据:

下载双语词典;下载wiktionary词典新词术语库和iate词典新词术语库。

下载平行语料;从CSDN找的对齐的200w条英语和中文的平行语料库,一部分作为训练集,一部分作为测试集。其中80%作为训练集数据,20%作为测试集的数据。

配置环境和参数;根据openNMT模型的官方文档,修改toy_en_de.yaml配置文件。

2)对平行语料源语言和目标语言进行数据预处理,主要包括:

过滤处理;用正则表达式对下载的平行语料过滤,提取出干净的语料内容,去掉多余的空格以及一些特殊符号,如:$%^*等。

分词处理;用正则表达式对英文中的标点符号进行分词处理,即将标点符号单独作为一个token处理。对中文采用jieba分词对中文进行处理。这样做是为了增加模型的鲁棒性,因为现实中输入的平行语料是含有标点符号的。

筛选处理;通过第二步的分词处理后可以筛选出token大于10小于40的句子,这样可以获得比较干净的平行语料,也能保证训练的效果更好。

2.2 模型训练

本文采用的是OpenNMT框架进行训练,OpenNMT框架是一个开源的Torch神经网络机器翻译系统,它的底层是Tensorflow。用到的是损失函数是Cross Entropy Loss,使用softmax函数将网络的输出转化为概率值,即将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。

本实验训练了三个翻译模型:

模型一(Baseline):没有添加任何约束处理,直接用预处理后的平行语料进行训练的模型,此模型作为基准模型。

模型二(Dictionary):依赖双语字典进行约束的翻译模型。根据双语字典匹配同时在源语言和目标语言都出现的token,如果匹配成功,则将对目标语言中的token用python中的spacy库进行词性还原,这与Jon and Paulo Aires等人(2021)中的方法略有不同,他们是先对平行语料和双语字典进行还原,然后再去匹配。匹配和还原的部分完成后,则将选中的术语约束词与源语言对应句子进行连接,连接规则如下:如果作为该句的第一个约束则用<sep>进行连接,如果不是第一个约束则用<c>进行连接。将连接处理后的句子作为源语言与目标语言形成平行语料,最后通过OpenNMT进行训练。

模型三(Random):随机选取目标语言中的token作为约束,随机选择的策略如下:将第一个token被选中的概率设为0.2,后续的token依赖于上一个token是否被选中,如果没被选中则后续token被选中的概率为0.56。将随机选中的token进行词性还原,并与源语言对应的句子进行连接。连接规则同模型二:即如果作为该句的第一个约束则用<sep>进行连接,如果不是第一个约束则用<c>进行连接。第三个模型和第二个模型的主要区别在于选取约束不同,选取约束后的处理方式是相同的。最后将处理完的源语言和目标语言合成平行语料,通过OpenNMT进行训练得到第三个模型。

2.3 实验结果

通过moses对BLEU值进行打分。BLEU 是IBM在2002年提出的机器翻译评价指标,它的总体思想是比较候选译文和参考译文里的n-gram(其中n-gram指的是连续的单词个数为n)重合程度,重合程度越高就认为译文质量越高。选不同长度的n-gram是因为,BLEU-1的准确率可以用于衡量单词翻译的准确性,更高阶的n-gram的准确率可以用来衡量句子的流畅性。

训练出的翻译模型结果如下图所示:

从实验结果来看,依赖双语词典训练的翻译模型效果更好,在Jon and Paulo Aires等人(2021)的论文中也可以看出来,在newstest-2020的测试集中,无论测试集是否受到约束,是否进行了词性还原,依赖双语字典进行约束和随机选择子序列进行约束的训练模型的BLEU值都优于基准模型。这与本文的实验结果一致。但是随机选取术语的表现不够好,可能与随机选取token的策略有关。并且与不同语系之间的翻译语法也有关系,他们是对英语(印欧语系)与捷克语(印欧语系)进行的翻译训练,而本文是对中文(属于汉藏语系)到英文(印欧语系)进行训练。

3 结语

本次实验训练出了中文到英文的翻译模型,解决了RS10-CLOUD平台模块优化的问题,即实现工业管理软件生产全过程的中业务标签同步自动翻译,有利于自主掌握研发数据减少外资企业注入,为工业产业的生产管理成本提供考量。

从实验数据结果进行分析来看效果不够理想,尤其是针对产线专用、携带规格型号的物料翻译效果有待提升。其原因可能为本次试验中下载的平行语料非工业专用术语,现今工业领域的平行语料非常珍贵很难从网上下载到,后续会在研究过程中,参与到实际的工业软件项目开发及测试生产过程中,以期用工业专用语料集获得更收敛的结果,这样训练模型会更加完善,并且给出最终模型训练效果,以便更好地应用到RS10-CLOUD 快速开发平台业务标签管理的支持多语言翻译功能中。

猜你喜欢
源语言目标语言语料
面向低资源神经机器翻译的回译方法
中国大学生对越南语虚词的误用
林巍《知识与智慧》英译分析
濒危语言与汉语平行语料库动态构建技术研究
浅析日语口译译员素质
教材插图在英语课堂阅读教学中的运用及实例探讨
以口译实例谈双语知识的必要性
从目的论角度看《红高粱》中文化负载词的翻译
国内外语用学实证研究比较:语料类型与收集方法
多媒体英语学习法