漢字檢索
現時漢字的檢索,在絕大多數地區都是以讀音順序為主。例如:日本的漢字檢索,以五十音順序而排列,
韓國的漢字,以韓語字母順序排列,
中國大陸的漢字,以漢語拼音順序排列。
中國台灣雖然亦有以注音符號序列作檢索,但日常套用仍以部首檢字法為主;香港的電話簿雖然亦有提供粵音姓名檢索,但日常使用,仍然以部首檢字法或純綷筆劃檢字法為主,這從現時香港國小的電腦認知課程主要教授九方輸入法及倉頡輸入法而可得知。
漢字檢索的最大問題,是不管用甚么方法來實行,都要面對重碼的問題。而重碼的出現,亦使漢字檢索的順序產生一個疑問:有沒有辦法可以讓漢字像其他字母系統一樣,有一個絕對的檢索順序呢?
倉頡系統方案
朱邦復先生在發展倉頡輸入法時,原意是要發展出一套“中文檢索法”,使漢字俱有“序位觀念”,讓漢字都有一個序位,使中文如同拼音文字般,用少少數個“字根”找到所有漢字,而不是單單作輸入用途。因此,其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個“定義字元”。採用固定長度編碼的目的是為了能夠快速方便地檢索。
在“分類字元”中,朱邦復將漢字用二分法進行多次的“概念分類”,以定義漢字的字義:
概念
┌─────────┴─────────┐
0客觀 1主觀
┌────┴────┐ ┌────┴────┐
0抽象 1具象 0認識 1行為
┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐
0介面 1定義 0本存 1人造 0刺激 1狀態 0生存 1社會
┌┴┐ ┌┴┐ ┌┴┐ ┌┴┐ ┌┴┐ ┌┴┐ ┌┴┐ ┌┴┐
00 10 00 10 00 10 00 10 00 10 00 10 00 10 00 10
單 現 人 形 本 植 食 用 感 心 動 介 官 動 思 制
位 象 際 象 體 物 衣 具 覺 緒 態 面 能 作 維 約
、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、
01 11 01 11 01 11 01 11 01 11 01 11 01 11 01 11
語 訊 規 意 組 動 住 器 感 表 形 辨 體 生 溝 意
法 息 範 義 織 物 行 皿 知 現 勢 知 能 活 通 志
上圖顯示將概念分為三十二的結果。舉例而言,“逃”為主觀-行為-生存-體能,故前5碼為11001。32類各可再細分為八,共有256類,剛好可用1個字元代表,如“體能”的詳細分類為:
“逃”的“定義字元”定義可參考下表:
位元1 移動之方向兩種:固定/無關。 2,3速度之快慢四種:急/緩/正常/無關。 4,5位移之對象四種:接近/遠離/比較/無關。 6 動作之連續兩種:連續/否。 7,8動作之能量四種:大/常態/小/無關。 9,10 行為之態度四種:緊張/謹慎/從容/無關。 11 行為之影響兩種:嚴重/無關。 12 行為之隱祕兩種:需要/無關。 13~16 暫未定。如此一來,32個位元便能表達無數多種的漢字字義,空間和時間效率都很高。舉例來說,若要判斷“逃”是否屬於“生存類”,比對前3個位元是否等於110即可。
倉頡系統系採用組合語言寫成,可針對輸入的文句產生聯想推理的“概念網路”,根據這些對漢字的定義編碼進行高速的複雜運算,進而理解一段中文的意思。
圖文系統:圖文系統是理解系統的其中一種套用,該系統可以理解一段輸入的中文文本,全自動產生一段動畫。只須事先繪製必要的物件模型,以及設定數個基本的運鏡參數即可。
朱邦復計畫使用這個系統量產中文動畫,以發揚中國文化。
批評
一些人對倉頡系統做出以下的批評:
倉頡為了考慮按鍵的分配和重碼率,不得不破壞漢字的理據拆分(如將“門”拆成“日弓”,但之間沒有文字學的連繫)。遷就了鍵盤,但失去了部件的教學和檢字功能。倉頡輸入碼在有理論上的極限值,32自乘5次。如果踫到新字,就必須回頭修改倉頡系統的資料庫,如果有重碼,還要試圖化解。還沒換新版的倉頡之前,新字無法立刻呈現。倉頡碼只是字形的“特徵取樣”,捨棄了很多資訊,往往造成例外和重碼,使程式變得極為複雜而難以推廣。聚珍整合作業系統
聚珍整合作業系統於1989年推出巿場,使用第五代倉頡,提供符合漢字結構的字數百萬,有七萬為實際用字,整個系統連同各種程式只占450KB。因此,當系統發售時,一個A4紙長寬、十厘米高的盒子裡,主要是使用手冊,而整個系統只占用一片軟磁碟。即使是當時市面上功能最差的個人電腦,亦可以順暢地運行。
各系統
人文系統:“人文系統”是一套於1999年起發展的非作業系統,且不對外發售。其為建構在MS-DOS上的軟體系統,並由兩項系統組成:
俱圖文功能的“圖文系統”;
漢字處理功能的“倉頡系統”。
此系統是首套使用第六代倉頡(又稱蒼頡)的系統。由於有字序,即使資料庫巨大,查尋速度仍然很快。靈活的字型檔,也讓生僻字能如常處理。倉頡系統的優點得到發揮。
這套系統現時有北京的欒貴明教授用來建構其收錄中國歷代文獻的,成品為漢文史資料庫。
明珠中文系統:脫胎自聚珍中文系統,含明珠中文小字型檔。