语言模型(一) 工具和使用简介
2015-08-30 21:13
459 查看
一、常用工具
1. Kenlm https://kheafield.com/code/kenlm/
C++版本,最大特点是速度快、占用内存少
2. Srilm http://www.speech.sri.com/projects/srilm/
SRI(Standford ResearchInstitute)开发,使用比较广泛,c++版本
3. IRSTLM http://sourceforge.net/projects/irstlm/
IRSTLM是意大利TrentoFBK-IRST实验室开发的语言模型训练工具包,其开发的目的是处理较大规模的训练数据
4. MITLM https://code.google.com/p/mitlm/
5. BerkeleyLM https://code.google.com/p/berkeleylm/
Java版本,速度和kenlm差不多,内存比srilm小
参考:
http://52opencourse.com/111/斯坦福大学自然语言处理第四课-语言模型(language-modeling)
http://www.52nlp.cn/language-model-training-tools-srilm-details
二、Srilm使用
1. 构建语言模型
【ngram-count】:用于统计ngram的个数和生成最终的语言模型
【ngram-merge】:用于merge多个ngram count文件,适用于内存不足以容下所有语料的情况
2. 语言模型得分
【ngram】:用于语言模型打分、计算困惑度(perplexity)、产生句子和模型插值
3. 语言模型插值
【ngram】:用于语言模型打分、计算困惑度(perplexity)、产生句子和模型插值
4. 语言模型剪枝
三、Srilm使用的文件类型
1. Ngram
最常用的arpa文件,格式如下:
\data\
ngram1=n1
ngram2=n2
...
ngramN=nN
\1-grams:
p w [bow]
...
\2-grams:
p w1 w2 [bow]
...
\N-grams:
p w1 ... wN
...
\end\
2. Classes
基于class的语言模型的格式,如下:
其中class是语言模型中使用的class name,p是该条class定义的概率,word是该class对应的具体word
3. Psfg
Probabilistic finite-state grammars是一种被SRIDecipher(SRI的解码器)使用的有限状态机。
name name
nodes Nw1 ... wN
initial i
final f
transitionsT
n1 n2 p
...
4. Nbest
用于nbest的重打分
1. Kenlm https://kheafield.com/code/kenlm/
C++版本,最大特点是速度快、占用内存少
2. Srilm http://www.speech.sri.com/projects/srilm/
SRI(Standford ResearchInstitute)开发,使用比较广泛,c++版本
3. IRSTLM http://sourceforge.net/projects/irstlm/
IRSTLM是意大利TrentoFBK-IRST实验室开发的语言模型训练工具包,其开发的目的是处理较大规模的训练数据
4. MITLM https://code.google.com/p/mitlm/
5. BerkeleyLM https://code.google.com/p/berkeleylm/
Java版本,速度和kenlm差不多,内存比srilm小
参考:
http://52opencourse.com/111/斯坦福大学自然语言处理第四课-语言模型(language-modeling)
http://www.52nlp.cn/language-model-training-tools-srilm-details
二、Srilm使用
1. 构建语言模型
【ngram-count】:用于统计ngram的个数和生成最终的语言模型
【ngram-merge】:用于merge多个ngram count文件,适用于内存不足以容下所有语料的情况
2. 语言模型得分
【ngram】:用于语言模型打分、计算困惑度(perplexity)、产生句子和模型插值
3. 语言模型插值
【ngram】:用于语言模型打分、计算困惑度(perplexity)、产生句子和模型插值
4. 语言模型剪枝
三、Srilm使用的文件类型
1. Ngram
最常用的arpa文件,格式如下:
\data\
ngram1=n1
ngram2=n2
...
ngramN=nN
\1-grams:
p w [bow]
...
\2-grams:
p w1 w2 [bow]
...
\N-grams:
p w1 ... wN
...
\end\
2. Classes
基于class的语言模型的格式,如下:
class [p] word1 word2 ...
其中class是语言模型中使用的class name,p是该条class定义的概率,word是该class对应的具体word
3. Psfg
Probabilistic finite-state grammars是一种被SRIDecipher(SRI的解码器)使用的有限状态机。
name name
nodes Nw1 ... wN
initial i
final f
transitionsT
n1 n2 p
...
4. Nbest
用于nbest的重打分
相关文章推荐
- 深圳医械帮:一个军团的诞生
- Retrofit 网络请求
- 预处理:头文件、宏定义、条件编译
- Hibernate查询方式知多少 一
- 静态网页 和 动态网页
- hihoCoder挑战赛14 题目2 : 赛车 树的性质
- C. Number of Ways
- 剑指offer 算法 (抽象建模能力)
- 高可用集群
- 树莓派网卡和IP地址的配置
- Opencv图像对比度和亮度的调整-滚动条
- 原本为了这个家奋斗,为了活出自己。
- Odoo运行机制(二)----ThreadedServer
- 关于建构主义的一点思考
- TCP服务器/客户端代码示例
- 如何管理你的上级
- HDOJ2553(2N皇后问题)
- strcat函数的坑点
- 简单介绍java Enumeration
- Opencv图像对比度和亮度的调整