统计机器翻译开源软件介绍一

取自 自然语言处理百科

跳转到: 导航, 搜索

  本文介绍了统计机器翻译领域中一些重要的开源软件,包括词语对齐工具、语言模型工具、自动评测工具以及四个完整的统计机器翻译系统。这些开源软件对于推动统计机器翻译的发展起到了非常重要的作用。

  统计机器翻译自上世纪90年代以来,发展十分迅速,备受业界青睐。我们所熟悉的著名搜索引擎Google主页上提供的翻译服务就是使用了这一技术,它能提供几十种语言之间的相互翻译。

  统计机器翻译在短时期能够得以迅速发展,除了技术进步外,很大一方面要归功于很多开放源码的统计机器翻译工具,有些时候,正是因为这些开放源码的工具才使得某项技术被广泛接受和使用。例如,1990年代初IBM公司的布朗(Brown)等人提出了5个模型来刻画统计机器翻译,取得了不错的效果,但是在此之后很长一段时间内都没有被大家认可和接受,原因是他们的模型非常复杂,难以理解和实现。直到1999年,一些研究人员齐聚约翰霍普金斯大学(JHU)开办了一次讨论班,大家共同合作,重复了IBM的实验,并在讨论班结束时发布了一个开源软件包Egypt,才使得IBM的模型被广泛研究和使用。可以说布朗等人的工作为现代统计机器翻译奠定了深厚的基础,但其影响却是通过开源软件才得以实现,由此可见开源软件对于统计机器翻译这样一个复杂的研究课题的重要性。事实上,在任何一个研究领域,开源软件都是实现科研成果共享和交流的重要手段。

  如果将一个统计机器翻译比作摩天大厦的话,依靠个人力量一砖一瓦地进行建设需要耗费很大的力量,而开源软件就如同已经浇注好的整块墙壁和柱子,利用它们我们可以像搭积木一样搭建一个统计机器翻译系统,而且还可以对这些零件进行改造和更换。对研究人员而言,开源软件提供了一个交流和共享的平台,能够迅速了解和掌握相关技术;对于对统计机器翻译感兴趣的用户而言,开源软件有助于理解统计机器翻译的思想和过程,可以利用它迅速搭建一个统计机器翻译系统。接下来,本文将介绍一些在统计机器翻译领域非常重要的开源软件。

1、第一个开源的统计机器翻译工具包——Egypt

  如前所述,Egypt是在1999年约翰霍普金斯大学统计机器翻译夏季讨论班上,由一些研究人员共同合作开发的统计机器翻译工具包。它包括4个模块:

  • Whittle:语料库预处理模块;
  • GIZA:用于从句子对齐的双语语料库中训练词语对齐;
  • Cairo:词语对齐的可视化工具
  • Decoder:解码器,即用来执行具体的翻译过程模块,这一模块没有开放源码

  在讨论班的最后一天,研究者们利用Egypt在一天之内搭建了一个新语对的翻译系统,显示了统计机器翻译的强大威力。随着技术的快速发展,Egypt中使用的很多方法现在已经过时了,然而,其中用于训练词语对齐的模块GIZA现在仍然被广泛使用,利用它能够非常方便地从大规模的双语文本中获得统计知识。

  现在大家使用的是它的改进版本GIZA++,GIZA++实现了IBM公司提出的5个模型,其主要思想是利用EM算法1对双语语料库进行迭代训练,由句子对齐得到词语对齐。

  如果计算机内存足够的话,它能够训练非常大规模的语料。在我们的实验过程中,使用8G内存训练二百万句对,大约需要3天时间。这一过程完全由计算机自动进行,不用人工干预,节省了很多的人力。而且GIZA是独立于语言的,能够对任何两种语言进行训练,这也是统计机器翻译的优点之一。现在几乎所有的统计机器翻译系统都利用这一工具进行词语对齐的训练。

2、语言模型训练工具——SRILM

  在介绍SRILM之前,我们首先介绍一下语言模型的概念。语言模型被广泛应用于自然语言处理的各个领域,来衡量某种语言中一个句子符合语法的程度。例如,有如下两个英语句子:

  S1:There is a cup on the table.

  S2:There are a cup on the table.

  在人类看来,显然第一个句子更符合英语语法,单数形式的谓语动词应该是“is”,而不是“are”。但是,如何让计算机知道这一知识呢?这项工作由语言模型来完成。语言模型实际上是一种概率分布,它给出了一种语言中所有可能的句子出现的概率。在它看来,一种语言中,任何可能的单词排列都是可能被接受的句子,只是被接受的概率不同。在统计机器翻译中,根据从语料库中获取的知识(例如单词的翻译概率等),一句话可能有很多译文。有些符合语法和人们的表达习惯(例如S1),有些则可能不符合语法(例如S2)。语言模型赋予这些句子不同的概率,用以选择最优的译文。

  SRILM是一个建立和使用统计语言模型的开源工具包,从1995年开始由SRI 口语技术与研究实验室(SRI Speech Technology and Research Laboratory)开发,现在仍然不断推出新版本,被广泛应用于语音识别、机器翻译等领域。这个工具包包含一组C++类库、一组进行语言模型训练和应用的可执行程序等。利用它可以非常方便地训练和应用语言模型。

  输出则是N元语法的概率。给定一组连续的词,调用SRILM提供的接口,可以得到这组词出现的概率。

3、机器翻译的自动评测工具——Mteval

  如何来评价一个机器翻译系统所产生的译文的好坏呢?这是一个比较困难的工作。很多时候连我们人类自己都难以判断到底哪个译文比较好,何况机器呢。然而,我们仍然希望能够有一个客观的自动评价方法,帮助我们快速地评价系统译文的好坏,在此基础上,人们再进行进一步的评价。在现在著名的统计机器翻译国际评测中普遍使用自动评测与人工评测相结合的方法,例如美国国家技术和标准研究所(NIST)举行的评测。Mteval便是他们开发的 自动评测工具,最新版本是mteval-11b.pl,是用perl语言写成的。

  为了能够进行自动评价,我们必须事先有“标准答案”。在评测中,翻译系统要翻译几百个乃至上千个句子。这些句子由人事先进行翻译,作为标准答案。为了更加客观,一般都由4个不同的人来翻译。评测工具通过比较系统译文和标准答案,根据评测指标进行打分。现在普遍采用BLEU作为机器翻译的评测指标,它是基于N元语法来计算的。


注:这是计算所何中军、米海涛博士及刘群老师写得一篇文章。

个人工具
工具箱