相关性算分
  指文档与查询语句间的相关度,通过倒排索引可以获取与查询语句相匹配的文档列表
 
如何将最符合用户查询需求的文档放到前列呢?
  本质问题是一个排序的问题,排序的依据是相关性算分,确定倒排索引哪个文档排在前面
 
影响相关度算分的参数:
  A. TF(Term Frequency):词频,即单词在文档中出现的次数,词频越高,相关度越高,计算公式: tf(t in d) = √frequency
  B. Document Frequency(DF):文档词频, 该词出现在多少篇文档中
  C. IDF(Inverse Document Frequency):倒排文档频度,与文档词频相反,即 1/DF。即单词出现的文档数越少,相关度越高(如果一个单词在文档集出现越少,算为越重要单词),计算公式:idf(t) = 1 + log ( numDocs / (docFreq + 1))
  D. Field-length Norm:字段长度归约, 字段有多长?字段越短,那么其权重就越高。如果一个词条出现在较短的字段,如 title 字段中,那么该字段的内容相比更长的body 字段而言,更有可能是关于该词条的,计算公式: norm(d) = 1 / √numTerms
 
• TF/IDE 模型
                   
  a) score(q, d),文档 d 与查询 q 的相关度分数(relevance score)
  b) queryNorm(q),查询正则因子(query normalization factor)试图将查询正则化,以便可以比较两个不同 query 的结果
  c) coord(q, d),协调因子(coordination factor)
    
  d) tf(t in d),term t 在文档 d 中的词频
  e) idf(t),term t 的逆向文档频率
  f) t.getBoost(),查询中使用的自定义 boost,竞价排名用
  g) norm(t, d),文档 d 的文本长度正则值
 
• BM25 模型(5.X 之后的默认模型)
                  
  a) |D|:文档长度
  b) avgdl:所有文档的平均文档长度
  c) k1,b 是自由参数,lucene 默认 k1=1.2,b=0.75
  d) IDF = log((#Docs - #DocsHit + 0.5)/(#DocsHit + 0.5))
  e) TF = query count in one doc
 
 
 
BM25 相比 TF/IDF 的一大优化是降低了 tf 在过大时的权重,避免词频对查询影响过大

影响ES相关度算分的因素的更多相关文章

  1. ElasticStack学习(九):深入ElasticSearch搜索之词项、全文本、结构化搜索及相关性算分

    一.基于词项与全文的搜索 1.词项 Term(词项)是表达语意的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term. Term的使用说明: 1)Term Level Query:Ter ...

  2. Elasticsearch从入门到放弃:浅谈算分

    今天来聊一个 Elasticsearch 的另一个关键概念--相关性算分.在查询 API 的结果中,我们经常会看到 _score 这个字段,它就是用来表示相关性算分的字段,而相关性就是描述一个文档和查 ...

  3. Lucene TF-IDF 相关性算分公式(转)

    Lucene在进行关键词查询的时候,默认用TF-IDF算法来计算关键词和文档的相关性,用这个数据排序 TF:词频,IDF:逆向文档频率,TF-IDF是一种统计方法,或者被称为向量空间模型,名字听起来很 ...

  4. 影响pogo pin连接器使用寿命的因素

    精细化.安装简易化及使用寿命长是现在数码电子产品的趋势发展,pogo pin连接器体积小而且弹簧伸缩式设计,可以更好的缩小数码电子产品的尺寸并且连接安装更加的简单方便,因此pogo pin连接器得到了 ...

  5. Solr相似度算法一:Lucene TF-IDF 相关性算分公式

    Lucene在进行关键词查询的时候,默认用TF-IDF算法来计算关键词和文档的相关性,用这个数据排序 TF:词频,IDF:逆向文档频率,TF-IDF是一种统计方法,或者被称为向量空间模型,名字听起来很 ...

  6. Lucene TF-IDF 相关性算分公式

    转自: http://lutaf.com/210.htm Lucene在进行关键词查询的时候,默认用TF-IDF算法来计算关键词和文档的相关性,用这个数据排序 TF:词频,IDF:逆向文档频率,TF- ...

  7. RTMP服务器的延迟,多级边缘不影响延迟,gop为最大因素

    转自:http://blog.chinaunix.net/uid-26000296-id-4932826.html 编码器用FMLE,用手机秒表作为延迟计算. 结论: 1. 影响延迟的三个重要因素:网 ...

  8. UnixBench算分介绍

    关于如何用UnixBench,介绍文章很多,这里就不展开了.这里重点描述下它是如何算分的. 运行参数 碰到很多客户,装好后,直接./Run,就把结果跑出来了,然后还只取最后一个分值,比谁高谁低.下面列 ...

  9. Elasticsearch BM25相关度算法超详细解释

    Photo by Pixabay from Pexels 前言:日常在使用Elasticsearch的搜索业务中多少会出现几次 "为什么这个Doc分数要比那个要稍微低一点?".&q ...

随机推荐

  1. Type of the default value for 'songs' prop must be a function

    eslint常会出现这样的错误提示,控制台打印:Type of the default value for 'songs' prop must be a function 解决办法有两种如下: 1:写 ...

  2. 调试webpack

    调试webpack 1. 摘要 用过构建工具webpack的朋友应该都体会,面对其几百行的配置内容如大海一小舟,找不到边.看文档查百度,对其构建的生命周期看了又看.最终还是很茫然.原因很简单,构建配置 ...

  3. 【原创】go语言学习(十一)package简介

    目录 Go源码组织方式 main函数和main包 编译命令 自定义包 init函数以及执行行顺序 _标识符 Go源码组织方式 1. Go通过package的方式来组织源码 package 包名 注意: ...

  4. Head First设计模式——简单工厂、工厂、抽象工厂

    前言:按照惯例我以Head First设计模式的工厂模式例子开始编码学习.并由简单工厂,工厂模式,抽象工厂模式依次演变,归纳他们的相同与不同. 话说Head First认为简单工厂并不是设计模式,而是 ...

  5. Pandas 计算工具介绍

    # 导入相关库 import numpy as np import pandas as pd 统计函数 最常见的计算工具莫过于一些统计函数了.首先构建一个包含了用户年龄与收入的 DataFrame i ...

  6. 前端与算法 leetcode 1. 两数之和

    目录 # 前端与算法 leetcode 1. 两数之和 题目描述 概要 提示 解析 解法一:暴力法 解法二:HashMap法 算法 传入[1, 2], [11, 1, 2, 3, 2]的运行结果 执行 ...

  7. 使用Typescript重构axios(十四)——实现拦截器

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  8. Xshell6配置ssh免密码登录虚拟机

    首先先说明一下有密码的,涉及到root登陆权限的问题: 1.用超级管理员身份登录,修改 vi  /etc/ssh/sshd_config, 找到 把其中的permitRootLogin 修改成: # ...

  9. 接口自动化、移动端、web端自动化如何做?

    1.<Python+Appium移动端自动化项目实战>-带您进入APP自动化测试的世界https://yuedu.baidu.com/ebook/765b38a5690203d8ce2f0 ...

  10. python语言线程标准库threading.local源码解读

    本段源码可以学习的地方: 1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建: 2. 可以重写一些魔术方法,比如 __new__ 方法,在调用 object.__new__(cls ...