文章指出扫描件只有像素,OCR 只能猜测字符,无法恢复表格的行列关系等语义结构。更危险的是错误常呈现为看似合理的数字或标点,可能悄然污染金融、科研等文档数据。
在上一篇文章中,我提出:PDF 保留了字形所在的位置,却丢弃了它们原本表达的含义。扫描件的情况更棘手,因为扫描件甚至连字形都没有,只有像素。除此之外的一切,都需要依靠软件猜测并重建。如今,这种猜测已经比过去准确得多,而这恰恰是它危险的地方。
二十多年的科学类图书排版经验,让我真正理解了表格究竟是什么。表格并不是一张由行和列组成的图片,而是一个关系网:这个数字属于这个行标签和这个列标题,一旦脱离其中任何一个,它就毫无意义。当出版商收到以图片形式提供的表格时,会安排人工重新制作,因为这里不存在诚实可靠的捷径。
这就是本文的核心观点:OCR 能把像素转换成字符,却无法把页面重新还原成文档。
如果 OCR 失败时会产生明显的乱码,那么这个问题早就解决了。你看到一堆垃圾内容,自然就知道识别出了问题。
但 OCR 并不是这样失败的。它会朝着“看起来合理”的方向出错。6 变成 8,1 变成 7,5 变成 S,逗号变成句点——在欧洲的财务文档中,这可能会让 1.234 变成 1,234,或者反过来。OCR 引擎会根据字符的形状选择最可能的结果,而这个最可能的字符,几乎总是一个真实存在的字符。
在普通文本中,这类错误尚可容忍。你读到一个只有一个字母错误的句子时,大脑会在不停顿的情况下自动纠正它。这就是为什么 OCR 给人的感觉如此准确:因为你是在一种由自己负责纠错的文本上测试它。
但在数字表格中,不存在这种冗余。每一个数字都承载着关键意义。周围的上下文不会告诉你,某个利润率应该是 6.2,而不是 8.2。错误的数字和正确的数字一样清晰可读,拥有同样的置信度,看起来也同样像一个事实。
以下是四种失败模式,我在真实文档中全部见过。
列漂移。 一个数值落到了它原本所属列的左边或右边。2024 年的收入现在出现在了 2023 年这一列下面。合计数依然能够对上,因为所有数字都还在,只是被归到了错误的期间。表面上看不出任何问题,直到有人用它计算增长率。
跨页延续的表格。 在纸质书中,通常会通过重复表头并添加续表标识来处理。OCR 看到的却是两个不同页面上的两个独立内容块。除非有某种机制明确地将它们拼接起来,否则表格的一半会悄无声息地消失,或者变成一张完全没有表头的孤立表格。
合并单元格与跨行、跨列单元格。 一个横跨三列的表头,或者一个覆盖两行的行标签,本质上都是完全通过几何位置表达的关系。一旦将其扁平化,这种关系就消失了。原本同时属于三个子列的值,现在可能只属于其中一个,也可能一个都不属于。
表格线被识别成字符。 一条细竖线可能被识别成数字 1 或竖线符号。一条横线可能变成一排连字符或下划线,并被解析器当作正文内容处理。只要你认真查看,这种错误很容易发现;但如果你不看,就根本不可能察觉。
大多数 OCR 引擎都会返回一个置信度值,人们很容易产生一种想法:设置一个阈值,低于阈值就标记,高于阈值就信任。
但这行不通,原因与它在 retrieval 中不起作用相同。置信度是逐字符计算的,衡量的是引擎对所看到形状的判断有多确定,而不是最终生成的文档是否合理。一个清晰、干净、置信度很高,但实际应为 6 的数字 8,会得到非常漂亮的分数。一个略有污迹、但识别正确的数字,得分反而可能更低。这个分数与你真正关心的问题毫不相关。
我曾在另一个场景中测量过这类问题,并发布了结果:retrieval 相似度分数无法区分可回答的问题和不可回答的问题,因为这两个群体存在重叠。这里的教训也是一样的:任何在得到答案之前计算出来的指标,都无法告诉你答案是否正确。检查必须在得到结果之后进行,并与原始来源核对。
这与我构建其他所有东西时遵循的原则相同:把扫描件视作文档存在过的证据,而不是文档本身。
始终保留页面图像。如果某个数字受到质疑,答案不应该是一行日志,而应该是它来源页面的图像。这就是扫描文档版本的引用凭证。
把表格重新构建成真正的表格,并在整个处理 pipeline 中始终保持其表格结构。被扁平化成普通文本的表格,会失去行与列之间的对应关系,而这种关系正是表格存在的唯一理由。
要求每一个数字都能够在原始来源中找到。不是意译后的内容,也不是大致存在,而是必须能够直接找到。如果一个数字无法在其声称来源的页面上逐字定位,就不应该再次引用它。
明确说明输入材料是扫描件。把这一点写在读者能够看到的输出结果中,而不是藏在无人查看的日志里。基于清晰的 born-digital PDF 制作的简报,与基于传真复印件制作的简报,理应获得不同程度的信任。读者有权知道自己拿到的是哪一种。
绝不要悄悄修正数字。如果某个数字看起来有问题,就标记出来并展示原始来源。不可见地修正它,意味着下一个人会把你的猜测当成事实继承下去。
出版商早已了解这一切。他们会为此预留预算,雇人手工重建表格,并将扫描稿视为一项成本,而不是一种便利。
真正会受到伤害的,是那些认为“PDF 就是 PDF”的人:阅读由打印稿扫描而来的管理账目的收购方;根据一组拍摄下来的财务报表开展工作的贷款机构;以及所有关键数字以数字图像形式送达的人。
别人发给你的文档,与你的软件读取到的文档,并不总是同一份文档。对于 born-digital 文件,两者之间的差距很小;但对于扫描件,你最终做出的决策,可能建立在一个原本根本不存在的数字上。
要么引用来源,要么删除主张。当来源只是一张页面照片时,也要明确说出来。
如果要采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。