书译
书译

OCR 中英混合 PDF:分别检查中文、英文和数字

为中英混合 PDF 选择 OCR 语言,检查真实样本输出,并分别核对字符、标识符、数字及表格关系。

BookTranslator

BookTranslator Team

18 min read

要对中英混合 PDF 进行 OCR,需先识别页面上的文字脚本,选择能够使用相关识别语言处理 PDF 的工具,然后将提取出的文本与图像进行核对。 分别检查中文文本、英文文本、数字和标签关系。 在搜索中找到英文标题并不意味着中文正文已被正确识别。

添加另一种语言值得测试,但这并不自动意味着改进。在我们的小型中英实验中,添加英语修正了一个英文标签,却损坏了一个原本仅用中文配置就能正确识别的中文句子。我们的两个表格配置均未能从一个简单的有线表格中返回任何文本。

这并不是对多语言 OCR 的整体定论,而是提醒我们应当根据所需的输出来进行评估,而不是根据所选语言的数量来判断。

首先区分缺失文本与错误文本

保持原文件不变。在副本上,从具有代表性的页面中选择一个句子,并将其粘贴到纯文本编辑器中。尝试一段中文和一段英文,而不仅仅是文档标题。

你发现的情况下一步的操作
无法选中或复制任何内容将页面视为可能纯图片的页面并运行 OCR。
文本可以复制,但字符与可见页面不符排查现有的错误文本层;简单地打开并保存可能无法改变它。
某些页面复制正常,而另一些则不正常在应用全文档操作之前,先盘点受影响的页面。
单词复制正常,但行或段落合并了将分段和阅读顺序与识别语言分开检查。

现有的文本层非常重要。例如, NAPS2 的 OCR 文档 指出,导入的、已包含文本的 PDF 页面会被保持原样。因此,在该工作流程中,重新导入一个 OCR 效果很差的页面并不是一种可靠的修复方法。

如果真正的问题是分辨率低、页面弯曲或扫描倾斜,请在解释语言设置对比之前先解决这些问题。我们更广泛的 扫描版 PDF 指南 涵盖了这些准备工作以及后续的翻译阶段。

选择识别语言,而非翻译目标

识别回答的是“页面上有哪些字符?”而翻译回答的是“此内容在另一种语言中该如何表达?”切勿要求 OCR 默默地将繁体中文简化、翻译英文引文,或重写不熟悉的标识符。

做一个简短的清单:

  • 中文字符: 简体、繁体或两者兼有,包括标题和注释。
  • 拉丁文字: 英文句子、作者姓名、参考文献、缩写以及型号。
  • 受控值: 日期、小数点、单位、负号、标识符以及大小写敏感的代码。
  • 区域: 正文、表格、图表说明、脚注或独立语言的附录。

例如,一份繁体中文报告可能包含英文摘要和参考文献。一个简体中文章节可能包含一个带有 A-01, 23.5和 °C的表格。不应仅通过检查最长的中文段落来评估这两者。

Tesseract在其 chi_sim, chi_tra和 eng 模型中提供了独立的 官方模型仓库。其 命令文档 支持组合语言选择,并指出语言顺序会影响结果。这些是配置上的可能性,并不能保证每个额外的模型都有帮助。

如果您的文档包含竖排日文和假名,请使用 日文竖排 OCR 指南。这是一个不同的版式和批注问题,而不仅仅是另一个语言勾选框。

使用真正接受 PDF 的工作流

桌面端路径:NAPS2

NAPS2 为使扫描版 PDF 可搜索提供了有据可查的路径:

  1. 导入文件副本并打开其 OCR 设置。
  2. 下载该文档所需的识别语言。
  3. 选择 多种语言 并选中相关语言。
  4. 启用可搜索 PDF 的 OCR 并保存为新文件。
  5. 重新打开该文件,并将复制的中文、英文和数字文本与可见页面进行对比。

下载了多种语言后才会显示“多种语言”选项。这些步骤遵循 官方 NAPS2 指南;我们未对本文进行 NAPS2 实操测试。

命令行路径:OCRmyPDF

