ES相似度打分算法

ElasticSearch相似度打分算法

1-TF

TF(Term Frequency)——词语频率,也称词频

  • 算法 词条在文档出现的频率—— Σ 关键词出现次数/该文档的总词数 (这里的Σ就是算出所有词频,然后相加)

  • eg 用户搜索——【A,B】 ES索引库里的所有文档 [A,D,G] [C,F,W],[K,I,O]

    A在第一条文档出现了1次,总词数为3则——1/3===》0.333分

    B在第一条一次都没出现====》0分 最终检索出来的0.333+0=0.333分

    检索出第一条文档,至此我们解决了词语出现次数排列检索结果

但是,如果一条文档里,有很多我们不想要检索的词条呢?例如,苹果出现了1次,而我不小心连续输入了20次啊,那么该分数会偏高,甚至高于其他有关键字的,例如搜出只有一条是"苹果啊啊...x20",其他索引全是"啊啊啊x20",最终覆盖掉我们需要的信息,此时引出了TF-IDF ——解决了词条权重问题

2-TF-IDF

就是在TF的基础上,乘一个IDF

IDF(Inverse Document Frequency)

image-20240319232312695

N:总文档数

n:出现次数

为了防止一次都没出现n为0的情况,我们给分母+1(平滑操作)

image-20240319232534531

  • eg

image-20240319232417090

此时我们更想要看到的Lucence权重更大

  • 最终式子

image-20240319233016874

3-BM25

BM(Best Matching)

第一次修改
  • 在原先的TF-IDF将TF做了修改

在传统的TF值理论可以无限大增加一个常量k做出一个限制 两者公式

image-20240319233937672

image-20240319234257103

  • 传统的tf(出现次数)增加时TF Score增加幅度很大,甚至无限

  • BM25的TF Score会被限制在0~k+1间,最终趋于水平,k=1.2,使用者可修改

第二次修改
  • 引入了平均文档长度概念,探究单个文档长度和平均所有文档长度间比值对TF Score的影响

    image-20240319234726787

  • image-20240319234735660

  • b:常量。决定L对评分的的影响

    image-20240319235027187

  • 不同L,对词频TF Score影响的走势

  • 文档越短,斜率(区域上限的速度)越大,反之慢 eg:

    • 词少的文档,匹配词少,快速确定相关性 词少,文档长度小,L小,L在分母,分母小,整体大

    • 打个比方。大篇幅内容,1本书内容,需匹配大量内容才知道重点

  • 这里的参数b就是决定了L对评分的影响力度

最终公式

image-20240319235528771

优势
  1. 可调节参数k,b——灵活

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值