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

一、常用工具

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值