Solr相似度算法二:BM25Similarity
BM25算法的全称是 Okapi BM25,是一种二元独立模型的扩展,也可以用来做搜索的相关度排序。
Sphinx的默认相关性算法就是用的BM25。Lucene4.0之后也可以选择使用BM25算法(默认是TF-IDF)。如果你使用的solr,只需要修改schema.xml,加入下面这行就可以
- <similarity class="solr.BM25Similarity"/>
BM25也是基于词频的算分公式,分词对它的算分结果也很重要

IDF公式

- f(qi,D):就是词频
- |D|:[给定文档]D长度。
- avgdl:索引中所有文档长度。
抽象点看,BM25的公式其实和TF-IDF公式大同小异,可以也可以当做 = ∑ idf(q) * fx(tf),
只不过,BM25的idf和tf都做了一些变形,特别是tf公式,还加入了两个经验参数k1和b,K1和b用来调整精准度,一般情况下我们取K1=2,b=0.75
至于BM25和TF-IDF 哪种相关性算法更更好,我认为依赖于搜索质量评估标准
Solr相似度算法二:BM25Similarity的更多相关文章
- Solr相似度算法二:Okapi BM25
地址:https://en.wikipedia.org/wiki/Okapi_BM25 In information retrieval, Okapi BM25 (BM stands for Be ...
- elasticsearch算法之词项相似度算法(二)
六.莱文斯坦编辑距离 前边的几种距离计算方法都是针对相同长度的词项,莱文斯坦编辑距离可以计算两个长度不同的单词之间的距离:莱文斯坦编辑距离是通过添加.删除.或者将一个字符替换为另外一个字符所需的最小编 ...
- Solr相似度算法四:IBSimilarity
Information based:它与Diveragence from randomness模型非常相似.与DFR相似度模型类似,据说该模型也适用于自然语言类的文本.
- Solr相似度算法三:DRFSimilarity
该Similarity 实现了 divergence from randomness (偏离随机性)框架,这是一种基于同名概率模型的相似度模型. 该 similarity有以下配置选项: basic ...
- Solr相似度算法三:DRFSimilarity框架介绍
地址:http://terrier.org/docs/v3.5/dfr_description.html The Divergence from Randomness (DFR) paradigm i ...
- TensorFlow 入门之手写识别(MNIST) softmax算法 二
TensorFlow 入门之手写识别(MNIST) softmax算法 二 MNIST Fly softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算 ...
- elasticsearch算法之词项相似度算法(一)
一.词项相似度 elasticsearch支持拼写纠错,其建议词的获取就需要进行词项相似度的计算:今天我们来通过不同的距离算法来学习一下词项相似度算法: 二.数据准备 计算词项相似度,就需要首先将词项 ...
- 文本相似度算法——空间向量模型的余弦算法和TF-IDF
1.信息检索中的重要发明TF-IDF TF-IDF是一种统计方法,TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分 ...
- 文本相似度 余弦值相似度算法 VS L氏编辑距离(动态规划)
设置n为字符串s的长度.("我是个小仙女") 设置m为字符串t的长度.("我不是个小仙女") 如果n等于0,返回m并退出.如果m等于0,返回n并退出.构造两个向 ...
随机推荐
- 北京师范大学第十六届程序设计竞赛决赛-重现赛-B题
一.题目链接 https://www.nowcoder.com/acm/contest/117/B 二.题意 给定一组序列$a_1,a_2,\cdots,a_n$,表示初始序列$b_1,b_2,\cd ...
- 年薪30万的Android程序员必须知道的帖子
https://github.com/Trinea/android-open-project
- SecureCRT 8.1使用经验总结
1.反空闲设置: 2.文件上传下载 上传 sudo rz -y 文本文件勾选Upload files as ASCII,图片或其他飞文本文件,去掉勾选.采用默认binary 3.文件下载 sudo s ...
- Protocol入门
参考:http://haoxiang.org/2011/08/ios-delegate-and-protocol/ 介绍: Protocol在iOS中就是协议,简单的理解就是一组函数的集合,这个集合中 ...
- 横向文本框 cursor:pointer 出现手型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- leetcode 27 Romove element
描述: 删除指定元素.不是真的删除,要求把不符合的元素前移. 解决: 非常简单. int removeElement(vector<int>& nums, int val) { ) ...
- jQuery的节点操作
1.创建节点 var aa = $("<div id='cccc'>插入的内容</div>") var bb = $("<a href='h ...
- Linux内核分析 - 网络[十四]:IP选项
Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报 分类: 内核协议栈 ...
- Linux 启动和关闭自定义命令
首先是启动命令 [lambert@lambert ~]$ vim startup.sh #!/bin/bash nohup XXXXXX >/home/lambert/>& &am ...
- code1105 过河
dp方程很简单: f[i] = min{ f[i-j] } + stone[i] 但是数据10^9太大了,超时超空间,这样只能过30% 来自:http://blog.csdn.net/w1996070 ...