对于纯图片的简体中文/英文 PDF,基于官方文档的示例如下:

ocrmypdf -l chi_sim+eng --output-type pdf \
  --sidecar recognized.txt input.pdf searchable.pdf

请先安装所需的 语言包 。如果要进行繁体中文测试,请使用 chi_tra ,而不是假设这两种文字可以通用。

The OCRmyPDF 指南 记录了 PDF 和边车文本(sidecar-text)输出。其边车文件不一定包含整个文档:原本就包含文本的页面,或在 OCR 过程中跳过的页面可能会缺失。请检查输出 PDF 本身。现有的错误 OCR 需要刻意重新执行工作流;切勿在不了解其影响的情况下盲目栅格化每个页面。

这是一条基于文档的路径,并非我们测得的测试环境。我们在此处没有运行 OCRmyPDF。

纯粹的 Tesseract 需要渲染后的页面

不要将 tesseract input.pdf ... 当作 PDF 阅读器使用。 Tesseract 不接受 PDF 输入,尽管它能够生成 PDF 输出。 Tesseract.js 也有同样的 PDF 输入区分:先用 PDF 库渲染页面,再识别图像。

这就是我们下面实验所走的路径。它会生成文本和 TSV 证据,而不是经过测试的可搜索输出 PDF。

十次本地 OCR 调用的实际情况

我们创建了一个 三页纯图像 PDF ,包含:

  1. 带有英文引用、标识符、小数和单位的简体中文散文;
  2. 相应的繁体中文页面;
  3. 一个包含三个数据行的小型中英文表格。

文本和值是自编的教学材料,而非客户文件或真实测量数据。每个散文目标包含 124 个非空白码位,其中包括 41 个汉字。表格包含 79 个非空白码位。

一份合成的繁体中文报告摘录,带有英文引用、文档标识符、小数和单位。

该 PDF 的源页面没有可提取的文本。我们使用 Poppler 26.08.0 以 300 dpi 的分辨率对其进行渲染,生成了 1600×1000 像素的图像。Noto Sans CJK SC/TC Regular 中的字号为 48 像素。所有标点符号均来自字体常规的水平字形。

2026 年 9 月 8 日,我们在 macOS ARM64 本地运行了带有 tesseract.js-core 7.0.0 的 Tesseract.js 7.0.0。官方 tessdata_fast 模型被固定在提交 87416418657359cb625c412a48b6e1d6d41c29bd。每次调用都使用 OEM 1 和 PSM 6(即统一文本块设置),并在每次语言比较中使用相同的页面图像。

每个散文页面有四种语言方案,表格有两。所有十次调用均已完成;未丢弃任何结果,也未在看到输出后调整任何参数。准确的 输入、模型哈希、版本和原始结果 以及 复现说明 可用。

一个设置可能会修复一个字段却损坏另一个字段

在传统页面上, chi_tra 按顺序保留了全部 41 个汉字,但它依然产生了非中文错误。例如,它将英文标签 Document ID 改为了 Document 1ID 并且误读了度数符号。

添加 eng 恢复了 Document ID,但“温度与质量”句子的部分内容变成了类似拉丁文的碎片:

Expected: 樣本溫度為 23.5 °C,質量為 1.08 kg。
Observed with chi_tra+eng: RA MEA 23.5°C > HBA 1.08 kg。

该行中的数字得以保留,而周围的中文却没有。仅检查 23.5 和 1.08 就会漏掉这种损坏。

简化版页面则展现了另一种权衡。添加英文恢复了 BK-2026-A07,纯中文运行将其返回为了 BK-2026-AO7。但它也将其他地方的 与 改为了 5 。视觉上具有歧义的标识符 O0I1-l 依然是错的。

以下诊断说明了我们为什么没有宣布胜者:

输入与语言选择汉字序列编辑找到的受保护字符串
无论是哪个正文页面, eng 单独期望的 41 个汉字全部缺失10 分之 9
简化的页面, chi_sim110 分之 7
简化的页面,中英文顺序不限210 分之 8
繁体页面, chi_tra010 分之 9
繁体页面,中英文顺序不限910 分之 9
表格, eng 或 chi_sim+eng未返回文本9 分之 0

