天天看點

Ubuntu 10.10 SRILM完全配置手冊

因為Ubuntu10.10比較新,根據前人的部落格,我自己實驗了很久,始終是出現了這樣和那樣的錯誤,功夫不負有心人,終于解決了!

這裡把步驟書寫下來,希望看到此帖的人不用再走彎路.

在安裝之前,可以配置一下Ubuntu的源,這樣的速度會快一些!

(1)因為Ubuntu10.10的gcc的版本較高,是以需要下載下傳一個較低的版本,并将其設為預設版本。

sudo apt-get install gcc-4.1

接下來,将gcc-4.1設定為預設的gcc編譯器

sudo mv /usr/bin/gcc /usr/bin/gcc.bak

sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc

 此時可以通過檢視 gcc--version 檢視目前的預設gcc版本号,這個是我的結果:

gcc(GCC) 4.1.3 20080704 (prerelease) (Ubuntu 4.1.2-29ubuntu1)

Copyright(C) 2006 Free Software Foundation, Inc.

This isfree software; see the source for copying conditions. There is NO

warranty;not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

(2)下載下傳相關的軟體:g++,make,gawk,gzip,bzip2,p7zip,tcl8.5,csh

可以通過which* 來檢視安裝的路徑,如:which make

如果沒有安裝的話,可以使用:sudo apt-get install * 來安裝,如: sudo apt-get install tcl8.5

(3)一切條件準備就緒,接下來開始正式下載下傳和安裝SRILM

我下載下傳的版本是1.5.12,下載下傳位址是:

http://www-speech.sri.com/projects/srilm/download.html

我下載下傳到的目錄是: /home/administrator/srilm/srilm.tgz

cd /home/administrator/srilm/

sudo tar -zxvf srilm.tgz

sudo gedit Makefile

在#SRILM = /home/speech/stolcke/project/srilm/devel後面添加一行,内容為:

SRILM= /home/administrator/srilm/

在MACHINE_TYPE:= $(shell $(SRILM)/sbin/machine-type)前面添加#,并另起一行輸入:

MACHINE_TYPE:= i686

儲存關閉。

cd common/

sudo gedit Makefile.machine.i686

将 #Use the GNU C compiler.下面的三行改成:

GCC_FLAGS= -mtune=pentium3 -Wreturn-type -Wimplicit

CC= gcc $(GCC_FLAGS)

CXX= g++ $(GCC_FLAGS) -DINSTANTIATE_TEMPLATES

将#Tcl support (standard in Linux)下面的兩行改成:

TCL_INCLUDE= -I /usr/include/tcl8.5

TCL_LIBRARY= -L /usr/lib/tcl8.5

将 # Location of gawk binary 下面的一行改為

GAWK = /usr/bin/gawk

修改環境變量:

sudo gedit /etc/profile

在最後一行umask022

前面添加一行:

export PATH=$PATH:/home/administrator/srilm/bin/i686:/home/administrator/srilm/bin

接下來是執行編譯步驟

cd ..

make World

執行完成之後,測試一下

make test

如果出現IDENTICAL,就說明成功了!

例如

***Running test multi-ngram ***

sh:cannot create output/multi-ngram.i686.stdout: Permission denied

Commandexited with non-zero status 2

0.00user0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 2112maxresident)k

0inputs+0outputs(0major+262minor)pagefaults 0swaps

/home/administrator/srilm//sbin/go.run-test:35: cannot create output/multi-ngram.i686.stderr.new: Permissiondenied

/home/administrator/srilm//sbin/go.run-test:35: cannot create output/multi-ngram.i686.stdout.new: Permissiondenied

multi-ngram:stdout output IDENTICAL.

multi-ngram:stderr output IDENTICAL.

好,就寫到這裡,大家有什麼問題,可以給我留言!

這裡注意一下,有的時候會發現在終端輸入ngram,會出現下面結果:

ngram:找不到指令

這是路徑配置的問題,在終端下輸入

export PATH=$PATH:/home/administrator/srilm/bin/i686:/home/administrator/srilm/bin

就好了!

繼續閱讀