SRILM的使用及平滑方法说明

本文介绍了SRILM工具包的使用方法,包括语料预处理、n-gram统计、语言模型训练及测试等步骤,并解释了平滑方法的作用。

1.简介

        SRILM是通过统计方法构建语言模型,主要应用于语音识别,文本标注和切分,以及机器翻译等。      

        SRILM支持语言模型的训练和评测,通过训练数据得到语言模型,其中包括最大似然估计及相应的平滑算法;评测是计算测试集的困惑度。其最基础和最核心的模块是n-gram模块,包括两个工 具:ngram-count和ngram,被用来估计语言模型和计算语言模型的困惑度。

2.使用方法

        (1).语料初始化

              a.数据清洗        b.分词(以空格划分)        c.将数据分为训练集和测试集

        (2).从训练集中统计n-gram

ngram-count -text train.txt -order 3 -write train.count

         其中参数-text指向训练集;-order指向生成几元的n-gram;-write指向输出文件,其包含两列,第一列为n元词,第二列为相应的频率。

         (3).训练语言模型

ngram-count -read train.count -order 3 -lm train.lm -interpolate -kndiscount

        其中参数-read指向(2)中的输出文件;-order同上;-lm指向语言模型输出文件,其为 ARPA文件格式;最后两个参数为所采用的平滑方法,-interpolate为插值平滑,-kndiscount为 modified Kneser-Ney 打折法,这两个是联合使用的。

          (4).测试语言模型

ngram -ppl test.txt -order 3 -lm train.lm > train.lm.ppl

        其中test.txt为测试集;参数-ppl对测试集句子进行评分(logP(T),其 中P(T)为所有句子的概率乘积)和计算测试集困惑度的参数;train.lm.ppl为输出结果文件;其他参数同上。输出文件结果如下:
        file devtest2006.en: 2000 sentences, 52388 words, 249 OOVs
        0 zeroprobs, logprob= -105980 ppl= 90.6875 ppl1= 107.805
        第一行文件devtest2006.en的基本信息:2000句,52888个单词,249个未登录词;
        第二行为评分的基本情况:无0概率;logP(T)=-105980,ppl==90.6875, ppl1= 107.805,均为困惑度。

参考博客  

         https://blog.youkuaiyun.com/zhoubl668/article/details/8365716

3.平滑方法说明

        在训练语言模型中,往往训练语料只是输入空间中的一个采样,也就是语料不足以包含所有情况的ngram,这样就会出现0概率的ngram。为了解决这种问题,就需要用到打折(discounting)或叫平滑(smoothing)方法。常用回退(backoff)插值(interpolate)法实现平滑。

        (1).回退

        (2).插值

 

转载于:https://www.cnblogs.com/Climbing-Snail/p/9482379.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值