首先,安装依赖的软件包:
1.C/C++ compiler:编译器gcc 3.4.3及以上版本,本机实验环境为gcc 4.5.2
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.csh:Unix shell的一种
安装过程:
一.下载 SRILM 压缩包
链接:http://www.speech.sri.com/projects/srilm/download.html,创建安装的目录,并把压缩包解压到该目录。
我这里使用的是 srilm 1.6.0beta,安装目录是:/home/moses/tools/srilm
二.修改 Makefile 文件(SRILM 目录下)
1.找到:
# SRILM = /home/speech/stolcke/project/srilm/devel
另起一行输入 SRILM 的安装路径 SRILM = $(PWD)
2.找到:
MACHINE_TYPE := $(shell $(SRILM)/sbin/machine-type)
在其前加#注释掉,并另起一行输入:
MACHINE_TYPE := i686-gcc4
通过 uname -m 命令可以看到我的机器架构是 i686,那么需要同时修改sbin/machine-type,将其中对应位置改为 set MACHINE_TYPE = i686-gcc4
此行告诉 Makefile 之后要看的设置在/home/user/srilm/common/Makefile.machine.i686-gcc4中,如果系统是 64 位的,请改为 i686-m64,同时也可能需要修改相应的 sbin/machine-type
三.把 ubuntu 11.04 系统的相关设定告诉 Makefile
用编辑器修改 srilm/common/Makefile.machine.i686-gcc4
1.找到:
GCC_FLAGS = -mtune=pentium3 -Wall -Wno-unused-variable -Wno-uninitialized
CC = $(GCC_PATH)gcc $(GCC_FLAGS) -Wimplicit-int
CXX = $(GCC_PATH)g++ $(GCC_FLAGS) -DINSTANTIATE_TEMPLATES
这里是为了告诉 SRILM 系统使用的 compiler(c 和 c++),符合安装情况,不需要修改。如果是 64 位 CPU,需要做相应调整
2.找到:
TCL_INCLUDE =
TCL_LIBRARY =
修改为
TCL_INCLUDE =
TCL_LIBRARY =
NO_TCL = X
3.找到:
GAWK = /usr/bin/awk
修改为
GAWK = /usr/bin/gawk
注:各系统中这些软件的安装情况可能不同,查找软件的安装位置,可使用命令:which is gcc 等
四.安装SRILM并测试
1.编译 SRILM
make World
2.修改环境变量
运行命令 export PATH=/home/moses/tools/srilm/bin/i686-gcc4:/home/moses/tools/srilm/bin:$PATH
3.测试
编译通过不等于编译成功,必须利用 SRILM 提供的测试模块进行测试,进入 SRILM 根目录
make test
注:SRILM 从1.5.10开始,test 文件已不在主目录下,而是分别位于 lm flm lattice下
需要等待一段时间,如果出现多是 IDENTICAL,就证明 SRILM 编译成功了!
如有其它问题,请反馈给我,希望能帮大家解决一些问题