聶艷召,劉永革
(安陽師范學(xué)院 計(jì)算機(jī)與信息工程學(xué)院 甲骨文信息處理重點(diǎn)實(shí)驗(yàn)室,河南 安陽 455002)
甲骨文是我國已發(fā)現(xiàn)的古代文字中時代最早、體系較為完整的文字,是我國文字史上一筆寶貴的財富。從發(fā)現(xiàn)甲骨文至今百余年時間里,甲骨文研究已取得了長足的進(jìn)展。進(jìn)入信息時代后,利用計(jì)算機(jī)數(shù)字化技術(shù)的優(yōu)勢拓展甲骨文史料的縱深研究已是大勢所趨。
近幾年,多家研究機(jī)構(gòu)已經(jīng)建立了甲骨文字庫,為甲骨文數(shù)字化奠定了基礎(chǔ)。但是,要想進(jìn)行真正的數(shù)字化只有字庫還遠(yuǎn)遠(yuǎn)不夠,還必須提供甲骨文輸入接口,以方便各種甲骨文文獻(xiàn)的數(shù)字化集成。甲骨文輸入法是其中重要的輸入接口。
目前,現(xiàn)代漢字的輸入法已形成“萬‘碼’奔騰”的局面,但究其編碼方式無外乎兩種思路:音碼輸入和形碼輸入。同樣,對于甲骨文輸入法的研究目前也是沿用這兩種思路。
(1) 音碼輸入
顯然,此方案只能輸入有限的甲骨字,絕大多數(shù)未考釋出的甲骨字不能用此法輸入,必須借助于形碼輸入。
(2) 形碼輸入
形碼輸入是從甲骨文的字形入手,分析其構(gòu)形規(guī)律,制定合理的編碼方案。如果將甲骨文按照“字→部首→部件→筆畫”的四級分解模式,目前在部首級別和部件級別都有相應(yīng)的輸入法被開發(fā)出來。具有代表性的有以下兩類形碼輸入法。
一、部首級別形碼——可視化輸入法
考慮到甲骨文編碼研究的復(fù)雜性,與其勉強(qiáng)制定出繁雜的編碼規(guī)則,不如退一步省去編碼階段,直接用“可視化”輸入。
二、部件級別——象形碼輸入法
該方案在使用過程中有兩大困難:①雖然“一字一碼”大大減少了輸入時的重碼率,看似提高了輸入效率,但是重碼率的減少是建立在增加碼元或編碼長度的基礎(chǔ)上,這樣顯然增加了記憶和使用的難度。②在實(shí)際輸入某一甲骨字時,要求使用者必須能準(zhǔn)確地按照一定的規(guī)范進(jìn)行字根的拆分。實(shí)際情況是,由于甲骨文構(gòu)形系統(tǒng)還不成熟,很多構(gòu)件的形體規(guī)整性差,對于一般用戶來說很難進(jìn)行準(zhǔn)確的拆分,拆分錯誤就會導(dǎo)致無法輸入該字。
基于字形的輸入法除了從部首、部件級別考慮外,也可考慮從筆畫級別去進(jìn)行編碼,本文就以此思路討論建構(gòu)一種易學(xué)、易用的甲骨文筆畫輸入法。
任何文字的字符都是一筆一畫寫出來的, 甲骨文當(dāng)然也不會例外。雖然甲骨文構(gòu)形系統(tǒng)很不成熟,但是甲骨文已是符號化程度很高的文字,構(gòu)成甲骨文的最基本單位“筆畫”系統(tǒng)已經(jīng)初見端倪。每一個甲骨字,都是由各種點(diǎn)和線組織起來的,盡管這些點(diǎn)和線的特征跟后世筆畫不同,但也都是有規(guī)則、成系統(tǒng)的,可以進(jìn)行分析的。例如表1所示的幾個甲骨字及其筆畫分解。
表1 甲骨字筆畫分解示例
表2 甲骨文筆畫分析
續(xù)表
根據(jù)表2的筆畫分析結(jié)果,每一個甲骨字都是由某些筆畫按照一定的規(guī)律組合而成,這些構(gòu)成甲骨字的基本筆畫稱為“碼元”。因此,該編碼方案的碼元集為:點(diǎn)、橫、豎、撇、捺、彎、框、曲、圓九種筆畫。
每個碼元與鍵盤上的字母對應(yīng)起來形成了一種映射關(guān)系。為方便記憶,取每種筆畫名稱的漢語拼音首字母作為鍵元,即d-點(diǎn)、h-橫、s-豎、p-撇、n-捺、w-彎、k-框、q-曲、y-圓。
由于甲骨字形的不規(guī)整性,某些字的筆畫或者筆畫的順序難以清晰界定,需要一些原則指導(dǎo)使用者方便地拆分甲骨字。
(1) 無筆順原則
這是提高甲骨文筆畫輸入法實(shí)用性的關(guān)鍵所在。此原則主要基于以下兩點(diǎn)考慮:①甲骨字筆畫不規(guī)范,不像現(xiàn)代漢字的筆畫那么規(guī)整,故難以確定統(tǒng)一的筆畫順序。②若勉強(qiáng)規(guī)定筆順,整個甲骨字筆順規(guī)則將比現(xiàn)代漢字筆順規(guī)則復(fù)雜得多。當(dāng)用戶輸入甲骨字時,必然增加了判斷筆畫順序的時間。
(2) 盡量體現(xiàn)造字意圖
(3) 自由拆分
圖1 依照造字意圖拆分字
圖2 字可能的拆分方案
無筆順限制和自由拆分原則減輕了用戶的記憶負(fù)擔(dān),減少了輸入甲骨字時思考的時間,為使用者提供更為靈活的空間。此即“自由筆畫”之含義。
甲骨文輸入法程序的基礎(chǔ)為甲骨文字庫和碼表文件。字庫采用香港中文大學(xué)的甲骨文字庫,此字庫收錄6 199個甲骨字,具有權(quán)威性。碼表的格式如下:
<編碼>
每一個編碼中的字符按照字典升序排列。碼表整體結(jié)構(gòu)的排序,在初始情況下按編碼長度升序排列,在輸入法的使用過程中則將按照編碼被搜索命中的頻率降序?qū)崟r調(diào)整。部分碼表如表3所示(為了下面討論方便,在表中加了一列序號,但實(shí)際的碼表中不需要序號)。
表3 碼表結(jié)構(gòu)示例
表4 搜索算法示例
在Java開發(fā)環(huán)境下實(shí)現(xiàn)了原型程序。運(yùn)行效果如圖3所示。
圖3 輸入法運(yùn)行效果
用戶在筆畫輸入框輸入筆畫對應(yīng)的字符碼,候選字標(biāo)簽會顯示搜索到的甲骨字(若超過5個字會分頁顯示),通過輸入對應(yīng)的數(shù)字在候選字中進(jìn)行選擇。通常情況下,只需輸入部分編碼就能在候選框顯示出該字,或者通過翻頁就能找到該字。如圖3顯示的,輸入wp就把包含彎、撇筆畫的字全部搜索出來。
通過對甲骨文的筆畫特征進(jìn)行分析,將構(gòu)成甲骨字的筆畫歸納為點(diǎn)、橫、豎、撇、捺、彎、曲、框、圓九種筆畫,在此基礎(chǔ)上設(shè)計(jì)了甲骨文筆畫輸入法。該輸入法可以為甲骨文工作者提供方便快捷的輸入途徑,提高輸入效率。目前,該輸入法程序只是演示版本,下一個階段的主要工作是將其升級為標(biāo)準(zhǔn)輸入法程序。
[1] 楊亦鳴,顧紹通,馬小虎.甲骨文拼音與部件拆分輸入法[P].CN:1O1231558A,2008.7.30.
[2] 劉永革,栗青生.可視化甲骨文輸入法的編碼與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用, 2004,40(17):139-140.
[3] 李繼明.計(jì)算機(jī)文字信息處理技術(shù)新探—甲骨文象形碼設(shè)計(jì)方案[J].中文信息學(xué)報,1996,10(3):18-29.
[4] 肖明,胡金柱,趙慧.面向?qū)ο蟮腜etri網(wǎng)方法及其在甲骨文編碼中的應(yīng)用[J].華中師范大學(xué)學(xué)報(自然科學(xué)版),1999,33(4):495-499.
[5] 肖明,趙慧,甘仲惟.甲骨文象形碼編碼方法研究[J].中文信息學(xué)報,2003,17(5):60-65.
[6] 肖明,趙慧,甘仲惟.甲骨文象形碼編碼的模糊數(shù)學(xué)模型研究[J],計(jì)算機(jī)工程與設(shè)計(jì),2004,25(3):358-361.
[7] 郝文勉.甲骨文編碼的線性結(jié)構(gòu)[J].鄭州大學(xué)學(xué)報:哲學(xué)社會科學(xué)版, 2005, 38( 1) :87-92.
[8] 馮壽忠.甲骨文筆畫系統(tǒng)試析[C]//中國應(yīng)用語言學(xué)會.第四屆全國語言文字應(yīng)用學(xué)術(shù)研討會論文集.四川大學(xué)出版社,2007:35-45.