#
@(作者:朝天椒)[WeChat:skyloving123||财天椒]
n-gram模型介绍
-
n-gram模型是一种统计语言模型,用于预测给定一个文本序列中下一个词或单词序列的概率。对于一元n-gram模型它基于一种假设:当前词的出现只与之前的n-1个词相关,具体的公式如下所示:
-
二元gram模型的具体公式如下所示:
-
三元gram模型的具体公式如下所示:
-
具体训练实现时,将文本语料中的数据通过上述的办法进行统计计算出相关的条件概率值,具体如下所示:
SRILM工具训练n-gram
SRILM工具的下载安装
- 安装连接:https://github.com/gsayer/SRILM
- 安装步骤如下所示:
- .修改Makefile文件
将makefile文件中的SRILM那行注释打开,并将SRILM安装包解压的目录的绝对路径赋给该值,如下:RRILM=/Users/xxx/git_code/SRILM- 编译, 在SRILM目录下,执行 : make , 成功后,会在SRILM根目录下生成bin、lib、include3个目录
- . 配置环境变量,在macbook下编辑~/.bash_profile
MACHINE_TYPE=macosx
SRILM=/Users/xxx/git_code/SRILM
export PATH=.: S R I L M / b i n / {SRILM}/bin/ SRILM/bin/MACHINE_TYPE: S R I L M / b i n : {SRILM}/bin: SRILM/bin:PATH
export MANPATH= M A N P A T H : MANPATH: MANPATH:{SRILM}/man- 测试编译的可执行文件, make test, 如果各项都出现为IDENTICAL则表示编译成功
- 执行source ~/.bash_profile,就可以使用srilm工具了
SRILM进行语言模型建模
- 具体的步骤如下所示:
1. 统计文本中单词的词频矩阵和个数
ngram-count -text ab -order 3 -order 3 -write ab.count
2. 根据词频矩阵和个数训练语言模型
ngram-count -read ab.count -order 3 -lm ab.en.lm -interpolate -kndiscount
3. 对训练好的语言模型进行困惑度的计算
ngram -ppl news.test -order 3 -lm news.train.lm > news.test.ppl