• SRILM的使用及平滑方法说明


    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.csdn.net/zhoubl668/article/details/8365716

    3.平滑方法说明

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

            (1).回退

            (2).插值

  • 相关阅读:
    SpringBoot单元测试:1分钟学会单元测试
    Vite项目无法通过IP+端口的方式访问开发服务
    Element修改弹窗类组件的层级
    2022蓝桥杯A组题解
    单源最短路径
    【校招VIP】产品分析之功能分析
    【校招VIP】产品分析之活动策划宣传
    双非一本想逆袭进大厂,怎么才能打败985/211?
    【java校招你不知道的那些事儿】java校招分层级,找准定位很重要
    互联网大厂疯狂裁员,原因竟是……校招学生该如何最大程度规避风险?
  • 原文地址:https://www.cnblogs.com/Climbing-Snail/p/9482379.html
Copyright © 2020-2023  润新知