深入理解 BM25:原理篇
BM25 解决的到底是什么问题全文检索首先需要回答两个不同的问题哪些文档匹配查询词匹配的文档应该如何排序倒排索引解决第一个问题。对于查询词database搜索引擎可以直接找到包含该词的文档列表。BM25 主要解决第二个问题同样包含database的文档哪一篇更相关直觉上一个合理的词项相关性模型至少应考虑三件事查询词在当前文档中出现得越多文档通常越相关一个词在整个语料库中越少见它越有区分度同样出现三次短文档中的三次通常比超长文档中的三次更重要。BM25 正是把这三种信号组合起来TFTerm Frequency词频信号表示查询词在当前文档中出现了多少次。IDFInverse Document Frequency稀有度信号表示一个查询词在整个语料库中有多稀有。字段长度归一化长文档天然更容易包含查询词不能仅因为篇幅长就获得更高分数。不过 BM25 并不是语义模型。它不知道“数据库”和“DBMS”语义相近也不理解句子的真实含义。它做的是一种非常高效、可解释、面向词项匹配的相关性估计。BM25 公式拆解对于查询 中的每个词项 文档 的 BM25 得分通常写成其中符号含义查询词 在文档 中的出现次数即 term frequency当前文档该字段的 token 数avgdl所有文档该字段的平均 token 数文档总数包含词项 的文档数即 document frequency控制词频饱和速度控制字段长度归一化强度Tantivy 0.26.1 中固定使用const K1: Score 1.2;const B: Score 0.75;这也是常见的默认参数组合。2.1 IDF越少见的词区分度越高Tantivy 使用的 IDF 为当一个词几乎出现在所有文档中时它没有多少区分能力IDF 较低。当一个词只出现在少量文档中时它更可能代表用户真正关心的主题IDF 较高。例如在技术文档库中the、is、data可能很常见MVCC、DiskANN、fieldnorm可能更稀有。因此后者通常能给文档带来更高的相关性增量。公式中的0.5和外层1是平滑处理使 IDF 在极端数据分布下仍保持稳定且为正。2.2 TF 不是线性增长而是逐渐饱和假设当前字段长度正好等于平均长度即BM25 的词频部分可以简化为使用 Tantivy 的 词频TF 部分11.00021.37541.692101.964趋近无穷2.200第一次命中很重要从一次增加到两次仍然有明显收益但从一百次增加到一百零一次几乎不会改变排序。这就是“词频饱和”。如果词频完全线性增长一篇反复堆砌关键词的文档会轻易压过正常文档。BM25 用 抑制了这种行为。2.3 字段长度归一化BM25 的长度归一化项为当 时完全不考虑字段长度。当 时完整地按照字段长度相对平均长度进行归一化。Tantivy 使用 意味着长度是重要因素但不会完全主导评分。假设查询词在文档中都出现三次平均字段长度为 100当前字段长度不含 IDF 的 TF 得分501.7601001.5712001.294同样出现三次短字段中的命中更集中因此得分更高。这里有一个容易被忽略的关键点BM25 归一化的是“字段经过 analyzer 后得到的 token 数”不是原始字符串长度也不是整篇文档所有字段长度的总和。分词器、停用词过滤、N-gram 参数都会改变 token 数因此也会间接改变 BM25 分数。落地 BM25 需要哪些数据把公式翻译成存储引擎语言需要四类数据范围数据Tantivy 中的来源当前文档、当前词项词项出现次数 即 term frequencypostings 中记录的 term frequency当前文档、当前字段字段长度 即该字段分词后的 token 数fieldnorm /FieldNormReader全局字段统计该字段的总 token 数以及索引文档总数各 segment 的倒排索引元数据当前查询词的全局统计包含该词项的文档数 即 document frequencyterm dictionary 中TermInfo记录的 doc frequencyBM25 看起来只是一个公式但它要求索引在写入阶段提前保存每个 term 在每个文档中的频率每个文档字段的长度每个 term 的文档频率每个字段的全局 token 统计。如果索引只保存“这个 term 出现在哪些文档中”而不保存频率和字段长度那么就无法完整计算 BM25。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻

微信逆向编程必备:gh_mirrors/we/wechatPc中的Hook技术与内存分析

微信逆向编程必备:gh_mirrors/we/wechatPc中的Hook技术与内存分析

微信逆向编程必备:gh_mirrors/we/wechatPc中的Hook技术与内存分析 【免费下载链接】wechatPc PC微信hook源码,PC微信注入,逆向编程,可以制作微信机器人玩玩,仅供学习,请不要用于商业、违法途径,…

