跨页段落合并
概述
跨页段落合并是 MinerU 内容生成器中的多页拼接策略,用于检测并合并被分页打断的连续段落,确保输出文档的阅读连贯性。
关键内容
核心问题
PDF 是分页存储的,一个自然段落可能被分页符打断,分布在第 N 页末尾和第 N+1 页开头。如果不做合并处理,输出中会出现断裂的段落,影响阅读体验和 RAG 检索效果。
检测逻辑
MinerU 通过两个条件判断是否存在跨页段落:
-
前页末尾不完整:第 N 页末尾不以句号、问号、叹号等完整句子结束符结尾
not re.search(r'[。!?.!?]\s*$', prev_page.rstrip()) -
当前页开头是续接字符:第 N+1 页开头是小写字母(英文)或中文字符
re.match(r'^[a-z\u4e00-\u9fff]', page_md.lstrip())
合并策略
当两个条件同时满足时: - 移除前一页输出末尾的换行符 - 在当前页内容前加一个空格,直接拼接
否则在两页之间插入 \n\n 分隔。
适用场景
- 英文学术论文:长段落经常被分页打断
- 中文技术文档:中文段落无空格分隔,更需要连续性检测
- 多栏排版:栏末段落延续到下一栏
局限性
- 仅检测简单的句子结束符,无法处理省略号、分号等边界情况
- 对于以非完整句子结束但实际已结束的段落(如列表项),可能产生误合并
- 不支持 RTL(从右到左)语言的跨页检测
来源
- raw/assets/MinerU/minerU_08_output.md — MinerU 深度解析系列 · 第八篇:内容生成器与输出管道
相关
- 内容生成器 — 所属模块
- MinerU — 所属项目
- PDF文档解析流水线 — 所属流水线