Github 项目推荐 | 无监督神经机器翻译 —— UNdreaMT
UNdreaMT 是一个开源的无监督神经机器翻译系统,该系统的具体实现方式在以下的论文里有详细地描述:
Mikel Artetxe, Gorka Labaka, Eneko Agirre, and Kyunghyun Cho. 2018. Unsupervised Neural Machine Translation. In Proceedings of the Sixth International Conference on Learning Representations (ICLR 2018).
论文链接:
https://arxiv.org/pdf/1710.11041.pdf
如果你需要用该软件做学术研究,请在论文里引用以下信息:
@inproceedings{artetxe2018iclr,
author = {Artetxe, Mikel and Labaka, Gorka and Agirre, Eneko and Cho, Kyunghyun},
title = {Unsupervised neural machine translation},
booktitle = {Proceedings of the Sixth International Conference on Learning Representations},
month = {April},
year = {2018}
}
Github 链接:
https://github.com/artetxem/undreamt
安装需求:
Python 3
PyTorch (tested with v0.3)
用法:
下面的指令使用了论文中描述的完全相同的设置用单语语料库来训练无监督的 NMT 系统。
python3 train.py --src SRC.MONO.TXT --trg TRG.MONO.TXT --src_embeddings SRC.EMB.TXT --trg_embeddings TRG.EMB.TXT --save MODEL_PREFIX --cuda
上述的数据通过以下的方式提供:
SRC.MONO.TXT 和 TRG.MONO.TXT 是源数据同时是目标语言的单语库,它们都应该进行预处理,以便原子符号(tokens 或 BPE 单元)由空格分隔。为此,我们推荐使用 Moses 来标记和真实化语料库,如果开发者想使用 BPE,还可以选择使用 Subword-NMT。
SRC.EMB.TXT 和 TRG.EMB.TXT 是源语言和目标语言的跨语言嵌入。建议使用 word2vec 或 fasttext 在上面的语料库中训练单语嵌入,然后使用 VecMap 将它们映射到共享空间。
MODEL_PREFIX 是输出模型的前缀。
使用上述的设置,在单个 Titan Xp 上训练大概需要 3 天。一旦训练完成,你就能用生成的模型来翻译,如下所示:
python3 translate.py MODEL_PREFIX.final.src2trg.pth < INPUT.TXT > OUTPUT.TXT
有关更多详细信息和其他选项,请使用 --help 运行上述脚本。
NLP 工程师入门实践班
三大模块,五大应用,知识点全覆盖;
海外博士讲师,丰富项目分享经验;
理论 + 实践,带你实战典型行业应用;
专业答疑社群,结交志同道合伙伴。
▼▼▼
新人福利
关注 AI 研习社(okweiwu),回复 1 领取
【超过 1000G 神经网络 / AI / 大数据,教程,论文】
如何在 Keras 中从零开始开发一个神经机器翻译系统?
▼▼▼