在GitHub上建立你的分支

常见问题解答

简介

为什么用神经机器翻译(NMT) ?

我们之所以要用神经机器翻译,有几个原因。

1) 与其它机器翻译结果相比较,神经机器的自动翻译结果明显地更让人满意。 这已使得好几个公司转向基于神经机器翻译的系统。

2) 相似法 (通常称为序列到序列/seq2seq) 也对许多其它自然语言处理(NLP)和语言相关的应用程序有效,如对话、图像字幕和摘要。 如需了解哈佛大学自然语言处理研究组(HarvardNLP)一些新的进展,可点击 这里

3) 神经机器翻译的代表性应用,反映在近来基于深度学习的人工智能的成就中。 例如,最近 纽约时报杂志的封面故事 专门报道过谷歌的神经翻译系统。

在哪里可以了解和学习神经机器翻译(NMT) ?

建议您从斯坦福和纽约大学的研究员所提供的ACL’16 NMT  指导教程 开始。 该指导教程还包括一份有关该领域工作的详细参考书目。

训练神经翻译模型需要做些什么?

您只需要两个文件: 源文件和目标文件。 文件中每行一个句子,字与字之间有空格。 这些文件可以是标准免费翻译语料库如WMT 的语料库,也可以是您想用来训练的任何其它文件。

安装/ 设置

需要用什么样的计算机来进行训练?

理论上您可以用任何计算机来进行训练; 但在实际运用中,除了处理极小的数据集,如果想在合理的时间内完成训练,您还是需要支持CUDA 的 GPU。 训练中等大小的模型,至少需要4GB, 训练大的、最先进的模型,建议使用8-12GB。

如何相信现有的 OpenNMT 版本是有效的?

我们每天在EC2上运行系统的整合測試,以检查它是否正常工作。 系统的日志在 整合测试 资源库中供公开使用。

模型

如何复制完满的NMT翻译结果?

我们已经发布了一个完整的 教程 用于训练使用标准数据的德语-英语的翻译系统。

有没有预先训练的翻译模型可供试用?

模型 页中,为您提供了几种不同的、经过预先训练的模型。

在哪里可以获得用于A-B翻译的培训数据?

您不妨试一下 OPUS。 这是一个开源平行语料库。 在剥离XML标记后,您应该能够直接在 OpenNMT 中使用原始文件。

我对其他类似序列到序列的问题感兴趣,如汇总,对话和树生成。 OpenNMT 能做这些工作吗?

能。 OpenNMT是一个通用、基于注意度的序列到序列的系统。 几乎没有什么代码是专用于翻译的,因此,它对许多这样的应用程序应该很有效。

就汇总而言,OpenNMT 已被证明比 NAMAS 那样的神经系统更为有效,将来也会如此。 有关使用 Gigaword 数据集的预训汇总系统的介绍,请参阅 模型 页。

我对序列到序列的其它形式感兴趣,如图像到序列的生成。 OpenNMT 能做这些工作吗?

能做一部分工作。 OpenNMT 可以通过其它Torch神经网络,并且略加编码进行扩展。 我们提供了一个相对通用的图像到文本的系统作为案例,同时也附加了少许编码。 您可随意使用,把它作为扩展OpenNMT的模型。

其它特征

OpenNMT演示服务器是否可供使用?

很抱歉,我们不能提供开源演示服务器。 However, you can run OpenNMT in server mode. 欢迎您与我们一起为开发做贡献。

为开发共做贡献

我能发送合并请求 (pull request) 吗?

非常欢迎。 只是请您在提交之前务必看一下 STYLE.md

开发工程师在什么地方相互交流?

一般在我们的 Gitter channel 中进行交流。 如您想做些贡献, 我们欢迎您加入谈话。

某种特征会使 OpenNMT 更好!

这不成问题,我们非常愿意添加该特征! 让该特征融入OpenNMT 的最快方法是在GitHub上向我们发送合并请求。 您只需将该资料库分杈出来 (fork the repo), 进行更改,然后单击发送合并请求。

我不知道如何编码

没问题,我们可以帮您来实现。 请到我们的 论坛 并提出添加特征的请求。 我们很快就会着手研究。