一种用单一网络模型实现多个语种之间互译的方法与流程

文档序号:27128969发布日期:2021-10-27 21:13阅读:172来源:国知局
一种用单一网络模型实现多个语种之间互译的方法与流程

1.本发明涉及一种多语言翻译系统的构建技术,具体为一种用单一网络模型实现多个语种之间互译的方法。


背景技术:

2.让机器协助语言之间的相互翻译是人类长久以来的梦想。从广义上讲,“翻译”是将一个事物转化成另一个事物的过程,其核心在于对序列的转化。机器翻译是利用计算资源把源语言序列转变为目标语言序列的过程。它主要研究不同语言对之间的翻译,如英文和中文、英文和法文之间的相互翻译。上世纪九十年代,在深度学习应用于机器翻译任务之前,机器翻译处于统计建模的时代,使用传统的基于统计的方法,主要有以下特点:基于离散空间的表示模型、自然语言处理问题的隐含结构假设、以特征工程为主但是特征、规则的存储又消耗资源。
3.伴随着深度学习的不断发展以及应用于机器翻译任务中,神经机器翻译成为机器翻译方法中的“宠儿”,它在许多自然语言对的相互翻译上表现出非常良好的性能。神经机器翻译使用一个单一的大型神经网络来模拟整个翻译过程,它的成功主要归功于语言分布式表示的使用,从而能够实现机器翻译系统端到端的训练。神经机器翻译与统计机器翻译不同,它不需要很多单独的组件,比如单词矫正器、翻译规则提取器和其它特征提取器,它的主要机制模式是词嵌入

编码器

注意力机制

解码器。循环神经网、卷积神经网络以及具有自注意机制结构的transformer模型等就是建立在这种模式上的极为经典方法。这些方法不仅在机器翻译中取得巨大成功,在自然语言处理领域的许多其他任务中也取得突出的成绩。
4.在机器翻译中,多语言机器翻译系统是一种非常可取且有效的方案,因为使用来自多个语言对数据的训练模型可帮助模型从多个“源”获得“知识”。此外,由于得到不同的语言对进行训练,多语言神经翻译系统往往具有更好的泛化能力,从而能够提高翻译质量。这种独特的现象也被称为知识迁移。在低资源语言之间的翻译中,知识迁移现象非常明显。低资源语言的平行语料库很少,但却从其他语言对的数据中获益。在零资源语言之间的翻译中,两个语言没有平行语料库,也能实现翻译,或是在没有对应领域的数据情况下实现翻译。并且,由于多语言机器翻译系统是单个模型处理多种语言,它也是一种极为紧凑的系统。这可以有效减少部署所带来的机器硬件消耗成本和人工成本,从而简化翻译系统的大规模部署任务,提高系统收益。最重要的是,研究多语言机器翻译系统可以帮助我们更好地地理解和回答自然语言处理中的一个重要问题:我们如何构建分布式表示,使跨语言的相似文本具有相似的表示?在将不同领域的语料库视为不同语言的情况下,迁移学习必须既跨越语言又跨越领域。因此,多语言多领域机器翻译系统的研发是一件非常有意义的工作,并且具有很大的研究和应用价值。


技术实现要素:

5.针对现有技术中多语言机器翻译系统的上述的极大优势,以及目前足够简单有效的方法大都对数据进行修改,模型方面并未进行大的改动等不足,本发明提出一种用单一网络模型实现多个语种之间互译的方法,对模型结构进行大规模修改,使得单一模型就能在多语言翻译任务上表现出极佳的性能。
6.为解决上述技术问题,本发明采用的技术方案如下:
7.本发明提供一种用单一网络模型实现多个语种之间互译的方法包括,包括以下步骤:
8.1)获取互联网中数据规模较大的英语与阿拉伯语、德语、西班牙语、波斯语之间相互翻译的双语数据;
9.2)对双语数据进行数据清洗得到预处理后的双语数据;
10.3)对预处理后的双语数据使用加目标语标签的方法构建多语言双语平行语料库;
11.4)使用构建好的双语平行语料库基于fairseq开源系统实现多语种分析器,并训练多语言神经机器翻译模型;
12.5)将训练完成的多语言神经机器翻译模型进行封装,与网页接口进行整合,部署到线上,完成多语言神经机器翻译系统的搭建。
13.步骤1)在wmt和iwslt官网中获取包含英语和英语与阿拉伯语、德语、西班牙语、波斯语之间相互翻译的双语数据之间相互翻译的初始语料库,包括训练集、验证集和测试集,初步观察数据的规模和质量,制定数据处理策略。
14.步骤2)中对获取的阿拉伯语、德语、西班牙语、波斯语和英语的双语语料依据预定的数据处理策略进行处理,步骤为:
15.201)使用re库利用正则表达式去除iwslt数据集中的各类标签、url以及其他非双语语料部分杂质数据。
16.202)将步骤201)得到的iwslt数据与wmt原始数据进行按序合并作为总数据集。
17.203)利用moses分词工具将步骤202)得到的总数据集进行分词,得到分词后的总数据集。
18.204)利用bpe分词工具将步骤203)得到的总数据集进行切分子词,生成bpe此表,得到bpe切分子词后的总数据集。
19.205)对验证集和测试集采用和步骤201)步骤202)步骤203)步骤204)相同的处理方式。
20.步骤3)中对步骤2得到的总的数据集源语言句子的开头加入本句所要翻译到的目标语言标签,使得网络模型获取翻译到指定目标语言的能力。
21.步骤4)中,使用步骤2)中构建好的双语平行语料库,基于fairseq开源系统训练多语言神经机器翻译模型,步骤为:
22.401)对步骤2)中的双语平行语料库使用fairseq

preprocess进行数据预处理,构建词汇表并且对训练数据进行二进制化。
23.402)对于步骤401)预处理后的数据进行训练。
24.403)对于步骤402)训练完的模型对测试集进行解码测试,得到初步的模型性能。
25.404)尝试加入目标语标签和领域标签、长度过滤、加入数据字典多种处理方案进
行系统性能的提升。
26.步骤5)中,将训练完成的多语言神经机器翻译模型进行封装,部署到服务器上,完成多语言神经机器翻译系统的搭建,步骤为:
27.501)将fairseq框架interactive部分单独封装成接口,供flask后端调用。
28.502)通过flask框架搭建web系统前后端,并针对用户异常操作行为,包括是否选择语言、是否输入句子、选择的源语言和目标语言是否相同来进行翻译接口的调用,返回相应的结果。
29.503)将步骤4)中训练好的多语言神经机器翻译模型通过flask部署到服务器端,通过socket建立端口和网页的连接,完成整个系统的搭建任务。
30.本发明具有以下有益效果及优点:
31.1.本发明使用来自多个语言对数据的训练模型可帮助模型从多个“源”获得“知识”;由于得到不同的语言对进行训练,多语言神经翻译系统往往具有更好的泛化能力,从而能够提高翻译质量。
32.2.本发明方法可应用在零资源语言之间的翻译中,两个语言没有平行语料库,也能实现翻译,或是在没有对应领域的数据情况下实现翻译,并且,由于多语言机器翻译系统是单个模型处理多种语言,它也是一种极为紧凑的系统。这可以有效减少部署所带来的机器硬件消耗成本和人工成本,从而简化翻译系统的大规模部署任务,提高系统收益。
附图说明
33.图1为本发明中针对wmt数据的处理流程图;
34.图2为本发明中针对iwslt数据的处理流程图之处理(1);
35.图3为本发明中针对iwslt数据的处理流程图之处理(2);
36.图4为翻译系统工作流程图;
37.图5为进行翻译系统性能提升的数据处理流程图。
具体实施方式
38.下面结合说明书附图对本发明作进一步阐述。
39.本发明提供一种用单一网络模型实现多个语种之间互译的方法,包括以下步骤:
40.1)获取互联网中数据规模较大的英语与阿拉伯语、德语、西班牙语、波斯语之间相互翻译的双语数据;
41.2)对双语数据进行数据清洗得到预处理后的双语数据;
42.3)对预处理后的双语数据使用加目标语标签的方法构建多语言双语平行语料库;
43.4)使用构建好的双语平行语料库基于fairseq开源系统训练多语言神经机器翻译模型;
44.5)将训练完成的多语言神经机器翻译模型进行封装,与网页接口进行整合,部署到线上,完成多语言神经机器翻译系统的搭建。
45.步骤1)在wmt和iwslt官网中获取包含英语与阿拉伯语、德语、西班牙语、波斯语之间相互翻译的双语数据,包括训练集、验证集和测试集,初步观察数据的规模和质量,制定数据处理策略。
46.步骤2)中对获取的英语与阿拉伯语、德语、西班牙语、波斯语之间的双语语料依据预定的数据处理策略进行处理,步骤为:
47.201)使用re库利用正则表达式去除iwslt数据集中的各类标签、url以及其他非双语语料部分杂质数据。
48.202)将步骤201)得到的iwslt数据与wmt原始数据进行按序合并作为总数据集。
49.203)利用moses分词工具将步骤202)得到的总数据集进行分词,得到分词后的总数据集。
50.204)利用bpe分词工具将步骤203)得到的总数据集进行切分子词,生成bpe此表,得到bpe切分子词后的总数据集。
51.205)对验证集和测试集采用和步骤201)步骤202)步骤203)步骤204)相同的处理方式。
52.wmt处理流程如图1所示,iwslt处理流程如图2~3所示。对于wmt数据,如图1所示,需要对其进行替换标点、分词以及bpe切分子词的操作;对于iwslt数据,首先如图2所示,需要去掉文本的html标签,之后如图3所示对去掉标签的新文本进行替换标点、分词、bpe分词的操作。
53.步骤3)中对步骤2)得到的总的数据集源语言句子的开头加入本句所要翻译到的目标语言标签,使得网络模型获取翻译到指定目标语言的能力。
54.步骤4)中,使用步骤2)中构建好的双语平行语料库,基于fairseq开源系统训练多语言神经机器翻译模型,步骤为:
55.401)对步骤2)中的双语平行语料库使用fairseq

