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 次迭代调整之后得到的,这也是这个匹配算法经久不衰的原因。
网友评论