Page 按页分块
Page 按页分块是一种按照文档物理页组织内容的分块策略。它会尽量让每个分块对应原始文档中的一页,适合需要保留页码、版面位置和页面级上下文的 PDF 文档。
核心概念
Page 分块的核心思想是:以页面为天然边界,而不是以标题、段落或 token 数为主要边界。
与其他策略的区别:
- vs 智能分块:智能分块按语义单元合并和切分;Page 分块按物理页归组。
- vs 标题分块:标题分块依赖文档标题层级;Page 分块不要求标题结构。
- vs 父子分块:父子分块面向检索精度和上下文平衡;Page 分块面向页面级定位和引用。
- vs 正则分块:正则分块按自定义模式切分;Page 分块按 OCR/解析得到的页码坐标切分。
工作原理
Page 分块会先通过文档解析器提取 Markdown 文本和行级坐标,再根据坐标中的页码将文本行归入对应页面。
PDF 文档
↓
解析器提取文本和坐标
↓
按 page_idx 聚合文本行
↓
每个物理页生成一个 chunk
↓
写入页码和坐标信息,支持后续定位
如果解析阶段没有提供坐标映射,系统会退化为将整篇文档作为一个页面级分块处理。因此,Page 分块更适合 PDF 等能稳定提供页码坐标的文档。
适用场景
1. PDF 报告和审计材料
年报、财报、审计报告等文档经常需要按页引用原文。Page 分块可以保留页码边界,便于问答结果回溯到具体页面。
示例:
第 12 页:资产负债表
第 13 页:利润表
第 14 页:现金流量表
使用 Page 分块后,每页内容会独立进入检索结果,方便定位来源页。
2. 合同、制度和法规文件
合同、规章制度、法规扫描件中,页码和版面位置经常是审阅依据。Page 分块可以避免跨页混合导致引用边界不清。
3. 版面结构比标题结构更重要的文档
部分 PDF 的标题层级不稳定,或 OCR 后标题无法可靠识别。这类文档使用标题分块可能不稳定,Page 分块可以提供更可预测的切分方式。
4. 需要页面级预览和溯源的场景
当业务侧更关心“答案来自第几页”时,Page 分块比纯语义分块更直观。
配置参数
基础配置
{
"chunk_token_num": 512,
"min_chunk_tokens": 10,
"layout_recognize": "MinerU",
"enable_heading_in_content": true
}
参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
chunk_token_num | 512 | 配置兼容项。Page 分块以页面为主边界,不会优先按 token 数拆页。 |
min_chunk_tokens | 10 | 最小分块 token 数,用于过滤过短内容。 |
layout_recognize | MinerU | PDF 解析器,用于提取 Markdown 文本和页码坐标。 |
enable_heading_in_content | true | 是否在页面内容中补充上级标题,帮助页面块独立理解。 |
enable_vision_enhancement | false | 是否启用图片理解,为图片生成文本描述。 |
当前 Page 分块会按坐标中的物理页归组,通常是一页一个 chunk。chunk_token_num 保留在配置中主要用于与其他现代分块策略保持一致。
图片理解
Page 分块支持图片理解配置。启用后,系统会为页面中的图片生成文本描述,使图表、截图、流程图等内容也能进入检索。
{
"enable_vision_enhancement": true,
"vision_description_format": "[图片描述]: {desc}",
"vision_batch_size": 3
}
适合启用图片理解的场景:
- 财报中的图表
- 产品手册中的截图
- 架构图、流程图
- 版面中图片承载关键信息的 PDF
优势与限制
优势
- 页面边界清晰,便于引用原文页码
- 对标题结构依赖低,适合标题识别不稳定的 PDF
- 与坐标信息结合好,方便页面级溯源
- 不容易把相邻页面内容混在同一个 chunk 中
限制
- 单页内容过长时,chunk 也会较大
- 跨页连续段落可能被拆到不同 chunk
- 对 OCR/解析器输出的页码坐标质量有依赖
- 不适合没有页码概念的纯文本或普通 Markdown 文档
与其他策略的选择建议
| 文档类型 | 推荐策略 | 原因 |
|---|---|---|
| PDF 年报、财报、审计报告 | Page 分块 | 需要页码级引用和溯源 |
| 标题层级清晰的手册 | 标题分块 | 章节结构比页码更重要 |
| 普通技术文档 | 智能分块 | 兼顾语义完整和块大小 |
| 法律合同,需要上下文完整 | 父子分块 | 检索小块,回答时带完整上下文 |
| 日志、固定格式文本 | 正则分块 | 可以按自定义模式切分 |
最佳实践
1. 优先用于 PDF
Page 分块最适合 PDF、扫描件、报告类文档。对于 Markdown、TXT 等无物理页概念的文档,优先选择智能分块或标题分块。
2. 关注单页内容长度
如果 PDF 单页信息密度很高,Page 分块可能产生较大的 chunk。此时可以考虑:
- 改用智能分块控制块大小
- 使用父子分块兼顾检索精度和上下文
- 对特别长的 PDF 页面先优化解析结果
3. 结合页面范围解析
对于超大 PDF,可以配合页面范围解析,只处理需要进入知识库的页面区间,减少无关内容进入索引。
4. 对图表型 PDF 开启图片理解
如果答案依赖页面中的图表、截图或流程图,建议开启图片理解,否则图片信息可能无法被文本检索命中。
常见问题
Page 分块是否一定一页一个 chunk?
在有页码坐标的 PDF 解析结果中,通常是一页一个 chunk。若解析结果没有坐标映射,系统会退化为将文档作为单个页面级内容处理。
chunk_token_num 会把长页面继续拆小吗?
当前 Page 分块以物理页作为主要边界,chunk_token_num 不会优先把单页继续拆成多个 chunk。若需要严格控制块大小,建议使用智能分块或正则分块。
跨页段落会如何处理?
跨页内容会按物理页分开进入不同 chunk。对于跨页连续段落,检索时可能需要同时命中相邻页;如果更重视跨页上下文完整性,可以考虑父子分块。
Page 分块适合做精准问答吗?
适合需要页面级引用的问答。如果问题通常只对应页面中的某个小段落,智能分块或父子分块可能有更高的命中精度。