美文网首页
BM25的改造-参照TF

BM25的改造-参照TF

作者: A_You | 来源:发表于2019-05-23 23:18 被阅读0次

需求

ElasticSearch 默认使用的是BM25算法进行排序, 参照指标有 IDF、TF、Doc_Length;并有相关权重加权;其实一切都非常完美,但是有客户反应,这样的排序规则解释性不强,就只是希望按照 词频-TF 进行排序;所幸只有这一家客户有这样的需求,并且搜索关键词比较单一

参数

BM25 在 ElasticSearch中的介绍如文档所所述,并且还有如下参数可以调节:

k1
This parameter controls how quickly an increase in term frequency results in term-frequency saturation. The default value is 1.2. Lower values result in quicker saturation, and higher values in slower saturation.
b
This parameter controls how much effect field-length normalization should have. A value of 0.0 disables normalization completely, and a value of 1.0 normalizes fully. The default is 0.75.

方案

在搜索关键词单一的情况下,可以考虑将 b 置为0,忽略文档长度的限制,IDF的权重是一样的,那么剩下的就只有TF权重的影响啦,从而间接的影响排序效果; Elastic Mapping 效果如下:

settings:
 "similarity": {
          "my_bm25": {
            "type": "BM25",
            "b": "0"
          }
        }

Mapping:
 "content": {
            "type": "text",
            "term_vector": "yes",
            "similarity": "my_bm25",
            "analyzer": "ik_smart"
          },

总结

BM25已经是非常好的效果,对于命中词的多样性越大;得分也会也高;对于复杂的搜索词,这种方案就不行啦,其实中间有一段时间一直在寻找 ignore idf 的方法;但是结果然并卵,虽然有一些拆你可以利用,但是也是需要重启集群,做各种配置,重点是只有少量的人在使用

ToDo

如果是你,你会有什么好的Idea,欢迎大家留言,指教!!!

相关文章

  • BM25的改造-参照TF

    需求 ElasticSearch 默认使用的是BM25算法进行排序, 参照指标有 IDF、TF、Doc_Lengt...

  • BM25下一代Lucene相关性算法

    前言 Lucene自6.0起使用BM25相关性算法代替了之前的TF*IDF相关性算法,切换到BM25之后,基于Lu...

  • TF-IDF和BM25

    TF-IDF和BM25搜索引擎排序中常用到的两种Score计算方式,用于评估两个文档的相关度。本文会介绍下两种算法...

  • TF-IDF和BM25

    搜索引擎总是会把相关性高的内容显示在前面,相关性低的内容显示在后面。那么,搜索引擎是如何计算关键字和内容的相关性呢...

  • Faster R-CNN tensorflow版本,cpu下运行

    代码地址:https://github.com/endernewton/tf-faster-rcnn 参照博客:h...

  • 经典检索算法:BM25原理

    本文cmd地址:经典检索算法:BM25原理 bm25 是什么? bm25 是一种用来评价搜索词和文档之间相关性的算...

  • tenfowflow 代码更新 (1.0以前代码 转换到 1.0

    代码更新 下载官方脚本: tf_upgrade.py 参照如下格式更新代码:下载目录: tensorflow/te...

  • 极简生活day13

    改造:小茶叶罐 今天参照网上的视频,改造了一个小茶叶罐,把它改造成针线盒。 这个茶叶罐是铁的矮罐子,很喜欢它的大红...

  • 2018-04-19

    Practical BM25 - Part 1: How Shards Affect Relevance Scor...

  • BM25算法

    1. bm25 是什么? bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法...

网友评论

      本文标题:BM25的改造-参照TF

      本文链接:https://www.haomeiwen.com/subject/pjbizqtx.html