Moses在Ubuntu14.04平臺的安裝過程

    平臺環境:在windows 7中創建VMware虛擬機,操做系統爲Ubuntu_14.04_amd_64html

1.安裝GIZA++

安裝步驟以下:python

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

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

    cd giza-ppgithub

    make正則表達式

    cd ../shell

    mkdir bin編程

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

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

    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庫沒有裝好。

相關文章
相關標籤/搜索