歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 64位系統下SRILM的配置詳解

Ubuntu 64位系統下SRILM的配置詳解

日期:2017/2/28 16:46:00   编辑:Linux教程

這篇文章是師弟YYL寫給52nlp的。實驗室機器的cpu是intel 64位的,而我安裝的是Ubuntu8.10的32位版本,因此《Ubuntu8.10下moses測試平台搭建全記錄》裡的SRILM的編譯方法只適用於32位的系統。師弟新裝了Ubuntu 9.04 64位的桌面版,發現參照我的方法和其他人寫的SRILM編譯方法並不合適,而關於64位系統下編譯SRILM的文章又很少,於是給52nlp寫了這篇文章,這裡非常感謝!

首先.安裝依賴的軟件包:
 1.c/c++ compiler:編譯器gcc 3.4.3及以上版本
 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沒有安裝的原因)。

下面詳述安裝過程:(反復裝了很多次,都是一些小的細節)

一.下載SRILM.tgz壓縮包
 鏈接:http://www.speech.sri.com/projects/srilm/download.html,創建安裝的目錄,並把壓縮包解壓到該目錄。我這裡使用的是1.5.8版,安裝目錄是:/home/user/srilm

二.修改Makefile文件(srilm目錄下)
 1.找到此行: # SRILM = /home/speech/stolcke/project/srilm/devel,另起一行輸入srilm的安裝路徑,SRILM=/home/user/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系統的配置方法有所不同。)

三.把ubuntu9.0.4系統的相關設定告訴Makefile,即用編輯器修改/home/user/srilm/common目錄下的文件:Makefile.machine.i686-m64
 1.找到:
GCC_FLAGS = -march=athlon64 -m64 -Wreturn-type -Wimplicit
CC = $(GCC_PATH)gcc $(GCC_FLAGS) -Wimplicit-int
CXX = $(GCC_PATH)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等。

四.修改環境變量
輸入命令:sudo gedit /etc/profile
找到:
if [ "$PS1" ]; then
 if [ "$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=’$ ‘
  fi
 fi
fi
 在其後另起一行輸入:export PATH=”$PATH:/home/user/srilm/bin/i686-m64:/home/user/srilm/bin”

五.安裝SRILM並測試
 1.編譯srilm
  make srilm
 2.測試
  cd test
  make all
 會在終端顯示一大堆東西,若絕大多數是IDENTICAL,少數是DIFFERS,則表明成功。

Copyright © Linux教程網 All Rights Reserved