我學中文輸入法(四):倉頡

 學過許多輸入法,最後鍾情的卻是許多人說難學、罵言四處皆見的倉頡。以個人經驗來說,倉頡絕對不難。

 學倉頡前,我先細心選擇敎材。坊間敎倉頡的書有很多,編寫得好的卻不多,包括自稱最暢銷的那些。不少敎材,用甚麼「日頭、月餅、金星、木笛」或「日爺、月婆、今夕、目的」之類的所謂口訣,敎人強記「日=A,月=B,金=C,木=D」。不少敎材或字典,列倉頡碼時都用英文字母,而非倉頡字母。不少敎材,只列出倉頡的輔助字根及該輔根的例字,而字根間的形狀關係,則沒有清楚解說,甚至毫無解說。凡此種種,我皆捨之,以免誤入歧途。


《30天學倉頡》擷圖。

 最後,我選的書是伍新華編著的《倉頡輸入法:用戶手冊》。這書沒有上述通病,敎導學習者直接掌握倉頡字母在鍵盤上的位置,鼓勵學習者以條件反射盲打,清楚說明輔根的形狀關係,提醒學習者不要死記編碼,避免學習者走進誤區。它對取碼規則的解說相當深入淺出。雖是單色印刷,卻有清晰的例字圖解,分析一些容易拆錯和誤解的字。作者還特地說明異體字、香港字,以及不同系統(如微軟Windows、倚天、國喬等)間的問題,附有依部首、漢拼和廣東拼音的倉頡字典。整本書內容充實,去蕪存菁,售價也很相宜。我從它身上得益不少。若需要多媒體敎學,個人看過香港華通的《30天學倉頡》的一些示範,覺得不錯。

 撇除不宜盲打的筆畫、筆順輸入法,字根是所有形碼輸入法的入門。倉頡字根好記,主根輔根加起來才百餘過,在支援盲打的輸入法中,它是最少的了。1)輔根皆與主根繫之以形,把這個輔根的形狀加點變化,就可想到下個輔根。用這方法去歸納字根,最符合對形塊的聯想思維,很容易就能熟記。倉頡、大易能做到這點,行列則太講求座標理性而失陷此城。至於嘸蝦米之類的雜亂無章,就不再提了。記得曾看過有快碼擁躉撰文,指摘倉頡歸根不直觀,如「」歸「木」,學習者只可以靠死記。可是,要是你知道:「木」→「」→「」→「」這四個字根間的關係,就壓根底兒不會說出這樣的話。由主根「木」,變成「木字底」,取其主榦,再橫臥下來,形狀記憶「一條龍」,毫無難度。該撰文者以爲要死記,無知也。但這未必是他的錯,他可能不幸看到比較差的敎程,沒有說明字根間的形狀關係,他自己也沒有發現,於是他以爲只得逐個形塊死記。

 人謂倉頡難學,主要在規則。其實,倉頡的規則只是規定得比較仔細,這並不是難。沒有系統,要死記強記,自然就難。但規定得仔細,只要明白道理所在,就能一理道,百理明,不管到了多仔細的層次也一樣,以相同道理縱橫行走。因此,只要敎材解說清楚,擧例合宜,學習者能貫徹理解這些仔細(卻不是難)的拆碼規則,根本就沒問題。諸如整體字(亦稱連體字)與分體字,概念清晰。分體字中,只分字首和一層字身者,亦沒有難度。只是字身若還能再分出兩層,即是字身可以再劃出次字首與次字身,一般人來到這步才會覺得複雜一些。不過,既然懂得分字首、字身,那麼在可劃分的字身裏,也只不過是用同一種概念,來劃分次字首、次字身。明白了同一個切割概念,那就一點都不難。

 許多人都批評倉頡這樣做拆得太細,但倉頡取碼要拆得這樣仔細,是有理由的。多數漢字,左方或上方是部首,或者是較簡單、較常用來表示字義類屬的部件。而右方或下方,多數來說構件比較複雜,也比較傾向表示聲音(即形聲字的聲旁),或表示字義仔細項目的。於是,常用的部首或類屬部件,取碼可以少一些,只要足夠表現不同部首或類屬部件間的分別即可。而表音或表示仔細字義項目的部份,則需要較多取碼,才能合理地區分這些形塊。以實例說明,「嗎、碼、瑪」等字,區別在於左邊的部首。如果要用編碼去區分這些部首,編碼並不用太仔細,已能顯示到分別,符合所需。但「槢、樛、櫂」等字,差異在於右旁,而且它們右旁的開首還是相同的;「楛、楉、榙」等字,甚至連右旁的開首與結尾都一樣,只有右旁中間部份相異;「微、徵、徽」等字,左、右、中間的開首,也沒有分別,差異在中間的底部。因此必須把字分拆得仔細一些。

 其他輸入法取碼都沒這麼細緻,例如只簡單地取「首、次、三、尾」四碼,就很容易跳過了細微的差異位,釀成重碼,不能有效反映漢字間的特徵差異。比如「殼、穀、轂、觳、縠」等字,用大易或嘸蝦米,都拆作「士冖一又」,就會重碼。行列爲此而將「士」與「冖」這兩個字根合併,視爲一塊大字根,令這些字的第三碼有分別。但每碰到類似情況就增加大根的話,字根數量就會越來越大。比如不太常用的字裏,有「左『盧』右『攴』」,有「左『盧』右『皮』」,差異在右上方。用行列的話,單是「盧」偏旁就佔了三碼,末碼「又」也沒有分別,結果它就變成重碼。是否又要增加字根,例如把「虍、田」或「田、皿」併作一大根?或者增加「攴」或「皮」根並歸進不同的鍵?這樣頭疼醫頭,腳痛治腳,始終不是辦法。幸好「盧」旁的那兩個字都不常用,可以丟在一旁不加處理。但對於常用字,行列、嘸蝦米用這種一味靠增加大根的方法,就令它們有像「vmliu.xyz_liuzmd1_png.root.25_root_m_1_060.jpg」般的怪字根,使用者不容易記住。這難免令我感到醫生的醫術不甚高明。若以倉頡的方法,「殼、穀」等字,字首的尾部顯然有分別;字首是「盧」的兩字,字身的開首不同;「微、徵」等字,次字首的尾部相異。要區分它們,用倉頡的拆法就非常簡單。

 發明倉頡輸入法的朱邦復先生,曾爲漢字的分拆大費周章。他先留意到,今天漢字形聲字佔了八、九成,大都可分成上、下偏旁或左、右偏旁,而在上或居左者通常較簡單,得出字首、字身之概念。接着又花上好幾年,從字典裏剪字,分析出約六百個字首、九千九百個字身。由於倉頡字母限定於二十六個以內,以適應一般電腦鍵盤,他計算出字首可取一至兩碼,即有六百五十個組合,足以表達不同字首形塊;字身卻須取一至三碼,才可得一萬餘組編碼,以應符需求。在他撰寫的《倉頡輸入法手冊》和《中文電腦漫談》等著作中,已作詳細解釋過。這也是倉頡取五碼的理由——在這些設定背後,都經過發明人嚴密有理的分析。

 由於從編碼設計的第一步,已作了良好規劃,因此倉頡輸入法以一套比較客觀的取碼規則,即可達至很低的重碼率,例外字很少,可說它已接近做到「完美散列」。其他輸入法沒有這種良好規劃,就只能眼巴巴看着不同的漢字拆成同一組編碼,任由重碼字增加。有些設計者不甘心承認這點,就生硬地創造一大堆簡速碼,把重碼的字硬塞進空缺的編碼組合中。但這些簡速碼,因字而異,沒有規律。靠簡速碼來降低重碼率,只是在文宣上可以騙騙人,讓盲目的信徒瘋狂叫好,卻不算眞正解決問題。甚至有些輸入法的宣傳,連「重碼率」一詞都迴避,改爲「選字率」——因爲重碼組合裏的第一個字,並不當成要選字,因此「選字率」比「重碼率」低。但這只是一種取巧的語言僞術。

 要是眞的理解不了字身再分拆的概念,或者怎也取不到次字首、次字身的編碼,不妨試試改用大新倉頡或快倉。前者最長四碼,減去倉頡的第四碼,字身只取首、尾;後者三碼內搞定,字身甚至只取尾碼。相對來說,它們增加了重碼字,但對於不擅長字身再分拆的使用者,這絕對不失是個好方案。從學習角度上,這也可作爲一個跳板,使學習者先熟習字首的取碼及字身的首、尾取碼,慢慢再掌握最後的「字身再分拆」那一關,過渡到原版倉頡。此外,大新倉頡和快倉都有簡速碼,去解決重碼問題,讓不介意背碼的使用者提高速度。但若決心學習原版倉頡,就不要去背那些簡速碼了。

 倉頡以統一的拆碼規則,即可達成低重碼率,無須死背簡速碼即可實現盲打,對接觸漢字的人來說十分方便。尤其是倉頡設計時,用來分析的漢字取樣,是出自《康熙字典》等大型字書,而不是只得數千常用字的小型字集。因此,即使字集擴大至Unicode收錄的數萬字,倉頡重碼率仍然不太高。在一萬三千字的Big5碼中,倉頡只有不足五百個重碼字2)。即使擴大至Unicode 3.1的七萬字,也有五萬五千多組編碼完全不重碼3)。而倉頡也早支援大字集編碼,不像別的輸入法般,遲遲仍是有字無碼。可能不少人只消輸入常用字,但像我這樣,時常接觸香港字、異體字、罕用字的人也不是少的。倉頡能帶給我這種方便,其他輸入法都不能。

 或說倉頡有版本差異,令學習者無所適從。其實,倉頡通行者,僅有三代與五代。兩者只差兩個字根、數個複合字和複合字首,逾97.8%的字編碼相同4)。雖然微軟的做法:Big5碼內字取三代編碼,Big5碼外字取五代編碼,的確讓使用者不便,但這也只是微軟的錯。許多開源正版免費的輸入法,支援純三代倉頡、純五代倉頡,以及Big5碼內碼外字都同時兼容三代及五代的倉頡,可以解決這問題。

 倉頡普及,各大大小小系統都支援,而且老早就開源,發明人放棄一切權利,領先於開源潮流。雖然是先行者,但各方面都比後來者優勝,招來嫉妒、攻擊也正常。好些輸入法,尤其牟利的,都愛以攻擊倉頡作宣傳。好些學習者還未接觸倉頡,或者僅是初試其皮毛,就已有心理障礙,覺得應驗了其他輸入法所作的負面宣傳。有這些先設想法,就當然不會學得好。這正中了牟利輸入法的圈套。

 以個人經驗來說,倉頡字根,字形容易關聯記憶;倉頡拆碼,規則統一有條理,符合漢字特徵。倉頡不難學、不難忘,效率也高。靠着它,我到哪部電腦裏,輸入中文都暢通無阻。

2016/02/03 17:14 +0800

1)
比倉頡更少字根的,有輕鬆輸入法,卻依重選字,不能盲打。
2)
見李祥:〈倉頡輸入法重碼字揭祕〉。
3)
見泰瑞:〈泰瑞倉頡輸入法對照表的重碼字數量分析〉。順帶一提,分析中那組特殊的重碼字「鬻系大罩」,在第六代「蒼頡檢字法」裏已有解決,方法與第五代處理「贏系大罩」時類似。不過「鬻系大罩」的字,連慣接觸古文的人都不常用,暫且不說。
4)
見泰瑞:〈對嘸蝦米輸入法發明人劉重次先生一些言論的淺見〉,這裏以Big5碼的一萬三千字作統計。

討論區

輸入您的意見. 允許使用維基語法:
 
輸入/我學中文輸入法_四.txt · 上一次變更: 2018/08/27 16:53 +0800 由 ichirouuchiki
回到頁頂
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0