首页 > 范文大全 > 正文

古籍自动校勘的研究和实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇古籍自动校勘的研究和实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

(南京农业大学 人文社会科学学院,江苏 南京 210095)

摘 要:古籍自动校勘是指利用计算机自动发现并标记出古籍不同版本之间的文字差异,并提供各种校勘辅助工具帮助专家勘误。本文讨论了古籍自动校勘的意义,接着详细阐述了古籍自动校勘系统的总体设计及其实现,包括选题和资料收集、自动校勘的对象和方法,最深入讨论了古代官名表、人名表、地名表等自动校勘辅助工具的建设问题。最后,设计了实验检查校勘系统的效果。实验结果表明,本系统的召回率和精确率分别达到了92.3%、95.2%。

关键词:计算机应用;中文信息处理;古籍整理;自动校勘;校勘辅助工具

中图分类号:TP391 文献标识码:A

1 古籍自动校勘的意义

古籍在传抄、印刻的过程中,往往会出现各种错误,一种古籍有多个版本,各版本之间的内容差别很大,这种现象屡见不鲜,故必须对古籍进行校勘。校勘,是指利用古籍不同版本和其他资料,通过比较核对和分析推理,发现并纠正古籍在流传过程中发生的文字错误[1]。古籍校勘是古籍整理、阅读和文献研究的基础。

古籍自动校勘,指利用计算机自动发现并标记出古籍不同版本之间的文字差异,并提供各种辅助工具帮助专家勘误。虽然这是一个以计算机为主、人工为辅的半自动校勘过程,但它除了具有人工校勘的意义外,还具有以下的作用:(1)可以提高工作效率。古籍校勘工作中,各版本的校异任务相当繁重,如一部30万字的古籍,取四种重要版本互校,共120万字,一个人需要几年的时间才能完成,而大型计算机只需几小时即可实现。(2)可以提高校勘质量。人工比较古籍各版本差异难免会出错,如用计算机来完成这一工作,准确度将大大提高。目前古籍数字化的研究炙手可热,但国内仍未见古籍自动校勘的研究成果,本研究是古籍自动化、智能化整理方面的一次初步探索。

2 古籍自动校勘系统的实现

2.1选题和资料收集

《齐民要术》为北魏贾思勰所著,是中国现存最早最完整的古代农业典籍,也是世界农业史上最早最有价值的名著之一,流传至今各种抄本、刻本、印本和稿本等近50个版本[2]。本课题以《齐民要术》为实验对象,设计、开发古籍自动校勘实验系统。

将不同版本的古籍资料进行数字化,是进行自动校勘的前提条件。南京农业大学中国农业遗产数字化研究所承担了“中国农业科技遗产信息数据库”的基金项目[3],构建了“中国农业遗产信息平台”,建成了农业古籍全文库和农业典籍善本图文库,其中收录了柯逢时家清抄本(仿北宋本附校勘记)(以下简称仿北宋本)、明嘉靖三年(1524)马直卿刻本(即湖湘本)、光绪二十二年(1896)渐西村舍刻本(以下简称渐西本)和缪启愉校释本[4]。这四个版本的《齐民要术》电子文本,为本课题的实验语料。

2.2自动校勘的对象和方法

自动校勘的对象主要是针对文字的差异,按照国内校勘学的理论,将自动校勘的对象分为以下三大类:

①错文:古籍在其流传过程中出现的文字错误。这一类对象包含了校勘学上的误字、倒错、异文三种情况。其中,误字,是指古籍在其流传过程中出现的错字,亦称“误文”或“讹文”。倒错,是指古籍原文位置的颠倒错乱。异文,是指古籍在流传过程中出现的各种版本之间文字差异,由于时代变迁、字体演变、书写形式不同造成的古今字、异体字、繁简字、通假字和避讳字。

②脱文:古籍在其流传过程中比原文脱落遗漏了的文字,又称“夺文”。从脱文的形式上看,有脱字、脱句、脱行、脱页等,脱文的原因上有抄脱和意删等。

③衍文:古籍在流传过程中比原文多出的文字。从衍文的形式看,有衍字、衍句、衍行、衍页等,衍文的原因包括无意抄刻及有意妄加等情况。 校勘的方法包括对校法、本校法、他校法、理校法和综合校法。由于在校勘过程中,计算机很难像人一样加以理解和判断,因此本项研究试用对校法进行自动校勘,即用同一部古籍的各种不同版本相互比较。

2.3自动校勘的算法设计

借鉴中文文本自动校对[5]和模式匹配技术,笔者设计出基于“窗口匹配”的自动校勘算法,是古籍自动校勘系统的核心算法。假设现有底本字符串book1和校本字符串book2,移动窗口w,s1和s2分别为book1和book2的子串,subs2为s2的子串,locationl和location2分别为subs2在s1和s2中出现的位置,该算法的流程见图1,其核心步骤如下所述:

①从book1和book2中,由左到右顺次取出大小w的子串s1和s2;

②比较s1和s2是否相等,如果相等转到步骤①,如果不等转到步骤③;

③比较s1和s2两个窗口左端连续的n个字符是否相等,如果相等,窗口同时向右移动n个字符,即跳过相等的部分,转到步骤①,如果不等,转到步骤④;

④由大到小,从左至右,逐次取出s2的子串subs2,判断subs2是否为s1的子串,如果没有一个subs2是s1的子串,则s2判断为s1对应的错文情况,如果出现一个subs2是s1的子串,则转到步骤⑤;

⑤判断subs2在s1和s2中出现的位置loca―tionl和location2,如果locationl=location2,转到步骤⑥,如果locationl>location2,转到步骤⑦,如果locationl

⑥如果locationl=location2=1,那么窗口同时右移,跳过相等的部分,转到步骤①;

如果locationl=location2>1,那么s2中在subs2左侧的字对应为s1中在subs2左侧的字,判断为错文。窗口同时右移,跳过相等的部分,转到步骤①;

⑦如果locationl>location2=1,那么s1中在subs2左侧的字为s2中脱文,窗口同时右移,跳过相等部分,转到步骤①;

如果locationl>location2>1,那么s1中在subs2左侧的字对应s2中在subs2左侧的字,分别判断为错文,窗口同时右移,跳过相等的部分,转到步骤①;

⑧如果location2>locationl=1,那么s2中在subs2左侧的字为s2中衍文,窗口同时右移,跳过相等部分,转到步骤①;

如果location2>locationl>1,那么s2中在subs2左侧的字对应s1中在subs2左侧的字,分别判断为错文,窗口同时右移,跳过相等的部分,转到步骤①。

2.4 自动校勘系统的总体设计

古籍自动校勘系统主要包括四个模块(见图2):自动校勘模块、校勘信息显示模块、辅助工具模块和数据维护模块。本系统采用C/S的模式,开发工具为Visual Basic 6.0和SQL Server 2000,开发环境为Windows XP。

①自动校勘模块

该模块包括两个部分:两个版本校勘和多个版本校勘。两个版本校勘,是指由用户设定需校勘古籍的底本和对校本,然后进行自动校勘,将校勘信息直接存储到校勘信息表中。多个版本校勘,是指由用户设定校勘的底本,系统将数据库中已有的其他版本依次作为对校本,进行自动校勘,将校勘信息存储到校勘信息表中,并对底本中相同位置出现的校勘信息加以合并和整理。

②校勘结果显示模块

该模块的主要功能是通过文本和超链两种方式对校勘结果进行显示。文本方式显示,是指按校勘信息表中存储的校勘信息在底本中出现的位置,在底本中顺次标上校勘序号,然后在校勘结果列表框中依次列出对应的校勘结果(见图3)。以超链方式显示,是指在底本中以类似word批注的方式显示校勘信息(见图4)。

③校勘辅助工具模块

该模块的主要功能是提供古代官名、人名、地名的查询及其注解显示,并提供避讳字、异体字、繁简字和古汉语同义词的关联显示,借此帮助专家校勘辨正。辅助工具是古籍自动校勘系统的重要组成部分,下文将具体介绍各工具的构建方法。

④数据维护模块

该模块的主要功能是进行古籍各版本数据和辅助工具各词表的维护工作,包括资料的添加、修改和删除。

3 校勘辅助工具的建设

按照自动化的水平,自动校勘可分为三个层次:①自动列出异文,不作比较和判断。异文,泛指校勘过程中出现的错文、衍文和脱文,下文所指皆同。②在列出异文的基础上,由机器作简单的判断,或者提供辅助工具(如避讳字表、异体字表等),帮助校勘专家进行判断和选择。③自动列出异文,并进行判断和选择,完全代替校勘专家的工作。本研究的目标在于达到自动校勘的第二个层次,因此古代官名表、人名表、地名表、避讳字表、异体字表、繁简字对照表等辅助工具的建设和引入是关键。这些工具的构建方法分为人工构建和机器自动构建两种,但两者往往是相辅相成的。具体构建方法如下:

(1)古代官名、人名和地名表的构建

古代官名、人名和地名的数量庞大,采用以下两种方法收集。首先,采用扫描和OCR识别的方法,从现有的工具书中收集词汇,如《中国历代官制词典》、《中国历代人名辞典》、《中国历史地名大辞典》等。其次,借鉴现代汉语机构名、人名和地名的识别技术,从古籍全文库中收集词汇,加以补充。现代汉语机构名、人名和地名的识别主要是基于语料库,利用分词技术,融合了规则、统计和机器学习的方法进行识别[6~9]。本研究运用N元语法对古籍全文进行分词处理,然后统计词频信息,再由人工审核筛选出古代官名、人名和地名。

(2)避讳字、异体字和繁简字对照表的构建

借用《汉字属性字典》等软件解决异体字、繁简字等的关联显示问题。目前大型的古籍数字化项目大多采用这种方法,如《文渊阁四库全书》通过引入了《汉字属性字典》,解决了本字、异体字、同义字、通假字、繁简字甚至错字等的互检问题;《四部丛刊》以《康熙字典》为基础,设置了包括繁简、异体、新旧、正讹、古今、中日、通假等的关联显示。此外,本研究还采用以下的方法收集了避讳字、异体字和繁简字信息,以作补充。

首先,从校勘学的著作中收集词汇。如田代华的《校勘学》等,其中收录了丰富的繁简字、异体字、历代帝王名讳及其代字兼讳字。其次,采用模式匹配技术,从各种古籍的校释本及其校勘记中提取词汇。如《齐民要术校释》、《农政全书校释》等,其中蕴涵了丰富的校勘和注释信息。笔者对其行文结构进行分析研究,设定提取模式为“‘词语,‘词语”’,其中包括“作”、“亦作”、“或作”、“应作”、“亦均作”、“皆作”、“本作”、“原作”、“的本字作”、“即”、“通”、“指”和“同”等,如果标识词后面的词语没有加引号,则以逗号(,)和句号(。)作为该词的界定符。此模式可以任意的组合和延伸,如组合成“‘词语’同‘词语’,亦作‘词语’”。此外,为了提高提取的正确率,还设定了排除模式,例如“‘词语’‘词语”’和“‘词语’‘词语’”。利用模式提取技术,从古籍的校释本中挖掘出了大量的繁简字、避讳字和异体字信息,同时还提取了同义词信息。最后经过去重、人工审核后,添加到了相应的对照表中。

(3)古代关联词语表的构建,主要是同义词词表

现代汉语同义词识别的方法主要有基于词汇字面相似度算法[10]、基于词素的语义相似度算法[11]、基于语义词典的语义相似度算法[12],以及基于模式匹配的识别算法[13]。结合本研究的特点,笔者采用模式匹配技术,主要从古籍全文库抽取词汇,由人工审核后构建古代关联词语表。笔者对古籍中同义词出现的模式加以归纳和总结,设定提取模式为“原词同义词”,其中“”包括“一名”、“亦名”、“俗名”、“又呼”和“又名”。这种模式可以无限扩展,例如含有两个同义词的模式为“原词同义词同义词”,以此可类推出含有多个同义词的模式。利用这种模式提取同义词的难点在于“原词”的前边界和最后一个“同义词”的后边界如何确定。由于古籍大都是未标点的文本,因此通过设定词语提取的长度加以解决。

除上述辅助工具外,面向校勘中出现的异文为而建立的字词索引或被校古籍的全文数据库,亦可提供古籍字词搭配、作者用词习惯等方面的信息,帮助专家进行勘误。

4 实验结果

测评主要针对实验系统自动校勘的质量而言,主要体现在两个方面:自动校勘的全面性和精确性。其中,全面性是指机器是否可以将实验语料库中的异文全部识别出来,精确性是指自动校勘的结果是否正确。对此,本研究采用常用的指标进行评价,即召回率R和精确率P,它们各自的定义如下:

召回率(R)=A/A+C×100%

精确率(P)=A/A+B×100%

其中,A为自动校勘结果正确的条数,B为自动校勘结果错误的条数,C为自动校勘系统未识别出,但实验语料中确实存在的异文条数。

校勘结果给出的异文信息包括两个部分:异文在底本中出现的位置和异文的内容。假设人工可完全校对出实验语料中的异文信息,将自动校勘的结果与人工校勘的结果进行对比,若二者比对的异文位置和异文内容均相符,则认为自动校勘的结果是正确的,若二者比对的异文位置或异文内容有一个不相符,则认为自动校勘的结果是错误的。

实验语料库中包含四个版本的《齐民要术》资料,分别是仿北宋本、湖湘本、渐西本和缪启愉校释本(第二版),共约40万字。其中,校释本以两宋本为基础,参考了其他各种版本和研究成果,因此选作测试底本。笔者从校释本中随机抽取十六个章节,并从其他三个版本中抽取相应的十六个章节,作为测试数据,约占《齐民要术》数据总量的18。5%。

以校释本为底本,其他三个版本分别为校本,形成三组比对形式:①校释本一渐西本;②校释本一仿北宋本;③校释本一湖湘本。首先,人工判断并统计每个章节在三组比对形式下,自动校勘结果正确的条数(A)、自动校勘结果错误的条数(B)和实验系统未识别出的异文条数(C)。然后,计算各章节的召回率和精确率,及系统的平均召回率和平均精确率。经测试,系统的召回率和精确率分别达到92.3%、95.2%(见表1),表明基于匹配窗口技术的自动校勘算法是可行的。

5 结语

我国古籍数字化的工作刚刚起步,研究主要集中在古籍文本的数字化及其全文检索技术,至于自动校勘、自动查错、自动标点、自动注释、自动翻译等项研究,目前涉足者甚少[14,15]。笔者在自动校勘方面做了初步的尝试:开发了古籍自动校勘的实验系统;讨论并构建了各种校勘辅助工具。测试结果表明,基于匹配窗口技术的自动校勘算法是可行的。今后的研究工作主要包括:改进自动校勘的算法,进一步提高校勘结果的质量;扩大实验规模,检验算法的调适性和准确性;完善校勘辅助工具,增强古籍自动校勘系统的实用性。

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”