爲什麼沒有根據字形編碼的漢字處理解決方案?

Unicode漢字近年來一直在膨脹,浪費大量編碼空間,而且還像是一個無底洞,爲什麼不能根據字形編碼?或者說,構想一種根據漢字筆劃來定義的描述性語言,來定義每個漢字,然後建立一個數據庫來維護,異體字之間建立聯繫。字體顯示靠程序自動生成,但也可以根據字形不同加入微調信息。這樣就解決計算機處理漢字、古籍、異體字的大量問題了。


這個想法很好。

漢字有多種屬性:讀音、字義、構形、筆劃、以及字典/字表順序,等等。unicode這種是按照「字典/字表順序」來進行編碼:即漢字空間到一維線性空間的映射。這種簡單映射下,漢字的其他信息當然丟掉了,比如字形。

於是當然可以根據別的的屬性進行編碼。你說的根據漢字的「筆劃」來編碼就是一種方案。

現在有所謂「動態組字」技術,就是在漢字的「基礎部件」(字根)——或者說漢字的最小表義構形結構——的層次上處理漢字。但是似乎目前「動態組字」偏重於漢字的具體顯示,而不是編碼本身。

我在另一個問題中也有過根據「形」編碼的考慮,請參考:你對漢字拉丁化怎麼看?

我也問過類似的問題:「動態組字」技術現狀如何?有哪些困難?還有發展前途嗎?

回到你的問題。

unicode作為字符集無可厚非;而從編碼角度,之所以還沒有這樣一個根據字形編碼的方案,個人覺得是因為:

一、像unicode這種「字典」式的順序編碼方式是最簡單的。

Unicode的編碼方式不需要對所編碼的對象有任何知識,因為就是按順序「數數」;編碼中也不需要附加任何額外信息。任何更複雜的編碼都將增加單字編碼的長度,增加信息交換的複雜性和成本。

二、Unicode因為電腦軟硬體廠商的推動,已經被普遍接受。

在沒有普遍的、不可接受的缺點的情況下,業界沒有動力去做另外一套編碼。首先歐美人士不會主動另外做一套他們不太會用的漢字的編碼;而在各種國際標準制定普遍被歐美壟斷的情況下,中國人(或者中文圈)自己劍走偏鋒,阻力重重,吃力不討好。

三、更複雜的編碼方式並不必要。

無論何種編碼方式,無非是字符集到編碼空間(平面)的映射。至於具體的映射方式,以及映射後是否保留了原字符集的內部結構信息(字元之間的組合關係,或者筆劃結構信息等),即「字元空間」和「編碼空間」是否同構不重要。從這個意義上,unicode作為字符集天經地義,作為編碼方式也無可厚非。

四、漢字的「字形」是否可以被定量化,進而被編碼,尚未可知。

漢字的構形是「筆劃」或者「部件」的平面組合,且在組合的過程中,筆劃和部件的形態都會發生變化,而非簡單疊加。這和單詞是字母的「線性排列」完全不同。所以,即便將漢字按「形」分解成「筆劃」或者「部件」,怎麼用這些基本的「構件」來獨一無二地描述一個漢字,是個未知的問題。

不過現在一些人在進行這方面的研究(比如「部件拆分」的研究),所以將來出現一個「字形編碼」,也不奇怪。

五、根據「字形」編碼,是個「交叉」領域

如前所述,unicode編碼方式不需要對所編碼對象有任何知識。但是根據「字形」(筆劃或者部件)編碼,需要相當的「文字學」甚至是「古文字學」的知識,而這一點通常的編碼制定者和字體設計人員並不具備。反過來,覺得按照「字形」編碼更科學更合理的人,通常是對漢字比較了解的人,但是他們又不精通計算機。

簡而言之,就和很多事情一樣:覺得應該這樣做的人,不知道怎麼做,或者做了也沒影響;知道怎麼做、且能做成的人,覺得沒必要或者沒動力。

六、另外你說的計算機自動生成字體的思路,似乎更加困難。

(我也問過一個類似的問題:漢字字體、書體的美觀與否有規律嗎?這種規律可以被定量化嗎?)

但是我不認為這是個不可解決的問題。現在cg技術都已經發展到嘆為觀止的地步了,計算機自動生成字體並非不可能。只是願不願意做。同第四點一樣,這也是個交叉領域,甚至是個跨國領域——得讓歐美電腦高手對漢字感興趣。

總之:

一、如前所述,漢字有多種屬性,unicode只是簡單按照「字典/字表順序」(或者說字符集的順序)來進行編碼。當然可以根據別的的屬性進行編碼。如果將來通過研究,將漢字「構形」定量化並編碼,這可以被認為是專門的「字形的編碼」,和unicode並不矛盾,可以並行不悖。

二、個人以為,相對於編碼本身,基於「筆劃」或者「部件」的處理方式在漢字具體的顯示上(比如字體),或者輸入法、手寫識別上,可能更有前途

如你所說,漢字字體設計的複雜性以及字體文件的龐大,以及如無底洞的「缺字」問題,從單純的字符集層面都不可能得到根本解決。因為任何字符集都是有限的。

諸如「動態組字」技術這種, 才是解決字體問題以及古籍「缺字」,以及諸如「招財進寶」、「biangbiang面」這類字的一勞永逸的方案。但是,還有很長的路要走。

[1] 動態組字(wiki),動態組字


有的,IDS (Ideographic Description Sequences) 就可以確定地描述一個漢字的字型。不過要想實現自動生成字體文件,這很難,要讓字體好看,不是「微」調可以做到的。


推薦閱讀:

「?」(U+2F49)與「月」(U+6708)是不是同一字?
減字譜的Unicode編碼有沒有存在的必要?
有哪些漢語方言字Unicode還沒有收錄的?
每一個Unicode里編碼的諺文(韓文)字元都曾在歷史上使用過嗎?
GB18030 根上跟 Unicode 有關係嗎?

TAG:漢字 | Unicode統一碼 | 語言學 | 編碼 |