• 用srilm生成语言模型


    SRILM的主要目标是支持语言模型的估计和评测。估计是从训练数据(训练集)中得到一个模型,包括最大似然估计及相应的平滑算法;而评测则是从测试集中计算其困惑度。其最基础和最核心的模块是n-gram模块,这也是最早实现的模块,包括两个工 具:ngram-count和ngram,相应的被用来估计语言模型和计算语言模型的困惑度。

    1.统计语料库生成n-gram统计文件

    ngram-count -vocab segment_dict.txt -text train_data -order 3 -write my.count -unk
    

    -vocab 词典文件,一行代表一个切词,格式如下:

    中国
    人民
    你好
    

    -text 语料库,一行行的数据,行内数据用空格隔开来表示切词,格式如下:

    中国 人民
    刘德华 歌曲 好 听 吗
    

    -order 最大的n元模型,3表示统计1元模型(unigram)、2元模型(bigram)、3元模型(trigram)

    -write 生成的统计文件,格式如下(ngram  count):

    <s>     2
    <s> 中国        1
    <s> 中国 人民   1
    <s> 刘德华      1
    <s> 刘德华 <unk>        1
    中国    1
    中国 人民       1
    中国 人民 </s>  1
    人民    1
    人民 </s>       1
    </s>    2
    刘德华  1
    刘德华 <unk>    1
    刘德华 <unk> <unk>      1
    <unk>   4
    <unk> <unk>     3
    <unk> <unk> <unk>       2
    <unk> <unk> </s>        1
    <unk> </s>      1
    

    -unk 把不在词典里面的次表示为<unk>

    2.生成语言模型

    ngram-count -vocab segment_dict.txt -read my.count -order 3 -lm my.lm -kndiscount1 -kndiscount2 -kndiscount3

    -read 读统计文件

    -lm 产生的语言模型文件,产生的格式如下:

    data
    ngram 1=6
    ngram 2=4
    ngram 3=0
    
    1-grams:
    -0.4771213      </s>
    -99     <s>     -99
    -0.7781513      中国    -99
    -0.7781513      人民    -99
    -0.7781512      你好
    -0.7781513      刘德华
    
    2-grams:
    -0.30103        <s> 中国
    -0.30103        <s> 刘德华
    0       中国 人民
    0       人民 </s>
    
    3-grams:
    
    end
    

    -kndiscount1 对1元模型进行的折扣平滑的方法,有很多,如good-turing,kneser-ney等

    3.用语言模型计算测试数据的困惑度

    ngram -ppl test.txt -order 3 -lm my.lm
    

    测试数据的格式也是一行代表一个句子,每个句子内部用空格隔开表示切词

    file test.txt: 2 sentences, 5 words, 0 OOVs
    4 zeroprobs, logprob= -0.7781513 ppl= 1.817121 ppl1= 6.000001
    

      

  • 相关阅读:
    玩转Web之easyui(一)-----easy ui datagird 分页
    【JavaEE基础】在Java中如何使用jdbc连接Sql2008数据库
    Android访问服务器(TOMCAT)乱码引发的问题
    工厂方法模式--结合具体例子学习工厂方法模式
    FatMouse' Trade
    简单工厂模式--结合实例学习简单工厂模式
    栈-----括号匹配+表达式计算
    Android控件之RadioGroup与RadioButton(单选控件)
    Android控件之CheckBox(复选框控件)
    Android控件之ToggleButton(多状态按钮)
  • 原文地址:https://www.cnblogs.com/whuqin/p/7286807.html
Copyright © 2020-2023  润新知