本文是对 CISC7021 Assignment#1 中 SRILM 在 Ubuntu 下的安装及使用说明,不包含对数据集文本数据的预处理。
注意,SRILM 当前不支持 ARM 架构,M1、M2 等 Apple Silicon 系列芯片 Mac 请使用 x86 实验环境。

# Install SRILM

  1. 首先查看是否安装以下依赖:gcc、make、gwak、gzip、bzip2、p7zip,如果没有先用 apt-get install 指令安装。
  2. 下载 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
  3. 官网下载 SRILM,并将其移动合适的文件夹下,例如 /usr/loacl/srilm 目录下,在这个目录下进行解压 tar -zxvf srilm-1.7.3.tar.gz
  4. 使用 vim 命令打开 Makfile 文件,找到下面的内容并将其按如下修改(原内容在下方为注释内容)。
    # SRILM = /home/speech/stolcke/project/srilm/devel 
    SRILM = $(PWD)
    # include $(SRILM)/common/Makefile.common.variables
    include $(SRILM)/common/Makefile.common.i868-m64
  5. 进入 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
  6. 回到 sirlm 文件夹下执行命令 make Worldmake test 进行测试。
  7. vim ~/.bashrc 修改环境变量,添加以下内容。
    export PATH="/usr/local/srilm/bin/i686-m64:/usr/local/srilm/bin/"
    source ~/.bashrc 生效环境变量即可随时使用 ngram 命令。

# SRILM 使用说明

  1. 词频统计命令

    ngram-count -text word.train -order n -write word.n.count

    word.train 替换成预处理后的训练集地址, n 为我们想进行几元 gram 词频统计, word.n.count 为生成的统计文件.

  2. ngram 模型训练

    ngram-count -read word.n.count -order n -lm word.n.lm

    word.n.count 为词频统计得到的统计文件, word.n.lm 为生成的语言模型文件,同时可以在命令最后加上 -interpolate -kndiscount 来使用 Kneser-Ney Smoothing 方法。

  3. 困惑度(Perplexity)测试

    ngram -ppl word.test -order n -lm word.n.lm > word.nppl

    word.test 替换成预处理后的测试集地址, n 为我们之前进行几元 gram 词频统计, word.n.lm 为上一步生成的语言模型文件, word.ppl 为最后的结果文件。

以上仅使用小数据训练,大数据训练需要先进行文本切分,分别计算后合并。为避免今后 CISC7021 作业和今年一样,不在此叙述。

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

ArMiku@安然 微信支付

微信支付

ArMiku@安然 支付宝

支付宝

ArMiku@安然 贝宝

贝宝