简介:甲骨文研究长期面临识别难、比对难、共享难三大瓶颈。本文剥离具体产品视角,系统拆解古文字智能识别系统的通用技术方案:从标准字形库建设、开放类别下的字形匹配检索,到以图搜图式拓本校重,再到知识库与文献溯源的工程实现,并附示意代码与落地清单,为关注多模态识别与数字人文方向的开发者提供可复用的实践参考。
甲骨文流行于商周时期,距今3000多年,是迄今发现的中国年代最早的成熟文字系统,也是汉字的源头。百年考古累计出土约16万片甲骨,所含单字约四五千个,而经过语言学界百余年考释、获得公认的字只有约1500个,占比不足三分之一。
这组基础数据决定了三重结构性难题:
这些问题并非甲骨文独有——金文、简帛、玺印等古文字材料都面临类似结构。因此,一套“识别—比对—溯源”的系统化方案,具有跨场景的通用价值。这也是近期业内多家高校与工程团队联合推出甲骨文智能体、并将其开放给公众体验的技术背景。本文不展开具体产品,而是拆解这类系统背后的通用技术方案。
一个能“读懂古文字”的智能体,通常可以拆成四层:
调用链可以概括为:
用户请求 → 智能体编排 → [字形识别 | 以图搜图 | 知识检索] → 结果融合 → 带引用的回答
一条贯穿始终的设计原则是:识别交给检索,解释交给知识库,结论留给专家。
传统OCR是封闭集分类:类别固定、每类样本充足。甲骨文恰恰相反——类别本身在动态增长(不断有新字被考释出来)、未释字占比极高且无法建立监督标签、长尾分布严重(高频字样本多,绝大多数字只有零星几例)。
因此主流做法是把“识别”转化为“检索问题”:用度量学习训练一个字形编码器,把任意字形映射为嵌入向量,再与标准字形库做最近邻比对。这种设计最大的好处是可增量:新考释出一个字,只需向字形库追加一条向量,无需重训模型。
def recognize(image_path, top_k=5):img = binarize(denoise(load(image_path))) # 二值化、去噪boxes = detect_glyphs(img) # 字形检测与分割results = []for box in boxes:emb = glyph_encoder(crop(img, box)) # 字形嵌入向量hits = glyph_index.search(emb, top_k) # 与标准字形库比对best = hits[0]if best.score >= TAU:info = kb.lookup(best.char_id) # 释义、演变、参考文献results.append({"char": best.char_id, "refs": info.sources})else:results.append({"char": "疑似未释字", "similar": hits})return results
两个容易被忽视的工程要点:
识别出单字只是起点。单字ID会进一步挂接三类信息:该字在哪些甲骨与拓片中出现过(实物溯源)、该字历来的释读观点与形体演变脉络(学术溯源)、权威释义(知识溯源)。对研究者而言,这把过去“先有猜想、再人工翻检”的流程,倒置为“先聚合证据、再做判断”,节省大量重复检索时间。
拓本可以理解为用宣纸和墨把甲骨上的文字“印”下来的成品,相当于给甲骨上的字拍了一张黑白高清照。由于收藏与流转,大部分甲骨都留有多个版本的拓片,即重片。人工校重要在数以十万计的图像中找出“同一片甲骨的不同拓本”,极度依赖记忆与翻检,效率极低。
校重的技术本质是“以图搜图 + 重复判定”,通用管线如下:
def dedup(query_path, top_k=20):f = extract_feature(query_path) # 全局布局特征 + 局部笔画特征cands = ann_index.search(f, top_k) # 向量近似检索,粗筛候选hits = [c for c in candsif geometric_verify(f, c.feat) > DUP_TAU] # 几何一致性校验return merge_and_rank(hits)
三个关键点:
这条管线把工作模式从“人找重片”变为“系统提示疑似重片、专家终审”,显著压缩校重周期,且每一条判定都可回溯到图像证据。
古文字场景对幻觉的容忍度极低,一次错误的释读引用可能误导后续研究。知识层设计应遵循三条原则:
示意性的知识条目结构:
{"char_id": "G-1024","status": "已释","appearances": ["著录#A0001", "著录#A0092"],"interpretations": [{"view": "释读观点一", "source": "文献#L001"},{"view": "释读观点二", "source": "文献#L002"}]}
对希望在数字人文方向复现类似系统的团队,可参考以下通用技术选型思路(均为通用产品类目):
无论自建组件,还是直接使用百度智能云等云平台的OCR文字识别、对象存储、向量检索等通用能力,架构分层与上述设计原则都是一致的,差异只在于哪些环节自研、哪些环节托管。
业内一个值得抽象为共识的观点是:这类系统的目标不是替代古文字专家,而是把专家从重复劳动中解放出来,让他们把精力留给真正的破译与思考。翻译成工程语言:
评估体系也应围绕这个分工设计:识别看Top-K命中率而非单点准确率;校重优先考核疑似重片的召回率(漏掉一片重片的代价远高于多审几条候选);溯源考核引用有效率。
“让每一片甲骨读得懂、找得到、用得上”,本质上是一个多模态识别 + 向量检索 + 知识图谱 + 智能体编排的组合工程。它的方法论对更广泛的“专精领域识别”问题——印章、碑刻、手稿、工业缺陷图——同样成立:先把封闭分类问题转化为开放检索问题,再用知识库保证可解释,最后把人放回决策闭环。对开发者而言,这套通用框架的复用价值,或许比任何具体的准确率数字都更值得关注。