仓颉系统系朱邦复先生及沈红莲女士根据仓颉输入法的设计原意而把仓颉输入法应用于中文检字方式,从而解决汉字现时的
检索困难问题。仓颉系统源自朱邦复过去对汉字基因的研究。汉字基因是朱邦复对仓颉输入法字首字身研究,得出的汉字理论。他提出汉字构造蕴含古人的概念认知,称为汉字基因,并以此深入探求汉字背后的精微意义。他将“变易之理”与汉字相对应,一一寻求其“根”,并分为若干“层次”,以作“绝对分类”,求出其“最大公约概念”、以及“最小公因象征”,是称“汉字基因”。
汉字检索
现时汉字的检索,在绝大多数地区都是以读音顺序为主。例如:
汉字检索
中国
台湾虽然亦有以
注音符号序列作检索,但日常应用仍以部首检字法为主;香港的电话簿虽然亦有提供粤音姓名检索,但日常使用,仍然以部首检字法或纯綷笔划检字法为主,这从香港小学的电脑认知课程主要教授九方输入法及仓颉输入法而可得知。
汉字检索的最大问题,是不管用甚么方法来实行,都要面对重码的问题。而重码的出现,亦使汉字检索的顺序产生一个疑问:有没有办法可以让汉字像其他字母系统一样,有一个绝对的检索顺序呢?
仓颉方案
朱邦复先生在发展仓颉输入法时,原意是要发展出一套“中文检索法”,使汉字俱有“序仓颉字根
位观念”,让汉字都有一个序位,使中文如同拼音文字般,用少少数个“字根”找到所有汉字,而不是单单作输入用途。因此,其26个仓颉输入法的字根“日月金木水火土…止卜”,其实就好像拉丁字母的26个字母“ABCDE…XYZ”、日本语的五十音序等,是一个有序的排列,可用作汉字的检索用途。
仓颉字根
采用仓颉输入法作检索法,由于字根都依汉字“形音字”特性分析得来,故若在电脑上运用这套方法,不仅有具有只可作输入汉字用“字码”功能以外,还可以有下列用途:
字序︰“仓颉字根”有一定的排序,故汉字也可如同英语般,有顺位的观念。
字形︰“仓颉字根”可组合任何汉字,并显示电脑萤幕;
字音︰“仓颉字根”所表示“汉字音符”,可作语音用;
字义︰“仓颉字根”所表示“汉字形符”,可供“电脑人”了解人类常识;
字辨︰可把“汉字图档”分析出“仓颉字根”,并组成汉字,可供电脑扫描辨识汉字。
把电脑依上列汉字之六大要素:字码、字序、字辨、字形、字音、字义,综合一体考虑,进而发展出“电脑系统”,称为“仓颉系统”。
解决问题
在仓颉系统中,仓颉码不仅用来输入,也可以组合、输出字形,甚至呈现出虚构字。
仓颉系统可解决下列各种问题:
字序问题
汉字字典依“部首”、“笔划”检索没有效率,兼没“序位”观念,若以仓颉码排序汉字,则汉字的字序分明,人类或电脑程式查找汉字将方便快速许多。没有大五码和统一码字序混乱的缺点。
缺字储存
电脑系统会有缺字问题,除了汉字的编码和查对旷日费时以外,字集的储存空间也是一大考量因素。主流的轮廓字体中,TimesNewRoman约占400KB,收字不足1500;
新细明体和细明体共约8.6MB,收字不到23000字;标楷体约5.1MB,收字亦不到23000。相较于
拼音文字,由于
汉字所需的储存空间庞大,许多小型的电子仪器不是无法收入汉字,就是缺字严重,如电子辞典、手机、各式医疗电子仪器等等。由于仓颉码有字首、字身的讯息,汉字字形产生器可根据输入的仓颉码,把字根自动组合为字形,无需把每个字的字形逐一储存,大大减少所需记忆空间。由于输入输出统一以仓颉处理,取码与输出字形相符。
朱邦复在1995年开发的汉字字形产生器是依输入的仓颉码组合成字。该系统本身收录了已存在约六万古今汉字(字首约六百,字身约一万);并且可根据仓颉组字规则类推,依已有的字首、字身组合出“新字”近一千万。此系统共占160KB,在450MHz的电脑上,每秒可产生及显示16×16之字型46000个。字体有明、黑、圆、宋、
楷、
隶等,并且能任意变化大小、笔划粗细、笔划填充。与当今字集相较,其效率相当惊人。
编码问题
一般的字集编码缺少扩充空间,新字只能加在不同的字面上,不同字面间的汉字排序非常混乱。仓颉系统采用一个字4字节固定码长的编码策略,一字共5个仓颉码(少于此数则补空码),一码占5位元(26个仓颉码、5个重复字处理码,加上空码共32个,即2的5次方),再加上数个辨识码组成。由于本身留下大量的编码空间,足够随时添加汉字至指定的编码位置(但实务上,若有
重码则需另外处理),不同的字形对应的仓颉码也不同,不会有相异字形兼并为同一内码而带来麻烦。
输入问题
由于
汉字表意特性强而表音特性弱,很多字没有明确的“标准读音”,或者标准读音常常变化;大多数的罕用字读音也很难被了解,因此音码无法全面解决汉字输入问题。此外,汉字同音字多,音码输入如果用于较大的字集,选字将严重影响效率。朱邦复认为,中文输入必须要能够处理所有的汉字,因此编码时根据字首、字身分析,以求仓颉码能反映汉字的组合特征。他同时也极力避免重码,这主要是为了编码和排序考量。相对而言,其他形码输入法主要着眼于易学易用及快速,仅针对常用字进行编码,对罕用字处理较粗糙,不是无法输入就是重码率高。
应用系统
朱邦复先生依仓颉系统的概念,设计出以下几套系统:
聚珍整合操作系统
聚珍整合
操作系统于1989年推出市场,使用第五代仓颉,提供符合汉字结构的字数百万,有七万为实际用字,整个系统连同各种程式只占450KB。因此,当系统发售时,一个A4纸长宽、十厘米高的盒子里,主要是使用手册,而整个系统只占用一片软磁盘。即使是当时市面上功能最差的个人电脑,亦可以顺畅地运行。
人文系统
“人文系统”是一套于1999年起发展的非操作系统,且不对外发售。其为建构在MS-DOS上的软件系统,并由两项系统组成:具图文功能的“图文系统”;
汉字处理功能的“仓颉系统”
此系统是首套使用第六代仓颉(又称苍颉)的系统。由于有字序,即使
数据库巨大,查寻速度仍然很快。灵活的字库,也让生僻字能如常处理。仓颉系统的优点得到发挥。
这套系统现时有北京的栾贵明教授用来建构其收录中国历代文献的,成品为汉文史数据库。
明珠中文系统
脱胎自聚珍中文系统,含明珠中文小字库。
理解系统
理解系统是仓颉系统的一部分。该系统将汉字使用4字节的固定长度编码,其中有1个“分类字符”,1个“区别字符”,和2个“定义字符”。采用固定长度编码的目的是为了能够快速方便地检索。在“分类字符”中,朱邦复将
汉字用二分法进行多次的“概念分类”,以定义汉字的字义:
图1显示将概念分为三十二的结果。举例而言,“逃”为主观-行为-生存-体能,故前5码为11001。32类各可再细分为八,共有256类,刚好可用1个字符代表,如“体能”的详细分类为:
C8行动:进退赴去往返来达莅渡旅行巡到出入C9走动:走踱跑跨迈超步越驰奔凌CA体动:扒攀登游泳泅涉仆跌扑爬拐CB追动:躲避窜逃遁追赶撵驱逐排CC脚动:踏踩踹蹬踢跳蹦践蹑蹈蹴跺跃CD姿动:仰俯伏跪坐鞠躬蹲踞躺卧趴站立伫CE互动:搂拥抱挣扎拦挡妨碍遏绊刹CF电脑:(电脑功能)其中“逃”属“追动”类,编码为CB。“逃”的“区别字符”定义如下:位元1及2 有四种组合,表示危险性之程度,逃字设为1,优先性不高,此类条件由主体自行判断。位元3 表示字首之关系,设为1,凡属1者,皆需查字首「辵」之说明。位元4及5 文字结合型态为「静态」、「始态」、「终态」或「连续态」。位元6 表示是否可做为姓,设为0,表示否定。位元7 能否作单位用,设为0,表示否定。位元8 有无延伸定义,设为0,表示否定。 “逃”的“定义字符”定义可参考下表:
位元1 移动之方向两种:固定/无关。 2,3 速度之快慢四种:急/缓/正常/无关。 4,5 位移之对象四种:接近/远离/比较/无关。 6 动作之连续两种:连续/否。 7,8 动作之能量四种:大/常态/小/无关。 9,10 行为之态度四种:紧张/谨慎/从容/无关。 11 行为之影响两种:严重/无关。 12 行为之隐秘两种:需要/无关。 13~16 暂未定。 如此一来,32个位元便能表达无数多种的汉字字义,空间和时间效率都很高。举例来说,若要判断“逃”是否属于“生存类”,比对前3个位元是否等于110即可。
仓颉系统系采用组合语言写成,可针对输入的文句产生联想推理的“概念网络”,根据这些对汉字的定义编码进行高速的复杂运算,进而理解一段中文的意思。
图文系统
图文系统是理解系统的其中一种应用,该系统可以理解一段输入的中文文本,全自动产生一段动画。只须事先绘制必要的物件模型,以及设定数个基本的运镜参数即可。朱邦复计划使用这个系统量产中文动画,以发扬
中国文化。
批评意见
一些人对仓颉系统做出以下的批评:
仓颉为了考虑按键的分配和重码率,不得不破坏汉字的理据拆分(如将“门”拆成“日弓”,但之间没有
文字学的连系)。迁就了键盘,但失去了部件的教学和检字功能。仓颉输入码在有理论上的极限值,32自乘5次。如果踫到新字,就必须回头修改仓颉系统的数据库,如果有重码,还要试图化解。还没换新版的仓颉之前,新字无法立刻呈现。仓颉码只是字形的“特征取样”,舍弃了很多
资讯,往往造成例外和重码,使程式变得极为复杂而难以推广。