手把手教你编译MOSES机器翻译系统

来源:互联网 发布:mac os sierra安装教程 编辑:程序博客网 时间:2024/05/29 07:53

摩西是一个由英国爱丁堡大学的SMT先锋团队[科恩等人,2007 ]开发的翻译系统。摩西的最新版本支持许多特征和功能。例如,它支持基于短语和基于语法基础的模型(从短语/规则提取解码)。同时,它提供的因素翻译模型(factored translation model)使得系统能够使用在不同层次的多种信息。此外,混淆网络(confusion network)和字格(word lattices)可以用来作为输入,用以减小系统的最佳输出误差。此外,摩西包提供了许多有用的脚本和工具,以支持更多的功能。

http://www.statmt.org/moses/


从使用的操作系统开始说吧。

一、关于操作系统

       事实上,根据本人编译安装的经验,编译moses和linux系统的版本关系是不大的,但是一定要确保你的系统版本较新,否则容易出现各种小问题,影响编译安装进度。这里使用ubuntu作为例子吧,本人比较懒,喜欢使用apt-get命令来安装软件和所需的库,当然,如果是centOS的话,yum也可以有同样的效果,可以配一下软件源。

       先说一下本人机器的基本信息。

l 服务器环境:


l 系统配置:



二、安装boost库

       Moses使用C++作为开发语言,并且使用了C++的Boost库。因为是从源代码开始编辑整个Moses系统,因此需要在编译前安装Boost库。在Ubuntu系统下,使用下面的命令来安装Boost,这里用的是1.53版本(低版本的boost下,新版的moses编译会有依赖问题):

apt-get install libboost1.53-all-dev


三、安装GIZA++

       GIZA++是一个统计机器翻译工具,是用来训练IBM模型1-5和HMM词对齐模型的。该软件包还包含了mkcls等生成单词训练生成对准模型的工具。使用下面的命令下载并编译GIZA++:

wget http://giza-pp.googlecode.com/files/giza-pp-v1.0.7.tar.gz

tar xzvf giza-pp-v1.0.7.tar.gz

cd giza-pp

make

       编译完成后,将生成三个可执行文件:

· giza-pp/GIZA++-v2/GIZA++

· giza-pp/GIZA++-v2/snt2cooc.out

· giza-pp/mkcls-v2/mkcls

       记得在编译完之后将上面的三个文件拷到一个目录下,便于访问使用。

       我是直接将其放在tools/gizapp文件夹下的。

       编译创建好GIZA++后,有两种方式来使用它,一是在编译Moses时将GIZA++的地址作为选项参数。如果在编译Moses时没有指定GIZA++的地址,可以采用另外一个方法,那就是在训练语言模型时指明GIZA++三个可执行文件的路径,例如:

train-model.perl -external-bin-dir $HOME/external-bin-dir

       我在实际操作中,采用的是第二种方法,即在使用Moses时,给一个参数指明GIZA++路径。


四、安装IRSTLM

       在创建语言模型时,需要选用一种估值方法,目前有两种工具可以使用:

       · IRSTLM

       · SRILM

       两者在使用效果上没有太大差别。对于实验使用的话,两者都是免费的。但是,如果将SRILM应用于商业产品,则需要支付不菲的许可证费用,而IRSTLM没有费用。因此,现在挺多地方都选用了IRSTLM作为估值工具,我这里使用的也是IRSTLM。

       在编译IRSTLM之前,需要安装两个工具。由于IRSTLM的脚本 regenerate-makefiles.sh 用到了aclocal 命令,而此命令在automake 包中,因此先安装 automake 包。另外还需要安装libtool。使用下面的命令来安装这两个工具:

       $ sudo apt-get install automake

       $ sudo apt-get install libtool

       接下来就可以安装IRSTLM了。先下载软件包,下载地址为:

       http://sourceforge.net/projects/irstlm/files/

       使用下面的命令进行安装:

       tar zxvf irstlm-5.80.01.tgz

       cd irstlm-5.80.01/

       ./regenerate-makefiles.sh

       ./configure --prefix=/home/yaoqiang/moses/irstlm-5.80.01

       make

       sudo make install

       这样就编译安装好了IRSTLM,在安装路径下新增了三个目录bin/,include/,以及lib/。bin/下面包括了许多可执行脚本,其中就包括创建语言模型的脚本build-lm.sh。


五、安装Moses

       Moses目前(2013.04)已经出了其1.0版。且从2011年起,Moses已经迁移到Github,下载其代码就需要使用git,使用起来非常方便。

       如果你的Ubuntu系统上没有git,可以通过下面的命令进行安装:

       sudo apt-get install git

       有了git之后,就可以使用下面的命令来下载Moses:

       git clone git://github.com/moses-smt/mosesdecoder.git

       进入mosesdecoder目录,编译Moses,一条完整的简单命令如下,其中分别指定了irstlm和giza的位置:

       ./bjam -j8 \ --with-irstlm=/home/yaoqiang/moses/irstlm-5.80.01 \  --with-giza=/home/yaoqiang/moses/giza-pp

       其中,-j8是说明CPU是8核的,另外两个参数分别指定了IRSTLM和GIZA++的路径,耐心等待一段时间,会看到编译成功的提示。

       至此,Moses系统就安装完成了。


       后续我将介绍moses的训练(training)和调优(tuning)以及使用的过程和方法,以及moses的高级特征等。