赞
踩
实习做了一段时间的语言模型,使用到了Srilm这个工具,简单做一下记录,这个是一个统计和分析语言模型的工具,据说年龄很大了,可能比我大?总之它可以很方便的统计语料的n-gram,以及构建语言模型。
一、安装Srilm
①下载地址:为http://www.speech.sri.com/projects/srilm/download.html 。下载压缩包后,解压到你想编译安装的地方,假设为:/Users/…/srilm。
②进入该目录下,修改Makefile文件,找到此行: # SRILM = /home/speech/stolcke/project/srilm/devel,另起一行输入SRILM 的安装路径 SRILM = $(PWD)。
③这一步我并没有使用,但在我的MBP上也安装成功了,在服务器上安装应该用得着,也记录一下;使用命令uname -m查看机器的架构,比如是x86_64,那么在上一步的文件中可以看到MACHINE_TYPE :=
找到:
TCL_INCLUDE =
TCL_LIBRARY =
将其修改为:
TCL_INCLUDE =
TCL_LIBRARY =
NO_TCL = X
再将:GAWK = /usr/bin/awk修改为:GAWK = /usr/bin/gawk。
④编译Srilm,在srilm目录下使用:make World进行编译,会出来一大堆东西,接着改变环境变量export PATH=//Users/…/srilm/bin/i686-m64:/Users/…/srilm/bin:$PATH(根据实际情况改)。
⑤测试Srilm,我们使用Srilm提供的测试模块进行测试,判断编译是否成功,进入Srilm根目录,输入命令:make test,出现类似下面的结果说明成功了。
*** Running test ngram-multiwords ***
real 0m0.034s
user 0m0.023s
sys 0m0.007s
ngram-multiwords: stdout output IDENTICAL.
ngram-multiwords: stderr output IDENTICAL.
二、Srilm的基本使用
Srilm工具包的主要有两个核心模块,一个是ngram-count模块,是用来根据训练数据构建语言模型的,另一个是ngram模块,对构建得到的语言模型进评测,即计算测试集困惑度(Perplexity),除此之外,还可以对模型进行剪枝、合并等,假设存在分词后的训练语料train.txt。
2.1 ngram-count模块
①词频统计
ngram-count -text train.txt -order 3 -write train.count
其中-text表示读取分词后的文本文件,-order 3表示选择3-gram,默认参数就是3,train.count为统计到词频的文本。这步会得到类似以下的count文件:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。