lmir 随笔
近期需要研究一些特征工程的工作,就打算把微软之前公布出来的特征都复现一遍,今天遇到的特征是 LMIR, 其实也就是language model for information retrieval的简写,下面简要记录下研究经过。
首先,该特征主要是三种smoothing方法,分别是:JM、DIR和ABS,详细的文章介绍见:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.8019&rep=rep1&type=pdf
其次就是代码的实现,很奇怪,这个特征网上开源的代码并不多,可能是因为实现起来难度不大吧,但是没有成熟的工具包实在不应该,只能理解为实用性不强吧,否则BM25咋还很流行呢。废话少说,在git上看到了两个相关的开源项目,一个是六年前的代码(地址:https://github.com/liheyuan/SimpleLMIR),一个是一年前的代码(地址:https://github.com/airalcorn2/LMIR),因为这两个项目星都很少,不敢贸然使用,就都研究了一下,以下是这两个代码的分析:
一、SimpeLMIR
优点:有文本的简单预处理工作,如把所有字母都转换成小写,把复杂的标点符号都替换成空格。
缺点:1.计算的时候考虑不周全,以JM为例,文中说明的是(1-lambda)*p_ml + lambda * p_c,但是还有些词可能在Collection中也并未出现,这种情况并未考虑到。
2.计算的时候累乘,不如取log规范。
二、LMIR
优点:计算的时候考虑全面,且以log累减,感觉更规范。
缺点:1.有一个bug,全局计算错误,致命。
2.没有文本预处理,直接计算。另,这两种方法都只提供一句话和训练集里所有文档之间的关联性,不支持指定两句,但是也很方便改就是啦。
总的说来,很感谢两位,理清了思路,下一步自己把代码完善好同步出来(地址待附o(* ̄︶ ̄*)o)
最新文章
- linux 时钟源初步分析linux kernel 时钟框架详细介绍
- Struts2的标签库(四)——数据标签
- 能在手机播放的Flash代码
- POJ 3347 Kadj Squares
- U3D中的协同等待函数
- 单元测试工具之Xunit
- ssh docker container
- 浅谈Mamcached集成web项目
- 基于QTcpSocket和QTcpServer的Tcp通讯以及QDataStream序列化数据
- java集合体系
- C语言程序设计(基础)最后一次作业-- 总结报告
- python---面向对象高级进阶
- 发布 Rafy .NET Standard 版本 Nuget 包
- Go中原始套接字的深度实践
- ProxyChains 的坑, 需要关闭 sip
- 近期Freecodecamp问题总结
- 全志A33 lichee怎样编译镜像
- null、undefined、typeof、instanceof
- log4j动态监听配置修改
- noip2017奶酪
热门文章
- Redis的移库操作
- 守护进程daemon.c
- ImageView.ScaleType
- Flask報錯 KeyError 'SQLALCHEMY_TRACK_MODIFICATIONS'.md
- MongoDB 表(集合) 创建删除、数据增删改查
- durpal安装时The translation server is offline解决
- PhpStorm使用sftp实现代码自动上传服务器
- 企业微信域名IP列表
- ServletRequest与HttpServletRequest
- jenkins部署集群