搞大模型应用开发的梦梦学姐头像
关注

跨页表格语义断裂:从解析、分块到检索的完整解法

1. 问题:物理分页切断了表格的语义完整性

摘要: 本文针对 RAG 系统中跨页表格因物理分页导致语义断裂的问题,提出一套从解析、分块到检索、生成的完整解决方案。解析层用 VLM 版面分析识别并合并跨页表格;分块层将表格作为整体 chunk,采用父子块模式与表头向下传播保证语义完整;检索层通过混合索引、元数据标签和表格摘要三道保险提升命中精度;生成层用小块检索、父块生成,必要时走 Agentic RAG 将表格转结构化数据交给 SQL 聚合分析,兼顾检索精度与语义完整性。

在 RAG(检索增强生成)系统里,跨页表格的语义被切断了。表格可能从这一页的底部延伸到下一页的顶部,物理边界与逻辑边界打架。签完之后,一个表头、一串数据行,物理分页把表格的完整性破坏了。

表格是行列关系,结构依赖性特别强。表头加上行列关系才是完整的语义。跨越分页的语义感知能力本身就比较难。PDF 是一页一页解析的,这是第三个分块力度的天然矛盾:切小了表格必然被切碎,切大了又会稀释检索精度。切小了会丢失语义。

表格类型五花八门:有线表、无线表、合并单元格的、嵌套的。表格前后往往有引导文字和分析文字,这些上下文也会被分块一起切断。

2. 解析层:从源头上把表格合并完整

低层也是最重要的一层。在文档解析阶段,就从源头上把问题处理掉。既然原来的问题是表格被切散了,那就在解析的时候识别出哪些表格跨页了,并把它们合并成一张完整的表格。

用视觉语言模型(VLM)做版面分析,识别页面上哪里有表格,表格有没有在页面底部被截断,下一页开头是不是延续了上一页的表格。识别出来之后自动合并。

也可以检测表格最后一行有没有闭合边框,下一页开头有没有出现新的表头。融合 VLM 和 Layout 版面分析,它可以检测断表、续表标记,然后做边框连续、页眉剔除、列宽对齐,就可以输出一个非常完整的 Markdown 或者是表格对象了。

3. 分块层:表格作为一个整体,绝不从中间切开

解析层做好之后,表格已经是完整的了。那么在分块层,把文档先解析成一颗结构树:章节、段落、表格。分块的时候,表格作为一个整体,当作一个 chunk。绝不从中间切开,chunk 的边界必须对齐文档的逻辑结构。

那如果表格实在太大,超过了 embedding 模型的 token 上限怎么办?这时候就用父子块模式,把大表按行拆成若干个子块。每个子块里都把表头重复带上。这样每个子块都是表头加自己的行。

按结构去切分,做表头向下传播。最小的力度必须是行,不能把一个单元格给切碎了。然后可以注入元数据。哪怕切成了 chunk1、chunk2、chunk3,每个小块都带着完整的表头信息,自己就能解释自己。

4. 检索层:混合索引 + 元数据 + 表格摘要

检索这一层还要再上一道保险。

第一道:混合索引。 表格和正文不要混在一起建立向量索引,分开建。表格走结构化索引,甚至可以放到支持表格查询的关系数据库里;正文走文本向量索引。查询的时候并行检索。

第二道:元数据。 给每个 chunk 加一些结构化的标签:属于哪个表格、表头是什么、前后 chunk 是谁、语义是否完整。这样检索的时候,如果命中了一个不完整的 chunk,系统能够自动把相邻的 chunk 拉进来,补全上下文。

第三道:表格摘要。 如果表格实在太长,可以先生成一个摘要文本,把摘要扔进向量库参与检索。检索命中摘要之后,再把完整的表格返回给大模型,等于用摘要做代理。

5. 生成层:检索用小块,生成用完整的父块

数据库里存三种东西:第一个是刚刚切的 chunk,第二个是全局的摘要(宏观语义命中),第三个是预生成的问题。

当用户提问命中小块之后,不直接把小块给大模型,而是顺藤摸瓜,把它们对应的父块——也就是那个保留了完整的 HTML 或 Markdown 结构、完整上下文和来源数据的跨页大表格——作为最终的 context 给大模型。

6. 进阶:行数特别多的表格走 Agentic RAG

如果是那种行数特别多的表格,要走 Agentic RAG。直接把这种跨页表格转换成 CSV、SQLite 或者 DataFrame 格式,存到数据库里,交给 Agent 去执行。调用 text2sql 或者 pandas 工具,让 SQL 帮你做聚合、排序和对比。

这样不仅降低了 token 的消耗,因为只返回查询结果和必要的证据;整个过程还保留了 SQL 和行号,完全审计、可复用。

7. 总结

层级核心策略关键手段
解析层源头合并跨页表格VLM 版面分析、断表/续表检测、边框连续、列宽对齐
分块层表格整体作为一个 chunk结构树、父子块、表头向下传播、元数据注入
检索层混合索引 + 元数据 + 摘要表格与正文分开建索引、结构化标签、摘要代理
生成层小块检索、父块生成顺藤摸瓜返回完整表格
进阶Agentic RAG转 CSV/SQLite/DataFrame,text2sql 聚合分析

核心思想一句话:解析层把表格合并完整,分块层把表格当作整体,检索层用小块命中、用父块生成,最终既保住检索精度,又保住语义完整性。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2601_96911161/article/details/165757711

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--