甲骨文自由笔画输入法
2010-06-05聂艳召刘永革
聂艳召,刘永革
(安阳师范学院 计算机与信息工程学院 甲骨文信息处理重点实验室,河南 安阳 455002)
1 引言
甲骨文是我国已发现的古代文字中时代最早、体系较为完整的文字,是我国文字史上一笔宝贵的财富。从发现甲骨文至今百余年时间里,甲骨文研究已取得了长足的进展。进入信息时代后,利用计算机数字化技术的优势拓展甲骨文史料的纵深研究已是大势所趋。
近几年,多家研究机构已经建立了甲骨文字库,为甲骨文数字化奠定了基础。但是,要想进行真正的数字化只有字库还远远不够,还必须提供甲骨文输入接口,以方便各种甲骨文文献的数字化集成。甲骨文输入法是其中重要的输入接口。
目前,现代汉字的输入法已形成“万‘码’奔腾”的局面,但究其编码方式无外乎两种思路:音码输入和形码输入。同样,对于甲骨文输入法的研究目前也是沿用这两种思路。
(1) 音码输入
显然,此方案只能输入有限的甲骨字,绝大多数未考释出的甲骨字不能用此法输入,必须借助于形码输入。
(2) 形码输入
形码输入是从甲骨文的字形入手,分析其构形规律,制定合理的编码方案。如果将甲骨文按照“字→部首→部件→笔画”的四级分解模式,目前在部首级别和部件级别都有相应的输入法被开发出来。具有代表性的有以下两类形码输入法。
一、部首级别形码——可视化输入法
考虑到甲骨文编码研究的复杂性,与其勉强制定出繁杂的编码规则,不如退一步省去编码阶段,直接用“可视化”输入。
二、部件级别——象形码输入法
该方案在使用过程中有两大困难:①虽然“一字一码”大大减少了输入时的重码率,看似提高了输入效率,但是重码率的减少是建立在增加码元或编码长度的基础上,这样显然增加了记忆和使用的难度。②在实际输入某一甲骨字时,要求使用者必须能准确地按照一定的规范进行字根的拆分。实际情况是,由于甲骨文构形系统还不成熟,很多构件的形体规整性差,对于一般用户来说很难进行准确的拆分,拆分错误就会导致无法输入该字。
基于字形的输入法除了从部首、部件级别考虑外,也可考虑从笔画级别去进行编码,本文就以此思路讨论建构一种易学、易用的甲骨文笔画输入法。
2 甲骨文笔画系统分析
任何文字的字符都是一笔一画写出来的, 甲骨文当然也不会例外。虽然甲骨文构形系统很不成熟,但是甲骨文已是符号化程度很高的文字,构成甲骨文的最基本单位“笔画”系统已经初见端倪。每一个甲骨字,都是由各种点和线组织起来的,尽管这些点和线的特征跟后世笔画不同,但也都是有规则、成系统的,可以进行分析的。例如表1所示的几个甲骨字及其笔画分解。
表1 甲骨字笔画分解示例
表2 甲骨文笔画分析
续表
3 基于笔画分析的编码方案
3.1 笔画码元——键元对应关系
根据表2的笔画分析结果,每一个甲骨字都是由某些笔画按照一定的规律组合而成,这些构成甲骨字的基本笔画称为“码元”。因此,该编码方案的码元集为:点、横、竖、撇、捺、弯、框、曲、圆九种笔画。
每个码元与键盘上的字母对应起来形成了一种映射关系。为方便记忆,取每种笔画名称的汉语拼音首字母作为键元,即d-点、h-横、s-竖、p-撇、n-捺、w-弯、k-框、q-曲、y-圆。
3.2 拆分规则
由于甲骨字形的不规整性,某些字的笔画或者笔画的顺序难以清晰界定,需要一些原则指导使用者方便地拆分甲骨字。
(1) 无笔顺原则
这是提高甲骨文笔画输入法实用性的关键所在。此原则主要基于以下两点考虑:①甲骨字笔画不规范,不像现代汉字的笔画那么规整,故难以确定统一的笔画顺序。②若勉强规定笔顺,整个甲骨字笔顺规则将比现代汉字笔顺规则复杂得多。当用户输入甲骨字时,必然增加了判断笔画顺序的时间。
(2) 尽量体现造字意图
(3) 自由拆分
图1 依照造字意图拆分字
图2 字可能的拆分方案
无笔顺限制和自由拆分原则减轻了用户的记忆负担,减少了输入甲骨字时思考的时间,为使用者提供更为灵活的空间。此即“自由笔画”之含义。
4 输入法的实现
4.1 字库和码表文件
甲骨文输入法程序的基础为甲骨文字库和码表文件。字库采用香港中文大学的甲骨文字库,此字库收录6 199个甲骨字,具有权威性。码表的格式如下:
<编码>
每一个编码中的字符按照字典升序排列。码表整体结构的排序,在初始情况下按编码长度升序排列,在输入法的使用过程中则将按照编码被搜索命中的频率降序实时调整。部分码表如表3所示(为了下面讨论方便,在表中加了一列序号,但实际的码表中不需要序号)。
表3 码表结构示例
4.2 码表搜索算法
表4 搜索算法示例
4.3 原型程序运行效果
在Java开发环境下实现了原型程序。运行效果如图3所示。
图3 输入法运行效果
用户在笔画输入框输入笔画对应的字符码,候选字标签会显示搜索到的甲骨字(若超过5个字会分页显示),通过输入对应的数字在候选字中进行选择。通常情况下,只需输入部分编码就能在候选框显示出该字,或者通过翻页就能找到该字。如图3显示的,输入wp就把包含弯、撇笔画的字全部搜索出来。
5 结束语
通过对甲骨文的笔画特征进行分析,将构成甲骨字的笔画归纳为点、横、竖、撇、捺、弯、曲、框、圆九种笔画,在此基础上设计了甲骨文笔画输入法。该输入法可以为甲骨文工作者提供方便快捷的输入途径,提高输入效率。目前,该输入法程序只是演示版本,下一个阶段的主要工作是将其升级为标准输入法程序。
[1] 杨亦鸣,顾绍通,马小虎.甲骨文拼音与部件拆分输入法[P].CN:1O1231558A,2008.7.30.
[2] 刘永革,栗青生.可视化甲骨文输入法的编码与实现[J].计算机工程与应用, 2004,40(17):139-140.
[3] 李继明.计算机文字信息处理技术新探—甲骨文象形码设计方案[J].中文信息学报,1996,10(3):18-29.
[4] 肖明,胡金柱,赵慧.面向对象的Petri网方法及其在甲骨文编码中的应用[J].华中师范大学学报(自然科学版),1999,33(4):495-499.
[5] 肖明,赵慧,甘仲惟.甲骨文象形码编码方法研究[J].中文信息学报,2003,17(5):60-65.
[6] 肖明,赵慧,甘仲惟.甲骨文象形码编码的模糊数学模型研究[J],计算机工程与设计,2004,25(3):358-361.
[7] 郝文勉.甲骨文编码的线性结构[J].郑州大学学报:哲学社会科学版, 2005, 38( 1) :87-92.
[8] 冯寿忠.甲骨文笔画系统试析[C]//中国应用语言学会.第四届全国语言文字应用学术研讨会论文集.四川大学出版社,2007:35-45.