开源机器翻译引擎?

时间:2012-07-02 23:04:41

标签: localization machine-translation

我们正在寻找可以纳入我们的本地化工作流程的开源机器翻译引擎。我们正在考虑以下选项:

  1. Moses(C ++)
  2. Joshua(Java)
  3. Phrasal(Java)
  4. 其中,摩西拥有最广泛的社区支持,并已被许多本地化公司和研究人员试用过。我们实际上倾向于使用基于Java的引擎,因为我们的应用程序都是Java。有没有人使用Joshua或Phrasal作为您工作流程的一部分。你能和他们分享一下你的经历吗?或者,摩西在提供的功能和易于集成方面远远超过这些。

    而且,我们要求引擎支持:

    1. 特定于域的培训(即,它应为输入数据所属的每个域维护单独的短语表。)
    2. 增量训练(即每次我们希望使用一些新的训练数据时,避免从头开始重新训练模型)。
    3. 并行化翻译流程。

2 个答案:

答案 0 :(得分:5)

我认为,在摩西邮件列表(moses-support@mit.edu)上可以更好地提出这个问题。那里有很多人使用不同类型的系统,所以你会得到一个客观的答案。除此之外,这是我的意见:

  • 关于Java:MT系统编写的语言无关紧要。没有冒犯,但你可以放心地假设,即使代码是用你熟悉的语言编写的,如果没有更深入的MT知识,也很难理解。所以你要找的是接口。摩西的xml-rpc运行正常。
  • 关于MT系统:寻找最佳结果,忽略它所编写的编程语言。结果在这里:matrix.statmt.org。使用您的MT系统的人对输出感兴趣而不是您的编码偏好。
  • 关于整个企业:一旦开始提供MT输出,请确保您能够快速适应它。 MT正在迅速转向管道流程,其中MT系统是核心(而不是唯一)组件。所以注重可维护性。在理想情况下,您可以将任何MT系统连接到您的框架。

以下是您的功能请求的一些输入:

  • 特定领域培训:您不需要该功能。通过使用客户特定的数据培训,您可以获得最佳的MT结果。
  • 增量培训:请参阅Stream Based Statistical Machine Translation
  • 并行化翻译过程:您必须自己实现。请注意,大多数MT软件纯粹是学术性的,永远不会达到1.0里程碑。当然,如果有一个多线程服务器(Moses),它会有所帮助,但即使这样,你也需要大量的线束代码。

希望这会有所帮助。如果您还有其他问题,请随时与我联系。

答案 1 :(得分:5)

很多事情都在向前推进,所以我想提供一个关于这个主题的更新,并在那里留下前面的答案来记录进展。

特定领域培训:如果您的数据来自各种来源,并且您需要针对子域进行优化,则域适应技术非常有用。根据我们的经验,没有一种解决方案始终表现最佳,因此您需要尝试尽可能多的方法并比较结果。 Moses邮件列表上有一个邮件列出了可能的方法:http://thread.gmane.org/gmane.comp.nlp.moses.user/9742/focus=9799various。以下页面还概述了当前的研究:http://www.statmt.org/survey/Topic/DomainAdaptation

增量培训:IWSLT 2013上有一个有趣的演讲:http://www.iwslt2013.org/downloads/Assessing_Quick_Update_Methods_of_Statistical_Translation_Models.pdf它表明当前的增量方法(1)使您的系统脱机,因此您的模型没有真正的“实时更新”(2)完全重新训练的表现优于其他人。似乎问题还没有解决。

并行化翻译过程:moses服务器在moses-cmd二进制文件上落后。因此,如果您想使用最新功能,最好从moses-cmd开始。此外,社区还没有履行其永不发布1.0版本的承诺:-)。实际上,您可以在此处找到最新版本(2.1):http://www.statmt.org/moses/?n=Moses.Releases