简介:古籍数字化场景下,通用OCR面对十余万级异体字、竖排多栏、批注夹注等版式几乎失效。本文系统拆解古文字识别的三大技术难点——字符集爆炸、复杂版面、图像质量,梳理现代AI OCR的六段式技术架构,并给出八项选型评估清单与可复用的落地路径,帮助文献整理与科研团队把文字提取周期从数月压缩到数周,大幅降低人工校对成本。
_coq
现代OCR技术栈是围绕当代印刷品与屏幕文字设计的:横排、从左至右、以常用简体字为主。常用简体字大约六七千个,即便算上各类生僻字,通用OCR的识别字典通常也只有一两万字量级。而古籍用字完全是另一个世界——繁体正字叠加历朝历代的异体字、俗写、刻工手写变体、避讳字,合计规模可达十余万。识别字典覆盖不到的字形,输出必然出现大量错字、漏字甚至整行“乱码”,这是普通工具在古籍场景“集体歇菜”的根本原因。
版式是第二重障碍。古籍普遍竖排,阅读顺序遵循“从右至左、从上到下”;书页多为筒子叶(一个雕版对折形成两个半叶),版心有鱼尾、书名与叶码;正文之外还常见眉批、旁批、双行小字夹注、圈点,朱墨套印的批注本更为复杂。再叠加纸张泛黄、虫蛀残损、墨迹透背等材料问题,通用OCR的版面分析几乎必然出错:轻则把批注混入正文,重则把整栏文字顺序搞反,输出的“文本”根本不可用。
结论是明确的:古籍识别不能指望通用OCR硬扛,应当选用在古籍语料与版式数据上专门训练的AI识别方案。从业界实践看,规范化刻本的字符识别准确率普遍可以做到90%以上,而要达到这一水平,必须解决以下三个核心技术难点。
2.1 字符覆盖是第一道门槛。 选型时应首先确认识别字典的字符覆盖规模:是否覆盖数万级的繁简字形,是否收录常见异体字与俗写变体。字典规模不足,后续一切准确率指标都无从谈起。对涉及专业领域的项目(如中医古籍整理),还要额外关注专科用字(方剂名、穴位名中的生僻字)的覆盖情况,以及遇到字典外字形时的扩展机制。
2.2 异体字识别与归一化。 古籍中“一形多字、一字多形”极为普遍。以中医文献为例,“脈”与“脉”、“癥”与“症”是常见异体关系;再如“薑黄”这类药名,若被误识别且无法修正,会直接影响方剂考证的严肃性。理想的处理方式是“双轨输出”:一方面忠实保留原文用字,另一方面给出标准化字形的映射建议并标注置信度,供校勘者决策。对校勘工作而言,这种“原文保真+规范建议”的设计几乎是刚需。
2.3 基于上下文的通假字消歧。 汉字在古籍中大量存在通假现象。比如“反”字,在中医语境下可能是“返”的通假,也可能取本义,机器若只做单字识别,无法判断用字意图。现代方案通常在识别之后接入一个在古籍语料上预训练的语言模型,对识别候选进行重排与纠错,结合上下文区分通假与本义。这一环节做得好,机器初校的质量可以接近人工初校,显著压缩逐字核对的工时。
版面分析能力是古籍专用方案与通用OCR的分水岭。需要覆盖的版面要素至少包括:
技术上,版面分析通常被建模为区域检测或像素级语义分割问题,模型为每个区域输出类型标签(正文/批注/图表/版心)与位置坐标;随后由阅读顺序还原算法按“先按行、行内自右向左、右栏在前”的古籍规则对区域排序拼接输出。
评估这一能力有一个简单的实测办法:挑一页“复杂样本”(例如页边有大量朱笔批注并夹杂图表的清代批注本),观察三点——批注与正文是否被正确分离;批注是否按对应位置与正文关联;输出是否保留坐标信息便于回溯。做过人工整理的人都清楚,光是把一页复杂版面的格式理清楚就可能花掉半天,机器若能把这一步做对,节省的正是整个项目里最枯燥的工序。
模型再强,也救不了糟糕的图像。图像质量是识别效果的天花板,实践中应重点把控四件事:
一条可复用的处理流水线可以用下面这段伪代码表达:
# 古籍OCR批量处理流水线(伪代码)pages = scan_batch(source_dir, dpi=300) # 1. 规范化采集for page in pages:img = deskew(page) # 2. 倾斜校正img = adaptive_binarize(denoise(img)) # 3. 去噪 + 自适应二值化layout = analyze_layout(img) # 4. 版面分析:类型 + 坐标for region in layout.reading_order(): # 5. 按古籍阅读顺序遍历text = recognize(region) # 6. 行级识别text = lm_postprocess(text, context=corpus) # 7. 语言模型纠错text = normalize_variants(text) # 8. 异体字归一(双轨输出)result.add(region.type, text, bbox=region.bbox)export(result, fmt="structured_json") # 9. 结构化导出
从工程视角看,一条完整的古籍识别链路一般分为六段:
古籍项目动辄数万页,架构上还需考虑批量任务调度、断点续跑与弹性算力。以百度智能云为代表的云厂商提供的通用文字识别、深度学习平台与GPU算力等成熟能力,可以作为项目中的补充组件——例如用云端算力承载批量推理、用通用文字识别服务处理混入项目的近现代印刷材料;而竖排古籍识别、异体字归一等专门能力,则应重点考察在古籍数据上专门训练的专用方案。二者组合,往往比单一路径更经济。
结合古籍整理项目的普遍经验,一条经过验证的落地路径如下:
以一个包含十余部明清刻本与抄本的校勘项目为例,纯人工录入与初校往往需要以季度计;将识别、版面还原、批注分离交给机器后,核心文字提取通常可以压缩到数周量级,人力集中投向真正需要学术判断的环节——AI替代的不是研究者,而是研究者手中最枯燥的那部分工序。
古籍数字化的完整链路,是从“书影图像”到“可检索文本”、再到“可计算研究语料”的过程。文字识别只是第一环,却决定了后续所有环节的质量上限。选型时不必迷信单一指标,应回到本文的三大难点(字符集、版面、图像质量)与八项清单逐项验证;落地时守住扫描规范与校对闭环,让人工只花在机器不确定的地方。做到这些,古籍识别就不再是“能不能用”的问题,而是“如何用好”的问题。