一. 安装 SRILM 工具
-
依赖安装
sudo apt-get install gcc g++ sudo apt-get install make sudo apt-get install gawk sudo apt-get install gzip sudo apt-get install bzip2 sudo apt-get install p7zip
-
下载 tcl , srilm
官网下载: srilm.tgz
官网下载: tcl8.6.12-src.tar.gz
快捷下载: 快捷下载入口 -
安装tcl
mv ~/tcl8.6.12-src.tar.gz /usr/local && cd /usr/local/ tar -zxvf tcl8.6.12-src.tar.gz cd tcl8.6.12/unix make make install (权限问题 加 sudo)
4.安装srilm
cd /usr/local/srilm
vim Makefile
将srilm的路径改为你的路径 ps :一开始的时候是#注释的 这里我们直接SRILM = $(PWD)即可 保存退出
执行 uname -i
查看主机型号
cd common && vim Makefile.machine.i686-m64(根据机器型号而定)
修改这里我们仅需要将 NO_TCL = X
和 GAWK = /usr/bin/gawk
回退srilm文件夹下,执行: make World
电脑在进行安装
测试 输入make test
出现很多的IDENTICAL就说明安装成功了。
设置环境变量:vim ~/.bashrc
执行 source ~/.bashrc
二. 训练模型
训练模型需要文本原始语料,例如 speechocean-train.txt,其内容及格式如下:注:数据来源于网络,非原创
一九九六年 雅虎 上市
二零一零年 规模 以上 工业 增长 值 同比 增长 十五点七
一 是 社会 政策 的 缺失 包括 社会 保障 医疗 教育 和 住房
丈夫 刘天恩 称 当时 调解 后 民兵 赔偿 七百 元
上海县 和 闵行区 相继 被 撤销 设 设立 新 的 闵行区
···
-
词频统计
1gram 词频统计ngram-count -text speechocean-train.txt -order 1 -write speechocean-train-1gram.count
2gram 词频统计
ngram-count -text speechocean-train.txt -order 2 -write speechocean-train-2gram.count
3gram 词频统计
ngram-count -text speechocean-train.txt -order 3 -write speechocean-train-3gram.count
-
ngram 模型训练
1gram 语言模型ngram-count -read speechocean-train-1gram.count -order 1 -lm speechocean-train-1gram.arpa -interpolate -kndiscount
2gram 语言模型
ngram-count -read speechocean-train-2gram.count -order 2 -lm speechocean-train-2gram.arpa -interpolate -kndiscount
3gram 语言模型
ngram-count -read speechocean-train-3gram.count -order 3 -lm speechocean-train-3gram.arpa -interpolate -kndiscount
其中 speechocean-train-1gram.arpa 为生成的语言模型,-interpolate 和-kndiscount 为插值与折回参数
-
模型剪枝
3gram 语言模型进行剪枝,剪枝阈值为 0.0000001ngram -lm speechocean-train-3gram.arpa -order 3 -prune 0.0000001 -write-lm speechocean-train-3gram-pruned-0.0000001.arpa
3gram 模型,剪枝阈值为 0.0000003
ngram -lm speechocean-train-3gram.arpa -order 3 -prune 0.0000003 -write-lm speechocean-train-3gram-pruned-0.0000003.arpa
-
模型质量(困惑度)检查
对已经训练的所有模型进行困惑度检查,例如:ngram -ppl speechocean-train.txt -order 1 -lm speechocean-train-1gram.arpa -debug 2 > speechocean-train-1gram.ppl
-
模型文件压缩
gzip speechocean-train-3gram.arpa $ speechocean-train-3gram.arpa.gz
-
模型合并
ngram -order 1 -lm speechocean-train-1gram.arpa -mix-lm zhihu-train-1gram.arpa -lambda 0.5 -write-lm combine-train-1gram-.arpa