您的位置:首页 > 其它

语言模型(一) 工具和使用简介

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 [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的重打分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: