bm25算法是TF-IDF算法的改进版本,考虑了查询中单词在文档中出现的频率、单词自身的重要性和文档的长度
应用:信息检索领域的排名函数
公式
说明:
- 表示查询和文档的匹配分
- 首先对查询进行分词,获得每个单词
- 计算单词的逆文档频率,其中为文档总数(常量),是包含单词的文档数,意味着出现单词的文档数越多,单词越不重要。例如:the,is,是,的这些单词。
- 表示单词在文档D中出现的频率,出现的频率越高,说明匹配分越高。
- :正系数,控制词频的饱和度,取值范围[1.2,2]。越大,词频,即单词在文档D中出现的频率越大,文档D的匹配分数越高
- :通常设置为0.75,取值范围[0,1],控制文档长度对评分的影响,b越大影响越大,0时没有影响。文档长度越大,评分越低。为所有文档的平均长度,为常量。为文档的长度。越大,分母越大,则分数越低。
与TFIDF的区别
公式
- 表示单词的词频,词频越高,重要性越高
- 表示单词在所有文档中出现的频率的倒数,再以log为底数得到,出现的频率越高,越不重要
- bm25相对tfidf,引入了系数k1,b,衡量了tf和文档长度对评分的影响
Best Matching 25 其中25的含义是此算法经过 25 次迭代调整之后得到的,这也是这个匹配算法经久不衰的原因。
网友评论