TextIn 近期在 GitHub 上正式开源了一款文档解析效果测评工具(仓库名称:markdown_tester),旨在通过量化指标精准评估文档转换为 Markdown 的还原质量。正好这段时间许多开发者和从业者都在热议表格解析的痛点,本文就借助该工具中关于表格的评估指标,深入拆解其设计思路与背后的考量。
表格解析为何如此关键
为什么表格总是被单独拿出来讨论?
追根溯源,包含表格的文档实在太普遍了——学术论文、年度报告、财务报告、行业深度研究以及法律卷宗,几乎所有专业文档中都少不了表格。更值得注意的是,表格里承载的往往是那些最核心、最精密的数据。因此,在知识库搭建或 RAG(检索增强生成)系统建设等实际应用场景中,表格解析的成功与否直接决定了整套系统的可用性。
具体来说,表格解析对 RAG 系统的价值体现为以下三个层面:
信息召回的精度与准确度:表格天然具备结构化特征,例如日期、金额、编号等字段。若能将这些信息以规整的格式提取出来,检索系统就能按需精准召回,而不必把表格内容当做一大段混杂的文本去模糊匹配。
处理复杂文档的能力:真实世界的专业文档中,表格常常设计得非常复杂——合并单元格、多层表头、跨页拆分,甚至嵌入图片或标注。如果没有可靠的表格解析能力,RAG 系统遇到这类文档基本就会失效。
上下文理解与回答质量:以财务报告为例,“营收”这一指标在表格和正文描述中是相互支撑的。只有将表格数据原样保留下来,才能支撑大模型生成既准确又有深度的回答。
算法开发中表格解析的真正难点
表格的多样性,可以说是解析算法绕不开的噩梦。无线表、合并单元格、跨页表格、超密集表格、不规则表单,以及单元格内自带多行文本——这些都是日常挑战。再加上扫描件模糊、页面倾斜、手写批注等因素,难度直接拉满。
因此,从算法开发的角度来看,表格解析不是“差不多达到某个准确率”就能交差的任务,它需要对上述极端情况具备充分的鲁棒性。
怎样才算一个理想的效果?
从直观感受上说,评判标准其实很直白:
- 每个单元格的内容都不能认错。
- 表格整体不能出现错行、漏行、错误的合并或拆分。
不过,仅凭肉眼观察还不够,还需要量化指标来佐证。TextIn 的测评工具针对表格专门设计了三个关键指标:
表格文本全对率:简单来说,就是解析出来的表格中,每个单元格的文字是否与原始表格完全一致。这个指标非常严格——只要有一个单元格出错,整个表格就被判为错误,因此结果大概率会偏低。但从金融、经济、学术等领域的视角来看,这种严苛恰恰是必要的——比如年报中某个数字写错一位,结论可能就会完全偏离。
表格结构树状编辑距离:这个概念稍微绕一点。测评中,表格结构被转换为树状表示。编辑距离(Edit Distance)最早来自机器翻译领域——两个字符串之间需要经过多少次插入、删除、替换才能变得完全相同。树状编辑距离就是将对比对象从字符串换成逻辑树,操作对象从字符换成树的节点(增、删、改)。
在表格解析场景中,如果解析出来的结构与实际结构一模一样,这个编辑距离就是 0,对应满分 100。得分越高,意味着结构还原得越完整;一旦出现错行、漏行、合并单元格搞错,分数就会相应下降。
表格树状编辑距离:这实际上是前两个指标的综合版本。它的计算方式是:将所有表格的树状编辑距离分数(包含文字部分)加总,再除以表格总数。也就是说,它同时考量了文本全对率与结构准确度,能做到两者兼顾才算真本事。
几个直观案例,一看就懂
说一千道一万,不如直接看例子。
例如下图展示了一个解析失败的表格,数据完全错乱,各列对不上位。如果后面接一个大型语言模型,指望它在这种状态下提取参数、做分析、下结论,几乎是不可能的。
再对比另一个正确解析的案例:尽管表格没有框线,而且涉及合并单元格,但解析结果依然精准还原了每个单元格的文本以及它们之间的结构关系。这样的质量,才是真正为 RAG 系统打下可靠基础的水平。
