前两天老师给我们讲解了BM25算法,其中包括由来解释,以及算法推导,这里我再将其整理,这里我不讲解之前的BIM模型,大家有兴趣可以自行了解。
Okapi BM25:一个非二值的模型
bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法。
举个例子:我们查询关键词red apple ,将其分词为red 和apple,我们在我们的1000个文档中分别索引这两个词,但是我们发现red的似乎经常出现,然而apple出现频率不高,那我们将这一千个文档进行得分排序,如果某个文档中red出现的次数很高,而apple出现次数很少,安装普通的得分排序的话(出现一次算一分)那我们red出现越多,它的分数就会越高,但是这却违背了我们所需要,因为我们检索的是red apple,所以,BM25就是来消除这种相关性不高的问题,即为我们所查询的词有一个权值比重,即为idf(这里我们后面会讲解)。
1.BM25模型

其实,这个公式不难理解,他只有三个部分
1.计算单词权重:
2.单词和文档的相关度:
3.单词和query(关键词)的相关性:

2.idf解释(单词权重计算)
在上面我们已经看到了公式,但是还不是很理解是什么意思,所以这里我们慢慢理解体会:
N:是所有的文档数目.
dft:是我们的关键词通过倒排算法得出的包含t的文档数目(即为上述例子中,red 在1000个文档中出现的文档次数)
例如,我们在1000个文档中出现red的次数为10,那么N/dft=100,即可算出他的权重。
3.tf解释(单词和文档相关度)
其实,BM25最主要的方面在于 idftf,就是查询词的权重查询词和文档的相关性。
tftd:tftd 是词项 t 在文档 d 中的权重。
Ld 和 Lave :分别是文档 d 的长度及整个文档集中文档的平均长度。
k1:是一个取正值的调优参数,用于对文档中的词项频率进行缩放控制。如果 k 1 取 0,则相当于不考虑词频,如果 k 1取较大的值,那么对应于使用原始词项频率。
b :是另外一个调节参数 (0≤ b≤ 1),决定文档长度的缩放程度:b = 1 表示基于文档长度对词项权重进行完全的缩放,b = 0 表示归一化时不考虑文档长度因素。
4.单词和query(关键词)的相关性解释
tftq:是词项t在查询q中的权重。
k3: 是另一个取正值的调优参数,用于对查询中的词项tq 频率进行缩放控制。

下面是调用AP90跑出来的数据结果(BM25):

BM25-nlp经典算法相关推荐

  1. NLP经典算法复现!CRF原理及实现代码

    Datawhale 作者:丁媛媛,Datawhale优秀学习者 寄语:本文先对马尔可夫过程及隐马尔可夫算法进行了简单的介绍:然后,对条件随机场的定义及其三种形式进行了详细推导:最后,介绍了条件随机场的 ...

  2. Algorithm之PrA:PrA之nLP非线性规划算法经典案例剖析+Matlab编程实现

    Algorithm之PrA:PrA之nLP整数规划算法经典案例剖析+Matlab编程实现 目录 有约束非线性规划案例分析 1.投资决策问题 2.利用Matlab实现求解下列非线性规划​ 无约束极值问题 ...

  3. NLP经典论文:Sequence to Sequence、Encoder-Decoder 、GRU 笔记

    NLP经典论文:Sequence to Sequence.Encoder-Decoder.GRU 笔记 论文 介绍 特点 模型结构 整体结构 输入 输出 整体流程 流程维度 GRU 模型结构 GRU单 ...

  4. NLP经典论文:Layer Normalization 笔记

    NLP经典论文:Layer Normalization 笔记 论文 介绍 模型结构 batch normalization 和 layer normalization 的相同点 batch norma ...

  5. NLP经典论文:Word2vec、CBOW、Skip-gram 笔记

    NLP经典论文:Word2vec.CBOW.Skip-gram 笔记 论文 介绍 模型结构 CBOW模型 整体模型 输入 输出 整体流程 整体维度 输入层与投影层 输入 输出 输出层 输入 输出 原本 ...

  6. NLP经典论文:Attention、Self-Attention、Multi-Head Attention、Transformer 笔记

    NLP经典论文:Attention.Self-Attention.Multi-Head Attention.Transformer 笔记 论文 介绍 特点 模型结构 整体结构 输入 输出 Attent ...

  7. 【总结】自然语言处理(NLP)算法:概述与分类

    摘要:NLP概述.主要参考自然语言处理(NLP)知识结构总结和知乎上的一些问答. 目录 NLP界神级人物 NLP知识结构 1.概述 2.形式语言与自动机 3.语言模型 4.概率图模型,生成模型与判别模 ...

  8. NLP经典模型复现之开宗明义

    文章目录 1. 为什么要写这个专栏 2. 专栏的主要内容 3. 阅读论文的正确姿势 1. 为什么要写这个专栏   大家好,我是herosunly,从985院校硕士毕业,现担任算法研究员一职.CSDN博 ...

  9. 数据挖掘的一些经典算法

    数据挖掘能做以下七种不同事情 (分析方法): 数据挖掘能做以下七种不同事情 · 分类 (Classification) · 估计(Estimation) · 预测(Prediction) · 相关性分 ...

  10. 经典算法研究系列:二、Dijkstra 算法初探

    经典算法研究系列:二.Dijkstra 算法初探  July   二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...

