摘要:在充分研究漢字特征的基礎(chǔ)上,遵照國家鍵盤漢字輸入通用標(biāo)準(zhǔn),開發(fā)了一種新的漢字編碼輸入法——音形碼。該輸入法采用漢字讀音、偏旁部首讀音、筆劃讀音及聲調(diào)進(jìn)行編碼,拆字順序完全符合漢字書寫規(guī)則,克服了五筆輸入法字難拆的不足,重碼率大大低于拼音輸入法。通過自建的基于VFP漢字輸入法評(píng)測系統(tǒng)測試,結(jié)果表明,該輸入法符合GB/T18031和GB/T19246提出的系統(tǒng)性能指標(biāo),具有簡單易學(xué)、規(guī)范性強(qiáng)、重碼率低、易推廣的特點(diǎn)。
關(guān)鍵詞:漢字編碼輸入法;音形碼;編碼規(guī)則;重碼率;漢字輸入法評(píng)測系統(tǒng)
0 引言
在當(dāng)今信息化時(shí)代,漢字輸入的方式越來越多,但漢字鍵盤輸入仍然是主流。象形文字——漢字與拼音文字相比,難讀、難記、難寫,這些問題給計(jì)算機(jī)漢字輸入帶來了相當(dāng)?shù)牟槐?,特別是對輸入速度影響很大。幾十年來,專家學(xué)者為此進(jìn)行了深入持久的研究,并推出了拼音和五筆字型兩大系列漢字輸入法。但在實(shí)際使用中,上述兩類輸入方法都存在著一定程度的缺陷。如拼音輸入法,采用拼音編碼,因漢字同音字眾多,嚴(yán)重影響輸入速度;而五筆字型采用漢字結(jié)構(gòu)分解編碼,因漢字結(jié)構(gòu)的復(fù)雜性,分解的規(guī)律不易掌握,一個(gè)不熟悉的字往往要拆上半天,復(fù)雜難記的字根更是令初學(xué)者望而卻步。因此,如何進(jìn)一步簡化方法,提高漢字鍵盤輸入速度,降低學(xué)習(xí)和掌握的難度,是中文信息技術(shù)面臨的長期而復(fù)雜的任務(wù)。
本課題組在充分研究漢字特征的基礎(chǔ)上,遵照國家漢字鍵盤輸入通用標(biāo)準(zhǔn),開發(fā)了一種新的漢字編碼輸入法——音形碼。該輸入法是一種以拼音為主,音形結(jié)合的漢字編碼輸入法,編碼由漢字的讀音代碼、偏旁部首讀音代碼、筆劃讀音及聲調(diào)代碼組成,對不成字部首賦予一定的讀音,如:一(橫)、I(豎)、乙(折)等。使用時(shí),依次輸入漢字的讀音、部首、筆畫等代碼,非常好記。與此同時(shí),為了研究和優(yōu)化新的音形碼方案,我們設(shè)計(jì)了一個(gè)基于VFP的漢字輸入法研究平臺(tái),可以對音形碼也可以對其他各種類型的漢字輸入法進(jìn)行評(píng)測和研究。實(shí)測表明,新的音形碼具有較低的重碼率和較高的輸入效率,極具推廣價(jià)值。
1 漢字編碼輸入法的基本要求
漢字編碼輸入法一般采用漢字的音或形來組織編碼,編碼過程必須遵守國家有關(guān)漢字鍵盤輸入規(guī)范要求及國家漢字相關(guān)規(guī)定,才能研制出具有實(shí)際使用價(jià)值的漢字輸入法產(chǎn)品。
1.1 鍵盤漢字輸入的國家標(biāo)準(zhǔn)
國家質(zhì)量技術(shù)監(jiān)督局發(fā)布的國家標(biāo)準(zhǔn):GB/T18031《信息技術(shù)數(shù)字鍵盤漢字輸入通用要求》和GB/T19246《信息技術(shù)通用鍵盤漢字輸入通用要求》都對鍵盤漢字輸入進(jìn)行了規(guī)范。在這兩個(gè)標(biāo)準(zhǔn)中,對漢字輸入的鍵位設(shè)定、所采用的編碼字符集、應(yīng)遵循的編碼規(guī)范、平均碼長、重碼字詞鍵選率等作了具體規(guī)定,并對五種基本筆畫和漢語拼音符號(hào)的鍵位作了規(guī)定。GB/T19246規(guī)定A~z 26個(gè)字母鍵輸入漢字和詞語的特征編碼信息,0~9十個(gè)數(shù)字鍵,則用來輸入阿拉伯?dāng)?shù)字以及漢字和詞語的特征編碼信息的輔助信息,包括漢語聲調(diào)、重碼字選擇等。
GBFFl8031和GB/T19246提到的系統(tǒng)性能指標(biāo)有三個(gè):易學(xué)性、漢字輸入平均碼長和重碼字詞鍵選率,并且規(guī)定國家標(biāo)準(zhǔn)給出的指標(biāo)是應(yīng)達(dá)到的最低要求。
易學(xué)性“學(xué)會(huì)使用漢字編碼輸入系統(tǒng)的時(shí)間應(yīng)盡量短,并應(yīng)符合使用漢語作為母語的使用者的思維習(xí)慣”。GB/T18031對數(shù)字編碼更進(jìn)一步提出要求:“做到上手能用”。
漢字輸入平均碼長漢字輸入平均碼長的定義:在輸入給定的測試樣本時(shí),測得的輸入每個(gè)漢字的平均擊鍵次數(shù)。不同類型編碼提出不同要求:漢語拼音、筆畫為主的簡易編碼平均碼長<3.2鍵,字;形碼(部件碼)、音形碼(形音碼)、雙拼平均碼長<2.2鍵/字。
重碼字詞鍵選率重碼字詞鍵選率的定義:在輸入給定測試樣本過程中,通過重碼選擇鍵確認(rèn)的漢字字?jǐn)?shù)與測試樣本總字?jǐn)?shù)的百分比。重碼字詞鍵選率要求:漢語拼音、筆畫為主的簡易編碼<6%;形碼(部件碼)、音形碼(形音碼)、雙拼<1.5%(GB/T19246);逐字字段筆畫、部件碼輸入<8%,字、詞混合筆畫、部件碼輸入<10%(GB/T 18031)。
在部件規(guī)范方面,規(guī)范GF3001對GB 13000.1的20902個(gè)漢字進(jìn)行逐個(gè)拆分、歸納與統(tǒng)計(jì)后給出了560個(gè)基礎(chǔ)部件。規(guī)范GF3001還規(guī)定:基礎(chǔ)部件也稱末級(jí)部件,是最小的不可拆分的部件;基礎(chǔ)部件可以組合成成字部件使用,但不得組合成非字部件;字拆分為部件時(shí),應(yīng)遵循“相離、相接可拆;交重不拆(可拆成筆畫)”的原則。
在筆順規(guī)范方面,規(guī)范GF3002明確了漢字的基本筆形是五種,按照次序分別為一(橫)、丨(豎)、丿(撇)、丶(點(diǎn))、乛(折),分別用符號(hào)1、2、3、4、5表示。規(guī)范GF3002還給出了GBl3000.1的20902字的規(guī)范筆順。另外,詞庫的規(guī)范化同樣是很必要的。目前的詞庫普遍存在著質(zhì)量差、詞庫大小不一的問題。在研制詞庫的工作中有一個(gè)誤區(qū),似乎詞庫越大越好,其實(shí)并非如此。詞庫太小固然不能滿足用戶需要,但太大就會(huì)增加詞的重碼率,犧牲了適應(yīng)性。我們認(rèn)為,理想的詞庫應(yīng)該是通用詞庫加專業(yè)詞庫和個(gè)人詞庫。
1.2 漢字書寫筆順規(guī)則
A、基本規(guī)則
(1)先橫后豎:十(一、丨)
(2)先撇后捺:人(丿、丶)
(3)從上到下:章(音、十)
(4)從左到右:明(日、月)
(5)先外后里:閑(門、木)
(6)先外后里再封口:回(門、口、一)
(7)先中間后兩邊:小(亅、八)
B、補(bǔ)充規(guī)則
(1)點(diǎn)在上邊或左上,先寫點(diǎn):主(丶、王)、為(丶、力、丶)
(2)點(diǎn)在右上或字里,后寫點(diǎn):發(fā)(乚、丿、又、丶)、我(丿、扌、L、丶)
(3)兩面包圍結(jié)構(gòu)的字。上右和上左包圍結(jié)構(gòu),先外后里:司(乙、司)廳(廠、廳);左下包圍結(jié)構(gòu),先里后外:這(文、辶)、邊(力、辶)。
(4)三面包圍結(jié)構(gòu)的字。缺口朝上的,先里后外:山(丨、乙);缺口朝下的,先外后里:同(冂、一、口);缺口朝右的,先上后里再左下:區(qū)(一、丿、丶、乚)
2 新的音形碼方案設(shè)計(jì)
在日常使用漢字中,我們發(fā)現(xiàn)單字及雙字占絕大多數(shù),因此解決單字與雙字詞編碼也就抓住漢字編碼的關(guān)鍵。本課題組提出的音形碼編碼方案,是采用漢字讀音、偏旁部首讀音、筆劃讀音及聲調(diào)來進(jìn)行編碼,也就是采用字詞及其結(jié)構(gòu)的讀音來編碼,這樣的處理使得編碼十分容易掌握,無須死背字根,一看到字詞就知道其編碼。
2.1 單漢字編碼規(guī)則
單個(gè)漢字編碼最多可以有六碼組成。它是根據(jù)單漢字的音和形來確定的。這樣做的目的,是為評(píng)測系統(tǒng)優(yōu)選出最佳碼搭配做準(zhǔn)備。我們設(shè)計(jì)的單字音形碼規(guī)則如下:
第一碼:為該單字的發(fā)音的漢語拼音首字母。如“漢”即為“H”.“字”即為“z”,若漢字發(fā)音的首字母為翹舌音(ZH、CH、SH)則分別用V、I、U表示。
第二碼:為該單字可發(fā)音的前結(jié)構(gòu)漢語拼音首字母。前結(jié)構(gòu)是指漢字中,左中右結(jié)構(gòu)中的最小左結(jié)構(gòu);上中下結(jié)構(gòu)中的最小上結(jié)構(gòu);里中外結(jié)構(gòu)中的最小外結(jié)構(gòu);半包圍結(jié)構(gòu)中的左結(jié)構(gòu)。它們都是漢字書寫筆順中的前結(jié)構(gòu)。若發(fā)音的首字母為翹舌音CH、SH、ZH,分別用C、S、Z表示;若前結(jié)構(gòu)無法發(fā)音,則用“※”號(hào)表示。如:“難”的前結(jié)構(gòu)為“又”,用“Y”來表示;“嵐”字的前結(jié)構(gòu)為“山”,用“s”來表示;“國”的前結(jié)構(gòu)為“口”,用“K”來表示;“運(yùn)”的前結(jié)構(gòu)為“辶”,用“Z”來表示(“走”字邊旁的“走”字漢語拼音發(fā)音首字母);“包”的前結(jié)構(gòu)無發(fā)發(fā)音,則用“※”來表示。取碼規(guī)則:有部首的打部首的讀音代碼,有偏旁的打偏旁的讀音代碼,無偏旁的打筆畫的讀音代碼。取大為先,兼顧直觀,可連不交。
第三碼:為該單字的首筆發(fā)音?!耙?、丨、丿、乀、乚”分別按其漢字讀法,橫“heng”、豎“shu”、撇“pie”、捺“na”、點(diǎn)“dian”、折“zhe”的發(fā)音首字母H、s、P、N、D、z表示。對于象乛乚乙乁乚等各種轉(zhuǎn)彎、轉(zhuǎn)折的首筆劃全部用“折”(z)來表示。
第四碼:該單字可發(fā)音的后結(jié)構(gòu)的漢字拼音首字母。后結(jié)構(gòu)是指漢字中,左中右結(jié)構(gòu)中的最大右結(jié)構(gòu);上中下結(jié)構(gòu)中的最大下結(jié)構(gòu);里中外結(jié)構(gòu)中的最大里結(jié)構(gòu);半包圍結(jié)構(gòu)中的最大上結(jié)構(gòu)。它們都是漢字書寫筆順中的后結(jié)構(gòu)。若發(fā)音的首字母為翹舌音CH、SH、ZH,則分別用c、z、H表示,其他規(guī)則同前結(jié)構(gòu)。
第五碼:該單字的末筆發(fā)音。
第六碼:該單字的聲調(diào)。按漢字的讀法.分為:陰平、陽平、上聲、去聲四種聲調(diào),在輸入時(shí)分別用1、2、3、4表示。
如果單個(gè)漢字,如“長”、“亞”、“丫”等無法拆分的,可以將該字整個(gè)看成前結(jié)構(gòu),第二碼用該字的首發(fā)音字母,第三碼為該單字的首筆發(fā)音,第四、第五碼均用“※”號(hào)表示。單漢字編碼規(guī)則舉例如下:
注:單字最終編碼由輸入法評(píng)測系統(tǒng)決定,包括編碼個(gè)數(shù)與選用的碼位。
2.2 雙字詞編碼規(guī)則
雙字詞在漢語中所占的份額最多,雙字詞編碼是否合理決定了一種輸入法的優(yōu)劣程度。本音形碼對雙字詞編碼也是根據(jù)漢字的音和形來確定的。我們采用五碼輸入法,每一碼由字或結(jié)構(gòu)的發(fā)音首字母決定,其中漢語中的翹舌音ZH、CH、SH分別用在漢語拼音聲母中不發(fā)音的v、I、u三個(gè)代碼代替。雙字詞音形碼取碼規(guī)則如下:
第一碼:雙字詞中首字發(fā)音的漢語拼音首字母。
第二碼:雙字詞中尾字發(fā)音的漢語拼音首字母。
第三碼:雙字詞中首字的最大前結(jié)構(gòu)發(fā)音字母。
第四碼:雙字詞中尾字的最大前結(jié)構(gòu)發(fā)音字母。
第五碼:為識(shí)別碼,取雙字詞中尾字的最大后結(jié)構(gòu)的可發(fā)音首字母。若發(fā)音的首字母為翹舌音CH、SH、ZH,則分別用c、z、H表示。如果雙字詞編碼重碼較高,可以考慮增加雙字詞中首字的最大后結(jié)構(gòu)參與編碼。雙字詞編碼舉例如下:
3 漢字輸入法評(píng)測系統(tǒng)的設(shè)計(jì)
漢字輸入系統(tǒng)的設(shè)計(jì)過程本身就是一個(gè)不斷修改和完善的過程,在這個(gè)過程中,對漢字輸入法性能的評(píng)測貫穿其中,評(píng)測的結(jié)果可以為漢字編碼方案、輸入方式選擇等各個(gè)關(guān)鍵步驟提供指導(dǎo),最終給出對新音形碼方案的科學(xué)評(píng)價(jià)。作為一個(gè)輸入法研究平臺(tái),它也可以對其他方式的漢字編碼輸入法提供開發(fā)環(huán)境和評(píng)價(jià)手段,具有普遍適用意義。
3.1 開發(fā)環(huán)境——Visual Foxpro 9.0
Visual FoxPro是Microsoft公司開發(fā)的一個(gè)功能強(qiáng)大的數(shù)據(jù)庫管理系統(tǒng)。Visual FoxPro是面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以創(chuàng)建從桌面到網(wǎng)絡(luò)的數(shù)據(jù)庫解決方案。Visu-al FoxPro提供了功能強(qiáng)大的數(shù)據(jù)處理能力,擁有最高效率的應(yīng)用程序快速開發(fā)工具,并且有足夠的可伸縮性來根據(jù)需要建立所有類型的數(shù)據(jù)庫解決方案。
輸入法評(píng)測系統(tǒng)管理的主要數(shù)據(jù)是被評(píng)測漢字輸入法的字詞碼表及評(píng)測用文本等,數(shù)據(jù)量并不很大,記錄條數(shù)最多也不過幾萬條,數(shù)據(jù)表之間的關(guān)系也比較簡單。因此,本課題組采用簡單、易用、直觀的數(shù)據(jù)管理系統(tǒng)Visual Foxpro對系統(tǒng)的數(shù)據(jù)進(jìn)行管理是足夠的。
在VFP9.0中,我們建立了2個(gè)漢字詞編碼基本表一單叔字編碼表和雙字詞編碼表。單漢字編碼庫字符集包含所有GB13000.1中的20902個(gè)漢字;雙字詞編碼庫詞條取自《現(xiàn)代漢英詞典》中常用的3萬多條雙字詞語。
3.2 輸入法評(píng)測系統(tǒng)的功能
輸入法評(píng)測系統(tǒng)是對漢字輸入系統(tǒng)設(shè)計(jì)開發(fā)的各個(gè)環(huán)節(jié)提供評(píng)測服務(wù)。它不僅能夠?qū)σ宰?、詞輸入為主的鍵盤編碼輸入法進(jìn)行評(píng)測,而且可供輸入法開發(fā)人員對編碼方案和輸入方案進(jìn)行自我評(píng)測,還可供有關(guān)評(píng)委對漢字輸入系統(tǒng)進(jìn)行評(píng)測。輸入法評(píng)測系統(tǒng)主要分為輸入、查詢、修改和統(tǒng)計(jì)四個(gè)部分。
輸入模塊 輸入模塊是輸入法評(píng)測系統(tǒng)的基本功能模塊,其作用是將字、詞及其編碼和各個(gè)碼位輸入到數(shù)據(jù)庫的相應(yīng)表中,也可以添加新的字、詞。在VFP9.0中,我們自定義了一個(gè)字、詞的輸入界面,以方便輸入。
查詢模塊查詢模塊可以查詢字、詞以及它們的編碼和各個(gè)碼位。查詢可分為字、詞查詢和編碼查詢。在VFP9.0中,創(chuàng)建了一個(gè)查詢窗口,包括字、詞查詢和編碼查詢。其中字、詞查詢是在字詞名框中輸入所要查詢的字、詞,點(diǎn)擊查詢按鈕,即可在窗口中顯示要查詢的字、詞的編碼情況。編碼查詢是在編碼框中輸入編碼,點(diǎn)擊查詢按鈕,即可在列表中顯示所要查詢編碼的相關(guān)信息。因編碼會(huì)有重復(fù),所以通常在列表中會(huì)顯示多條紀(jì)錄。
修改模塊修改模塊的功能是修改字、詞的編碼錯(cuò)誤,或者是因編碼規(guī)則調(diào)整而對原編碼進(jìn)行相應(yīng)調(diào)整。在VFPg.0中,修改界面與輸入界面相似,只是多了一個(gè)修改按鈕。修改時(shí),先要填入字、詞進(jìn)行簡單查詢,然后對顯示的字、詞的代碼以及碼位進(jìn)行修改,然后點(diǎn)擊修改按鈕,把改好的記錄插入到字、詞數(shù)據(jù)表中。
統(tǒng)計(jì)模塊統(tǒng)計(jì)功能模塊是輸入法評(píng)測系統(tǒng)中最重要的一個(gè)模塊,其主要功能是統(tǒng)計(jì)碼位的分布與重碼率。執(zhí)行統(tǒng)計(jì)時(shí),有三個(gè)可選項(xiàng):輸入碼選擇、重碼數(shù)統(tǒng)計(jì)方式、按首碼精確統(tǒng)計(jì)。下面分別說明。
輸入碼選擇:單字編碼有六位,雙字詞有五位,理論上可以任選碼數(shù)和碼位。如果只取一碼,我們稱之為一碼輸入法(只有一個(gè)輸入碼的輸入法)。同理還有二碼輸入法、三碼輸入法、四碼輸入法、五碼輸入法、六碼輸入法。一至三碼輸入法,由于重碼太多,沒實(shí)際意義。四碼輸入法和五碼輸入法,是我們研究的重點(diǎn)。
重碼數(shù)統(tǒng)計(jì)方式:我們設(shè)置了五個(gè)選項(xiàng),分別為:無重碼(一碼一個(gè)字詞)、一碼兩個(gè)字詞(兩個(gè)字詞同一個(gè)輸入碼)、一碼三個(gè)字詞、一碼四個(gè)字詞、一碼四個(gè)以上字詞。
按首碼精確統(tǒng)計(jì):設(shè)置該選項(xiàng)的目的,是為了均衡編碼的分布。該選項(xiàng)中共有二十六個(gè)可選項(xiàng)(即漢字發(fā)音的二十六個(gè)聲母)。若選擇了前兩項(xiàng),再選擇首碼的某個(gè)聲母,然后按統(tǒng)計(jì)按鈕,得到重碼數(shù)并在表格中顯示字詞重碼的詳細(xì)信息。有了這些詳細(xì)的重碼信息,我們可以對編碼規(guī)則進(jìn)行適當(dāng)調(diào)整,從而達(dá)到減少重碼甚至無重碼的目的。
3.3 評(píng)測結(jié)果
在音形碼研究過程中,測試貫穿于其中。根據(jù)測試結(jié)果反復(fù)調(diào)整編碼規(guī)則,力求達(dá)到編碼的簡易性與輸入的高效性的有機(jī)統(tǒng)一。下面概括說明一下應(yīng)用本輸入法評(píng)測系統(tǒng)對新的音形碼測試的結(jié)果:一字三碼及以下重碼嚴(yán)重,無實(shí)際意義;一字四碼,重碼率還比較高,可以進(jìn)一步優(yōu)化編碼規(guī)則,重碼還可下降;一字五碼,重碼率<10%,符合國標(biāo)GB/T18031,具備開發(fā)價(jià)值。雙字詞的情況也類似,五碼輸入法達(dá)到國標(biāo)要求。對樣文進(jìn)行測試,輸入單字,擊鍵數(shù)5,輸入雙字詞也是5,但輸入時(shí)雙詞遠(yuǎn)多于單字,所以平均擊鍵數(shù)不會(huì)超過3鍵,字,實(shí)測為2.8鍵/字,基本符合GB/T18031和GB/T19246對漢字輸入平均碼長的要求。
分析表明,編碼中占重要地位的部首、偏旁讀音首字母的分布不均勻是造成重碼的主要原因,要解決這個(gè)問題,需要對編碼規(guī)則作進(jìn)一步的研究。另外,如果把單字表和雙字詞表合起來進(jìn)行重碼測試,則重碼率>10%,再把多字詞編碼加進(jìn)去的話,重碼還要上升,所以,如何細(xì)化編碼規(guī)則,將是今后研究的重點(diǎn)。
4 結(jié)束語
本課題組對新的音形碼進(jìn)行了一年多的研究,取得了初步的成果,接下來我們還將繼續(xù)研究,最終推出新的輸入法產(chǎn)品。我們開發(fā)的輸入法評(píng)測系統(tǒng)是一個(gè)實(shí)用漢字輸入法評(píng)測平臺(tái),可以幫助輸入法設(shè)計(jì)人員對編碼方案和輸入法產(chǎn)品進(jìn)行客觀的自我評(píng)價(jià),并且根據(jù)評(píng)價(jià)的結(jié)果進(jìn)行技術(shù)改進(jìn),可推動(dòng)編碼輸入法技術(shù)的不斷提高和發(fā)展。