金园园 焦清局
摘 要:未知甲骨字的语义破译是甲骨学研究的重要内容之一,也是历史学家研究甲骨文遇到的最大瓶颈。随着甲骨文拓片出土以及相关研究文献的增多,甲骨文数据呈现海量化和系统化。大规模甲骨文数据的出现为利用计算机技术破译未知甲骨字的语义提供可能,但现有的破译未知甲骨字语义的方法却寥寥无几。本文充分利用现有甲骨文数据的海量化和系统化特性,根据拓片信息构建甲骨字网络,并使用网络的模块特征分析甲骨字的场景。本文构建的网络和识别的场景信息为历史学家和计算机学家破译未知甲骨字的语义提供新的研究思路和直接的数据支持。
关键词:甲骨字;拓片;复杂网络;场景
中图分类号:TP399 文献标识码:A 文章编号:1003-5168(2019)04-0008-04
Module Structure-driven Prediction of Oracle Character Scenes
JIN Yuanyuan1 JIAO Qingju1,2
(1.School of Computer and Information Engineering, Anyang Normal University,Anyang Henan 455000;2.Key Laboratory of Oracle Information Processing in Henan Province,Anyang Henan 455000)
Abstract: The semantic interpretation of unknown oracle bone characters is one of the most important contents of oracle bone research, and also the biggest bottleneck for historians in oracle bone inscriptions research. With the discovery of oracle bone rubbings and the increase of related research literatures, oracle bone inscription data shows massive and systematic. The emergence of large-scale oracle bone inscription data makes it possible to use computer technology to decipher the semantics of unknown oracle bone characters. However, few methods exist to decipher the semantics of unknown oracle bone characters. In this paper, the author made full use of the existing oracle bone inscription data of the sea and systematic characteristics, according to the rubbing information to build oracle bone inscription network, and used the network module features to analyze the scene of oracle bone inscription. The network and scene information constructed in this paper provide new research ideas and direct data support for historians and computer scientists to decipher the meaning of unknown oracle bone characters.
Keywords: oracle bone inscriptions;rubbing;complex network;scenes
1 甲骨文研究現状
甲骨文是迄今为止发现最早的、能够全面地记录汉语言的文字符号,距今已有3 500年的历史。甲骨文所记载的内容极其丰富,涉及商代社会生活的诸多方面,如战争、文化、社会习俗等内容。甲骨文的研究会对语言文字学、考古学、历史学、社会人类学等学科产生深刻的影响,具有重要的文化价值和传承意义[1]。
甲骨字的语义破译一直是甲骨学研究最为重要的内容。一百多年来,经过几代学者的努力,在甲骨文字的考释方面取得了丰硕的成果[2]。孙诏让是第一个比较系统地考释甲骨文字的人,其考释之字有57字;罗振玉撰写的《殷墟书契考释》基本上将大部分常用字认出;王国维提倡的“二重证据法”对后世破译甲骨文字具有深远的影响;郭沫若是第一个运用历史唯物主义来研究甲骨文的人,他考释之字有50字。以上列出的只是较少一部分对甲骨文考释做出贡献的学者。当前,中国社会科学院的宋镇豪、首都师范大学的黄天树、复旦大学的裘锡圭和刘钊、清华大学的李学勤、北京大学的李家浩、华东师范大学的刘志基等人对甲骨学的研究也做出了巨大贡献。
然而,人为地考释甲骨文存在以下问题。第一,破译甲骨文的语义需要丰富的专业知识和长期的学术钻研,这一周期往往需要一二十年甚至更长时间。较长的时间周期严重阻碍了甲骨学的发展。第二,人为破译甲骨文字的语义遇到了较大的瓶颈,大概2/3的甲骨文字还未知其义。第三,随着对甲骨文的研究不断加深,甲骨学积累的数据已呈现海量化和系统性[3],而人为地研究甲骨文无法充分利用大规模的甲骨文数据。第四,甲骨字之间通过拓片信息相互联系,形成相应的语义单元,具有古文字的系统特性,而人为地研究甲骨字,无法很好地反映甲骨文的系统性。
海量化和系统性的甲骨文数据,为计算机学家研究甲骨文提供了数据上的支撑。近年来,与计算机相关的甲骨文研究开始逐渐增多,甲骨文的研究进入了以人工研究为主和以计算机为辅的时代。目前,国内以计算机为辅助的研究在甲骨文输入和可视化、甲骨字识别、甲骨文资料库构建、甲骨文片缀合、甲骨文字语义预测等方面均取得了丰硕的成果。
甲骨文输入和可视化方面。2004年,刘永革[4]等人通过建立甲骨文图片化字库,实现了甲骨文的可视化输入。同年,肖明[5]等人利用模糊数学模型对甲骨文象形编码进行研究,并运用熵理论得到甲骨文编码的最佳码长度为3。2008年,通过分析甲骨文字形、读音等特征,顾绍通[6]等人设计了一种拆分取码和现代汉字拼音的方法输入甲骨文字形。2012年,为了解决甲骨字输入难和定量难的问题,吴琴霞和栗青生[7]提出了一种利用有向笔段和笔元相结合的方法来描述甲骨文字。甲骨字识别方面。2014年,高峰[8]等人利用语境分析生成的候选字库得到对应的甲骨文语义构件向量,然后结合基于Hopfield网络的识别结果计算待识别的甲骨文模糊字的匹配度,根据匹配度识别甲骨字。2016年,顾绍通[9]通过拓片顶点、拓扑关系、拓片编码相应的数据结构刻画甲骨文字形顶点之间的关系,将其转化为拓扑图形,通过计算基准拓扑和待配准之间的欧式距离识别甲骨字形。2017年,刘永革和刘国英[10]以甲骨文图片为基础数据,通过提取甲骨文字的骨架特征,并结合支持向量机对甲骨文字进行识别。甲骨文资料库构建方面。2004年,江铭虎[11]等人介绍了用于计算机处理的甲骨文字库、句法分析和综合知识库的建立方法以及计算机甲骨文辅助辨识分析的工作原理。2010年,毛建军[12]撰写论文调查和分析了国内外甲骨文全文数据库的建设情况,并给出思考和建议。2015年,李志勇和高峰[13]借鉴知网的构建体系,建立了一个融合甲骨文、现代汉语的语义数据库。甲骨文片缀合方面。2010年,王爱民[14]等人通过提取甲骨片的轮廓信息和轮廓片段特征向量信息,建立甲骨文碎片数据库,进而缀合甲骨文碎片。2011年,王爱民[15]等人利用位置数、碎片边界、碎片上文字笔画、碎片边界上文字方面信息对甲骨文进行缀合。甲骨文语义预测方面。2012年,袁冬[16]等人提出基于实例的甲骨文释文机器翻译方案,并实现了一个机器翻译系统。2014年,熊晶[17]等人通过引入计算机辅助翻译的技术,将已经过甲骨文专家确认正确的现代汉语释读存储在翻译记忆库中,实现了专家知识的共享和重用。2015年,高峰等人[18]首先构建了一个融合甲骨文和现代汉语的语义知识库,然后通过可拓模型解决甲骨卜辞释义问题。同年,熊晶[19]等人在文本挖掘的基础上,结合语义Web技术,将实体及其关系资源描述框架(RDF)化,并在生成的RDF集合中进行语义搜索,利用本体关系和本体推理挖掘RDF对象间显式或隐式的语义关系。国际国内合作上。2016年,中山大学、北京微软研究院以及瑞士日内瓦大学的研究人员通过图像处理的方式识别甲骨字[20]。2016年,德国马克斯普朗克研究所和上海大学的研究人员构建了有关动物甲骨字的认知网络[21]。
虽然一些计算机学家在研究甲骨文方面取得了显著的成绩,但还存在很多问题需要我们深入地研究。例如,现有计算机学家的研究与预测未知甲骨文字的语义还有相当一段的距离;现有的研究方法并没有充分利用大规模甲骨文数据提高语义预测的正确率。
针对以上问题,本文利用大规模的甲骨字网络和其模块结构特征对甲骨字的場景进行预测和分析。首先,利用拓片数据,通过建模构建甲骨字网络;其次,利用模块挖掘算法ClusterONE[22]识别网络中的模块;最后,通过分析不同模块内已识和未识甲骨字之间的关系及不同模块之间的重叠性分析甲骨文系统的场景特征。
2 甲骨字网络构建
在本文中,笔者以收集的72 151片甲骨文拓片为基础数据,通过建模构建甲骨字之间相互联系的网络。在构建网络之前,笔者对所有的拓片信息进行预处理。第一,对于甲骨字之间残缺的甲骨字,使用省略号代替。第二,如果一个拓片中只含有一个甲骨字,那么将无法获取这个字和其他字之间的信息。因此,除去不含有甲骨字和含有一个甲骨字的拓片,共获取71 891片拓片。第三,由于甲骨文系统中的“卜”被经常使用,但“卜”却不具有实际的语义信息,因此,在构建甲骨字网络时,不计算此字和其他甲骨字之间的距离。在拓片中,笔者以省略号代替“卜”字。
为了构建甲骨字网络,本文需要定义甲骨字和甲骨字之间的距离(或称相似性)。在定义甲骨字之间的距离时,笔者以拓片为语义单位构建网络:同一拓片中的任意两个甲骨字之间都存在距离,假设拓片中两个甲骨字分别为i和j,那么i和j之间的距离为[dij][见公式(1)];如果两个甲骨字i和j之间有残缺的甲骨字,那么i和j之间的不仅包含[dij],而且包含它们之间残缺甲骨字的信息length[见公式(2)]。
[dij=101interal] (1)
[interal=lj-li i和j之间无残缺字length+lj-li i和j之间有残缺字] (2)
其中,公式(1)中的参数interal由公式(2)定义。在公式(2)中,[li]和[lj]分别表示甲骨字i和j在拓片中的位置且字j在字i的后面。若甲骨字i和j之间有残缺的甲骨字,经过试验验证length设置为2。
对于所有的71 891片甲骨拓片,笔者以6 199个甲骨字为基础,构建6 199×6 199大小的相似性矩阵D(即权重网络)。首先,如果两个甲骨字i和j在同一甲骨片上出现,使用公式(1)和(2)进行计算,并把[dij]赋予[Dij]处;其次,如果两个甲骨字在不同的拓片上出现,那么把这两个字在不同拓片上计算的相似性距离在同一个D位置上叠加。图1给出了计算相似性矩阵D的一个简单示意图。图中有两个拓片,共有9个甲骨字。以这9个甲骨字为基础,构建大小为9×9的相似性矩阵。例如,利用公式(1)和(2)计算甲骨字2和甲骨字4之间的距离,然后把[d2,4]的值放在相似矩阵[D2,4]的位置上;再次,如果两个甲骨字在不同拓片上同时出现,需要分别计算这两个甲骨字在不同拓片上的相似性距离,然后相加放在相似性矩阵对应的位置上。如图中的甲骨字5和6,分别计算甲骨字5和6在拓片1和2上的距离[d15,6]和[d25,6],然后把[d15,6]和[d25,6]相加放在相似性矩阵[M5,6]的位置上。最后,依据71 455个拓片信息,得到6 199个甲骨字之间的相似矩阵,这个矩阵共包含了160 964条有权重边。为了保证边信息能真实反映甲骨字之间的拓片信息,笔者保留了权重大于5的边,共有5 474个甲骨字和75 611条边。
3 甲骨字场景预测
3.1 模块结构识别算法描述
模块结构是复杂网络的一种典型特征。模块是网络中的一个子网络,其要求模块中的结点之间紧密相连,而与网络中其他结点连接稀疏。由于模块中的结点具有相似的属性,因此,模块结构在很多领域都取得了成功的应用。在本文中,笔者以模块中的甲骨字描述同一场景为假设对甲骨字网络的模块进行识别。
甲骨字网络中的模块结构具有独特之处:一是甲骨字的语义具有多样性,在模块结构方面表现为,甲骨字可能会属于不同的模块,因此模块具有重叠性;二是由于甲骨字的单音节词较多,因此,描述场景的甲骨字个数较少。这就会造成甲骨字网络中模块的尺度较小,含有结点较少。在本文中,笔者使用Nepusz等人开发的ClusterONE网络聚类算法,此算法不仅能发现网络中较小的模块,而且能识别模块中重叠的结点。
ClusterONE算法首先定义目标函数凝聚度[Cohesiveness,f,见公式(3)],然后通过逐步迭代实现模块的识别。此算法主要包含两个部分,第一部分具体包含以下六个步骤。第一步,选定网络中结点度数(或者权重之和)最大的结点[v0]作为种子结点,令模块[V0=v0],并设置步数[t=0]。第二步,计算模块[Vt]的凝聚度值,令[Vt+1=Vt]。第三步,对于与模块[Vt]中结点有边相连的任意外部结点v,计算凝聚度[V=Vt⋃v]。如果[fV>fVt+1],则[Vt+1=V]。第四步,对于与模块[Vt]中结点有边相连的外部结点[V],计算[V=Vt/v]。如果[fV>fVt+1],则[Vt+1=V]。第五步,如果[Vt≠Vt+1],并且新的凝聚度值增加,返回步骤2;如果[Vt=Vt+1],则[Vt]是识别的模块结果。
[fv=winvwinV+wboundV+pV] (3)
在公式(3)中,[win]表示模塊V中所有结点权重之和;[wbound]表示模块V中的结点与网络中其余结点连接边的权重之和;[PP>0]表示惩罚系数,可根据实验情况设定。
第二部分,第一部分识别的很多模块之间具有很大的重合性,因此,ClusterONE算法要对这些重合的模块进行合并。如果两个模块间的[ω]值[[ω]的定义见公式(4)]大于0.8,合并这两个模块为一个模块,并逐步迭代合并前一步骤中所有的模块得到最终的结果。
[ωA,B=A⋂B2A×B] (4)
其中,A和B为两个模块,[A]和[B]是模块[A]和[B]中结点的个数。
3.2 预测的甲骨字场景分析
在本节中,笔者使用嵌套在Cytoscape软件的ClusterONE算法对甲骨字网络的社团结构进行分析。含有5 474字的甲骨文网络被划分成1 393个社团,其中最大的社团含有1 553个甲骨字。其余的社团含有的甲骨字均为4~50个,其中3个社团含有的甲骨字在100个左右。在分析社团时,笔者除去最大的社团,即包含1 553个甲骨字的社团。
笔者对社团尺度为4~50的甲骨字进行了着重分析,通过分析笔者发现,一些社团的甲骨字描述了“打猎”事件。进一步研究发现:描述“打猎”的甲骨字极少,大概7~20甲骨字就可以描述一场完整的“打猎”事件;描述“打猎”事件的一些社团存在重叠甲骨字,而这些甲骨字主要表示的是时间、地点、猎物的数量;而未重叠的甲骨字主要体现在不同“打猎”场景下的人名、猎物的种类、打猎的工具、猎物的种类等。这些分析为人们认识未识甲骨字的场景语义提供直接的推测数据。
除了打猎社团之外,笔者还分析了有关“战争”的社团。描述“战争”的社团相对来说比较多,共涉及约50个社团(初步分析,更加详细的数据需要甲骨文专家考证。需要注意的是,这50个社团中的大部分甲骨字是已识,其他社团中包含的未识甲骨字也可能是描述战争的)。与“打猎”社团相比,描述“战争”的社团更加详细,包含的甲骨字更多。具体的分析:描述“战争”社团之间也有重叠的甲骨字,这些甲骨字也是用来表示时间、地点等信息;描述“战争”社团中未重叠的甲骨字,可能涉及战争人物、战争策略、战争前的祭祀、战争祭祀品等信息。我们进一步的预测是,有关描述战争祭祀品的甲骨字在不同的社团中也是不重叠的,这种信息意味着,不同的战争对当权人的意义不同。
4 结论
未知甲骨字语义破译不仅是历史学家研究甲骨学的最大瓶颈,也是计算机学家研究甲骨文遇到的最大挑战。本文利用大规模的甲骨文拓片数据构建甲骨字网络。构建的甲骨字网络不仅能充分反映古文字单音词多、复音节词少的特征,而且能捕捉甲骨文系统的语义单元及甲骨字在拓片上的同现信息。在甲骨字网络上,利用网络的模块结构特征,并结合ClusterONE算法识别网络中的模块。根据模块分析甲骨字的场景。本文使用的方法和得到的数据为历史学家和计算机学家破译未知甲骨字的语义提供了新的思路。
参考文献:
[1]江铭虎.自然语言处理[M].北京:高等教育出版社,2006.
[2]夏大兆.甲骨文字用研究[D].合肥:安微大学,2014.
[3]熊晶,高峰,吴琴霞.甲骨文大规模基础数据的语义挖掘研究[J].现代图书情报技术,2015(2):7-14.
[4]刘永革,栗青生.可视化甲骨文输入法的设计与实现[J].计算机工程与应用,2004(17):139-140.
[5]肖明,赵慧,甘仲惟.甲骨文象形码编码的模糊数学模型研究[J].计算机工程与设计,2004(3):358-361.
[6]顾绍通,马小虎,杨亦鸣.基于字形拓扑结构的甲骨文输入编码研究[J].中文信息学报,2008(4):123-128.
[7]吴琴霞,栗青生.基于有向笔段甲骨文输入方法的设计与实现[J].计算机应用,2012(8):2374-2377.
[8]高峰,吴琴霞,刘永革,等.基于语义构件的甲骨文模糊字形的识别方法[J].科学技术与工程,2014(30):67-70.
[9]顾绍通.基于拓扑配准的甲骨文字形识别方法[J].计算机与数字工程,2016(10):2001-2006.
[10]刘永革,刘国英.基于SVM的甲骨文字识别[J].安阳师范学院学报,2017(2):54-56.
[11]江铭虎,邓北星,廖盼盼,等.甲骨文字库与智能知识库的建立[J].计算机工程与应用,2004(4):45-47.
[12]毛建军.甲骨文献全文数据库的建设与思考[J].图书馆学研究,2010(12):37-38.
[13]李志勇,高峰.基于知網的甲骨文可拓模型建模技术[J].计算机与现代化,2015(5):30-34.
[14]王爱民,刘国英,葛文英,等.甲骨文计算机辅助缀合系统设计[J].计算机工程与应用,2006(21):59-62.
[15]王爱民,葛文英,赵哲,等.龟甲类甲骨文碎片计算机辅助缀合研究[J].计算机工程与设计,2011(10):3570-3572.
[16]袁冬,熊晶,刘永革.面向甲骨文的实例机器翻译技术研究[J].现代图书情报技术,2012(5):48-54.
[17]熊晶,高峰,吴琴霞.甲骨文计算机辅助翻译技术研究[J].科学技术与工程,2014(2):179-182.
[18]高峰,熊晶,刘永革.基于知网的甲骨卜辞释义问题的可拓性研究[J].现代图书情报技术,2015(7):58-64.
[19]熊晶,高峰,吴琴霞.甲骨文大规模基础数据的语义挖掘研究[J].现代图书情报技术,2015(2):7-14.
[20]Guo J,Wang C,Roman-Rangel E,et al. Building Hierarchical Representations for Oracle Character and Sketch Recognition[J]. IEEE Transactions on Image Processing,201(1):104-118.
[21]Dress A,Stefan Grünewald,Zeng Z . A cognitive network for oracle bone characters related to animals[J]. International Journal of Modern Physics B,2016(4):1630001.
[22]Nepusz T,Yu H,Paccanaro A. Detecting overlapping protein complexes in protein-protein interaction networks[J]. Nature Methods,2013(9):471-472.