[问题反馈]bm25检索器只会检索最后几个分块,需要添加分词处理中文

Author: jungerhsCreated Apr 12, 2026Updated Sep 1, 2026
Labelsbug

提交前检查

  • 我已在 Issues 中搜索,未找到相同问题
  • 我已使用仓库最新版(或 main 分支)进行复现

问题类型

代码运行错误

位置(章节/文件路径)

code/C8/rag_modules/retrieval_optimization.py

问题描述

查询: 麻婆豆腐

[方法1] BM25 无分词 (from_documents):

  1. 鸡蛋羹 - 附加内容
  2. 鸡蛋羹 - 操作
  3. 鸡蛋羹 - 计算

[方法2] BM25 + jieba分词 (from_documents+ preprocess_func) def chinese_preprocess_func(text: str): return list(jieba.cut(text))

BM25Retriever.from_documents( documents=chunks, k=3, preprocess_func=chinese_preprocess_func ):


  1. 麻婆豆腐 - 麻婆豆腐的做法
  2. 鸡蛋羹 - 附加内容
  3. 鸡蛋羹 - 操作

[方法3] RetrievalOptimizationModule.hybrid_search (修复后):

  1. 麻婆豆腐 - 麻婆豆腐的做法
  2. 麻婆豆腐 - 计算
  3. 鸡蛋羹 - 附加内容

复现步骤

No response

最小可复现代码/命令

bash

环境信息

No response

日志/报错信息与截图

bash

Source: datawhalechina/all-in-rag