仓颉系统

仓颉系统是朱邦复及沈红莲根据“汉字基因”理论设计的电脑系统，目的是解决汉字在数字化、资讯化上的一切困难，如缺字、编码、储存、排序、输入。

## 汉字检索的问题

现时汉字的检索，在绝大多数地区都是以读音顺序为主。例如：

- 日本的汉字检索，以五十音顺序而排列。
- 韩国的汉字，以谚文字母顺序排列。
- 中国大陆的汉字，以汉语拼音顺序排列。

台湾虽然亦有以注音符号序列作检索，但日常应用仍以部首检字为主；香港的电话簿虽然亦有提供粤音姓名检索，但日常使用，仍然以部首检字法或纯綷笔划检字法为主，这从现时香港小学的电脑认知课程主要教授九方输入法及仓颉输入法而可得知。

汉字检索的最大难题，是不管用什么方法来实行，都要面对重码的问题。

## 仓颉系统方案

朱邦复在发展仓颉输入法时，原意是要发展“中文检字法”，使汉字具有“序位观念”，使中文能像拼音文字一般，用少数字母找到所有汉字。仓颉输入法的26个字码“日月金木水火土…卜”，其实正如同拉丁字母的26个字母“ABCDE…XYZ”、日本语的五十音序等，是有序的排列，可用于检索汉字，是以称作“仓颉字母”。

事后他进一步扩充系统，提出汉字基因理论。由于字根都依汉字形声字特性分析得来，故若在电脑上运用这套方法，将有以下六大用途：

1.字码：仓颉码可用于汉字之输入，即仓颉输入法。

2.字序：仓颉码有一定的排序规律，汉字也可如同英语般快速地排序、查询、检索。

3.字形：将仓颉码输入“向量字形产生器”后，可组合成汉字，显示于电脑萤幕或用于打印。

4.字辨：把扫描所得的汉字点阵资料输入，转换为向量，分析其中的仓颉字根，可得出仓颉码。这种由“形”得“码”的过程就是文字辨识。

5.字音：大部分的汉字具有形声的特质，因此将输入的仓颉码的字身份析出来，通常可代表该汉字的声部，即读音，可用于语音辨识。（但实务上，很多汉字发音已变，须另外处理。）

6.字义：由“仓颉码”可分析出字首和字身，能够透过程式组合出汉字字义，可供电脑“理解”人类常识，甚至和人类沟通。

仓颉系统即是将上列六大要素综合考虑而发展出的电脑系统。

## 所解决的问题

仓颉系统可解决下列各种问题：

### 字序问题

汉字字典依“部首”、“笔划”检索没有效率，兼没“序位”观念，若以仓颉码排序汉字，则汉字的字序分明，人类或计算机程序查找汉字将方便快速许多。没有大五码和统一码字序混乱的缺点。

### 缺字和储存问题

<image>

电脑系统会有缺字问题，除了汉字的编码和查对旷日费时以外，字集的储存空间也是一大考量因素。目前主流的轮廓字体中，Times New Roman约占400KB，收字不足1,500；新细明体和细明体共约8.6MB，收字不到23,000字；标楷体约5.1MB，收字亦不到23,000。相较于拼音文字，由于汉字所需的储存空间庞大，许多小型的电子仪器不是无法收入汉字，就是缺字严重，如电子辞典、手机、各式医疗电子仪器等等。

由于仓颉码有字首、字身的讯息，汉字字形产生器可根据输入的仓颉码，把字根自动组合为字形，无需把每个字的字形逐一储存，大大减少所需记忆空间。由于输入输出统一以仓颉处理，取码与输出字形相符。

朱邦复在1995年开发的“汉字字形产生器”是依输入的仓颉码组合成字。该系统本身收录了已存在约六万古今汉字（字首约六百，字身约一万）；并且可根据仓颉组字规则类推，依已有的字首、字身组合出“新字”近一千万。此系统共占160KB，在处理器速度450兆赫的电脑上，每秒可产生及显示16×16之字型46,000个。字体有明、黑、圆、宋、楷、隶等，并且能任意变化大小、笔划粗细、笔划填充。与当今字集相较，其效率相当惊人。

### 编码问题

一般的字集编码缺少扩充空间，新字只能加在不同的字面上，不同字面间的汉字排序非常混乱。朱邦复曾批评统一码处理汉字方法愚昧、收字不全、字序混乱、码长不等，认为不能采用。

仓颉系统采用一个字4字节（byte）固定码长的编码策略，一字共5个仓颉码（少于此数则补空码），一码占5位元（26个仓颉码、5个重复字处理码，加上空码共32个，即2的5次方），再加上数个辨识码组成。由于本身留下大量的编码空间，足够随时添加汉字至指定的编码位置（但实务上，若有重码则需另外处理），不同的字形对应的仓颉码也不同，不会有相异字形兼并为同一内码而带来麻烦。

