李斌(南京师范大学)

一、古籍概念的介绍

首先,我想先对“古籍”这个基本概念进行介绍。目前我们见到的更多是中国的古籍,但世界上的古籍非常多样,不同语言的古籍差异也非常大。大约100年前的书籍都可以算作古籍,我们可以放开眼界,不一定只研究中文古籍。国际上有许多相关会议,比如2022年我们参加的LT4HALA第二届历史和古代语言技术研讨会,就汇集了世界上各种古代语言的研究成果。此外,古籍的形态亦有多种,其物质载体除纸张外,还有金石、泥板等;古籍的书写文字也很多样,除汉字外,还有早期的玛雅文字、楔形文字等。

其次,我们需要区分“中国的古籍”和“汉籍”两个概念。中国境内的古籍,除了汉字书写外,还有藏文、蒙古文、维吾尔文等少数民族的文字;汉籍,即汉字书写的典籍,除中国外,朝鲜、韩国、日本、越南等国亦有收藏,这些国家也创造出了许多使用汉字的作品,如诗文、文书等。由此可见,若考虑到整个东亚地区,古籍的数量是非常庞大的,古籍文本多达上百亿字。

古籍数量如此庞大,靠人力阅读是非常困难的,因此我们需要采用自动处理的方式对古籍进行研究。在上一期讲坛主要介绍了相关技术,本期则讨论如何将古籍从传统的纸质文献转换成文本数据库,并进一步建设为语料库或知识库,以更好地提供给终端用户,方便现代人阅读古籍,学习古代知识和文化。

二、数据库与语料库的关系

通常认为,数据库是存储数据的仓库,即把数据存储在服务器里;语料库,顾名思义,是存储语言资料的数据库。但这种理解还存在一些问题:一是语料库中不仅包含文本,还有语音、图像等;二是语料库不仅包含原始数据,还有标引、标注(这两者亦有区别)数据。数据库技术源自计算机科学,为我们提供了一个非常好的技术接口,可以用它来处理语言或古籍等相关问题。因此现在所讲的语料库,并非原始文本,而是标注语料库,即包含词类、句法、语义属性等信息标注的语料库。数据库中的数据通过人工、机器进行语言属性标注后,才能算作真正的语料库。

三、语料库的构建

今天的主题即围绕语料库展开。首先,我们需要辨清一些术语:索引、标引和标注。索引是为字词找页码;标引相当于为人名、地名、书名、朝代等画出专名线;标注则包含多个层级,分别是分词、词性标注、句法标注、语义标注等。同样,古籍语料库也包含多个层级,包括元数据、图像、文字、标注、标引、多模态等。

这一讲我们专注于语料库的标注这一层级。第四期讲坛介绍了古籍OCR,该技术可以将纸质文献图像中的文字识别转化为电子文本,这也是古籍电子化的第一步。基于此,可以进行全文检索,如“汉籍电子文献资料库”、“爱如生典海数字平台”和古联公司的“籍合网”平台等。

古汉语需要分词。印欧语系的文字书写自然带有空格,而汉语文本是没有空格的,所以印欧语系天生就可以进行基于词的检索,而汉语只能做基于字的检索。其它语言,如苏美尔楔形文字、阿卡德楔形文字,大部分雕刻在泥板上,但目前其Unicode字符集尚未建成,只能用拉丁文转写的方法来记录语音形态。至于古埃及文字,其字符集构建目前基本完成大半,但在相关语料库中大部分仍由拉丁文转写,并不是原始的文字。

我在哈佛大学访学的时候专门去学习了这些古老语言的课程。当时就有一个疑问:汉字古籍的信息处理比他们强在哪里,弱在哪里?实际上,玛雅文、苏美尔文等文字的分词工作推进要比汉字慢很多,但相比印欧语系文字,汉字书写没有词语的边界,目前只能做字符串的检索。因此,我们希望通过对语料库的加工,将来可以实现从字的检索变为词的检索,甚至是概念、时空的检索。为了使古汉语中的词有边界,我们需要对古汉语文本进行分词。在十几年前,南京师范大学陈小荷教授就带领我们一起进行了尝试,但遇到的争议非常大。一般认为古汉语一个字即一个词,没有必要进行分词。当时台湾也有一些关于古汉语的分词标准,几乎接近一字一词,比如把“姓”和“名”、数词等都分开。

我们想将基于现代汉语总结的一些经验推广到古代汉语,从十几年前就开始重新构建古汉语分词和词性标注的标准,以及断句、标点等的标准,希望通过这个标准化的体系支撑标准化的语料库。其中还有一个小问题,即文字的繁简体。我们先进行繁体分词,因为繁体转简体是非常容易的,但简体转繁体却经常出错。