2026/8/14 11:31:18 阅读更多 →
免费文档下载工具:一个脚本搞定 30+ 平台

免费文档下载工具:一个脚本搞定 30+ 平台

免费文档下载工具:一个脚本搞定 30 平台 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的烦恼而…

2026/8/15 16:27:45 阅读更多 →
模拟位置总被检测?3步让应用彻底查不到

模拟位置总被检测?3步让应用彻底查不到

模拟位置总被检测?3步让应用彻底查不到 【免费下载链接】HideMockLocation Xposed module to hide the mock location setting. 项目地址: https://gitcode.com/gh_mirrors/hi/HideMockLocation 打开某款打车软件准备定位打卡,结果提示"检测…

2026/8/14 11:31:18 阅读更多 →

最新新闻

从WASM到JVM:Asmble编译原理与字节码转换技术深度剖析

从WASM到JVM:Asmble编译原理与字节码转换技术深度剖析

从WASM到JVM:Asmble编译原理与字节码转换技术深度剖析 【免费下载链接】asmble Compile WebAssembly to JVM and other WASM tools 项目地址: https://gitcode.com/gh_mirrors/as/asmble Asmble是一款强大的开源工具,它提供了将WebAssembly&#…

2026/8/15 20:48:34 阅读更多 →
Shader 低精度类型:为什么移动端收益“巨大“,桌面却无感?

Shader 低精度类型:为什么移动端收益“巨大“,桌面却无感?

🎬 开场:一个"改个类型帧率翻倍"的魔法 小王把移动端 Shader 里的 float 一股脑改成 half, 帧率蹭蹭往上涨,手机也不烫了!🎉 他兴奋地跑去桌面版也改,结果——几乎没变化。 他困惑了:“同样是改精度,为什么手机上是魔法,PC 上是废操作? 移动端用低精度到…

2026/8/15 20:48:34 阅读更多 →
告别录屏和会员限制:用 res-downloader 免费嗅探下载视频号、抖音、QQ音乐资源的 6 个实用技巧

告别录屏和会员限制:用 res-downloader 免费嗅探下载视频号、抖音、QQ音乐资源的 6 个实用技巧

告别录屏和会员限制:用 res-downloader 免费嗅探下载视频号、抖音、QQ音乐资源的 6 个实用技巧 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Tren…

2026/8/15 20:48:34 阅读更多 →
SetPass Calls 深度解析:比 Draw Call 更重要的性能指标

SetPass Calls 深度解析:比 Draw Call 更重要的性能指标

一、先看一个常见的困惑 打开 Unity Profiler,你会看到两个指标: Batches: 200 SetPass Calls: 35很多人只关注 Draw Call / Batches,但其实 SetPass Calls 才是性能杀手。 为什么? 因为一次 SetPass 的成本,通常是一次 Draw Call 的 几倍到几十倍。二、什么是 SetPas…

2026/8/15 20:48:34 阅读更多 →
光照与阴影优化:游戏里最“烧钱“的视觉大户

光照与阴影优化:游戏里最“烧钱“的视觉大户

🎬 开场:一个"点几盏灯就崩"的惨案小王想让场景更真实,兴冲冲地摆了 20 盏点光源、开了实时阴影, 还给每盏灯都开了阴影……结果——帧率直接腰斩,手机秒烫!🔥 “灯不就是照亮吗&…

2026/8/15 20:48:34 阅读更多 →
深入理解React Native Gallery Toolkit实现原理:Reanimated 2动画与手势系统结合

深入理解React Native Gallery Toolkit实现原理:Reanimated 2动画与手势系统结合

深入理解React Native Gallery Toolkit实现原理:Reanimated 2动画与手势系统结合 【免费下载链接】react-native-gallery-toolkit Reanimated 2 powered gallery implementation 项目地址: https://gitcode.com/gh_mirrors/re/react-native-gallery-toolkit …

2026/8/15 20:47:33 阅读更多 →

日新闻

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址:本地PC端运行(或Web…

2026/8/15 0:00:30 阅读更多 →
重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时,传统的数据获取方式往往让我们陷入困境—…

2026/8/15 0:00:30 阅读更多 →
一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

快消品(FMCG)是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中,往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统(WMS)与制造业、电商行业存在明显区别:它不仅需要管…

2026/8/15 0:02:30 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/15 12:59:14 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →