Moses在Ubuntu14.04平台的安装过程

    平台环境:在windows 7中建立VMware虚拟机,操作系统为Ubuntu_14.04_amd_64

1.安装GIZA++

安装步骤如下:

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

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

    cd giza-pp

    make

    cd ../

    mkdir bin

    cp giza-pp/GIZA++-v2/GIZA++ bin/

    cp giza-pp/mkcls-v2/mkcls bin/

    cp giza-pp/GIZA++-v2/snt2cooc.out bin/

2.安装SRILM

2.1安装SRILM依赖的包:

(1)C/C++ compiler:编译器gcc 3.4.3及以上版本,本机实验环境为gcc 4.5.22。

(2)GNU make:构建和管理工程的工具,解释Makefile里的指令,描述了整个工程所有文件的编译顺序和编译规则。这里是为了控制SRILM的编译和安装。

(3)GNU gawk:GNU所做的awk程序语言。对于文字资料的修改、对比、抽取等处理,使用c或passcal等不方便且费时,awk 能够以很短的程序完成。这里是处理SRILM里的一些脚本文件。

(4)GNU gzip:使用C语言编写的一种解压缩软件。这里是为了使 SRILM能够处理.Z和.GZ后缀的压缩文件。

(5)bzip2:数据压缩软件,压缩效率更高。这里是使SRILM能处理.bz2后缀的压缩文件。

(6)P7zip:数据压缩软件。这里是使SRILM能处理7-Zip的压缩文件。

(7)Tcl:可嵌入式脚本语言。用于脚本编程和测试。这里是为了SRILM的测试。最好安装tcl8.x和tcl8.x-dev。可以不安装。

(8)csh:Unix shell的一种(这个很重要,安装过程中有个问题困扰了很久,最后发现是csh没有安装的原因)

2.2下载SRILM安装包:

下载链接http://www.speech.sri.com/projects/srilm/download.html

创建安装的目录,并把压缩包解压到该目录。

mkdir srilm

cd srilm

tar -xzvf srilm.tgz

chmod +w Makefile

2.3修改Makefile文件(在srilm目录下)

(1)找到此行:

# SRILM = /home/speech/stolcke/project/srilm/devel,

另起一行输入srilm的安装路径,

SRILM=/home/kkdown/work/mt/srilm

(2)找到此行:

MACHINE_TYPE := (shell (SRILM)/sbin/machine-type),

在其前加#注释掉,并另起一行输入:

MACHINE_TYPE := i686-m64。

此行告诉Makefile之后要看的设置在/home/user/srilm/common/Makefile.machine.i686-m64中。(此处也很重要,因为ubuntu9.0.4 64bit的系统,跟32bit系统的配置方法有所不同。)

(3)需要同时修改sbin/machine-type,将其中对应位置改为

set MACHINE_TYPE =i686-m64

2.4把Ubuntu 14.04系统的相关设定告诉Makefile

用编辑器修改/home/kkdown/work/mt/srilm/common目录下的文件:Makefile.machine.i686-m64

(1)找到:

GCC_FLAGS = -march=athlon64 -m64 -Wreturn-type -Wimplicit

CC = $(GCCPATH)gcc $(GCC_FLAGS) -Wimplicit-int

CXX = $(GCCPATH)g++ $(GCC_FLAGS) -DINSTANTIATE_TEMPLATES

这里是为了告诉SRILM系统使用的compiler(c和c++),符合安装情况,不需要修改。

(2)找到:

# Tcl support (standard in Linux)

TCL_INCLUDE =

TCL_LIBRARY =

NO_TCL = 1

这里是为了告诉SRILM函数库(TCL)在系统中的安装位置,符合安装情况,不需要修改。

(3)找到:GAWK = /usr/bin/awk

修改为:GAWK = /usr/bin/gawk

注:各系统中这些软件的安装情况可能不同,查找软件的安装位置,可使用命令:which is gcc或which is g++或which is gawk等。

2.5修改环境变量

有两种方法可以修改环境变量,任选一种即可。

(1)第一种方法:输入命令:sudo gedit /etc/profilecd ..

找到:

if [ “

PS1′′];thenif[“

BASH” ]; then
PS1=’\u@\h:\w$ ‘
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi

else
if [ “`id -u`” -eq 0 ]; then
PS1=’# ‘
else
PS1=’

‘fififi在其后另起一行输入:exportPATH=”

PATH:/home/user/srilm/bin/i686-m64:/home/user/srilm/bin”

(2)第二种方法:运行命令:

export PATH=/home/kkdown/work/mt/srilm/bin/i686-m64:/home/kkdown/work/mt/srilm/bin:$PATH

2.6编译SRILM

在srilm目录下面,执行以下命令:

make World

2.7测试是否安装成功

编译通过不等于编译成功,必须利用SRILM提供的测试模块进行测试。需要说明的是,SRILM 1.5.10之前的版本,test文件在主目录下,而从版本1.5.10开始,test文件已不在主目录下,而是分别位于:$SRILM/lm & flm & lattice下,因此他们的测试方法不太一样。

(1)旧版本,进入SRILM根目录,执行

cd test

make all

(2)新版本,进入SRILM根目录,执行

make test

(3)测试过程需要一段时间才能完成,期间会在终端显示一大堆东西,若绝大多数是IDENTICAL,少数是DIFFERS,则表明 SRILM 编译成功了!

3.安装Moses

3.1安装依赖包

(1)官方文档指出必须安装的:

安装命令:sudo apt-get install [package name]

安装以下组件:

        g++                       

        git                          

        subversion            

        automake             

        libtool                   

        zlib1g-dev           

        libboost-all-dev   

        libbz2-dev            

        liblzma-dev          

        python-dev          

        libgoogle-perftools-dev (for tcmalloc)

(2)其他攻略说明必须安装的:

安装命令:sudo apt-get install [package name]

安装组件:

        autoconf

        automake(重复)

        texinfo

        zlib1g

        zlib1g-dev(重复)

        zlib-bin

        zlibc

        libtool(重复)

        libboost-all-dev(重复)

        libxmlrpc-c3-dev(找不到,libxmlrpc-core-c3-dev代替)

        build-essential

其他组件:

    apt-get install mpi-default-dev #安装mpi库
    apt-get install libicu-dev #支持正则表达式的UNICODE字符集

(3)在上一步中,libxmlrpc-c3-dev找不到。

如果安装下面的包, 随后安装Moses,安装失败。

    libxmlrpc-core-c3

    libxmlrpc-core-c3-dev  

但是安装下面的包, 随后安装Moses,安装成功。

    xmlrpc-api-utils

    libxmlrpc-core-c3

    libxmlrpc-core-c3-dev

    libxmlrpc-core-c++8

    libxmlrpc-core-c++8-dev

3.2编译Moses

(1)下载Moses安装包,执行以下命令:

mkdir moses

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

(2)编译Moses

cd moses

./bjam -j4 --with-srilm=/home/kkdown/work/mt/srilm --with-giza=/home/kkdown/work/mt/tools  >& log.m &

说明:./bjam -jx,其中x说明是几核处理器,可以加快处理速度,另外两个参数分别指定srilm和giza的安装位置。可以查看log日志文件看是否在编译过程中存在错误。

注意:Moses编译不成功往往都是由于依赖包没有安装完整,比如boost库没有装好。

posted @ 2015-07-24 11:03  gatherstars  阅读(984)  评论(0编辑  收藏  举报