Solr相似度算法二:Okapi BM25】的更多相关文章

地址:https://en.wikipedia.org/wiki/Okapi_BM25   In information retrieval, Okapi BM25 (BM stands for Best Matching) is a ranking function used by search engines to rank matching documents according to their relevance to a given search query. It is based…
BM25算法的全称是 Okapi BM25,是一种二元独立模型的扩展,也可以用来做搜索的相关度排序. Sphinx的默认相关性算法就是用的BM25.Lucene4.0之后也可以选择使用BM25算法(默认是TF-IDF).如果你使用的solr,只需要修改schema.xml,加入下面这行就可以 <similarity class="solr.BM25Similarity"/> BM25也是基于词频的算分公式,分词对它的算分结果也很重要 IDF公式 f(qi,D):就是词频 |…
地址:http://terrier.org/docs/v3.5/dfr_description.html The Divergence from Randomness (DFR) paradigm is a generalisation of one of the very first models of Information Retrieval, Harter's 2-Poisson indexing-model [1]. The 2-Poisson model is based on th…
六.莱文斯坦编辑距离 前边的几种距离计算方法都是针对相同长度的词项,莱文斯坦编辑距离可以计算两个长度不同的单词之间的距离:莱文斯坦编辑距离是通过添加.删除.或者将一个字符替换为另外一个字符所需的最小编辑次数: 我们假设两个单词u.v的长度分别为i.j,则其可以分以下几种情况进行计算 当有一个单词的长度为0的时候,则编辑距离为不为零的单词的长度: \[ld_{u,v}(i,j)=max(i,j)\; \; \; \; \; \; \; \; min(i,j) = 0 \] 从编辑距离的定义上来看,…
Information based:它与Diveragence from randomness模型非常相似.与DFR相似度模型类似,据说该模型也适用于自然语言类的文本.…
该Similarity 实现了  divergence from randomness (偏离随机性)框架,这是一种基于同名概率模型的相似度模型. 该 similarity有以下配置选项: basic_model – 可能的值: be, d, g, if, in, ine 和 p. after_effect – 可能的值: no, b 和 l. normalization – 可能的值: no, h1, h2, h3 和 z.所有选项除了第一个,都需要一个标准值.…
引言 Okapi BM25,一般简称 BM25 算法,在 20 世纪 70 年代到 80 年代,由英国一批信息检索领域的计算机科学家发明.这里的 BM 是"最佳匹配"(Best Match)的缩写,Okapi 是第一个使用这种方法的信息获取系统的名称.在信息检索领域,BM25 算法是工程实践中举足轻重的重要的 Baseline 算法.迄今为止距 BM25 的提出已经过去三十多年,但是这个算法依然在很多信息检索的任务中表现优异,是很多工程师首选的算法之一. 今天我们就来谈谈 BM25 算…
Pluggable Similarity Algorithms Before we move on from relevance and scoring, we will finish this chapter with a more advanced subject: pluggable similarity algorithms. While Elasticsearch uses the Lucene’s Practical Scoring Function as its default s…
TensorFlow 入门之手写识别(MNIST) softmax算法 二 MNIST Fly softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算法 我们知道MNIST的每一张图片都表示一个数字,从0到9.我们希望得到给定图片代表每个数字的概率.比如说,我们的模型可能推测一张包含9的图片代表数字9的概率是80%但是判断它是8的概率是5%(因为8和9都有上半部分的小圆),然后给予它代表其他数字的概率更小的值. 这是一个使用softmax回归(s…
一.词项相似度 elasticsearch支持拼写纠错,其建议词的获取就需要进行词项相似度的计算:今天我们来通过不同的距离算法来学习一下词项相似度算法: 二.数据准备 计算词项相似度,就需要首先将词项向量化:我们可以使用以下两种方法 字符向量化,其将每个字符映射为一个唯一的数字,我们可以直接使用字符编码即可: import numpy as np def vectorize_words(words): lower_words = [word.lower() for word in words]…