ElastisSearch相似度打分算法

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. ashi
    Windows Chrome
    8 月前
    2024-8-31 23:47:54

    好厉害,没学过也没看懂

    来自广东
    • Zww
      ashi
      Linux Edge
      8 月前
      2024-8-31 23:51:48

      我那个时候学着玩的哈哈哈,前置知识差的有点多😂

      来自广东
  2. 博主
    Windows Edge
    已编辑
    10 月前
    2024-7-13 21:28:38

    666

    来自广东
  3. 博主
    Windows Edge
    10 月前
    2024-7-13 21:28:34

    66666

    来自广东

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