本文是对 CISC7021
Assignment#1 中 SRILM 在 Ubuntu
下的安装及使用说明,不包含对数据集文本数据的预处理。
注意,SRILM 当前不支持 ARM 架构,M1、M2 等 Apple Silicon
系列芯片 Mac 请使用 x86
实验环境。
# Install SRILM
- 首先查看是否安装以下依赖:gcc、make、gwak、gzip、bzip2、p7zip,如果没有先用
apt-get install
指令安装。 - 下载 TCL 并安装。
tar -zxvf tcl8.7a5-src.tar.gz
mv tcl8.7a5-src.tar.gz /usr/loacl/tcl
cd /usr/local/tcl/unix
make
make install
- 从官网下载 SRILM,并将其移动合适的文件夹下,例如
/usr/loacl/srilm
目录下,在这个目录下进行解压tar -zxvf srilm-1.7.3.tar.gz
。 - 使用
vim
命令打开Makfile
文件,找到下面的内容并将其按如下修改(原内容在下方为注释内容)。# SRILM = /home/speech/stolcke/project/srilm/devel
SRILM = $(PWD)
# include $(SRILM)/common/Makefile.common.variables
include $(SRILM)/common/Makefile.common.i868-m64
- 进入
srilm/common
文件夹,使用vim
命令打开Makefile.machine.i686-m64
文件,找到下面的内容并将其按如下修改(原内容在下方为注释内容)。TCL_INCLUDE =
TCL_LIBRARY =
# NO_TCL = 1
NO_TCL = X
# GAWK = /usr/bin/awk
GAWK = /usr/bin/gawk
- 回到 sirlm 文件夹下执行命令
make World
,make test
进行测试。 vim ~/.bashrc
修改环境变量,添加以下内容。export PATH="/usr/local/srilm/bin/i686-m64:/usr/local/srilm/bin/"
source ~/.bashrc
生效环境变量即可随时使用ngram
命令。
# SRILM 使用说明
词频统计命令
ngram-count -text word.train -order n -write word.n.count
word.train
替换成预处理后的训练集地址,n
为我们想进行几元 gram 词频统计,word.n.count
为生成的统计文件.ngram 模型训练
ngram-count -read word.n.count -order n -lm word.n.lm
word.n.count
为词频统计得到的统计文件,word.n.lm
为生成的语言模型文件,同时可以在命令最后加上-interpolate -kndiscount
来使用Kneser-Ney Smoothing
方法。困惑度(Perplexity)测试
ngram -ppl word.test -order n -lm word.n.lm > word.nppl
word.test
替换成预处理后的测试集地址,n
为我们之前进行几元 gram 词频统计,word.n.lm
为上一步生成的语言模型文件,word.ppl
为最后的结果文件。
以上仅使用小数据训练,大数据训练需要先进行文本切分,分别计算后合并。为避免今后 CISC7021
作业和今年一样,不在此叙述。