===================================================================================
SRILM源代码阅读笔记。
主要针对SRILM的ngram的训练,即ngram-count。
===================================================================================
README目录:
Part I:笔记文件说明
Part II:SRILM的ngram-count的简要流程
Part III:主要数据结构说明
Part IV:参考文献
Part V:其他资源
本README文件的编辑日志:
04 Sep. 2012, zhaoyiqiang
===================================================================================
Part I:笔记文件说明
类图.jpg:与ngram-count相关的主要类的静态图(使用了starUML的逆向工程工具);
ngram-count.jpg:从语料训练出模型的主要流程;
lmstats.countfile.jpg:ngram-count的子流程,用于构建词汇表和统计ngram的频度;
ngram.estimate.jpg:ngram-count的子流程,在词汇表和ngram频度的基础上计算ngram条件概率
以及backoff权值的过程;
ngram.read.jpg:与训练无关,读取ARPA格式的语言模型的过程;
SRILM.uml:以上5个文件的原始图,以StarUML绘制(利用StarUML可直接编辑)
SRILM.vsd:ngram-count相关的主要数据结构的内存布局 + ngram条件概率计算公式的参数说明,
以visio绘制(利用visio可直接编辑)
=====================================================================================
Part II:SRILM的ngram-count的简要流程
1.先建立Vocab(词汇表)类型与LMStats(用于ngram统计)类型的两个实例(即vocab和intStats,
intStats中存有vocab的一个引用);
2.调用intStats的countFile函数完成(对输入语料文件中)ngram的统计,这其中也包括词汇表的
构建(以及词汇索引映射的构建);
3.建立Discount*的一个数组(长度为order参数的值,即要训练的模型的ngram的最大阶数),按
选定的平滑方式计算各阶的折扣率,并保存其中;
4.建立Ngram类型(语言模型类)的实例(即lm),调用其estimate函数(以折扣率数组和ngram统
计类的对象为参数),计算各阶ngram的概率及bow,完成语言模型的训练;
5.按训练命令参数选项,输出训练好的语言模型、ngram的频度统计结果、词汇表、词汇索引表等到
相应的指定文件中。
=======================================================================================
Part III:主要数据结构说明
Trie:trie树,以hash表实现,做ngram统计和计算ngram的概率值以及backoff weight都以此为基础;
Vocab:词汇表,内含一个以词形为键获取索引值的hash表,以及一个通过索引值(即下标)获得词形
的Array;
LMStats:负责ngram频度统计,主要成员counts是一棵trie树,从树根到某个结点的路径给出了一个
以正常顺序(从左向右)的ngram的各个元的索引
BOnode:Ngram 的主要基础数据结构,用于存储n-1阶gram的backoff权值(存于bow域),以及以此
n-1阶gram为历史的所有n阶gram的概率值(存于probs域);probs域为一hash表,以n阶gram的第n个
元素(在词汇表vocab中)的索引值为键,以此n阶gram的频度的log值(以 10为底)为值
Ngram:继承LM,其主要成员contexts为一棵trie树,从根到某个结点的路径是一个n-1阶gram的逆序
(从右向左),其bow域存放该n-1-gram在正序情况下的backoff权值,其probs域则为以(正序下)
该n-1-gram为历史的(所有)n-gram的概率值(的对数)
=======================================================================================
Part IV:参考文献
[1]http://www.speech.sri.com/projects/srilm/
/* SRILM主站 */
[2]K. Kirchhoff, J. Bilmes, and K. Duh, Factored Language Models Tutorial, Tech. Report
UWEETR-2007-0003, Dept. of EE, U. Washington, June 2007.
/* ngram-count主要流程的全部理论(及实用解释)都在该文中 */
[3]http://www.speech.sri.com/projects/srilm/manpages/ngram-format.5.html
/* n元语法模型的ARPA格式说明 */
[4]blogimg.chinaunix.net/blog/upfile2/081204171013.pdf
/* 比较简洁的介绍了SRILM的lm的内存布局以及模型的读入过程 */
=======================================================================================
Part V:其他资源
[1]http://blog.chinaunix.net/uid/20658401.html
/* 一个记录SRILM源码阅读的博客 */
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
SRILM源代码阅读笔记。 主要针对SRILM的ngram的训练,即ngram-count。 7个文件: 1.类图.jpg:与ngram-count相关的主要类的静态图(使用了starUML的逆向工程工具); 2.ngram-count.jpg:从语料训练出模型的主要流程; 3.lmstats.countfile.jpg:ngram-count的子流程,用于构建词汇表和统计ngram的频度; 4.ngram.estimate.jpg:ngram-count的子流程,在词汇表和ngram频度的基础上计算ngram条件概率 以及backoff权值的过程; 5.ngram.read.jpg:与训练无关,读取ARPA格式的语言模型的过程; 6.SRILM.uml:以上5个文件的原始图,以StarUML绘制(利用StarUML可直接编辑) 7.SRILM.vsd:ngram-count相关的主要数据结构的内存布局 + ngram条件概率计算公式的参数说明, 以visio绘制(利用visio可直接编辑)
资源推荐
资源详情
资源评论
收起资源包目录
SRILM_note.rar (8个子文件)
SRILM_note
SRILM.uml 3.59MB
SRILM.vsd 126KB
ngram-count.jpg 1.05MB
ngram.estimate.jpg 1.55MB
ngram.read.jpg 805KB
lmstats.countfile.jpg 929KB
readme.txt 4KB
类图.jpg 1.67MB
共 8 条
- 1
yqzhao
- 粉丝: 10
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页