中华排检码
宋安华 柴大定 林星雄
(中华排检码研发公司 美国新泽西州)
摘 要 由于汉字的特殊性,汉字排序和汉字检索在中文信息化上,是一个比较难以解决的问题。很多学者专家们一直想找到一个理想且实用的汉字排序规律,从而解决困扰学界业界极久的汉字排检问题。。
关键词 中华排检码 汉字排检法
理想的汉字编码规律,必须要满足两个重要的基本要求:第一是要有一个简单且实用的排序规律,第二是汉字代码对汉字有单一性。中华排检码有效的利用了汉语拼音、四角号码、笔划数加上一个辨别码,得到一简单且实用的编码规律,因而解决汉字排检问题。目前中华排检码字库内已收集国标码与大五码里面全部汉字。中华排检码完全做到:一个代码,一个汉字的基本要求。
在下面正文里,对中华排检码的结构有很详尽地解释。同时也举了三个例子,来说明中华排检码是如何达到其编码目的。其重要特性及优点也一一列举说明。
中华排检码非常适合于电子计算机操作,在中文信息化发展过程中,可提供极大的功能。我们相信中华排检码的确是可称为“近乎理想而且实用”的汉字排检法。
1 绪论
“汉字排检”是汉字排序和汉字检索两个步骤的简称,是两个用法不同但却有密切关系的步骤。汉字排序是指按照某一种简单且实用的规律将字库内汉字排列成先后有序的一条汉字龙。而汉字检索是指按照汉字排序的规律,来查到要找的汉字。
举个例来说,编字典首先便得将汉字按照一种规律来排序。中国的第一本字典“说文解字”是用部首的规律来排序。商务印书馆发行的新华字典,是以汉字的字音用汉语拼音的规律来排序。而使用者便用已定的排序规律来查要找的汉字。
汉字不是拼写文字,有它的特殊性。要有一个简单且实用的汉字排序规律是有多方面的困难。几乎所有的中文书籍,无论科技文献还是普通课本的末尾都缺少一个索引栏。这一缺就会让读者不能很便利地查找该书出现的术语和词汇。另外比如中国地图册中,要找一个并不是很大的城市也是非常麻烦。
在1926年胡适之先生在为《四角号码检字法》写的序言中,曾说:
“……中国字的整理是一件最难的事……第一,字的分类与排列是一切字典辞书的基础;字的排列不可能,一切词典便不可能;……第二……字的排列没有一定,我们便不能不单靠内容和性质来做编排的标准:如文件须分事类、地名须依省份、人名须依百家姓,书目须分四部,那是多么困难的事啊!”
东汉许慎编的《说文解字》收录了9353个汉字;1716年编撰的《康熙字典》有47035个;1994年出版的《中华字海》有87019个汉字。面对如此浩若星海的汉字,加上汉字结构的特殊性,要开发出一个简单且实用的汉字排序方法,是一项艰苦的工作。
多年来,我们深受“汉字无序之苦”。我们也深知“汉字有序之难”。
但是要让中文在科技日新月异的现代信息化的社会里,发挥出更快捷、更有效率的功能,一个简单且实用的汉字排序规律是必要的。有很多学者对汉字的排序作出了深入的研究和探索。但要想达到一个简单且实用的汉字排序规律,尚待中文文字界的学者专家们继续努力。
在这篇论文里,我们要报告我们在过去几年来对汉字排检研究的成果,介绍这个“近乎理想而且实用”的排检法:中华排检码。
2 中华排检码的设计目标
在这一节里,我们将中华排检码必须要达到的主要目标,先定清楚。有了清楚的目标,我们在设计发展的过程中,才不会走许多冤枉路。同时我们也定了几个设计参数。这些设计参数是我们在设计发展的过程中的次要目标。
中华排检码的目的是要解决汉字排检问题。要解决汉字排检问题,首先是要解决汉字排序这一个步骤。汉字有了排序,然后就能解决汉字检索这一步骤。
而做到汉字排序的最重要的两个基本要求是:第一是要有一个简单且实用的排序规 律;第二是汉字代码对汉字有单一性 (Uniqueness)。用白话来说,就是一个汉字代码仅只对一个汉字,不能对应几个汉字。此外,我们在下面列举中华排检码的几个设计参数。我们也在这一节中简略地解释为什么预先就选定这些设计参数。
适合于电子计算机操作。要达到中文信息化,我们知道中华排检码必须适合于电子计算机操作。
不用固定二字节或多字节形式。我们知道如使用固定二字节或多字节形式,如国标码、大五码或统一码,是会引起与其他已存在的国际标准有冲突。因此中华排检码不采用固定二字节或多字节形式,我们采用了码长不定的拼字法,亦即象英文拼字一样的把代码拼出来。
使用现今通用亚司基码(ASCII,美国信息互换标准代码)。要达到中华排检码适合于电子计算机操作和码长不定的拼字法的要求,我们知道中华排检码必须使用亚司基码。
可用为内码。中华排检码不用二字节或多字节的固定形式。使用中华排检码为内码,让将来我们需要增加或改变内码的时候,可以避免许多限制。
可满足将来信息化的需求。
3 中华排检码
在这一节里,我们首先解释中华排检码的结构是分为三部分。然后,我们再详尽地解释这三部分的组成细节。同时也举了三个例子。我们用它们来一一说明中华排检码是如何达到有单一性的特性。
最后,我们列出了中华排检码字库内第 6071到 6100 的三十个汉字和它们的中华排检码代码。
3.1 结构和组成细节
中华排检码的汉字代码是由三部份组成:(1)字的字音,(2)字的字形(某几种字形特征),(3)辨别码。中华排检码的结构可见下表:
列表1 中华排检码的结构
中 华 排 检 码 |
第一部份 | 第二部份 | 第三部份 |
字音 | 字形 | 辨�码 |
中华排检码的汉字代码的三部分具体组成是:(1)汉语拼音(声和调),(2) 字的字形 (四角号码 + 笔划数),(3) 辨别码(英文字母)。
列表2 中华排检码具体组成部件中 华 排 检 码第一部份
中 华 排 检 码 |
第一部份 | 第二部份 | 第三部份 |
汉语拼音 | 四角号码 + 笔划数 | 辨�码 |
3.2 中华排检码举例
下面我们列举三个例子,来说明这些汉字的中华排检码是如何构成的。第一例用五个汉字:中、华、排、检、码。
在下面例子中,第一部分是汉字的汉语拼音,第二部分仅只是汉字的四角号码。而这五个汉字的代码仅只需用汉语拼音和四角号码,便可以使这五个汉字在字库里具有单一性。在中华排检码字库中,这一类的汉字最多。约占90%以上。
列表3 中华排检码例子之一
| 第一部份 | 第二部份 | 第三部份 | 中 华 排 检 码 |
中 | zhong1 | 5000 | | zhong15000 |
华 | hua2 | 2440 | | hua22440 |
排 | pai2 | 5101 | | pai25101 |
检 | jian3 | 4891 | | jian34891 |
码 | ma3 | 1762 | | ma31762 |
第二例用三个汉字:辨、�、�。
列表4 中华排检码例子之二
| 第一部份 | 第二部份 | 第三部份 | 中 华 排 检 码 |
辨 | bian4 | 0044 16 | | bian4004416 |
� | bian4 | 0044 20 | | bian4004420 |
� | bian4 | 0044 21 | | bian4004421 |
在上面例子中,第一部分是汉字的汉语拼音,第二部分是汉字的四角号码和笔划。而这三个汉字的代码仅只需用汉语拼音、四角号码和笔划数,便可以使这三个汉字在字库里具有单一性。在中华排检码字库中,这一类的汉字约占 7%左右。
第三例也用三个汉字:糜、麋、縻。
列表5 中华排检码例子之三
| 第一部份 | 第二部份 | 第三部份 | 中 华 排 检 码 |
糜 | mi2 | 0029 17 | | mi2002917 |
麋 | mi2 | 0029 17 | a | mi2002917a |
縻 | mi2 | 0029 17 | b | mi2002917b |
在上面例子中,这三个汉字的汉语拼音、四角号码和笔划数完全相同。为了使这三个汉字在字库里具有单一性,我们必须使用辨�码。在中华排检码字库中,这一类的汉字约占1%以下。
要解决汉字排序和检索问题,汉字代码对汉字有单一性这一个要求是必须要满足的。从上面的三个例子中,我们可以看到:在中华排检码编码规律安排之下,单一性的这个要求是达到了100%的。
中华排检码代码和汉字之间无重字率的关系可见下表:
列表6 中华排检码无重字率
中华排检码部件 | 无重字率 % | 无重字率 % |
(统计结果系根据右列两字库) | 大五码 (13053字) | 大五码+国标码* (13053+6763字) |
只用汉语拼音 | 1.4% | 1.2% |
只用汉语拼音+四角号码 | 92.4% | 92.1% |
只用汉语拼音+四角号码+笔划数 | 99.3% | 99.1% |
使用中华排检码 (汉语拼音+四角号码+笔划数+辨别码) | 100.0% | 100.0% |
*国标码 (GB2312)
3.3 中华排检码字库中的汉字代码举例
在目前中华排检码字库内已收集有国标码与大五码里面所有的汉字。除去相同的汉字后,一共有15431个汉字。在下面列表里,我们列出了中华排检码字库内第 6071到 6100 的汉字和它们的代码。
列表7 汉字和汉字代码对照表
| 汉字 | 中华排检码 | | 汉字 | 中华排检码 | | 汉字 | 中华排检码 |
6071 | � | kui48671 | 6081 | � | kun12271 | 6091 | � | kun18611 |
6072 | 箦 | kui4888014 | 6082 | 鲲 | kun12611 | 6092 | 锟 | kun18671 |
6073 | � | kui4888018 | 6083 | � | kun12631 | 6093 | � | kun19601 |
6074 | 篑 | kui4888015 | 6084 | � | kun14471 | 6094 | � | kun19681 |
6075 | � | kui4888017 | 6085 | 坤 | kun14510 | 6095 | � | kun31660 |
6076 | 愦 | kui4950812 | 6086 | � | kun14621 | 6096 | � | kun32670 |
6077 | � | kui4950815 | 6087 | � | kun16022 | 6097 | � | kun3269013 |
6078 | 愧 | kui49601 | 6088 | 昆 | kun16071 | 6098 | � | kun3269013a |
6079 | 琨 | kun11611 | 6089 | 髡 | kun17221 | 6099 | � | kun33620 |
6080 | 醌 | kun11661 | 6090 | � | kun17631 | 6100 | 阃 | kun33760 |
* (举例-第 6071到 6100字)
4 中华排检码的重要特性及优点
由于中华排检码的编码方法,因而产生了许多优点。我们在这一节里将其重要特性及优点一一列举说明如下。
4.1 简单且实用的汉字排序规律
我们知道要解决汉字排检问题,最基本也是最重要的要求之一是要有一个简单且实用的排序规律。中华排检码达到这一个要求。
4.2 单一性
我们知道要解决汉字排检问题,汉字单一性这一个最基本也是最重要的要求之一是必须要满足的。中华排检码能够100%地达到这一个要求。
4.3 繁体与简体字兼容
中华排检码字库中,收集全部国标码与大五码中的汉字。繁体汉字与简体汉字是完全可以兼容的。下面我们举三个例子。
列表8 繁体与简体字兼容举例
| 第一部份 | 第二部份 | 第三部份 | 中 华 排 检 码 |
华 | hua2 | 2440 | | hua22440 |
� | hua2 | 4450 | | hua24450 |
检 | jian3 | 4891 | | jian34891 |
� | jian3 | 4898 | | jian34898 |
码 | ma3 | 1762 | | ma31762 |
� | ma3 | 1162 | | ma31162 |
在上面例子中,这三个汉字的繁体写法与简体写法,字形是不一样的。因此它们的四角号码也是不一样的。这三个汉字各有各的中华排检码代码,所以其单一性仍然保持。
4.4 多音字兼容
在汉字里,有少数汉字会有不同的读法。例如在“行动”和“银行”二个名词中的“行”字,就有不同的读法。在中华排检码字库中,这一种汉字是完全可以兼容的。它们各有各的中华排检码代码,而仍然具有其单一性――汉字代码对汉字有单一性。但是反过来看,一个汉字可以有几个汉字代码。这些汉字代码是代表汉字的不同读法。下面我们举二个例子。
列表9 多音字兼容举例
| 第一部份 | 第二部份 | 第三部份 | 中 华 排 检 码 |
行 | xing2 | 2122 | | xing22122 |
行 | hang2 | 2122 | | hang22122 |
华 | hua2 | 2440 | | hua22440 |
华 | hua4 | 2440 | | hua42440 |
4.5 与国标码、大五码、统一码有一一对应
中华排检码的字库可以收集在国标码、大五码与统一码字库中的汉字。有一一对应这一点,便可以用中华排检码来做码与码之间的转换。例如将已有的国标码档案,可利用电脑自动转换为中华排检码档案。
4.6 汉字有序
中华排检码字库中的汉字是依照其汉字代码的顺序存档。这个顺序在各种汉字文字处理操作上是非常有用的。诸如在列表、电子数据报表、字典编纂、名册编制等等。
4.7 文本识读 (text-to-speech)
现在人们开车,都喜欢一种新科技:卫星定位系统GPS。它能自动告诉你路线,省去了查地图之苦。说话的是“它”,即机器,不是真人。这种技术就是使用文字转语音系统技术。即“从文本到语音”。这种技术能把文字转化为自然语音流,让用户可以听到清晰悦耳的音质和连贯流畅的语调。
在使用中华排检码的编码规律下,每一个汉字的汉语拼音都包括在代码里 (中华排检码的第一部分)。因此当我们将中文文字用中华排检码储存在电脑中,我们可以使用文字转语音系统将文章读出来。
4.8 加补新字方便
添加新字极端方便。每一个新字都可以按次排序插入字库。新字加入字库中后,字库中的字仍然保持汉字字序。而且添加新字随时可加。
4.9 有效地避免乱码
中华排检码是使用26个英文字母和10个阿拉伯数字来拼出汉字代码,而英文字母和阿拉伯数字是使用现今通用亚司基码。中华排检码码长不定,不用二字节或四字节定长内码方法。完全不同于国际码,大五码或统一码。
使用亚司基码的好处之一就是,中华排检码的档案在电脑文字处理或网际传输操作下,可以有效避免乱码。中华排检码非常适合于电子计算机操作。
4.10 内码即外码
中华排检码的内码和外码是一致的,所以中华排检码的拼法也可以用来做输入法。更因为中华排检码的代码与汉字之间有单一性,这一点可使中华排检码输入适合盲打。
4.11 现有输入法仍然可用于输入中华排检码
现有的种种输入法仍然可用于输入中华排检码。这是因为中华排检码与国标码、大五码与统一码的汉字均有一一对应。无论使用者用何种输入法,当使用者输入汉字之后,文字处理系统可以存入与其汉字对应的中华排检码。
所以在输入法使用上,现有输入法仍然可用。对使用者而言不会有必要去学一种新的输入法。
5 总结
在这篇研究论文第三节里,我们对中华排检码的结构有一个很详尽地说明。在第四节里,我们对中华排检码的种种优点有一个很详尽地说明。基于上述中华排检码的结构与多项优点,使用中华排检码在中文信息化发展过程中,有极大的优势。我们相信中华排检码的确是可称为“近乎理想且实用”的汉字排检方法。
中华排检码有种种优点,也非常适用于电脑操作。这些可以让我们在此指出编制中文索引栏已不再是一件难事。在现有的条件下,利用中华排检码可以很方便地为已有电子本的中文书籍,加添索引栏。索引栏将依英文字母分为二十六栏,每一栏内所有名词则依中华排检码的顺序排列。在中英文名词并列的情况下,利用中华排检码来编制索引栏依然是很方便的。这是因为中华排检码基本是用亚司基码拼出来的。
这是我们首次公开发表我们研究成果的论文。在中华排检的码结构上有缺失的,在整个思考上有错误的,论文中有解释不清楚的地方,多半是免不了的。请在行的先进、学者、专家们多多指正。让我们一起来克服“汉字无序之苦”,一起来解决“汉字有序之难”。
6 致谢
我们有一种共同地认识:就是就一般而言,研究工作的成果多半是会引用到一些先进专家过去的经验和成果。而所谓的新成果也仅只是一些旧成果的累积再加上一点点自己的新东西。
我们在此要向做汉字排检研究工作的先进专家们致谢。在过去几年里,有许多贝尔实验室的先后同事们不断地给我们鼓励和关注,我们特别在此致谢。
7 声明
中华排检码已获得中国知识产权局颁发的知识产权证书。产权证书号码:No. ZL 2004 1 0039250. 2,发证日期:2008-4-16日。
中华排检码亦获得美国知识产权局颁发的知识产权证书。产权证书号码:No. 7,359,850-B2,发证日期:2008- 4- 15日。
中华排检码汉字与汉字代码对照表已向中国国家版权局登记,且已获得颁发的著作权登记证书。证书号码:No. 2004-L- 02025,发证日期:2004-12-12日。
上列三项知识产权及著作权,均为三位作者及在美国成立的中华排检码研发公司所拥有。
8 联络地址
中华排检码研发公司
CSC Research,LLC
23 Seven Oaks Circle
Holmdel, NJ 07733 U.S.A.
www.CSCResearch.com
CSCResearch@CSCResearch.com
宋安华博士 Andrew Soong, Ph.D.
Andrew@CSCResearch.com
柴大定博士 David Chai, Ph.D.
David@CSCResearch.com
林星雄博士 Sing Lin, Ph.D.
Sing@CSCResearch.com
参考资料
1 四角号码. 新华字典(大字本,内附四角号码检字表). 北京:商务印书馆,2001
2 四角号码及其用法. http://www.4jhm.com/tsghm/2007/0814/article_5.html。