在扫描文档上运行OCR PDF 会生成识别的文本。对于大多数用户来说,目标是可搜索的 PDF。但是,当识别的文本需要导入数据库、由搜索引擎索引或由应用程序查询时,标准 OCR 输出格式并不理想。以针对数据库导入和索引优化的结构化格式导出 OCR 结果,将扫描的文档存档转换为与业务系统集成的可查询数据。
要点
数据库就绪的 OCR 输出格式包括用于表格数据的 CSV、用于结构化文档内容的 JSON 以及用于需要保留层次结构的文档的 XML。与标准 OCR 输出的主要区别在于,面向数据库的格式包括一致的字段映射、数据类型指示符以及低置信度识别结果的错误处理。在 OCR 之前准备 PDF(包括纠偏、对比度增强和分辨率调整)可显着提高导出数据的质量。

为您的数据库选择正确的输出格式
CSV 输出非常适合扫描的表单和表格,其中每个文档对应于数据库中的一行。每个表单字段变成一列,每个扫描文档变成一行。 CSV 无需转换即可直接导入电子表格应用程序和关系数据库。局限性在于 CSV 无法表示分层数据。如果扫描的文档具有嵌套结构,例如包含多个行项目的发票,则 CSV 会强制您展平结构或将输出拆分为多个文件。
JSON 输出自然地处理嵌套和变量结构。具有标题部分和多个行项目的发票表示为具有标题数组和行项目数组的 JSON 对象。 JSON 导入到 MongoDB 等文档数据库、Elasticsearch 等搜索索引以及大多数现代应用程序平台中。从 OCR 到 JSON 再到数据库的提取 PDF 数据管道是 2025 年文档理解应用程序最常见的架构。JSON 结构还保留 OCR 置信度分数,这使数据库查询可以自动过滤掉低置信度结果。
当扫描的文档需要符合行业标准架构时,首选 XML 输出。法律、医疗和政府文档处理通常需要根据特定文档类型定义进行验证的 XML 输出。 XML 格式支持单个文件中的结构和元数据,并且是许多企业内容管理系统所需的输入格式。 WukongPDF 的 OCR 工具支持 CSV、JSON 和 XML 输出格式,因此您可以选择与数据库导入管道匹配的格式,而无需进行后处理。
尝试 PDF OCR
无需安装。直接在您的浏览器中工作。
预处理扫描的 PDF 以提高 OCR 准确性
对于原本打印在彩纸上或因年代久远而泛黄的文档,在 OCR 之前将扫描件转换为纯黑白可以显着提高识别准确率。 OCR 引擎很难将文本与彩色或纹理背景分开。使用保留文本同时删除背景的阈值转换为黑白,为 OCR 引擎提供干净的输入。大多数扫描软件和图像编辑器都包含具有可调节阈值的黑白转换功能。在不同的阈值下测试几页,找到产生最干净文本的设置。
数据库导入会放大 OCR 错误。可搜索 PDF 中的误读字符会带来一些小不便。数据库字段中的相同错误可能会导致记录无法找到、分类错误或与错误的实体匹配。在 OCR 之前投入时间对扫描文档进行预处理可显着降低错误率。三个最有影响力的预处理步骤是对页面进行倾斜校正(即使旋转几度)、增加对比度以使文本在背景中清晰突出,并确保扫描分辨率至少为 300 DPI。
倾斜校正可纠正以微小角度扫描的页面。即使旋转两度也会导致 OCR 引擎误读线条边缘的字符。大多数 OCR 工具都包含自动纠偏功能,但值得验证它是否在文档上正确激活。打开几个经过 OCR 处理的页面,检查识别的文本框是否与可见文本对齐。未对齐的框表示纠偏失败,这将在数据库中产生垃圾数据。对比度增强对于用老化或发黄的纸张扫描的文档尤其重要。在 OCR 之前增加文本和背景之间的对比度可以将具有挑战性的扫描的识别准确度提高 10% 到 20%。
将 OCR 输出字段映射到数据库列
对于字段位置因页面而异的文档,关键字锚点比固定坐标更可靠。根据目标数据之前或之后的文本(而不是其位置)定义提取规则。无论标签出现在页面上的什么位置,“提取标签发票总计后的数字”之类的规则都有效。基于关键字的提取要求 OCR 输出包含完整识别的文本及其原始空间顺序,JSON 输出会保留这一点,而 CSV 输出通常不会。
OCR 输出和数据库导入之间的差距是字段映射。 OCR 生成按页面位置组织的文本。数据库需要按字段名称组织的文本。弥合这一差距需要定义一个映射,该映射实际上表示第一页右上角的文本是发票编号,并且位于invoice_number 列中。对于布局在所有文档中保持一致的结构化表单,请使用位置坐标或关键字锚定义一次映射。
对于布局不同的半结构化文档,请使用基于关键字的映射而不是位置映射。定义诸如“文本发票编号后面的数字是发票编号,无论其在页面上的位置如何。”之类的规则。基于关键字的映射在布局变化中更可靠,但要求 OCR 输出包含已识别的文本和位置元数据。这是为可变布局文档选择 JSON 或 XML 输出而不是 CSV 的另一个原因。 JSON 和 XML 中的位置元数据使基于关键字的字段提取成为可能。对于大型数据库导入项目,WukongPDF的扫描的PDFOCR管道包括可配置的字段映射,可输出结构一致的CSV或JSON文件,以供直接数据库摄取。
处理数据库导入中的 OCR 置信度分数
对于准确性至关重要的数据库应用程序,请实施两次通过的 OCR 工作流程。第一遍以标准设置处理所有文档。置信度分数低于阈值的文档将被标记并使用增强设置(例如更高分辨率、纠偏和对比度调整)进行重新处理。两遍方法将额外的处理时间集中在需要它的文档上,而不是减慢整个批次的速度。
每个 OCR 结果都带有一个置信度分数,通常是 0 到 100 之间的数字,表示引擎确定识别的文本与页面上的内容匹配。将 OCR 结果导入数据库时,确定置信度阈值。高于阈值的结果会自动导入。低于阈值的结果将被标记以供人工审核。该阈值取决于应用程序中错误的成本。搜索索引可以容忍较低的阈值,因为用户可以浏览结果并忽略不良匹配。数字直接输入计算的金融数据库需要很高的阈值,通常为 95 或更高。
将置信度分数与识别的文本一起存储在数据库中。像invoice_total 这样的字段,其值为 250.00,置信度为 98,是值得信赖的。置信度为 62 的相同值应被视为临时值。查询数据库的应用程序可以使用置信度分数通过视觉指示器(例如黄色突出显示或警告图标)显示低置信度值,提醒用户在依赖数据之前验证数据。置信度分数增加了平面文本输出无法提供的数据质量维度。
常见问题
在准备数据库导入时,我应该如何处理将扫描页面与本机数字页面混合的 PDF?分别通过 OCR 处理扫描页面和通过文本提取处理数字页面,然后合并结果。数字页面不需要 OCR,在其上运行 OCR 实际上会降低文本质量,因为在原始数字文本完全准确的情况下引入识别错误。大多数批处理工具可以检测哪些页面被扫描,哪些页面是数字的,并自动将它们路由到适当的处理路径。
批量导入数据库时可以处理多少扫描页?
现代 OCR 引擎可以在标准硬件上每小时处理数千页。实际限制不是 OCR 速度,而是验证时间。在将整个批次导入生产数据库之前,安排时间检查输出样本。 5% 的随机样本审查发现了可能影响整个批次的系统 OCR 错误。
我应该将原始扫描 PDF 与提取的数据一起存储在数据库中吗?
是的,只要数据库支持即可。存储链接到提取数据的源 PDF 可以提供审计跟踪。当出现数据质量问题时,用户可以打开原始扫描并根据源文档验证提取的值。许多受监管行业的合规性都需要提取数据和源文档之间的这种链接。
OCR 可以处理数据库导入的手写文本吗?
手写识别已显着改进,但仍不如印刷文本识别准确。对于数据库导入,手写字段应路由至人工审阅,而不是自动导入,除非手写受到限制,例如在表单上的各个框中写入数字。在大多数应用程序中,非结构化文档上的自由格式手写对于自动数据库导入来说不够可靠。
尝试 PDF OCR
无需安装。直接在您的浏览器中工作。
