srilm的使用,参考别处,此为记录,方便日后查询

2023-11-22 19:58

本文主要是介绍srilm的使用,参考别处,此为记录,方便日后查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用:

由于计算机内存的限制,将处理的文件分为小文件和大文件两种:

小文件:

词频统计:


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


模型训练:


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

-read指向输入文件,为上一步的输出文件

-order与上同

-lm指向训练好的语言模型输出文件


最后两个参数为所采用的平滑方法,-interpolate为插值平滑,-kndiscount为 modified Kneser-Ney 打折法,这两个是联合使用的

计算困惑度:


ngram -ppl test.txt -order 3 -lm LM > result

-ppl为对测试集句子进行评分(logP(T),其中P(T)为所有句子的概率乘积)和计算测试集困惑度的参数

result为输出结果文件

其他参数同上。


大文件:

切分:


split -l line_num_of_file inputfile outputfiledir /outputfie_prefix

例:split -l 10000 train.txt filedir/


具体split的使用方法可以自己查询。

单个文件词频统计:


make-batch-counts  file-list 1 cat counts -order 3 -sort


file-list是个文件名,这个文件存储了你分割大文件而得到的小文件的文件名;5的意识是每5个小文件用于一次ngram-count训练,获得对应的count文件;cat 是用于过滤输出的脚本名,我们这里直接输出;后面的是传给ngram-count的参数,可以自己根据需要写。

合并结果:


 merge-batch-counts [ -l N ] counts [ filename-list ]

例:merge-batch-counts ./counts


将counts目录下的所有文件合并成一个文件,如果有些文件不用参与合并,可以在最后添加一个filename-list,只有在filename-list里面出现的文件才会被用于合并;-l N参数之处,一次同时合并N个文件。

训练语言模型:


make-big-lm -read ../counts/*.ngrams.gz -lm ../split.lm -order 3


用法同ngram-count 

计算困惑度:


ngram -ppl filepath.txt -order 3 -lm split.lm -debug 2 > file.ppl


备注:

语料必须是分好的词,即用空格隔开,英文的书写都是用空格隔开的,但中文的书写各个字词之间并未空格,因此需要使用分词工具将文本自动分词,中文自动分词也是技术活,属于NLP范畴,常用的分词工具有:jieba、SnowNLP、pynlpir,thulac等,可以自己下载使用。

 


原文:https://blog.csdn.net/nsh119/article/details/81171208 
 

这篇关于srilm的使用,参考别处,此为记录,方便日后查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/412534

相关文章

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J