Ubuntu 64位系统下SRILM的配置详解

取自 自然语言处理百科

跳转到: 导航, 搜索

  这篇文章是师弟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.找到:

  1. 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 World

 2.测试

  cd test

  make all

 会在终端显示一大堆东西,若绝大多数是IDENTICAL,少数是DIFFERS,则表明成功。

注:原创文章,转载请注明出处“我爱自然语言处理”:www.52nlp.cn

本文链接地址:http://www.52nlp.cn/ubuntu-64-bit-system-srilm-configuration

个人工具
工具箱