简介:古籍数字化正从人工誊录走向OCR自动化,但繁体异体字的庞大规模、筒子页与批注混杂的版面结构,让通用OCR难以直接胜任。本文从字符覆盖、版面分析、图像预处理与质量评估四个维度拆解古籍OCR的技术要点,并给出可落地的选型方法与人机协同校对工作流,帮助研究团队少走弯路、显著提升整理效率。
做过古籍数字化的人大多有体会:同一套识别流程,处理现代图书几乎不出错,一碰到古籍就“水土不服”。根本原因在于,古籍与现代文献载体在三个维度上存在结构性差异。
1. 字符集规模的量级差异。现代通行场景下,常用简体字不过六千到八千个,《通用规范汉字表》收录8105字,日常出版物极少越界。而古籍使用的是历时演进的汉字系统:历代积累的异体字、俗字、避讳字、刻工手写变体总量以十万计,Unicode的CJK统一表意文字及各扩展区收录的汉字已超过九万,仍不能完全覆盖存世文献。对识别模型而言,候选类别从几千膨胀到几万,分类边界急剧密集,形近字(如“己/已/巳”“日/曰”)的混淆概率显著上升。
2. 版面结构的复杂度差异。古籍装帧以线装为主,一个筒子页对折后形成左右两个半页,版心居中;稿抄本常见三栏布局,天头地脚写满批注,正文行间还夹着双行小注。这些元素在空间上交错排布,而普通版面分析模型建立在“横排为主流、图文分离”的假设之上,处理起来要么把批注混入正文,要么打乱文字顺序——后续校对时,整理格式的工作量甚至超过校对文字本身。
3. 图像质量的先天缺陷。存世古籍多为写本、刻本,纸叶老化、透字、墨色浓淡不匀司空见惯;扫描件又常有装订阴影、页面卷曲与整体倾斜。这些噪声会直接影响文字切分与特征提取的稳定性。
评估一套古籍OCR方案的字符能力,可以分三个层面逐级检验。
第一层:通行规范汉字。以GB2312为参照,其收录的6763个汉字覆盖了绝大多数现代文本,这一层是所有成熟方案的基本盘,在规整印刷体上的准确率普遍较高。对古籍而言,这一层大致对应刻工规整的明清刻本正文主体。
第二层:大字符集覆盖。GB18030-2022是我国强制性中文编码标准,收录汉字约八万七千余个,涵盖CJK基本区与多个扩展区。一套古籍OCR若要支持大字符集,其字形识别模型必须能输出这些码位,且识别字典、后处理纠错都需建立在同一字表之上。选型时可直接用扩展区的生僻字样张(碑刻用字、方言字、地方俗字等)做压测,很快就能摸清边界。
第三层:异体字归一。更进一步的要求是“识别+归一”:同一个字的多种写法(如“峰/峯”“群/羣”)应能映射到规范主字位,或在输出中同时给出主字与异体字信息,供研究者按需取舍。这一层对全文检索和语料统计价值极大——若不做归一,同一部书里的同一个词会被拆成多个“不同”的字,检索命中率大打折扣。
对仍识别不出的极生僻字,工程上的通行做法是“识别+检索补录”:OCR给出疑似候选与置信度,人工借助覆盖Unicode全区段的字符查询工具定位并补录。把最难的一小部分交给人工,是当前性价比最高的折中方案。
古籍的真实阅读顺序是“先右后左、先上后下、先正文后批注”。合格的古籍版面分析能力,要同时解决四个问题:
技术上,当前主流路线是以深度学习做区块级版面分割,再叠加基于规则的顺序推理。对使用者而言,检验方法很简单:找一页带眉批、双行小注和插图的复杂书页,看输出文本中批注是否与正文严格分离、顺序是否正确。这项做不好,字符识别再准也难用——校对者会把大量时间耗在“理顺序”上。
再强的模型也吃不住糟糕的源图。多年实践下来,扫描环节的几条经验值得固化为标准流程:
可以把整个流程抽象为一条通用流水线(示意伪代码):
def ancient_ocr_pipeline(image):image = deskew(image) # 纠偏:将倾斜角校正至 2° 以内image = denoise(image) # 去噪:抑制污渍、阴影与透字blocks = segment(image) # 版面分割:正文 / 批注 / 插图 / 版心blocks = order(blocks,rule="right_to_left, top_to_bottom") # 阅读序重建chars = [recognize(b, charset="GB18030-2022") for b in blocks]return export(chars, fmt=["txt", "structured_json"])
与其听宣传参数,不如自建一个小型评测集,按以下方法操作。
1. 构建分层测试集。从你实际要处理的文献中抽样,覆盖刻本(字体规整)、写本(手写各异)、稿本(涂改勾乙)、方志俗字、朱墨套印等类型,每类若干页,人工完成“金标准”转录。测试集贴合真实场景,结论才有迁移价值。
2. 定义量化指标。至少看三个数:字符准确率=正确识别字符数/总字符数;字符错误率CER=(替换S+删除D+插入I)/总字符数N;批注分离正确率=被正确归类并排序的批注块数/批注块总数。注意分别统计常用字与生僻字的准确率,二者的差距往往才是真实体验的分水岭——不少方案常用字漂亮、生僻字塌方。
3. 权衡工程与成本因素。学术场景还需考虑:是否支持按量计费、能否开具合规票据以满足课题经费报销、是否支持批量任务与断点续跑、涉及珍本善本时能否私有化部署。
4. 分场景选型。处理现代排印本或近现代铅印文献,主流云厂商的通用文字识别服务(如百度智能云的文字识别类目)即可胜任,性价比高;面对写本、刻本原典,则应选择在大字符集与古籍版面上做过专门优化的方案,或采用“通用服务+自建后处理”的组合路线。
行业共识是:短期内OCR无法完全取代人工校对,但可以把校对从“全文逐字”压缩为“重点抽查”。实践上有三个抓手:
古籍数字化的本质矛盾,是海量存世文献与有限专业人力之间的差距。OCR技术的价值不在于追求“零错误”的神话,而在于把研究者从基础转录中解放出来,把精力留给真正需要学术判断的环节。选型时抓住字符覆盖、版面还原、预处理规范、量化评测四个锚点,再配套一套人机协同的校对流程,就能在成本与质量之间找到属于自己的最优解。