Ubuntu 8.10下moses测试平台搭建全记录 第5页

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

 1、Factored翻译模型(Factored Translation Model):

  在factored翻译模型中,一个单词不仅仅是一个符号(token),而是一个包含多个factor的向量,例如表面词形、词干、词性等。这些factor共同作用来刻画一个单词。

  Moses features novel factored translation models, which enable the integration linguistic and other information at many stages of the translation process.

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

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

  Moses allows the decoding of confusion networks, enabling easy integration with ambiguous upstream tools, such as automatic speech recognizers .

资源链接及相关参考:

  Moses主页:

  Moses介绍(ACL07):Moses: Open Source Toolkit for Statistical Machine Translation

  JHU06研讨会的Final Report:Open Source Toolkit for Statistical Machine Translation: Factored Translation Models and Confusion Network Decoding

  计算所何中军等:统计机器翻译开源软件介绍

二、Moses测试平台搭建

 1、概述

  使用Linux平台,安装了当前比较流行的Ubuntu系统,版本为7.10。

  按ACL07统计机器翻译讨论会(ACL 2007 SECOND WORKSHOP ON

STATISTICAL MACHINE TRANSLATION)的介绍搭建了Moses测试平台,其核心框架仍是Kohen的基于短语的SMT框架。平台采用GIZA++进行翻译模型的训练, SRILM工具进行语言模型的训练,Moses工具包进行生成模型的训练及解码,mteval工具包对实验结果进行BLEU评分。

 2、步骤

  安装Moses支持工具

  安装Moses

  安装Moses训练脚本

  安装附加脚本及评测工具

  Ubuntu下建立的总路径为:/home/user/mtbaseline/(注:user是我的用户名)

  如果需要训练,可以在总路径下建立个人的训练文件夹:mkdir test

  以上每一步都需要建立相应的文件夹,具体可参考ACL官方介绍。

 3、安装Moses支持工具-SRILM

  在SRILM的主页上有下载及安装介绍,主要要配置一些必须的工具,有版本要求:

  A template-capable ANSI-C/C++ compiler, preferably gcc version 3.4.3 or higher.

  GNU make, to control compilation and installation.

  GNU gawk, required for many of the utility scripts.

  GNU gzip to unpack the distribution, and to allow SRILM programs to handle “.Z” and “.gz” compressed datafiles (highly recommended).

  bzip2 to handle “.bz2″ compressed files (optional).

  p7zip to handle “7-zip” compressed files (optional).

  The Tcl embeddable scripting language library (only required for some of the test executables).

  The CYGWIN porting layer, to build SRILM on a Microsoft Windows system. CYGWIN comes with the packages above, so this is all you will need.

  按SRILM上的安装文件介绍(INSTALL file )安装时遇到了一些问题;

  参考了一篇国内的SRLIM安装介绍,主要有几个问题需要注意:

  必须安装一些需要依赖的软件包;

  要修改一些文件,如makefile等,在该页面上有介绍;

  最后要检测是否安装成功,有可能需要反复几次安装才能成功

 4、安装Moses支持工具-GIZA

  包括mkcls, GIZA等,但是需要注意的是,ACL官方给出的Och的主页已不存在,我是在另一个国外的介绍网站上下载并安装的,下载命令为:wget  ~redpony/software/giza++.gcc41.tar.gz

  这部分的安装比较简单,按上面的介绍就可以了:

  cd GIZA++-v2/makemake snt2cooc.outcd ../mkcls-v2/make

  将编译好的这几个文件拷贝到主目录文件下的bin目录下;

 5、安装Moses

  通过Subversion下载并管理Moses:

  mkdir -p moses

  svn co   https://mosesdecoder.svn.sourceforge.net/svnroot/mosesdecoder/trunk moses

  编译 Moses

   cd moses

   ./regenerate-makefiles.sh

   ./configure –with-srilm=/path-to-srilm path-to-srilm

   make -j 4

  说明:

   Subversion是当前很流行的开源版本管理软件,sourceforge网站已采用;

   编译Moses时指向SRILM的路径必须是绝对路径而不能是相对路径,我安装的时候在这个问题上花了好长时间才搞明白错误;

   语言模型训练工具除了SRILM可选外,还可以使用新出的irstlm,ACL07上有介绍,可以处理大规模的单语语料库,对其进行高效压缩。

  Windows下编译说明:

   解压moses.2008-02-20.tgz

   The Visual Studio 2005 build require:

    a. VLD (Visual Leak Detector)

    b. zlib. Moses uses the statically-linked version.

   The Windows build doesn’t uses SRILM

 6、安装Moses训练脚本

  建立训练脚本目录:

   mkdir -p bin/moses-scripts

  修改makefile:

   TARGETDIR=/full-path-to-workspace/bin/moses-scripts

   BINDIR=/full-path-to-workspace/bin

  编译:

   cd moses/scripts/

   make release

  使用时需要声明环境:

   export   SCRIPTS_ROOTDIR=/full-path-to-workspace/bin/moses-scripts/scripts-YYYYMMDD-HHMM

 7、安装Moses附加脚本及评测工具

  下载scripts.tgz并解压:

  tar xzf scripts.tgz

  这些脚本包括:

   Tokenizer scripts/tokenizer.perl

   Lowercaser scripts/lowercase.perl

   SGML-Wrapper scripts/wrap-xml.perl

  下载NIST,BLEU评测工具:

   wget ftp://jaguar.ncsl.nist.gov/mt/resources/mteval-v11b.pl

 8、相关参考:

  ACL 2007 SECOND WORKSHOP ON SMT: Shared Task: Baseline System

 9、补充说明:

  除去SRILM,GIZA++,Moses这几个大型程序用C++写外,其它脚本(如训练脚本,附加脚本,评测工具)均用Perl写成。

  Perl是一种脚本语言,支持正则表达式,除了具备强大的字符串处理功能之外,还有“胶水”作用,Perl能够将各种应用程序或者各种语言的代码结合起来。

三、实验和总结部分略。

(注:这是08年6月份给实验室内部做得关于开源解码器Moses的相关报告,内容由PPT整理而成。转载请注明出处,谢谢!)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/28443.html