最近做的一个项目要用到语言模型,在网上找了一些开源的工具包试了一下。废话不多说,下面直接介绍一下 RNNLM的安装方法。
我实在ubuntu14.04底下使用SRILM。
SRILM的下载地址:http://www.speech.sri.com/projects/srilm/download.html(我使用的是rnnlm-0.4b版本)
1、编译
解压缩之后,在终端中进入所在目录,输入以下命令:
make
有可能会出现如下错误:
make: x86_64-linux-g++-4.6: Command not found
make: *** [rnnlmlib.o] Error 127
将makefile文件的内容改一下:
找到:CC = x86_64-linux-g++-4.6
更改为:CC = g++
2、训练模型
在终端中输入以下命令:
./rnnlm -train train -valid valid -rnnlm model -hidden 40 -rand-seed 1 -debug 2 -bptt 3 -class 200
-train:训练集的名称,我使用的训练集截取一部分如下:
-valid:校验集的名称
-rnnlm:输出模型的名称
-hidden:隐含层神经元的个数
-debug:控制开关,此处设为2,将在终端输出运行时的一些参数
-bptt:控制通过环反向传播错误
-class:这个是指定单词的分类,200表示将训练文件中的词语分为200类
训练完毕之后就会在文件夹中生成一个叫 model 的文件
3、测试
在终端中输入以下命令:
./rnnlm -rnnlm model -test test -nbest -debug 0 > scores.txt
-rnnlm:输入模型的名称
-test:为待测的训练集,我使用的是:
-debug: 有debug的话,测试集中的每句话都会有一个平方。不然认为总的是一句话。
> scores.txt:将结果保存在scores.txt中
查看 scores.txt,这些数值表示测试集中对应句子的概率的log值:
-5.325645
-6.472881
-7.580222
-10.463307
-7.375638
-11.600342