一、文字
文字是古籍内容的重要载体,也是古籍模型的重要组成部分。依据字符集,可以将古籍文字划分为集内字和集外字两种类型。文字可以用字体、字号、位置、颜色、变形、旋转等属性来描述。
(一)文字类型
古籍中的文字以汉字为主,还有满文、蒙古文等少数民族文字,日文、韩文、拉丁文、英文等外国文字。在当前技术条件下,文字描述以字符集为基础,字符集内的文字用编码直接表示,而集外字(字符集内未包含的文字)必须用其他方法处理。
1.字符集
字符集是用于特定目的或特定数据处理设备的一组互不相同的字符[2]。汉字编码字符集是按一定的规则确定的包含汉字及有关基本图形字符的有序集合,并规定该集合中的字符与编码表示之间一一对应的关系[3]。汉字编码字符集主要有GB2312、BIG5、GBK、GB18030等,每个字符集包含的文字和符号数量也不同,如表2-1所示。
表2-1 我国各地区字符集收字情况表[4]

续表

由于各个字符集采用不同的编码方式,同一个汉字,在不同的字符集内,会有不同的编码,如图2-1所示。不同的编码方案造成不同地区间的数据交换、处理、显示等问题,而Unicode字符集的出现很好地解决了这一问题。
(1)Unicode
Unicode是一种统一的编码标准,为每个字符编码定义了唯一的编码值,能支持上百万个字符编码。Unicode是一个经过字符宽度整合的编码方式,它是为文字及符号所建立的国际性编码,它几乎覆盖了世界上任何一种语言的字符[5]。Unicode的最新版本是9.0,包含的文字如表2-2所示。
表2-2 Unicode文字表[6]

续表

续表

续表

续表

续表

