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

               

一、常用工具

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小

参考:

扫描二维码关注公众号,回复: 5973094 查看本文章

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的重打分

           

猜你喜欢

转载自blog.csdn.net/qq_44944990/article/details/89452907