preprocess进行数据预处理,构建词汇表并且对训练数据进行二进制化。
56.402)对于步骤401)预处理后的数据进行训练。
57.403)对于步骤402)训练完的模型对测试集进行解码测试,得到初步的模型性能。
58.404)尝试从数据处理层面、加入数据字典对模型性能进行提升。
59.步骤5)中,将训练完成的多语言神经机器翻译模型进行封装,部署到服务器上,完成多语言神经机器翻译系统的搭建,步骤为:
60.501)将fairseq框架interactive部分单独封装成接口,供flask后端调用。
61.502)通过flask框架搭建web系统前后端,并针对用户异常操作行为,包括是否选择语言、是否输入句子、选择的源语言和目标语言是否相同来进行翻译接口的调用,返回相应的结果。
62.503)将步骤4)中训练好的多语言神经机器翻译模型通过flask部署到服务器端,通过socket建立端口和网页的连接,完成整个系统的搭建任务。
63.系统整体工作流程如图4所示,首先用户需要在web系统的前端页面输入待翻译的句子以及选择需要翻译到的目标语言;后台获取句子和目标语言,进行异常处理;最后调用翻译系统接口实现翻译功能。
64.本发明解决了单一模型进行多个语种之间相互翻译的问题,实现了多语言翻译,并且采用了多种方法进行系统性能的提升实验。如图5所示,其中基本处理步骤为:读取数据、分词、加入目标语标签、bpe分词。提升系统性能的数据处理流程,第一种方法是在基本处理的基础上进行长度过滤,第二种方法是在基本处理的基础上加入领域标签,第三章方
法是在基本处理的基础上加入数据字典。
65.最后,通过将翻译模型封装成函数接口,提供给flask后端服务器调用。用户在选择源语言和目标语言之后,根据用户的选择在用户输入的句子开头加入指定的目标语标签,调用接口可实现英语与阿拉伯语、德语、西班牙语、波斯语和英语之间直接的翻译,也就完成了单一网络模型实现多个语种之间相互翻译。
66.本发明方法对网络模型进行改进,加深transformer的encoder层数,并在transformer的encoder中加入分段的语种分析器;搭建界面友好简洁的交互式web系统用于交互式翻译演示,并且针对用户的异常操作进行处理;确定语种与数据集,关于数据集的确定,所遵循的原则是数据量具有一定的初步规模、涉及三种语言和两个领域,最终使用wmt14数据集,涉及阿拉伯语、德语、西班牙语、波斯语;对数据集进行清洗,数据集的处理工具如下:python、linux shell编程、moses分词工具、bpe分词工具,由于不同的数据集具有不同的特点,因此需要据此对数据集采用不同的处理策略,并尝试在数据集中加入目标语标签和领域标签、长度过滤、加入数据字典等多种处理方案进行系统性能的提升;翻译系统搭建和接口封装,使用fairseq训练多语言多领域机器翻译模型,因为考虑到tensor2tensor开源工具调试代码的复杂性,并且fairseq最大的优势在于调试方便、训练速度快、内存占用率低;封装翻译接口,使得web系统得以调用从而实现交互式翻译。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1