Recurrent Neural Network Language Modeling Toolkit by Tomas Mikolov使用示例
来源:互联网 发布:面纱3.0温控数据 编辑:程序博客网 时间:2024/06/10 20:53
Recurrent Neural Network Language Modeling Toolkit代码学习
递归神经网络语言模型工具地址:http://www.fit.vutbr.cz/~imikolov/rnnlm/
1. 工具的简单使用
工具为:rnnlm-0.3e
step1. 文件解压,解压后的文件为:
图1.rnnlm-0.3e解压后的文件
step2. 编译工具
命令:
make clean
make
可能报错 说这个x86_64-linux-g++-4.6 命令找不到
如果出现上述错误,简单的将makefile文件的第一行CC = x86_64-linux-g++-4.6 改为 CC = g++
编译后,有如下新文件生成
图2. 编译完后,有rmmlm可执行文件生成
step3. 执行rnnlm
example.sh文件中有执行的命令,在此简单的拷贝出来执行,看看效果。
图3. 执行的rnn的命令
执行命令后的输出:
图4. 执行rnnlm后的输出
输出中有一堆参数,目前不清楚这些参数有什么用,以后弄清楚了再补上。
至此,rnnlm运行完毕,模型文件也有生成。如下图:
图5. rnn模型文件
model是训练出rnnlm的参数文件,model.output.txt是模型在验证集(valid dataset)上的表现。
**工具包中自带的train valid test数据分别包含10000, 999, 1000个英语句子。语料规模很小。
step4. 使用训练好的模型对测试集test进行测试
命令./rnnlm -rnnlm model -test test
图6. 训练好的模型在测试集上的性能
后面的是将rnnlm和普通的n-gram进行对比
step5. 训练普通的n-gram model[此处的srilm工具需要自己安装]
命令:ngram-count -text train -order 5 -lm templm -kndiscount -interpolate -gt3min 1 -gt4min 1
图7. 训练出的名为templm的5元n-gram model
step6. 使用训练出的templm对test进行测试
命令:ngram -lm templm -order 5 -ppl test -debug 2 > temp.ppl
测试完毕后,当面目录下有temp.ppl文件生成。temp.ppl文件记录templm在test上的表现
图8. temp.ppl文件最后2行。
**example还有convert的命令:
gcc convert.c -O2 -o convert
./convert <temp.ppl >srilm.txt
后面step9的执行需要此步骤中的srilm.txt文件
**关于convert.cc文件,其源文件中对其功能有简单说明:this simple program converts srilm output obtained in -debug 2 test mode to raw per-word probabilities。
[在工具包给定的语料实验中,对比rnnlm和n-gram模型的模型大小,模型在test上的表现,此处应有几点结论。]
step7. 对rnlm和n-gram进行加权使用
命令:./rnnlm -rnnlm model -test test -lm-prob srilm.txt -lambda 0.5
加权后模型在test的表现如下图:
关于RNNLM的使用,至此,剧终.....
2.自己实验语料上的表现:
语料统计
程序运行中.......
程序运行时间对比:
n-gram:199.66 user 3.84 system 3:24.84 elapsed 99%CPU
rnn:17667.22 user 4.05 system 4:54:39 elapsed 99%CPU
模型大小对比:
n-gram: 1.7G
rnn:50M(隐层大小设为30)
实验结果:
1. RNN
2. N-gram
测试句子的测试信息(@ancle_song):
3. RNN+N-gram 权值参数设为0.5
- Recurrent Neural Network Language Modeling Toolkit by Tomas Mikolov使用示例
- Tomas Mikolov's Recurrent Neural Networks Language Modeling Toolkit
- Recurrent Neural Network Language Modeling Toolkit代码学习
- Recurrent neural network language modeling toolkit 源码内部数据结构图解
- 读论文《Recurrent neural network based language model 》
- Recurrent neural network based language model翻译(部分)
- Recurrent Neural Network (RNN)
- lecture10,Recurrent Neural Network
- CS231N-10-Recurrent Neural Network
- Recurrent Neural Network Based Language Model(RNNLM)原理及BPTT数学推导
- Recurrent Neural Network 学习之路
- 回归神经网络RNN(Recurrent Neural network)
- Tensorflow: recurrent neural network (mnist basic)
- Tensorflow: recurrent neural network char-level 0
- Tensorflow: recurrent neural network char-level 1
- 机器学习: Python with Recurrent Neural Network
- 【论文笔记】Recurrent Neural Network Regularization
- 详解循环神经网络(Recurrent Neural Network)
- Threejs 加载 DAE 模型遇到关题汇总
- uva11137Ingenuous Cubrency(完全背包)
- poj 1276 Cash Machine (多重背包)
- 工具使用-------notepad++正则表达式替换字符串详解
- 如何把pdf转换成excel转换器免费版
- Recurrent Neural Network Language Modeling Toolkit by Tomas Mikolov使用示例
- IOS7状态栏标准适配
- 基数排序
- 取石子(一)--巴什博弈
- hdu 2768 Cat vs. Dog (最大独立集)
- hdu 1267 下沙的沙子有几粒?(递推&DP)
- FZU_ Problem 2148 Moon Game
- python字典
- 编程常用知识点大全(链接)