前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github 项目推荐 | 用 PyTorch 实现 OpenNMT

Github 项目推荐 | 用 PyTorch 实现 OpenNMT

作者头像
AI研习社
发布2018-07-26 11:03:15
1.3K0
发布2018-07-26 11:03:15
举报
文章被收录于专栏:AI研习社AI研习社

这是一个用 PyTorch 实现的 OpenNMT 的库,OpenNMT 是一个神经机器翻译系统。

Github:

https://github.com/mattiadg/SR-NMT

快速开始

一些有用的工具:

下面的例子使用了 Moss tokenizer (http://www.statmt.org/moses/) 来准备用于评估的数据和 moses BLEU 脚本。

代码语言:javascript
复制
wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/tokenizer/tokenizer.perl
wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/share/nonbreaking_prefixes/nonbreaking_prefix.de
wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/share/nonbreaking_prefixes/nonbreaking_prefix.en
sed -i "s/$RealBin\/..\/share\/nonbreaking_prefixes//" tokenizer.perl
wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/generic/multi-bleu.perl

WMT'16 多模式翻译:Multi30k(de-en)

WMT'16多模式翻译任务训练示例(http://www.statmt.org/wmt16/multimodal-task.html)。

0)下载数据:

代码语言:javascript
复制
mkdir -p data/multi30k
wget http://www.quest.dcs.shef.ac.uk/wmt16_files_mmt/training.tar.gz &&  tar -xf training.tar.gz -C data/multi30k && rm training.tar.gz
wget http://www.quest.dcs.shef.ac.uk/wmt16_files_mmt/validation.tar.gz && tar -xf validation.tar.gz -C data/multi30k && rm validation.tar.gz
wget https://staff.fnwi.uva.nl/d.elliott/wmt16/mmt16_task1_test.tgz && tar -xf mmt16_task1_test.tgz -C data/multi30k && rm mmt16_task1_test.tgz
1) Preprocess the data.

1)预处理数据:

代码语言:javascript
复制
for l in en de; do for f in data/multi30k/*.$l; do if [[ "$f" != *"test"* ]]; then sed -i "$ d" $f; fi;  done; done
for l in en de; do for f in data/multi30k/*.$l; do perl tokenizer.perl -a -no-escape -l $l -q  < $f > $f.atok; done; done
python preprocess.py -train_src data/multi30k/train.en.atok -train_tgt data/multi30k/train.de.atok -valid_src data/multi30k/val.en.atok -valid_tgt data/multi30k/val.de.atok -save_data data/multi30k.atok.low -lower

2)训练模型:

代码语言:javascript
复制
python train.py -data data/multi30k.atok.low.train.pt -save_model multi30k_model -gpus 0

3)翻译语句:

代码语言:javascript
复制
python translate.py -gpu 0 -model multi30k_model_e13_*.pt -src data/multi30k/test.en.atok -tgt data/multi30k/test.de.atok -replace_unk -verbose -output multi30k.test.pred.atok

4)评估:

代码语言:javascript
复制
perl multi-bleu.perl data/multi30k/test.de.atok < multi30k.test.pred.atok

预训练模型:

以下预训练模型可以下载并与 translate.py 一起使用(这些训练有较旧版本的代码;它们将很快更新)。

  • onmt_model_en_de_200k:基于 OpenNMT / IntegrationTesting 中 200k 句子数据集的英德翻译模型。 Perplexity:21。
  • onmt_model_en_fr_b1M:一个英语 - 法语模型,以基准 -1M 为基础进行培训。 Perplexity:4.85。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 快速开始
相关产品与服务
机器翻译
机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档