在Unicode字符集中定义了中日韩统一表意文字(CJK Unified Ideographs)集,也称为统一汉字(Unihan)集。中日韩统一表意文字(以下简称CJK文字)主要来源于中国、日本、韩国、越南、朝鲜、新加坡、台湾、香港、澳门等国家和地区,包含简体汉字、繁体汉字、日本国字、韩国独有汉字、越南喃字等。
CJK基本集(4E00—9FD5)包含CJK文字20950个[7],CJK扩展A集(3400—4DB5)包含CJK文字6582个[8],CJK扩展B集(20000—2A6D6)包含CJK文字42711个[9],CJK扩展C集(2A700—2B734)包含CJK文字4149个[10],CJK扩展D集(2B740—2B81D)包含CJK文字222个[11],CJK扩展E集(2B820—2CEA1)包含CJK文字5762个[12],共包含CJK文字80376个。
每个CJK文字包含一个或多个字源编码(sourcecode),如图2-1所示。Gcode、Jcode、Kcode、Vcode、Kpcode、Tcode、Hcode分别表示文字来源于中国、日本、韩国、越南、朝鲜、台湾、香港等国家和地区。通过字源编码可以直接确定编码来源,也可粗略判断CJK文字是否为汉字。在全部CJK文字中,Gcode文字61640个,Tcode文字57485个,Hcode文字17628个,去除重复后,合计72962个,即Unicode字符集中所含汉字的大致数量。
(2)中华字库
在当前技术条件下,Unicode字符集是收录汉字最多的符合国际标准的字符集。但是Unicode字符集只收录了楷体汉字和傈僳文、苗文、彝文等几种少数民族应用,不能完全满足古籍数字化的需求。中华民族有五千年文明史,文字系统非常复杂,要构建一个完整中华文字字符集是非常困难的,仅凭借个人或某一学术机构的力量几乎是不可能完成的,直到“中华字库工程”的出现。
中华字库工程是列入《国家“十一五”时期文化发展规划纲要》(中办发[2006]24号文件)的重大建设项目。《纲要》确定,中华字库工程要“建立全部汉字及少数民族文字的编码和主要字体字符库。重点研发汉字的编码体系、输入、输出、存储、传输以及兼容等关键技术”。中华字库工程,拟充分利用先进的信息技术手段,收集和汇聚历代文献资源中出现过的汉字和各少数民族文字,辨析其源流衍变,确定标准形体,建立汉字及少数民族文字的编码和主要字体字符库,以全面适应数字化的需求。完成后的中华字库,力争达到能对我国所有的出土、传世文献和当代文字作品进行数字化处理,用中华字库建立的各类文档或数据库,能方便地检索、排序,力争全面打通信息化的发展瓶颈,满足中华各民族古今各类文献的出版印刷、数字化处理和传输的需要,满足国家信息服务与监管的用字需求,满足大陆与港澳台之间信息的互联互通的需求,使中华各民族文字的使用,中华文明的普及与传播,更加方便和高效[13]。
中华字库工程将建立全部汉字及少数民族文字的编码和主要字体字符库,包括:甲骨文字;金文(先秦至汉代所有金文,含铜镜铭文);楚简、帛书及其他古文字(玺印文字、封泥文字、陶文、瓦文、货币文字、秦汉以前玉石文字、金银器文字、漆木器文字、骨刻文字、传抄古文及《说文》所收小篆和其他古文字);秦简文字;汉简文字(两汉、吴、魏、晋简牍文字以及与简牍同时出土的帛书、器物、墙壁上的墨书文字);石刻文字(从西汉到清代的石刻文字,不含玺印文字);手写纸本文献文字(吐鲁番墓葬文书、敦煌藏经洞文献和徽州契约文书等古代手写纸本文献上的文字);古代行书、草书;版刻楷体字书文字;宋元印本文献用字;明清图书用字;现代的汉语出版物用字及专用字、非字符号;当代人名地名用字;少数民族古文字(包括契丹大字、西夏文字、女真文字、方块壮字、方块白文、方块苗文、方块瑶文、布依文、侗文、方块仡佬文、毛南字、哈尼文、纳西东巴文字、八思巴字、佉卢文、婆罗米文、粟特文、回鹘文、回鹘式蒙古文、托特式蒙古文、满文、拉丁变体文字、突厥文字、契丹小字、傈僳族音节文字、水书、纳西哥巴文字等);少数民族现行文字(包括藏文、傣绷文、傣哪文、傣仂文、金平傣文、察合台文、维吾尔文、哈萨克文、柯尔克孜文、撒拉文、蒙古文、锡伯文、凉山规范彝文、四川老彝文、云南彝文、贵州彝文等)等。“中华字库”工程的中间字库约100万字,最终成果包含10万古汉字(包括甲骨文、金文、小篆等不同种类的古汉字)、30万楷书字、10万少数民族文字和数万个非字符号[14]。
中华字库工程于2011年7月正式启动,划分为28个项目包,近30家行业内具有领先优势的高校、研究院所及技术创新企业承担具体的研发任务,目前项目仍在进行中[15]。
2.集外字
集外字是指字符集所不包含的文字,若不采用其他的技术和方法,集外字无法输入、处理和显示[16]。集外字是一个工程化概念,没有严格的学术定义。同时,集外字是个相对概念,集外字的数量与字符集收录文字的数量成反比,当古籍数字化项目的文字总量、用字范围和文字处理规则固定,选用的字符集收字越多,则集外字的数量越少。以国家图书馆数字方志项目[17]第一期(全文化史部地理类古籍744种,14682卷,506485筒子页),使用“中易汉神e”汉字系统,该字库支持CJK基本区、扩A区和扩B区的70195个CJK文字,文本数据总字数为204819943,其中使用CJK基本区16801字(203781248字次),CJK扩A区的2959字(274847字次),CJK扩B区9117字(732675字次),造字及符号、贴图替换31173字次。若使用GBK字符集(收录21003个字),集外字将多出12136个(1007522字次),若使用GB18030-2000字符集(收录27533个字),集外字将多出9117个字(732675字次)。可见,字符集的收字量对集外字的数量有很大的影响。
(1)集外字问题
字符集是一个封闭的系统,虽然中日韩统一汉字(CJK)已达70195个字符,但是即使将来再加扩展,也只可能是古籍刻写异体的一个子集,必然有许多字不能重现[18]。若从文字学视角来考察集外字问题:可将全部文字划分为正体字和异体字两个集合,正体字的数量远小于异体字;字符集是以正体字为主的集合,集外字则以异体字为主;集外字问题既包含异体字认同为正体字,又包含字符集未收正体字补充到字符集或字符集自定义区。
吕永进在《异体字的概念》[19]中列出了在学界有影响的异体字定义16种,2类关于广义和狭义异体字的理解和4类异体字概念之外的补充说明。本书引用李国英的观点:异体字是在使用中功能没有发生分化的为语言中的同一个词造的不同的文字形体以及由于书写变异造成的一个字的不同形体。异体字有两个主要来源,一类来源于构形,一类来源于书写。根据异体字的形成方式,可以把异体字分为异构字和异写字两种类型。异构字有以下几种类型:由于采用不同的构形方式产生的异体字,用同一种构形方式而选用的偏旁不同产生的异体字,用同一种构形方式而选用相同的偏旁而偏旁的位置不同产生的异体字。异写字的主要来源有:由于书写变异造成笔画微异的异体字,由于偏旁简省造成的异写字,由于隶定造成的异写字[20]。
以数字方志项目文字认同实验为例,选取明至民国间方志印本100种(5万余筒子页),文本数据总字数约2000万,严格按照字形比对原书文字与字符集内的标准字形,集内字约占38%,由书写变异造成的异写字(笔画与正体字有细微差异)约占58%,由偏旁简省或由隶定造成的异写字占约2%,其他情况占约2%(含异构字、其他类型异写字、模糊字等,其中模糊字低于0.5%)。文本数据的总体错误率为2.8%%(模糊字不计入错误率),集内字转换的错误率为2.2%%,异写字转换的错误率为2.7%%,异构字转换的错误率为5.2%%。
通过上述实验不难看出,异写字占古籍中异体字的绝大多数,尤其是笔画与正体字有细微差异的异写字。在文本化过程中,异写字转换的数量很大,错误率略高于按原字形转换;而异构字转换的数量较小,但错误率较高;通过文字认同,可以大大降低集外字的用量和总字次;文字认同的错误率对文本数据总体错误率影响较大。
因此,在古籍文本化的研究与实践中,集外字是无法回避的问题,必须引入有效的集外字处理方法。
(2)集外字处理方法
集外字处理方法可分为三类:其一,扩充字符集,通过增加字符集的收字量来减少集外字的总量;其二,文字认同,将集外字认同为字符集所包含的正体字;其三,使用非汉字编码方式表示集外字。常见的集外字处理方法有造字法、认同法、替换法、描述法等。
造字法是利用字符集的自定义区为集外字定义编码,这些编码与集外字的字形一一对应。Unicode字符集的自定义区称为专用区(Private Use Area),包含专用区(E000-F8FF)、专用区增补A(F0000-FFFFD)和专用区增补B(100000-10FFFD),共有137468个码位。由于自定义区码位有限,而汉字字形千差万别,有几十万、几百万,甚至上千万[21],造字法只适用于使用频率较高的集外字。同时,造字法需要集外字管理、字频统计、造字等软件工具的支持。
认同法是将集外字替换为字符集内所包含的正体字。现有的字符集都未能包含全部正体字,因此,认同法只能处理大部分集外字,而非全部。认同法不仅要以文字学理论和权威工具书为指导,还需要集外字管理、文字认同、文字替换等软件工具的支持。由于集外字数量大且情况复杂,文字认同的工作量大且难度高,对文本数据的整体错误率影响显著。
替换法是将集外字变换为符号、图像等。常用的替换符号有“□”(U+25A1)、“■”(U+2588)等,用于替换的图像为二值单字图,即图像中只有一个汉字。将集外字替换为符号简单易行,而替换为图像显示效果较好,但图像的采集、处理和存储都需要软件工具的支持。
描述法是将集外字的字形用字符串表示,而非字符集编码。目前,较为常用的描述方法有《汉语文古籍机读目录格式使用手册》中393字段系统外字附注的外字描述方法[22]、台湾地区“中央研究院”开发的汉字构形数据库使用的构字式描述方法[23]、Unicode的IDS(Ideographic Description Sequence,表意描述序列)描述方法[24]等。
鉴于集外字处理问题的重要性与复杂性,在大型古籍数字化项目中,通常依据文献特性和项目目标,综合使用上述几种集外字处理方法,制定有针对性的集外字处理方案。以《文渊阁四库全书》电子版项目[25]为例,该项目的集外字处理方案包括:参照遵守ISO10646/Unicode的认同规则对集外字进行有控制的异体代换,微小笔形差异视作异写,应认同之而不加标记,在Unicode中两个异体字都有编码时,应选与书中字迹最接近者,其他异体代换,必须标记相似符号“~”;对原书中的模糊之处(“模糊字”),实在难以辨别者,保留其原图形作“□”处理,并加以说明;无法认同的集外字保留原图形并做字形描述,依据字形描述进行字频统计,高字频集外字做造字处理,低字频集外字替换为构字符或“□”;甲骨文、金文、篆文等字体直接替换为图形[26]。再以数字方志项目为例,项目的集外字处理方案包括:参照《汉语大字典》(第一版)对集外字中的异写字进行认同,认同为正体字或字形相近的异体字,不加标记,异构字认同为正体字或字形相近的异体字,并添加文字认同标记;模糊字替换为单字图,并添加模糊字标记,若模糊字无法反映任何字形信息,则替换为“□”;无法认同的集外字替换为单字图,并添加IDS描述,若无法进行IDS描述,则添加其他方式的描述。
(二)文字属性
汉字是音义形的结合体,在古籍中,汉字还具有字体、字号、位置、颜色、变形、旋转等属性。
1.字体
字体,同一汉字由于各种原因(历史演变、书写、印刷等)而形成的各种不同体式,如印刷体(宋体、仿宋体、黑体、楷体等)、手写体、古体、繁体、简体、正体、异体、俗体、讹体等[27]。字体指通行于不同时代的各具特点的汉字形体;汉字自从产生以来,形体在不断地演变,形成了甲骨文、金文、大篆、小篆、隶书、草书、行书和楷书等几种字体,其中甲骨文、金文、大篆、小篆、隶书和楷书都是作为正体在一定时期正式通行过的字体,而草书和行书则始终作为辅助性字体使用;每种字体在笔画的形态,如圆转或方折、平直或起伏等,外形轮廓,如参差或整齐、长方或扁方等,构体情况,如部位是否固定、异体的多寡等几方面都各有不同[28]。通常情况下,一叶古籍中只有一种字体,如图2-2所示;还有部分古籍,一叶中有多种字体,如图2-3所示。
2.字号
字号,印刷体依据字体大小所编的号[31],如图2-4所示。字号是印刷活字的大小,按活字高度(即活字字身长度)计算,一般用点数或号数来表示:外文活字常用点数计算大小,规定1英寸为72点(point);汉字活字多用号数,按字身大小分成一号(头号)至七号七等,常用的五号字相当于10.5点[32]。古籍本身并没有字号的概念,汉字字号是1858年美国人威利母·姜别利(WilliamGam-ble)根据美国当时铅字的大小标准制定的[33]。在本书中,用字号表示古籍中文字的绝对大小。以图2-2为例,半叶7行10字,字号为小初号。
3.文字位置
在每叶古籍中,文字都有特定的位置,如图2-2所示。文字位置可以通过第几行第几字进行粗略描述,也可以使用坐标数据进行精确描述。若古籍图像左上角为原点,即(0,0),右下角为(m,n),每个字具有一定的面积,其位置用左上角和右下角的坐标描述。图2-2中第1行第1字为“叙”,其位置为(1620,300)、(1700,400)。也可以用该字的中心坐标表示,“叙”的位置可表示为(1660,350)。
4.文字颜色
古籍中的文字通常为黑色,也有其他颜色。以印本为例,单色印本中有蓝印本、朱印本等,套印本中有朱墨套印本、三色套印本、四色套印本、五色套印本等,如吴兴闵氏三色套印《孟子》《战国策》,四色套印本《国语》《文心雕龙》等。
5.文字变形
古籍中的文字通常占据正方形或矩形的面积,字库中的字模为正方形。为了排版的需求,古籍中的文字可能出现拉伸、缩进等变形,如图2-5所示。
6.文字旋转
古籍中也存在文字旋转的情况,常见顺时针旋转90度、180度、270度等,如图2-6所示。