最新文章

  1. 按原有结构恢复被删除的FAT32文件夹
  2. aitken插值方法的c++代码_无人驾驶路径规划技术-三次样条插值曲线及Python代码实现...
  3. PHP unset()函数销毁变量 但没有实现释放内存
  4. python观察日志(part26)--numpy数组操作
  5. 2016ICPC青岛
  6. [剑指offer][JAVA]面试题第[21]题[调整数组顺序使奇数位于偶数面前][双指针]
  7. 从另一个角度看大数据量处理利器:布隆过滤器
  8. 一文简介常见的机器学习算法
  9. Linux程序文件状态,linux 文件状态标识和IO操作方式
  10. nginx负载php导致时间不一致,nginx – 为什么php-fpm会产生并在没有服务器负载的情况下每秒摧毁数百个孩子?...
  11. 过滤器(Filter)应用:全站压缩----Gzip网页压缩输出
  12. 【华为机试真题详解】统计射击比赛成绩
  13. Hive存储格式之RCFile详解,RCFile的过去现在和未来
  14. DSP CCS12.00 芯片:TMS320F28335 结课设计 数字电压表 TFTLCD 模块 + ADC 模块
  15. 【宋词】之《菩萨蛮·书江西造口壁》
  16. android连路由器 mtu,解决app无网络问题,将宽带路由器MTU从1500修改成1480
  17. MobileNetV2网络结构分析
  18. JAVA爬虫(一):豆瓣电影排行榜爬取
  19. 微信小程序调用科大讯飞 在线合成语音接口(文字转语音)
  20. c语言printf snm,vc++实现SNMP信息刺探程序

热门文章

  1. CameraX源码分析
  2. Kubernetes v1.13 二进制部署集群
  3. 社会化登录分享-微信SDK接入
  4. Bootstrap5使用bootstrapValidator完成表单验证(包括解决样式、图标不显示及其他组件表单验证出问题解决方案)
  5. 基于MATLAB负载换流逆变器毕业设计,分享:基于电流内环的单相并网逆变器原理简介及仿真验证...
  6. 本地生成Https证书(Windows)
  7. ShowMeBug 荣获稀土掘金「2021年度人气技术团队」
  8. 专科生总是低人一等?
  9. web前端入门到实战:仿美团详情页与购物车源码-首页实现
  10. 杭州电子科技大学保研计算机,杭州电子科技大学计算机学院计算机技术(专业学位)保研条件...