摩西是一个由英国爱丁堡大学的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的高级特征等。