多语言多领域机器翻译系统的搭建

数据集

  • 训练集1:WMT14 Europarl corpus, parallel corpus German-English
  • 训练集2:WMT14 Europarl corpus, parallel corpus French-English
  • 训练集3:IWSLT17 train.tags.de-en.de and train.tags.de-en.en
  • 验证集: WMT06 Shared-Task Development data 英 德 法
  • 测试集: WMT06 Shared-Task Test data 英 德 法

数据集情况统计

数据集名称数据量语言领域
WMT14190W德语→英语欧洲议会平行语料库
WMT14200W法语→英语欧洲议会平行语料库
IWSLT22W德语→英语TED口语翻译
验证集0.2W英、德、法-
测试集0.3W英、德、法-

WMT14网址: http://www.statmt.org/europarl/.
IWSLT17网址: http://www.statmt.org/europarl/.
测试集和验证集网址: http://www.statmt.org/wmt06/shared-task/.

开发环境

Linux CentOS
python3.7
GPU版本的PyTorch1.3.0

数据处理工具

分词使用mosesdecoder: https://github.com/moses-smt/mosesdecoder.
BPE分词使用subword-nmt:https://github.com/rsennrich/subword-nmt
Transformer使用Fairseq0.6.2进行训练和解码:https://github.com/pytorch/fairseq/tree/v0.6.2

数据处理流程

首先,需要准备好WMT、IWSLT以及测试集和验证集的双语平行语料库,即需要去除原始文件中的“杂质”。其中WMT的数据整体质量还不错,而来自IWSLT17的数据集需要进行去HTML标签的处理。这里需要注意,有些标签的内容有保留价值,有些标签的内容没有保留价值。比如URL的标签就可以连同其内容一起去掉,而标题的标签就可以保留其内容。

分词

使用Mosesdecoder中的tokenizer.perl将语料库中的单词和标点符合分开来,分词的具体使用方法可以参考其他博客。
推荐博客https://blog.csdn.net/weixin_38937984/article/details/103995209

加目标语标签

该标签表明了源语言句子所要翻译到的目标语言,网络通过训练至收敛后,通过在待翻译的句子开头加入目标语标签,模型便能将我们源语言翻译到我们想要翻译到的目标语言。可以使用Python脚本来实现,也可以使用Linux shell脚本来实现。

BPE切分子词

切分子词的目的是为了减少词表的大小,词表过大的话,训练过程中就会出现一些问题。
推荐博客https://blog.csdn.net/weixin_38937984/article/details/103995209

关于训练、解码和测试

请参考Fairseq框架的使用手册https://fairseq.readthedocs.io/en/latest/?badge=latest

接口封装

需要深入Fairseq interactive.py文件进行修改代码,将代码封装为两个接口,一个是加载模型的接口load_model(),一个是翻译的接口translate()

代码实现

本人已经在Git上开源项目代码
其中包含数据的处理脚本、fairseq训练脚本、fairseq解码测试脚本。
欢迎大家找我交流
地址:老虎的毕设

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值