丑梨AI 完成业务升级:高性能文档压缩 × RAG 数据工程基座了解新业务 →

表格结构识别怎么还原合并单元格与阅读顺序

结论先行:表格解析的关键是“结构识别”而非“文字识别”。只有还原出合并单元格(rowspan / colspan)和正确的阅读顺序,下游才能把表格当作一张完整的表来检索。

一、表格为什么难

文档里的表格不是纯文本,它携带行列关系。普通 OCR 把单元格逐个识别成文字,却丢掉“哪几个单元格合并成了一个”。一旦结构丢失,表格在数据里就变成一堆孤立片段,检索时要么找不到,要么拼错。

财报、研报、招股书恰恰是表格最密集的文档类型。一张跨页利润表被拆散后,检索净利润可能命中表头碎片,检索营业收入命中另一页的数据行,拼出来的答案看似通顺、实则错行。这类错误在评测里表现为检索命中但生成错误,定位起来比纯检索失败更费劲,因为每一片看起来都“对”。

常见的绕路有两种:把表格截图直接交给通用多模态模型,或者把整张表硬转成 CSV。前者批量跑不动、结果难校验;后者一遇到合并单元格就错位,层级关系全靠猜。表格有自己的版式语义,正确做法是在解析阶段就把结构识别做掉,而不是把问题推给下游——切片和检索的每一次返工,都是在为这一步省下的功夫买单。

二、TSR 负责还原结构

表格结构识别(Table Structure Recognition, TSR)由 tsr.onnx 完成,它在版面分析定位到表格区域之后,输出带 rowspan / colspan 的 HTML 结构。合并单元格因此能被正确还原,而不是被粗暴拆成若干小格。行头、列头和数据区域的对应关系也随之固定下来。

为什么输出 HTML 而不是纯文本?因为行列标签本身就是语义:跨行跨列的关系被显式记录,下游切片可以按行组织文本,LLM 也能按表格语义理解内容。解析时不保留结构,事后想从碎片里恢复,成本远高于一开始就做对。

三、阅读顺序决定检索正确性

阅读顺序回答“先读哪格、后读哪格”。对跨页表格、竖排表头、嵌套表格,顺序错了会导致提取出的内容语义断裂。本地推理在还原结构的同时保留阅读顺序,确保后续切片拿到的表格文本是人类可读的顺序。

坐标信息同样保留,它支撑版面级溯源——当检索结果引用某个数字时,可以回溯到原文档的具体页面与区域。对金融、审计这类需要留痕核查的场景,这是表格解析不可省略的能力,也是回答能否被采信的基础。

能力解决的问题
合并单元格还原避免表格被拆散成碎片
阅读顺序避免跨页/竖排表头错乱
坐标保留支撑版面级溯源

四、表格指标怎么进知识库

在投研场景中,表格里的指标(如营收、净利)会被抽取进 SQLite 指标库,走 Unstructured-to-SQL 路线,既能被向量检索,也能被结构化查询。两种通道互相补充:向量检索负责语义模糊的问题,SQL 负责精确数字的问题。

这条路的收益可以直接度量。在某个已匿名客户的投研语料项目中,表格指标抽取入库后与向量库并行服务,检索冒烟测试 000001、000002 均 10/10 命中——编号、指标词这类精确查询不再依赖纯向量召回的运气。表格结构率也由此成为语料级评测的关键指标之一。

表格结构识别是版面分析的一部分。更完整的扫描件链路见 扫描件 OCR 与版面分析;表格识别结果如何切片入库,见 切片策略投研 RAG 实战

真实场景:从表格还原到指标库的完整链路

表格识别的终点不是「看起来像表格」,而是结构化数据可查询。在 A 股投研 RAG 项目里,研报中的财务表格经版面分析还原行列结构后,指标被抽取进 SQLite 指标库(Unstructured-to-SQL),单是两家上市发行人的语料就沉淀了 457 项指标。这意味着用户问「某公司某年度的营收是多少」时,系统可以直接命中指标记录,而不是把一段 OCR 文本丢给模型去猜。

这条链路的关键前提是合并单元格还原:研报表格里跨行跨列的表头极其常见,rowspan / colspan 还原失败的表格,抽出来的指标会错位到错误的报告期或错误的科目上——数据错误比检索不到更危险,因为它看起来像真的。表格结构与父块上下文如何配合检索,见父子 Chunk:精准召回与完整上下文;完整的投研落地案例见金融投研 RAG 实战

常见问题 FAQ

Q1:表格解析和文字识别有什么不同?

文字识别只把单元格变成文本,表格解析还要还原行列关系和合并单元格。缺了结构,表格在数据里就是碎片,检索要么找不到、要么拼错行,生成答案看似通顺实则错行。

Q2:合并单元格靠什么还原?

由 tsr.onnx 做表格结构识别,输出带 rowspan / colspan 的 HTML,合并单元格得以正确还原,而不是被拆成多个小格,下游才能按行组织语义。

Q3:阅读顺序错了会怎样?

跨页表格、竖排表头、嵌套表格的阅读顺序一旦错乱,提取出的内容会语义断裂,下游切片拿到的是错序文本,引用数字时也无法回溯到原文位置。

Q4:表格里的指标怎么被检索到?

在投研场景,表格指标会经 Unstructured-to-SQL 抽进 SQLite 指标库,既能向量检索也能结构化查询,编号与指标词的精确命中不再依赖纯向量召回。

需要搭建企业级 RAG 知识库?了解丑梨AI

私有化部署的 RAG 数据工程基座:解析、清洗、脱敏、压缩、切片、治理、评测一站式流水线,全本地推理,数据不出域,单机可部署。