文獻處理實驗室 論文目錄

第一屆中國文字學會學術討論會天津 1996年8月25-30日

電子古籍中的缺字問題

Page 3 of 8

貳、文字知識在電腦中表達

如前述解決缺字問題的關鍵在於如何把文字知識有系統地表達在電腦中。在以下第一節中將先敘述一些相關的背景然後報告本系統對文字知識表達的做法。

一、背景

在本節中先討論二則本系統所引用以前的研究並對目前電腦中的狀況作一說明。

(一)、中文電腦基本用字

1970年前後台灣地區開始重視利用電腦處理漢字文件的問題。然而當時文字統計資料並不完整也沒有一個適當的漢字字集可供電腦採用。1971年在王安公司贊助下交通大學計算與控制系委請林樹先生從事「中文電腦基本用字」的研究。

該研究從197110月初展開以二千多人工作天約經半年19723月底提出初步報告。現將該研究的一些特色及重要原則條列於次:

  1. 該研究綜覽過去漢字遞增的情形和1856至1971年間所有的字彙研究,輔以當代字書及重要工具與典籍的常用字數,作通盤的了解與整理。

  2. 以社會通用的資料為主要範疇,選擇十一種字集加權整理,匯集為《中文電腦基本用字》,詳如〔表一〕。此十一種字集亦多有匯集前人整理之字彙者,累計涵蓋之字集超過三十種。

  3. 整理異體字,並納入字集中。參考林語堂的〈整理漢字草案〉及國立編譯館製訂《常用字統一字形暫用表》(1968)的選字原則,訂定了異體字的處理原則如〔表二〕。依〔表二〕選出之形體當作「字形」,其他形體並不捨棄列為「參照字形」。是故「字形」中並不排除簡體字,但以當時曾收編在《注音漢字》及《國音標準彙編》中之簡體字為限。換言之,此研究並不計較字體之正訛、本俗、繁簡、古今等,而著眼在電腦將要面對、將可能要處理的字形。這種態度是和以往字彙研究不盡相同的。

  4. 此研究共蒐集8532字,另有參照字形597字。統計共202萬2604字次,其頻率分佈為:

常用字

最常用字

1857

出現頻度為

97.34%

 

次常用字

2068

出現頻度為

2.27%

間用字

 

2182

出現頻度為

0.27%

罕用字

 

2425

出現頻度為

0.12%

此字集之熵值為9.60,500字使用累頻詳如〔表三〕。由於此後在台灣並沒有更好的文字統計資料出現所以本系統仍以此字集作藍本。

表一《中文電腦基本用字集》匯集的十一種字彙

  1. 莊澤宣《基本字彙》廣州中山大學教育學研究所,1930
  2. 胡顏立《小學初級分級暫用字彙》教育部,1935
  3. 教育部《注音漢字》商務印書館,1935初版,1961台一版
  4. 蔡樂生《常用字選》英文中國郵報社,1946
  5. 台灣省國語推行委員會《國音標彙編》開明書局,1947初版,1971台二版
  6. 王清波《國民小學現行國語課本國字初現課次、重現次數之分析研究》高雄市政府,1963
  7. 國立編譯館《國民小學常用字彙研究》中華書局,1967
  8. 台灣電信局《電碼新編》,1967增訂版
  9. 星華打字儀器行《中文打字機新版文字排列表》台北,1969
  10. 世界中文報業協會《新聞常用字彙》,1970
  11. 中南鑄字廠《常用字表》台北,1971

表二《中文電腦基本用字集》異體字的整理原則

  1. 就已有字彙選取不另創新字。
  2. 一字數形取其簡便者。而不計其本體抑俗體古字抑今字。古字簡便者從古如取「p] 」不取「禮」今之簡便者從今如取「簳q」不取「繡」。
  3. 一字數形取其結構適合電腦設計者。如取「略」不取「田韘U取「裡」不取「堙v。
  4. 一字數形取其通用者如取「拿」不取「拏」。
  5. 在世俗上已通行一體而原字還有其他意義的則兩者並存。如「尿」、「溺」。

按上列原則所選出之形體,當作「字形」,其他各形體則列為「參照字形」。

表三《中文電腦基本用字集》前500字之累積使用頻率表

累積
字數

累積
頻率

累積
字數

累積
頻率

累積
字數

累積
頻率

5

9.24%

50

32.39%

372

+70%

10

14.20%

60

35.22%

472

+75%

15

17.79%

80

39.92%

500

76.27%