### 输入问题

由于汉字表意特性强而表音特性弱，很多字没有明确的“标准读音”，或者标准读音常常变化；大多数的罕用字读音也很难被了解，因此音码无法全面解决汉字输入问题。此外，汉字同音字多，音码输入如果用于较大的字集，选字将严重影响效率。

朱邦复认为，中文输入必须要能够处理所有的汉字，因此编码时根据字首、字身份析，以求仓颉码能反映汉字的组合特征。他同时也极力避免重码，这主要是为了编码和排序考量。相对而言，其他形码输入法主要着眼于易学易用及快速，仅针对常用字进行编码，对罕用字处理较粗糙，不是无法输入就是重码率高。

## 实际应用

朱邦复依仓颉系统的概念，设计出以下几套系统：

### 聚珍整合操作系统

聚珍整合操作系统于1989年推出市场，使用第五代仓颉，提供符合汉字结构的字数百万，有七万为实际用字，整个系统连同各种程式只占450KB。因此，当系统发售时，一个A4纸长宽、十厘米高的盒子里，主要是使用手册，而整个系统只占用一片软碟片。即使是当时市面上功能最差的个人电脑，亦可以顺畅地运行。

### 人文系统

“人文系统”是一套于1999年起发展的非操作系统，且不对外发售。其为建构在MS-DOS上的软件系统，并由两项系统组成：

- 具图文功能的“图文系统”。
- 汉字处理功能的“仓颉系统”。

此系统是首套使用第六代仓颉（又称苍颉）的系统。由于有字序，即使数据库巨大，查寻速度仍然很快。灵活的字库，也让生僻字能如常处理。仓颉系统的优点得到发挥。

这套系统现时有北京的栾贵明教授用来建构其收录中国历代文献的，成品为汉文史数据库。

### 明珠中文系统

脱胎自聚珍中文系统，含明珠中文小字库。

### 理解系统

理解系统是仓颉系统的一部分。该系统将汉字使用4字节的固定长度编码，其中有1个“分类字元”，1个“区别字元”，和2个“定义字元”。采用固定长度编码的目的是为了能够快速方便地检索。

在“分类字元”中，朱邦复将汉字用二分法进行多次的“概念分类”，以定义汉字的字义：

<image>

上图显示将概念分为三十二的结果。举例而言，“逃”为主观-行为-生存-体能，故前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即可。

仓颉系统系采用组合语言写成，可针对输入的文句产生联想推理的“概念网络”，根据这些对汉字的定义编码进行高速的复杂运算，进而理解一段中文的意思。

### 图文系统

图文系统是理解系统的其中一种应用，该系统可以理解一段输入的中文文本，全自动产生一段动画。只须事先绘制必要的物件模型，以及设定数个基本的运镜参数即可。

朱邦复计划使用这个系统量产中文动画，以发扬中国文化。

范例：【记承天寺夜游】动画、剧本

## 仓颉码延伸的应用

### 形体相近的汉字的判断与汉字学习

将汉字的构造细分为主要成分，作为代表汉字的另一种内码，已经有许多相关研究。延伸仓颉码拆解汉字的精神，但是不采用仓颉输入法因限制一个汉字最多五码的限制而进行的省略动作，以比较详实的仓颉码来代表汉字的细部结构，进而比较汉字的近似程度。搭配汉字发音相同与相近的相关资讯，基于汉字形体与发音近似的程度，可以猜测中文学习者的错字，作为学习汉字的辅助工具。

## 对仓颉系统的评价

### 赞赏

国学大师钱锺书于1984年，在中国社会科学院开始宣道古籍电子资料化，并建立汉文史电子数据库。工作之初，钱锺书领导的硏究小组搜集了那时候所有中文系统及相关资料，然后由钱锺书选定。钱锺书认为仓颉输入法及仓颉系统设计符合汉字特性，赞赏“发明人懂中文，有远见”，遂指定用它来进行古籍电子化。

### 批评

易符科技（后易名为刹那搜寻工坊）的动态组字开发者叶健欣，则批评仓颉编码为了考虑按键的分配和重码率，不得不破坏汉字的理据拆分（如将“门”拆成“日弓”，但之间没有文字学的联系）。迁就了键盘，但失去了部件的教学和检字功能。他认为仓颉码只是字形的“特征取样”，舍弃了很多资讯，往往造成例外和重码，使程式变得极为复杂而难以推广；而仓颉输入码在有理论上的极限值，要是碰到新字，须回头修改仓颉系统的数据库；如果有重码，还要试图化解。还没换新版的仓颉之前，新字无法立刻呈现。

## 参考著作

- 《信息时代的中文电脑》。
- 《中文电脑漫谈》。
- 《仓颉输入法与中文字形产生器》。