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

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

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

  Whittle: 语料库预处理模块;

  GIZA: 用于从句子对齐的双语语料库中训练词语对齐;

  Cairo:词语对齐的可视化工具;

  Decoder:解码器,用来执行具体的翻译过程模块,该模块没有开源。

  在讨论班的最后一天,研究者们利用 Egypt 在一天之内搭建了一个新语对的翻译系统,显示了统计机器翻译的强大威力。随着技术的快速发展,Egypt 中使用的很多方法现在已经过时了,然而,其中用于训练词语对齐的模块 GIZA 现在仍然被广泛使用,利用它能够非常方便地从大规模的双语文本中获得统计知识。现在大家使用的是它的改进版本GIZA++,GIZA++实现了 IBM公司提出的 5 个模型,其主要思想是利用EM算法对双语语料库进行迭代训练,由句子对齐得到词语对齐。

  以汉英翻译为例,假设我们有如下的语料库,

  汉语(已经进行了词语切分):

1

  英语:

2

  这两个文件中对应行的汉语和英语是互为翻译的。通过GIZA++训练,我们可以得到单词之间的翻译概率,例如“新华社” 翻译为 “Xinhua”的概率为P(Xinhua|新华社)=0.8,同时,也得到了句子之间单词的对应关系(称之为词语对齐),例如:

3

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

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

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

4

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

  常用的基于N元语法(N-gram)的语言模型定义如下:

5

  其中,wi代表单词,w1代表一句话。N元语法的意思就是单词 wi 的出现只与它前面的 N-1 个词有关,与其他单词无关。

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

6

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

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

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

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

4.第一个基于短语的统计机器翻译系统——法老(Pharaoh)

  “法老”是较早公开的统计机器翻译系统,是由美国南加州大学信息科学实验室Philipp Koehn编写的。它是一个基于短语的(Phrased-based)统计机器翻译系统。为此,我们首先要了解一下基于短语的系统的工作原理。

  基于短语的方法是目前比较成熟的统计机器翻译技术,它的主要思想是以短语作为翻译的基本单元。给定一个源语言句子,其翻译过程如下:

  1.对源语言句子进行短语划分;

  2.根据翻译模型翻译每个短语;

  3.对短语进行重排序。

图 1 是基于短语的翻译过程示例。

7

  “法老”正是基于这一思想的统计机器翻译系统。它包括两大部分;训练和解码。训练过程用来从语料库中获得统计知识。它利用了已有的开源软件 GIZA++和 SRILM,GIZA++用来训练词语对齐,SRILM训练语言模型。既然是以短语作为翻译的基本单元,因此还需要获得关于短语翻译的知识。通过前面的介绍我们知道通过GIZA++训练可以得到单词对齐,根据单词对齐我们可以进行短语抽取。请注意,这里我们所说的短语是指任意连续的单

词串,而不管它是否具有语法意义。例如,对于句子

8

  我们能抽取到的双语短语有:(新华社 | Xinhua News Agency)、(新华社 北京 | Xinhua News Agency, Beijing)、(新华社 北京 二月 | Xinhua News Agency, Beijing, February)、(新华社 北京 二月 十二日| Xinhua News Agency, Beijing, February 12)、(新华社 北京 二月 十二日 电| Xinhua News Agency, Beijing, February 12, by wire)、(北京 | Beijing)、(北京 二月 | Beijing, February)、(北京 二月 十二日| Beijing, February 12)、(北京 二月 十二日 电 | Beijing, February 12, by wire)、(二月 | February)、(二月 十二日 | February 12)、(二月 十二日 电 | February 12, by wire)、(十二日 | 12)、(十二日 电 | 12,by wire)、(电| by wire)。

  由此可见,从语料库中学习到的短语数量是非常庞大的。

9

  解码过程(即翻译过程)实际上是一个搜索的过程。对于输入的句子,进行短语的划分,然后根据已有的短语表搜索它们的最优组合,产生最终的译文。这一部分并没有公开源码,不过在科恩写的文档中有非常详细的介绍,根据这些介绍可以很容易地进行实现。

  “法老”的出现对于推动统计机器翻译的发展起到了非常大的作用,由于它原理简单,易于使用,很多研究者都在它的基础上进行试验,或者把它作为基线系统 (baseline)进行比较。

5.中国第一个开源的统计机器翻译系统——丝路(SilkRoad)

  “法老”的出现揭开了统计机器翻译的神秘面纱,然而其核心部分——解码器的源码仍然没有公开。为此,中国的研究人员联合开发了一个完全开放源代码的统计机器翻译系统——“丝路”。该系统由中国的五家研究机构和高校(中科院计算所、中科院自动化所、中科院软件所、厦门大学、哈尔滨工业大 学)联合开发,并在2006年中国第二届统计机器翻译研讨会上发布。“丝路”包括以下模块:语料预处理及后处理模块“仙人掌”、词语对齐模块“楼兰”、短 语抽取模块“胡杨”、以及三个解码器(“骆驼”、“绿洲”和“商队”)。

  国内的统计机器翻译起步比较晚,在2004年左右才陆续有单位开始做相关的研究工作。很多人对统计机器翻译还非常陌生,对国际上的研究现状也不熟悉。针对这种情况,国内几家从事统计机器翻译研究的单位联合开发了“丝路”系统,希望它能够像古代的“丝绸之路”一样贯通中西,藉此既能让国外的同行了解我们的工作,也能使我们学习到国外的先进技术。

“丝路”充分利用了国际上已有的开源工具,比如 GIZA++,SRILM等,此外,联合开发单位还开发了三个解码器,并完全开放了源 代码,第一次将一个完整的统计机器翻译系统公开,极大地促进了国内统计机器翻译的快速发展。

6.摩西(Moses)

  “摩西”是“法老”的升级版本,增加了许多功能。它是由英国爱丁堡大学、德国亚琛工业大学等8家单位联合开发的一个基于短语的统计机器翻译系统。来自这8家单位的研究人员于2006年在约翰霍普金斯大学召开了一次研讨会,利用6个星期的时间共同开发了这一系统。整个系统用 C++语言写成,从训练到解码完全开放源代码,可以运行在 Windows平台和 Linux 平台。

  相比于“法老”,“摩西”主要有如下几个新的特性:

  (1) 使用要素翻译模型(Factored Translation Model)

  在一般的统计机器翻译系统中,翻译的过程就是将 源语言文本翻译为目标语言文本。这一过程仅仅考虑了单词的词形,例如将“房子”翻译为“house”。但是, 语言现象是非常复杂的,在英语中,单词就有单复数形式、时态变化等等。在一般的处理过程中,“house”和“houses”被看作完全不同的两个词,这显然不合理。要素翻译模型就是为了处理这种情况而诞生的。

10

  在要素翻译模型中,一个单词不仅仅是一个符号 (token),而是一个包含多个要素的向量,例如词目、词性等。这些要素共同作用来刻画一个单词。例如对于 “houses”,它有以下要素:词目是“house”,词性是“NN”。表示为“houses|house|NN”。在翻译的过程中这些要素被分别翻译,例如源语言的单词翻译为目标语言的单词,源语言单词的词性翻译为目标语言的词性等。在翻译完成后,根据这些要素来产生最终的单词,比如最终“房子”对应译文的要素是“名词,复数形式”,我们就可以选择“houses”,而非“house”。

  (2) 混合网络解码(Confusion Network Decoding)

  当前的机器翻译系统能够接受的输入一般是纯文本形式的一串单词(一句话或者一篇文章),而现在将机器翻译系统作为一个大的信息处理系统的组成部分的需求日益增长,它的输入可能不再是纯文本的形式,而是其它模块的输出结果,例如命名实体识别的结果,或者语音识别的结果。这样的输入不再是单一的,而是可能含有错误的、多种可能性的输入。混合网络解码允许这种多可能性的输入,最终选择最优译文。

  此外“摩西”还提供了丰富的测试工具,供研究者测试系统的性能,跟踪系统运行等。这一系统的性能已经超过了“法老”,目前还在不断地完善。

7.基于句法的统计机器翻译系统——GenPar

  GenPar是Generalized Parsing的缩写。这一工具包实现了一个基于句法的统计机器翻译系统。基于句法的方法将句法结构信息引入到统计机器翻译中来,目前已成为统计机器翻译 领域的研究热点。但是构建基于句法的统计机器翻译系统远比构建基于短语的要困难得多,为了让研究者们很快进入这一领域,在JHU2005 夏季研讨会上,由纽约大学艾•丹•米拉姆德(I. Dan Melamed)等人组成的统计机器翻译组开发了GenPar。

  GenPar的基本原理是利用多文本语法(Multi-Text Grammar)实现多语言的句法分析、结构对齐和翻译。多文本语法是一种多种语言的同步语法,理论上比较完善,功能强大。GenPar 有很多特点:首先,该系统是一个纯粹基于句法的模型,在翻译过程中充分利用了句法结构信息;其次,它具有很好的定制能力,可以实现各种不同类型的基于同步语法的统计机器翻译,很适合于做一个实验各种理论的研究平台。总的来看,该系统功能比较强大,但由于其比较复杂,掌握起来比较困难,性能也不是太高,不太适合处理太大规模的数据。由于该系统采用纯粹基于句法的方法,理论上有点超前,性能比现有的基于短语的模型稍差。

  GenPar提供了四个原型系统(sandbox)分别是:阿拉伯语到英语 (AtoE),法语到英语(FtoE),英语到法语 (EtoF)和英语到英语(EtoE)。其执行过程可以分为三个部分:训练、应用和评测,图4给出了 GenPar 的执行流程,我们可以清楚地看出整个系统的执行过程,对基于句法的统计机器翻译流程有清晰的了解。

  (1) 训练(train):

  输入(input)双语 平行训练语料;

  前处理(preprocess):包括分词 (tokenization)和句法分析(parsing);

  词到词翻译模型(word-to-word translation model):从训练语料中生成词到词的对齐信息;

  层次对齐模块(hieralign):利用训练语料、句法分析树以及对齐信息抽取层次对齐树对(Hierarchically Aligned Tree Pair);

  初始语法模块(initgrammar):利用抽取的层次对齐树对生成加权多文本语法(Weighted Multi-Text Grammar);

  再训练模块(retrain):对加权多文本语法进行优化。

  (2) 应用(apply):

  输入(input)源语言,如果要进行多语言句法分析(multi-parser)则还要输入目标语言;

  前处理(preprocess):进行分词等预处理工作;

  多语言句法分析(multiparse):根据加权多文本语法对源语言和目标语言对进行句法分析,生成多语言句法分析树;

  翻译(translation):根据加权多文本语法对源语言进行句法分析同时生成目标语言句法树,将目标语言句法树对应的词串输出便得到相应的翻译结果。

  (3) 评测(evaluate):

  GenPar还提供了翻译评测模块,使用 GTM(General Text Matcher)作为评测指标。

11

  引用自:《统计机器翻译开源软件介绍》,何中军,米海涛,刘群

发表评论

电子邮件地址不会被公开。 必填项已用*标注