本文是对 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.gzmv tcl8.7a5-src.tar.gz /usr/loacl/tclcd /usr/local/tcl/unixmakemake install
- 从官网下载 SRILM,并将其移动合适的文件夹下,例如
/usr/loacl/srilm目录下,在这个目录下进行解压tar -zxvf srilm-1.7.3.tar.gz。 - 使用
vim命令打开Makfile文件,找到下面的内容并将其按如下修改(原内容在下方为注释内容)。# SRILM = /home/speech/stolcke/project/srilm/develSRILM = $(PWD)
# include $(SRILM)/common/Makefile.common.variablesinclude $(SRILM)/common/Makefile.common.i868-m64 - 进入
srilm/common文件夹,使用vim命令打开Makefile.machine.i686-m64文件,找到下面的内容并将其按如下修改(原内容在下方为注释内容)。TCL_INCLUDE =TCL_LIBRARY =# NO_TCL = 1NO_TCL = X# GAWK = /usr/bin/awkGAWK = /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.npplword.test替换成预处理后的测试集地址,n为我们之前进行几元 gram 词频统计,word.n.lm为上一步生成的语言模型文件,word.ppl为最后的结果文件。
以上仅使用小数据训练,大数据训练需要先进行文本切分,分别计算后合并。为避免今后 CISC7021 作业和今年一样,不在此叙述。