什么是 BM25?
BM25 是一种概率词法排序函数,它根据查询词匹配、词频饱和、逆文档频率和文档长度归一化为文档打分。
工作原理
BM25 是信息检索中长期有效的基线方法,因为它简单、可解释,并且在精确文本匹配上依然很强。它相比原始词频更稳健:重复词的边际收益会逐渐饱和,同时会对文档长度做归一化。在 AI 搜索和 RAG 中,BM25 常作为混合搜索里的稀疏检索分支,尤其适合查询中包含精确名称、错误码、法律短语、配置键,或其他仅靠嵌入不够可靠的 token。
主要特点
- 使用词法词项匹配排序,而不是学习得到的语义向量
- 利用逆文档频率奖励信息量更高的词
- 使用词频饱和,避免重复词无限支配排序
- 通过文档长度归一化,避免过度偏向长文档
- 仍是 RAG 系统中强基线和混合搜索的重要组成部分
常见用途
- 按精确 API 名称和参数搜索开发者文档
- 通过错误码检索支持文章
- 为 RAG 评估提供词法检索基线
- 将 BM25 命中结果与稠密检索结果进行排名融合
- 服务于要求精确措辞的合规或法律搜索
示例
loading...
Loading code...常见问题
为什么有了 LLM 还需要 BM25?
LLM 仍需要可靠检索。BM25 对字面证据、精确词和标识符很强,因此在 RAG 管线中仍然有价值。
BM25 是语义搜索吗?
不是。BM25 是词法方法:它根据词项匹配和权重为文档打分。语义搜索通常依赖嵌入。
BM25 什么时候比稠密检索更好?
它通常在精确字符串、错误码、产品名、法律短语,以及精确措辞就是信号的查询上表现更好。
BM25 在混合搜索中怎么用?
BM25 生成稀疏词法候选,稠密检索生成语义候选,然后对两类排序结果进行融合或重排。