统计机器翻译开源软件介绍1990年代初IBM 公司的Brown 等人提出了5个模型来刻画统计机器翻译,取得了不错的效果,但是在此之后很长一段时间内都没有被大家认可和接受,原因是他们的模型非常复杂,难以理解和实现。
直到1999年,一些研究人员齐聚约翰霍普金斯大学(JHU)开办了一次讨论班,大家共同合作,重复了IBM 的实验,并在讨论班结束时发布了一个开源软件包Egypt,才使得IBM的模型被广泛研究和使用。
1. 第一个开源的统计机器翻译工具包Egypt它包括四个模块:Whittle :语料库预处理模块;GIZA :用于从句子对齐的双语语料库中训练词语对齐;Cairo :词语对齐的可视化工具;Decoder:解码器,即用来执行具体的翻译过程模块,这一模块没有开放源码。
随着技术的快速发展,Egypt中很多方法现在已经过时了,然而, 其中用于训练词语对齐的模块GIZA 现在仍然被广泛使用,利用它能够非常方便地从大规模的双语文本中获取统计知识。
现在大家使用的是它的改进版本GIZA++,GIZA++实现了IBM 公司提出的5 个模型,其主要思想是利用EM 算法对双语语料库迭代训练,由句子对齐得到词语对齐。
以汉英翻译为例,假设我们有如下的语料库:汉谄…已经勁「诃诰切兮」:新华社it京二月+-0 m斷隼社垃靜_月二日电记君先珍}英诰:Xinnua News Agency . Be屮ng T February 12 , by wireXlrhua News Agency , Lhasa P February 2 . (reporter Zhen Yang )这轉亍文件屮时应仃的汎诸和英诰足圧为儒枠的S ifiidGlZA++训瓠40冋以得到单词之詞的邮神骷牢.低如“芾丰計”觀洋力-Xinhua"的概率AlP (Xinhua儲华利* =0.8, 同时.虫冊幷了旬F之阿小词的时应兀系{祢之为词诒时齐h倒咖:新电社北玄二月 +二日电Xinhua News Agency , Buijing , February 12 , by wire这一过程完全由计算机自动进行,不用人工干预,节省了很多人力。
而且GIZA是独立于语言的,能够对任何两种语言进行训练,这也是统计机器翻译的优点之一。
现在几乎所有的统计机器翻译系统都利用这一工具进行词语对齐的训练。
2. 语言模型训练工具----SRILM语言模型被广泛的应用于自然语言处理的各个领域,来衡量某种语言中一个句子符合语法的程度。
语言模型实际上是一种概率分布,它给出了一种语言中所有可能的句子出现的概率。
在它看来,一种语言中,任何可能的单词排列都是可能被接受的句子,只是被接受的概率不同。
在统计机器翻译中,根据从语料库中获取的知识(例如单词的翻译概率等),一句话可能有很多译文。
有些符合语法和人们的表达习惯,有些则可能不符合语法。
语言模型赋予这些句子不同的概率,用以选择最优的译文。
SRILM 是一个建立和使用统计语言模型的开源工具包,从1995 年开始由SRI 口语技术与研究实验室(SRI Speech Technology and Research Laboratory开发,现在仍然不断推出新版本,被广泛的应用于语音识别、机器翻译等领域。
这个工具包包含一组C++类库、一组进行语言模型训练和应用的可执行程序等等。
利用它可以非常方便地训练和应用语言模型。
它的输入是经过分词的单语文本,输出是N 元文法的概率。
给定一组连续的词,调用SRILM 提供的接口,可以得到这组词出现的概率。
3. 机器翻译的自动评测工具Mteval 如何来评价一个机器翻译系统所产生的译文的好坏呢?这是一个比较困难的工作。
现在著名的统计机器翻译国际评测中普遍使用自动评测与人工评测相结合的方法,例如美国国家技术和标准研究所(NIST)举行的评测。
Mteval 便是他们开发的自动评测工具。
为了能够进行自动评测,我们必须事先有“标准答案” 。
在评测中,翻译系统要翻译几百乃至上千个句子。
这些句子由人事先进行翻译,作为标准答案。
为了更加客观,一般都由4 个不同的人来翻译。
评测工具通过比较系统译文和标准答案,根据评测指标进行打分。
现在普遍采用BLEU 作为机器翻译的评测指标,它是基于N 元语法来计算的。
4. 第一个基于短语的统计机器翻译系统法老(Pharaoh )“法老”是较早公开的统计机器翻译系统,是由美国南加州大学信息科学实验室(Information Scienee Institute)的菲利普科恩(Philipp Koehn)在2004年做博士论文期间编写的。
可能由于较早的开源软件以“埃及(Egypt)”命名的缘故吧,这一系统也采用埃及的代表性事物“法老(Pharaoh)”命名。
它是一个基于短语的统计机器翻译系统。
基于短语的方法是目前比较成熟的统计机器翻译技术,它的主要思想是以短语作为翻译的基本单元。
给定一个源语言句子,其翻译过程如下:(1)对源语言句子进行短语划分;(2)根据翻译模型翻译每个短语;(3)对短语进行重排序。
基于短语的翻译过程示例:“法老”正是基于这一思想的统计机器翻译系统。
它包括两大部分:训练和解码。
训练过程用来从语料库中获得统计知识,它利用了已有的开源软件GIZA++和SRILM。
既然是以短语作为翻译的基本单元,因此还需要获得关于短语翻译的知识。
通过GIZA++训练可以得到单词对齐,根据单词对齐我们可以进行短语抽取。
请注意,这里我们所说的短语是指任意连续的单词串,而不管它是否具有语法意义例如:我们能抽収捌的取语短错花(新华利I Xinhua News Agency(新华利北京I Xinhua New& Agency Beijing)< (新华右北京J \ I Xinhua News Agency^ Beijing, February). (9r 华*1 北京月+「,日IXinhun New^Agency, Ikiji略February 12)、(新华*1 北京月十~ I J I社I Xinliua News Agency. Beijing, Febii]ar>p 12* by wire h(」匕京I Bei j ing), r北京H 丨Hinjing. February).(北Jt 二月I - (Jl Beijing. February 12 k (北京二月卜二口电IBeijing, Februaiy 12, hy wti'eh(-月I February).(月十III February 12k(月十H >111 February 12, by wire). ( +I 12).(十二日电I 12, by wwek (屯I hy wire)□ 由此可见.从诉料库中学习到的短谄数帛楚卄希隨大的.法老系统结构图解码过程(即翻译过程)实际上是一个搜索的过程。
对于输入的句子,进行短语划分,然后根据已有的短语表搜索它们的最优组合,产生最终的译文。
这一部分并没有公开源码,不过在科恩写的文档中有非常详细的介绍,根据这些介绍可以很容易的进行实现。
“法老”的出现对于推动统计机器翻译的发展起到了非常大的作用,由于它原理简单,易于使用,很多研究者都在它的基础上进行实验,或者把它作为基线系统(baseli n®进行比较。
5. 中国第一个开源的统计机器翻译系统丝路(SilkRoad )“法老” 的出现揭开了统计机器翻译的神秘面纱,然而其核心部分解码器的源码仍然没有公开。
为此,中国的研究人员联合开发了一个完全开放源代码的统计机器翻译系统 -------- “丝路”。
该系统由中国的五家研究机构和高校(中科院计算所、中科院自动化所、中科院软件所、厦门大学、哈尔滨工业大学)联合开发,并在2006 年中国第二届统计机器翻译研讨会上发布。
“丝路”包括以下模块:语料预处理及后处理模块“仙人掌” ,词语对齐模块“楼兰”,短语抽取模块“胡杨”,以及三个解码器(“骆驼”、“绿洲”、“商队”)。
国内的统计机器翻译起步比较晚,在2004 年左右才陆续有单位开始做相关的研究工作。
很多人对统计机器翻译还非常陌生,对国际生的研究现状也不熟悉。
针对这种情况,国内几家从事统计机器翻译的研究单位联合开发了“丝路”系统,希望它能够像古代的“丝绸之路”一样贯通东西,藉此既能让国外的同行了解我们的工作,也能使我们学习到国外的先进技术。
“丝路”充分利用了国际上已有的开源工具,比如GIZA++ ,SRILM 等,此外,联合开发单位还开发了三个解码器,并完全开放了源代码,第一次将一个完整的统计机器翻译系统公开,极大地促进了国内统计机器翻译的快速发展。
6. Moses“摩西”是“法老”的升级版本,增加了许多功能。
它是由英国爱丁堡大学、德国亚琛工业大学等8 家单位联合开发的一个基于短语的统计机器翻译系统。
来自这8 家单位的研究人员于2006年在约翰霍普金斯大学召开了一次研讨会,利用6 个星期的时间共同开发了这一系统。
整个系统利用C++语言写成,从训练到解码完全开放源代码,可以运行在windows 平台和Linux 平台。
相比于“法老”,“摩西”主要有如下几个新的特性:(1)使用要素翻译模型(Factored Translation Model)在一般的统计机器翻译系统中,翻译的过程就是将源语言文本翻译为目标语言文本。
这一过程仅仅考虑单词的词形。
但是,语言现象是非常复杂的,在英语中,单词就有单复数形式、时态变化等等。
在一般的处理过程当中,“house"和“ houses'被看做完全不同的两个词,这显然不合理。
要素翻译模型就是为了处理这种情况而诞生的。
在要素翻译模型中,一个单词不仅仅是一个符号(token),而是一个包含多个要素的向量,例如词目、词性等。
这些要素共同作用来刻画一个单词。
例如对于“ house”,它有以下要素:词目是“housS, 词性是“ NN”。
表示为“ houses|house|NN。
在翻译的过程中这些要素被分别翻译。
在翻译完成后,根据这些要素来产生最终的单词,比如最终“房子”对应译文的要素是“名词,复数形式”,我们就可以选择“ houses*,而非“ house"。
词词性词形(2)混合网络解码当前的机器翻译系统能够接受的输入一般是纯文本形式的一串单词(一句话或者一篇文章),而现在将机器翻译系统作为一个大的信息处理系统的组成部分的需求日益增长,它的输入可能不再是纯文本的形式,而是其它模块的输出结果,例如,命名实体识别的结果, 或者语音识别的结果。
这样的输入不再是单一的,而是可能含有错误的、多种可能性的输入。
混合网络解码允许这种多可能性的输入,最终选择最优译文。