zoukankan      html  css  js  c++  java
  • 用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
    

      

  • 相关阅读:
    【php】记录一次生产环境bug的调试
    【ubuntu】Ubuntu 修改 Apache2 运行用户/用户组及修改方法
    【ubuntu】修改php-fpm和nginx运行用户
    【win7】安装php7.3及扩展
    【apache】No input file specified
    Python3 解释器:交互式编程、脚本式编程介绍
    Python3 基本数据类型:字符串、列表、元组、集合、字典等
    Python3 环境搭建,Python 安装,各个平台的安装使用
    Python3 简介,python发展历史、特点以及应用
    详解Python3教程,第一个Python3.x程序
  • 原文地址:https://www.cnblogs.com/whuqin/p/7286807.html
Copyright © 2011-2022 走看看