“汉字序列编辑距离”仅比较汉字。它不对英文、标点符号或空格进行评分。“已找到受保护的字符串”仅是对预定义标识符、数字、单位和参考符号的存在性检查;它不验证它们的位置或关系。纯英文输出揭示了其中的陷阱:大多数受保护的字符串都存在,但没有返回任何汉字。

完整的 比较 CSV 文件也报告了全文编辑距离。比较过程应用了 Unicode NFC 并移除了空格;它不修正标点符号、改变大小写、转换中文简繁体或对字符重新排序。颠覆语言顺序改变了这些散文输出中的空格,但没有改变规范化的字符序列。该观察结果并非关于语言顺序的普遍规律。

空表格并非成功的提取

一个将每个项目与其标识符、数值和单位相连的合成中英文表格。

尽管两次表格调用均在没有发生 OCR 执行错误的情况下完成,但返回的文本均为空。添加中文并没有挽救固定的统一分块方案。

我们没有测试其他分段模式、单元格裁剪或表格识别引擎。因此,该结果 并非 表明 Tesseract 无法读取表格。它表明在我们的设置下,仅更改识别语言并未解决此样本的问题。

对于真正的表格,需要完整的关系 Temperature → A-01 → 23.5 → °C,而不是页面某处找到的四个标记。如果输出为空或无法检查关系,请停止将其视为可信的转录。尝试采用具备版面感知的工作流,或参照图像转录必要的单元格。

本实验无法确定的内容

这些是来自一个字体系列的三个干净的合成页面,由一个编写代理进行了审查。没有经过盲法人工审查、生产文档语料库,也没有测试模糊扫描件、手写体、复杂表格、垂直文本或历史字符。

这些结果是对无条件“添加更多语言”规则的有益反例。它们不是引擎排名、通用准确率,也不是针对您的 PDF 的预测。这不是 BookTranslator 测试,纯图像源 PDF 也不是完成 OCR 的阅读副本。

对您自己的文件使用四部分验收检查

下载 空白审查表。选择包含实际难点的页面,然后在处理整个文件之前添加以下检查:

  1. 中文文本: 比较一个完整的句子,包括较少见字符以及预期的简体/繁体形式。不要默默地将错误的字符规范化为您期望的字符。
  2. 英文与标识符: 检查作者姓名、参考文献、缩写、大小写以及形似字符,例如 O/0 或 I/l/1。不熟悉的代号不是需要自动更正的单词。
  3. 数字与单位: 比较每个值及其符号、小数点、单位和标签。 0.05 和 0.50 必须保持不同;识别出的 23.5 如果没有正确的单位则是不完整的。
  4. 关系与完整性: 检查每个段落或表格行是否属于预期的位置。确认标题、注释和小型第二语言段落都存在,而不仅仅是正文。

记录原始文本、观察到的结果、页面/区域以及所需的操作。当某个配置改善了一项检查但恶化了另一项检查时,请保留这两项观察结果。不要仅凭单一的置信度得分或平均字符数来接受该文件。

区分三种结果:可直接用于您的既定目的、需要特定修改,或尚不可信。查找任务可能只需要一个已验证的段落;完整的阅读副本需要覆盖整篇文档,而不仅仅是一个清晰的封面。

只有在了解原文含义后才进行翻译

如果搜索和可复制的原文已能解决您的需求,请到此为止。OCR 已完成其工作;翻译是另一个独立的决定。

如果您需要阅读另一种语言的完整文档,请保留原始扫描件和校正后的文本作为参考,然后遵循 扫描版 PDF 翻译工作流。对于符合条件的文件, BookTranslator 的 PDF 翻译器 可以作为下一步。其 OCR 模式会重建翻译内容,而不是承诺与原始页面布局完全一致;但这并不能免除检查恢复的文本和表格关系的需要。

翻译完成后,使用 PDF 翻译 QA 检查清单 来区分源识别错误与翻译或布局错误。在错误的阶段进行纠正,往往会使可读的错误保留在最终文件中。

相关文章