近期需要研究一些特征工程的工作,就打算把微软之前公布出来的特征都复现一遍,今天遇到的特征是 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)

最新文章

  1. linux 时钟源初步分析linux kernel 时钟框架详细介绍
  2. Struts2的标签库(四)——数据标签
  3. 能在手机播放的Flash代码
  4. POJ 3347 Kadj Squares
  5. U3D中的协同等待函数
  6. 单元测试工具之Xunit
  7. ssh docker container
  8. 浅谈Mamcached集成web项目
  9. 基于QTcpSocket和QTcpServer的Tcp通讯以及QDataStream序列化数据
  10. java集合体系
  11. C语言程序设计(基础)最后一次作业-- 总结报告
  12. python---面向对象高级进阶
  13. 发布 Rafy .NET Standard 版本 Nuget 包
  14. Go中原始套接字的深度实践
  15. ProxyChains 的坑, 需要关闭 sip
  16. 近期Freecodecamp问题总结
  17. 全志A33 lichee怎样编译镜像
  18. null、undefined、typeof、instanceof
  19. log4j动态监听配置修改
  20. noip2017奶酪

热门文章

  1. Redis的移库操作
  2. 守护进程daemon.c
  3. ImageView.ScaleType
  4. Flask報錯 KeyError 'SQLALCHEMY_TRACK_MODIFICATIONS'.md
  5. MongoDB 表(集合) 创建删除、数据增删改查
  6. durpal安装时The translation server is offline解决
  7. PhpStorm使用sftp实现代码自动上传服务器
  8. 企业微信域名IP列表
  9. ServletRequest与HttpServletRequest
  10. jenkins部署集群