关于加工的层级,比如遇到一段古文是没有标点和分词的,则要对它进行逐步处理:第一步断句,第二步加标点(当然也可把两个步骤合一),然后再进行分词。在处理时明显发现,古汉语并非一字一词,如“轩辕”“神农氏”等专有名词。进一步,可从语言学的角度进行词性的标注——大概有十几个词类,我们都逐一标上,这样古文的信息就比较丰富了。再进一步,还可标注古文的义项。同样,在句法层面也是可以制作语料库的,如日本学者安冈孝一构建的中文的依存句法树库。

明确了这几个层级,我们就可以进行下一步工作。陈小荷教授提出,要做一个相对简单的标注集,标注较为经典的传世文献。当时我们标注了25部先秦经典文献,将近180万字。

如果有了语料,什么也不标注,能做哪些事情?我们把每个字在每一部文献中出现的频率都计算出来,可以发现一些比较有趣的现象,如通过计算出每本书的高频字,找出25部先秦古籍的高频字公共部分等。根据冯志伟教授测定的现代汉语的汉字熵为9.65比特,我们测出古代汉语中这25部先秦古籍的汉字熵是9.22比特。通过对高频字的统计,可以进行古今对比,我们选取《人民日报》1998年1月的语料,同样约180万字体量,发现有很多高频字是“相同”的,如古文的“之”和现代的“的”。

之后,我们对这25部先秦古籍进行了词性标注和统计,其中名词出现的概率是最高的,量词占比也较高,这对汉语史研究非常有帮助。在语言学范畴,我们可能会做较多词性研究,如兼类词,一个词可以具有不同的词性。随后,我们又进行了词长分析,发现在先秦古籍中单字词占据主流,这与现代汉语有很大差别。因为我们具备了几百万字的训练语料,可以训练出很好的模型,所以我们后来开发了SegHan古汉语自动分析软件,可对古文进行自动断句、标点、分词和词性标注。

为了让学界更好地利用、开发这些工具,我们于2023年上半年举办了第一届古汉语分词词性标注的国际评测,与南京农业大学王东波教授合作发布了《左传》和《史记》的语料供大家使用。语料发布在“语言数据联盟”(Linguistic Data Consortium, LDC),预训练模型发布在GitHub。竞赛中复旦大学团队的成绩最佳,《左传》的自动分词正确率能达到96%,词性标注正确率也达到92%左右。

四、语料库向知识库的转换

前面所讲的是语料库构建的情况,下面则介绍如何将语料库转变成知识库,将语言学的信息作为进行历史百科信息标注的基础。这需要分词和词性标注层面的信息作为支撑,进而再由字符串的检索走向词和概念的检索。在人名方面,一个历史人物有众多的称谓,难以检索,那么可以给每个人一个“身份证号”,将不同的称谓统一到相应的人。由此,我们就可以运用一些计算方法,生成人物共现网络,如果两个人物在同一个句子中出现,就认为他们很可能认识,或者这两个人的关系密切。在地名方面,每一个地点都有自己的ID,然后将其标注到地图上,据此可以统计人物的行径路线等。在时间方面,可以根据文献中的年份分布,统计出哪些年份发生过较多大事件,即“多事之秋”。除此之外,还有很多有意思的统计结果。

最后,向大家介绍我们最新开发的《资治通鉴》知识检索平台。它既可以提供字词检索、人物检索、地点检索,还可以检索出各人物的关系网、历史事件发生的地点等,并且具备可视化功能。根据计算语言学技术,可以统计出在不同年份哪些人物出现的次数最多,进而制作出人物关系图。在语料库和知识库的应用中,我们还有大量工作可以去做。

五、总结与讨论

以上从语料库、汉语史的角度出发,讲到了计算语言学、古籍的信息处理,再到古籍的知识库和可视化的研究。这两年我有一种很强烈的感觉,即不能再把当下建设的知识库叫作语料库,因为它已超出了语料库的范畴。语料库更多是语言层面的含义,可以服务于知识库。语料库建设过程中的分词、添加词性基本信息等步骤,对于后续的知识库加工而言非常重要。所以,我们提出了一个三层的金字塔架构,即整个古籍数据库的加工范式,想与大家一起探讨。就传统而言,应用更多的是全文数据库,但它只能进行字符串检索;进行词汇检索时,则需要语料库;如果构建多模态的、多形式的信息检索,则需要构建知识库。当然,它用途非常广,成本也会非常高。我们希望更多的师生能够加入这样的语料库、知识库构建的队伍中,也恳请更多的专家给予指点,使得数据库中的错误能够减少甚至消除,从而将其高质量地呈现给大家。鉴于版权等问题,目前很多数据尚未完全公开,但像《左传》语料库,我们校对了五六遍,人力成本是巨大的。后续,也希望能够和更多的文博单位或文旅单位建立合作关系,推出更好的多模态的综合性知识库,能够将文献信息、藏品信息、实地信息,包括馆藏地点、旅游景点、墓葬遗址等信息全方位连接起来,创建更好的交互界面和更多的应用场景,形成实现古籍活化利用的新型知识库。