htk网络和解码源码(三、语言模型)
2015-05-24 17:09
274 查看
(一) FSLM
1. 结构体l 对于所有的1gram
Arpa文件中的每一行的每一个单词依次编号,lablist[lmId]和wordlist[lmId]存放标号lmId对应的labId和word。
unigrams 存放一个单词(LMId)对应的所有的发音(PronID多个)的一元概率。
l 对于高阶gram
word存放所有的word(比如“北京 天气”这个2gram,word[0]=“北京”,word[1]=”天气”)。
l pronid和lmid的对应关系
Pronid 对应于词典里的一条发音
LMId 对应于语言模型里的一条word
对应的Pronid <=>pronId2LMId<=>对应的LMId=> lablist[lmId]和wordlist[lmId]
2. 函数
l LogFloat LMTransProb_ngram (FSLM *lm, LMState src, PronId pronid,LMState *dest)
目的:从src(NEntry)起始,到下一个pronid对应的dest的语言得分。
流程:
一开始src为0xffffffff,对应的dest为<s>;
如果src为空,说明是一元,直接返回一元得分;
如果src(比如对应于“北京”)不为空,说明是多元:pronid(比如对应于“天气”)对应的se如果在src中,说明存在src+pronid的词条,直接返回src中se对应的得分(“北京天气”这个2gram的得分),返回的dest对应于src+pronid(“北京天气”);反之(比如pronid对应于“吃饭”),说明不存在,需要使用回退(p(吃饭|北京)=p(吃饭)+bow(北京)),返回的dest对应于pronid不回退的最多的gram(比如返回“吃饭”)。
l LogFloat LMLookAhead_2gram (FSLM *lm, LMState src, PronId minPron,PronId maxPron)
目的:从src(NEntry)起始,对应于下一个pronId(范围为minPron至maxPron)的最高得分。
流程:
遍历minPron到maxPron,如果在src的se,使用se对应的得分,否则使用回退,找出范围内最高的得分。
(二) Lmcache
1. 结构体相关文章推荐
- htk网络和解码源码(二、声学模型)
- htk网络和解码源码(五、htk解码)
- htk网络和解码源码(五、htk解码代码)
- 84、循环神经网络实现语言模型
- 基于神经网络的统计语言模型-----第一章 引言
- 源码分析mycat1.6之网络篇---前端线程模型下篇(读写事件篇)
- memcached源码分析-----网络模型
- 神经网络语言模型NNLM模型
- Hinton神经网络公开课编程题2--神经概率语言模型(NNLM)
- c#基于事件模型的UDP通讯框架(适用于网络包编解码)
- 使用循环神经网络实现语言模型——源自《TensorFlow:实战Goole深度学习框架》
- lighttpd 源码分析1:网络模型
- N元语言模型的解码算法
- Lighttpd1.4.20源码分析 笔记 网络服务主模型
- htk网络和解码源码(四、网络)
- 几篇神经网络训练语言模型文章的阅读
- 自然语言期末复习笔记—神经网络语言模型NPLM
- ZMQ源码分析(二)-- 网络&线程模型
- 神经网络语言模型详解
- TensorFlow实现经典深度学习网络(6):TensorFlow实现基于LSTM的语言模型