20

20.54%

100

43.74%

1000

89.38%

30

25.13%

141

+50%    

40

29.02%

232

+60%    

註:“+”號表示「正好超越」如+50%表示前141字的累積使用頻率剛剛超過50%。

(二)、交大字根系統

在台灣最早分析漢字字根的是交通大學這套字根就命名為《交大字根集》。1972倪耿在碩士論文《中國文字之結構模式及其分析》中測試了十幾種常用的構字方式並統計其使用之頻度發現只用橫向連接、直向連接和包含這三種組合方式就可以大幅化簡漢字的結構餘者甚少用可略而不計。據此漢字結構的字根制式表達方法確定了下來如〔表四〕所示。

表四 漢字字形結構的制式表達(以Bakcus Normal Form表示)

<漢字集> ::= <漢字> | <符號>
<符號> ::= 含標點符號、注音符號、英文字母、阿拉伯數目字及其他專業符號等多少不拘。
<漢字> ::= <字根> | <部件> <漢字> <定位符號> <漢字>
<部件> ::= <字根> | <部件> <定位符號><部件>
<定位符號> ::= 橫連符號、直連符號、包含符號
<字根> ::= 496詳見〔表五〕

〔表四〕中的構字系統是以BNFBakcus Normal Form)的制式語法(formal grammar)表達的。它是一種孳生系統(production system亦即:可由最底下的具體符號如〈字根〉、〈定位符號〉這些符號集合(set)中的成員依表中的式子孳生為新的符號如漢字或部件。一般來說這種孳生系統能產生的常多於實用上所需要的所以必須加一些使用情境(語意)的約制來配合現實的環境。譬如:此系統產生的形究竟是部件?是字?或者什麼都不是是使用者可以判斷選擇的。也正因如此賦予了此系統不須更改便能應付未來造新字的彈性。在此系統中〈字根〉是〈部件〉的子集合(subset),代表最基本、不可再分解的一群部件。字根組成部件部件組成漢字。漢字、部件、字根都可用來組合成構形更複雜的漢字。由於〈漢字〉、〈部件〉、〈字根〉這三個集合互有重疊之處在使用上〈部件〉常用來指不屬於漢字也不屬於字根的那一群成員。如〔圖一〕中的例子灣和彎是漢字褔搣馧‘弓、言、系是漢字也是字根鰬O字根。圖中字根與筆劃部份的關係容後說明。

圖一:灣字的構成
圖一:灣字的構成

倪耿的工作是和林樹整理《中文電腦基本用字集》同時做的字根的確定是雙方共同努力的結果。這套字根有一特色它是經過反覆三次「最佳化」而得到的。所謂最佳化是指在字根總數和平均每個字分解的字根數目(經使用頻率加權計算)兩者之間求一近似最佳的結果。通常字根越多每個字分解後的字根數就越少;字根越少則每個字的字根就越多。在使用方面我們是既希望字根少也希望每個字的字根少所以在此不可兼得的情形下只有求其最佳之組合。此最佳化是經過一些數學計算(稱為邊際效用原則)而決定的。其結論略如:凡一個字其使用頻率在萬分之37.58以上時不應分解在萬分之18.7937.58之間者不可分解為兩個以上的字根12.3618.79之間者不可分解為三個以上字根9.3912.36之間者不應分解為四個以上的字根餘者無論怎麼分解沒有大礙。【註三】 這個結論也決定了分解漢字的底線。

依據《中文電腦基本用字表》中之9129個字形逐字分解而得496字根請見〔表五〕其中含有常用熟字305個(其中39個是合於不可分解條件者)其總計使用頻率已超過全部的50%。若依字根的使用頻率統計最常用的前25個字根已佔全部使用頻度的30%,50個為49%,100個為66.7%,200個為84.9300個為95%。【註四】

最佳化的結果是依使用頻率加權後的平均每個字的字根數僅1.9。至於這套字根構字的模式可以適用到什麼程度呢?將張其昀等編纂的《中文大辭典》中49905字逐字核試計可組合487131129字難以組合這些字多為籀文篆字或一些古文、反文、圖騰之類者。今多有替代或早已廢棄不用。經考慮後並未將此納入交大字根系統中。如日後有此需要再將此1129字再納入不遲。此構字的性質正是本系統所希望的所以本系統亦以此為基礎並加以擴充。

字根系統是漢字字形結構中的一個基本部份它是依楷書發展出來的並沒有考慮到篆、隸、行、草等字體也沒有顧及書法及各種印刷字型的變化。它能掌握的只是從楷書外觀上來描述漢字的構成即使如此這構成的信息還是上述各字體、字型的共同部份是可供各體參考利用的。至於各體的字形變化描述詳如後文。

表五 交大中文字根表
表五 交大中文字根表

 

(三)、目前電腦的文字知識

時下電腦系統中已存入的漢字信息有:交換碼中的字樣、字碼和字序;字型庫中的各體字樣,以及它們和交換碼的對映;輸入系統中的輸入碼及一些漢字屬性,以及它們和交換碼的對映。這些信息及彼此的關聯有如〔圖二〕。


圖二、時下電腦系統中漢字相關信息的示意圖

交換碼中雖有字序的信息,但常常並不完整,如前述的造字表就割裂了原有的字序。此外,有些碼並無一致的字序,如JIS的前半照注音排序,後半卻照部首筆劃排,這並不表示字序的信息豐富,反而是各個排序的信息都只有一半,而使得電腦無法依某種規則對所有文字排序。這種字序的實用價值是很少的,幾乎有等於無。再說,幾乎所有的系統都沒有把字序的一些重要指標的信息整理出來。譬如:第十劃的字是從什麼碼排到什麼碼,某部首的字是從那到那兒等。沒有這些指標,使用者怎麼用字序信息呢?

有些輸入系統存有一些漢字的屬性如注音輸入法中就有每個字的音標。可是這些音標多半沒有收集全所有的破音也沒有處理破音的方法。請問要輸入「長」字時該如何注音?因此這部份信息只是勉強來應付漢字輸入的並沒有為各種應用設想。更有甚者有些系統根本不讓使用者取用這部份信息。

由以上的情形看來電腦中的漢字信息不僅少得可憐更是先天失調。這就怪不得做應用時礙手礙腳了。這實在是中文電腦應用上必須排除的絆腳石。

二、文字的制式定義與表達

字、字形、字體這些名詞在我們語用中常常代表著不盡相同的意思但佐以情境我們並不覺得有溝通的障礙。可是電腦遠沒有人靈活也沒情境可參照所以必需對這些名詞作制式的界定電腦才能據以順利地處理文字信息。本節將說明一些關鍵詞在本系統中的工作定義。

(character)是表達一種或一群概念的名相。它是抽象的以語意區別。例如對應的繁體和簡體是同一個字。在電腦中字用一個識別碼(identifier)表示此識別碼可以是交換碼也可以是內部處理方便使用的「內碼」或是輸入時的「輸入碼」。為方便計以下的討論均以交換碼來代表字。目前字所承載的語意還沒能表達在系統中所以電腦並沒有方法可以直接處理語意信息。

如前所述一個字可能有許多字形(glyph)。字形也抽象的區別字形的關鍵在於它的組成結構亦即構字如前例繁體和簡體屬於不同的字形。偶爾也有些字會用同一字形的。所以以數學關係來說字之於字形大多數是一對一或一對多的關係偶有例外。

字形只界定構字並不關心該字好不好看。依同一規範製作的一群字屬於同一種字體(font)。字體也是抽象的區別的關鍵在於它的設計規範。雖然字體有設計規範以表現其劃一的特色但仍有藝術創作的空間允許設計者表現自己的風格。所以同一字體下各廠商設計的「字型(style)」會現出不同的表情、風貌。一種字型設計通常有些參數來決定它呈現的大小、粗細、橫直粗細比列、疏密以及一些特殊裝飾的邊角等等。待這些參數選定了才能借媒介呈現出這個字的面貌此稱為字樣(typeface)。唯有字樣才是具體可見的。照理說這些字體和字型在設計上產生的形狀變化(以下簡稱為字體變化)是不應該違反構字規律(即字形的定義)的然而在實務上並沒有這麼嚴謹也造成了些字形上的差異詳細的分析如後文。

上述的關係可參見〔圖三〕。所謂文字的制式表達即將〔圖三〕中的關係用電腦能了解的方式表達在電腦中。字的表達已如前述。字體的信息存在字體庫(font library)這是大家熟習的毋庸多言參見〔圖二〕。目前電腦中無字形信息或者說是字與字形不分混淆著用所以無法分別及處理異體字。字形資料庫就是要填補這個空缺它擁有字與字形間關係的對映以及字形的結構模式如下文。

wpe3.jpg (2091 bytes)


Page 3 of 8
上一頁

下一頁

文獻處理實驗室