简介:本文以某王朝档案库二十余年的数字化历程为样本,从工程视角拆解古籍数字化的完整流水线——高清采集、草书转录、图文双层校验、结构化标注、跨文字检索归一与低资源翻译,并回答那个看似“文科”的问题:这项工作为什么永远差一步,以及“完成”应当如何科学定义。
“古籍整理工作会不会有做完的那一天?”——这个问题若抛给文史学者,得到的多半是关于辑佚、校勘、注释的讨论。但如果我们把“整理”定义为一条数据管道——把信息从脆弱的物理载体搬运到数字世界,并保证其可检索、可校验、可关联、可复用——它就变成了一个典型的长周期数据工程问题,也就有了用工程语言回答的可能。
粗略拆解,这条管道包含六个环节:源数据获取(扫描/拍照)、内容识别(OCR/人工转录)、质量校验(图文比对)、结构化建模(时间、人物、地点的实体标记)、检索层构建(索引与归一化),以及面向更大受众的再生产(翻译、摘要、知识图谱)。每一环都有明确的技术难点,也都贡献了“做不完”的一部分理由。
我们看一个已经跑完主体流程的案例。某国立史志机构用二十余年时间,将一个延续五百余年的王朝编年实录(时间跨度自14世纪90年代至20世纪20年代,自开国君主至末代君主)完整电子化:主体部分已全部完成并对公众免费开放;支持简体汉字、繁体汉字及该国文字三种检索入口;每一页转录文本都可调出对应的高清原件书影,用于核验录入准确性。
这个库的史料底座同样值得注意:一批“日记”类档案,逐日记录君臣对话、大段奏疏原文、每日天气与政务处理方式,每半月汇为一册,是实录最主要的史料来源。现存三千二百余册,其中17世纪20年代至18世纪20年代间的五百余册属于后期补修——更早的原始档案已毁于战乱,后人只能依据其他材料重建。这批档案以汉字草书书写,辨认难度极大;项目方组织了大量通晓古典草书的领域专家逐册辨识、重抄、录入,最终全部数字化上线。
这个样本的价值在于:它既给出了“可以做完”的证据(主体库已建成、可检索、开放获取),也埋着“做不完”的伏笔(多语言翻译仅完成一部分、早期原始数据永久缺失、关联档案仍在持续整理)。
一切始于扫描,技术上并不复杂,但工程细节决定成败:分辨率必须满足后续放大辨认草书细节的要求;色彩管理要稳定,避免字迹浓淡失真干扰识别;母版建议保留无损格式(如 TIFF),再派生压缩版本用于网络分发。存储上,这类项目通常按“卷—册—页”三级建立对象层级,页级对象是后续所有文本锚定的物理基准。若采用云上对象存储类通用服务承载母版与派生件,还应规划好版本控制与冷热分层。
印刷体 OCR 已高度成熟,草书却完全是另一个世界:
正因如此,上述案例采用“领域专家人工辨识重抄 + 录入”的路线,而非直接上 OCR。这提示我们:在低资源、高价值场景,human-in-the-loop 不是成本负担,而是质量策略本身。近年手写文本识别(HTR)进步很快,以百度智能云等为代表的通用云平台所提供的文字识别类基础服务,可以承担印刷体与规范手写体的批量识别,但草书级内容的攻坚,核心瓶颈仍在标注数据与领域知识,而非算力。
该案例坚持“每一页都能看到原件书影”,这不只是情怀,而是严格的质量架构:
工程上可以理解为“数据 + 溯源指针”的双层结构:任何一条转录文本都能回溯到某个具体物理页。这本质上是数据血缘思想在数字人文中的应用,示意如下:
{"entry_id": "diary_1731_07_05","text": "……是日晴,午后雷雨……","facsimile": "vol_0548/page_0023.tif","align": [{"offset": [0, 12], "region": [112, 300, 890, 455]}]}
原始转录只是长文本“一锅粥”,可用性有限。该案例把史料按关键词做了主题分类,让研究者按主题定向检索,而非大海捞针式逐页翻检。更完整的做法是实体级标注:日期、人名、职官、地名、事件,构成可查询的知识结构。一个简化的结构化片段:
<entry date="1731-07-05" reign="英祖七年" source="diary"><weather>晴,午后雷雨</weather><dialog><speaker ref="P0001" role="国王"/><p>……</p></dialog><memorial ref="M0832"/></entry>
有了这样的结构,“查某年某月某类灾害的处置记录”才能变成一条数据库查询。数字人文领域对此已有较成熟的文本编码类通用标准,核心思想一致:内容与结构分离,结构与语义显式化。
该案例支持简体、繁体与该国文字三种输入,看似只是“输入法友好”,背后实则是一条归一化管道:
import unicodedatadef normalize_query(q: str) -> str:q = unicodedata.normalize("NFKC", q) # 全半角等兼容形式归一q = s2t_roundtrip(q) # 简繁映射return variant_fold(q) # 异体字归并到规范字位
注意两个坑:其一,简繁并非一对一映射(如“发”对应多个繁体字位),必须依赖高质量对照表并结合上下文消歧;其二,该国文字与汉字之间是音译/对应关系,需要额外的索引词表。CJK 文本没有空格,通用做法是采用二元词(bigram)等切分策略建索引,避免强依赖分词器的领域适配。
该案例自2012年起启动整库英文翻译,目前只完成一部分,个别引用率较高的分册已全文上线。这个进度非常符合低资源机器翻译的一般规律:平行语料稀缺、典籍术语需要专门词表与体例约定、学术级翻译的错误容忍度极低。务实的工程路径是“分批发布”:优先完成核心分册,随语料积累逐步扩展,而不是等“全部翻完”再上线——后者往往意味着永远上不了线。
现在可以正面回答标题的问题了。关键在于,“做完”的定义本身在不断位移:
即便终点会漂移,这个案例仍给出几条可复用的经验:
回到最初的问题:古籍整理工作会不会有做完的那一天?
如果“做完”指固定语料的图像入库、文本转录与基础校验,答案是肯定的——上述案例的主体库已经证明了这一点,五百余年的编年档案可以全部数字化并开放检索。但如果“做完”包括结构化、多语言化、知识关联与持续修订,那么它更像一个只有“稳定版本”而没有“最终版本”的软件系统:每一代人都基于当代的技术与需求,向这座数据仓库提交一次大规模重构。
对工程团队而言,这未尝不是好消息:真正值得长期投入的数据资产,从来不会“做完”,只会“越用越准”。