漢字編碼輸入法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種計(jì)算機(jī)漢字輸入方法,尤其涉及一種計(jì)算機(jī)漢字編碼輸入法。
【背景技術(shù)】
[0002] 目前,計(jì)算機(jī)漢字輸入方法主要分為兩種:一種是基于光學(xué)字符識(shí)別(OCR)技術(shù) 的漢字輸入法,另一種是基于鍵盤編碼技術(shù)的漢字輸入法。二十多年來(lái),計(jì)算機(jī)漢字輸入領(lǐng) 域涌現(xiàn)出了數(shù)百種漢字編碼輸入法,極大地推動(dòng)了我國(guó)中文信息處理領(lǐng)域的發(fā)展。但是現(xiàn) 有的漢字編碼輸入法均存在一定的弊端,并未達(dá)到令人非常滿意的水平。
[0003] 眾所周知,漢字是"音形義"三位一體的書面語(yǔ)單位。"音"和"形"是形式,"義"是 內(nèi)容,因此,漢字編碼輸入法主要分為音碼、形碼、形音碼和音形碼。
[0004] 1、現(xiàn)有的基于音碼的漢字編碼輸入法,大多只利用了漢字的語(yǔ)音信息,是目前用 戶使用較多的一種漢字輸入法。盡管基于音碼的漢字輸入法具有容易學(xué)習(xí)、記憶負(fù)擔(dān)較輕 的優(yōu)點(diǎn),但是同時(shí)存在著重碼字過(guò)多的嚴(yán)重缺點(diǎn)。造成此缺點(diǎn)的原因主要是因?yàn)闈h語(yǔ)中的 同音字太多,有些音節(jié)具有一百多個(gè)同音字?!冬F(xiàn)代漢語(yǔ)通用字表》的7000字之中,僅僅音 "ji"的同音字就有117個(gè),音節(jié)"yi"的同音字就有118個(gè)。由于用戶在使用基于音碼的 漢字輸入法時(shí),屏幕上的選字提示欄一次最多顯示10個(gè)字,選定一個(gè)字要多次翻頁(yè),造成 用戶體驗(yàn)極差。常用的全拼輸入法中輸入一個(gè)字時(shí)擊鍵可能多達(dá)6次,如"裝Zhuang、窗 Chuang、雙Shuang",輸入效率過(guò)低。而常見的雙拼輸入法,其特點(diǎn)是輸入漢字拼音時(shí)可以 使用"元音字母"來(lái)代替"聲母Zh、Ch、Sh",并且用"輔音字母"來(lái)代替眾多"復(fù)合韻母ai、 ao、ei、ou、an、en、in、un、ang、eng、ing、ong"等。但是這種毫無(wú)理?yè)?jù)的任意性規(guī)定,極大 地增加了初級(jí)用戶記憶負(fù)擔(dān)。
[0005] 2、現(xiàn)有的基于形碼的漢字輸入法,大多只利用了漢字的字形信息,其主要代表之 一是五筆字型。形碼將漢字的上百個(gè)"部件"稱為字根或字元,根據(jù)有理規(guī)則或無(wú)理規(guī)則將 字根分配到26個(gè)鍵位上。但是基于形碼的漢字輸入法適用于經(jīng)過(guò)長(zhǎng)期嚴(yán)格訓(xùn)練的專業(yè)打 字員,而初級(jí)用戶在學(xué)習(xí)時(shí)記憶負(fù)擔(dān)很極重,并不適用于廣大的普通用戶。
[0006] 另外,現(xiàn)有的基于形碼的漢字輸入法的設(shè)計(jì)者在設(shè)計(jì)時(shí),存在如下兩個(gè)認(rèn)識(shí)誤 區(qū):
[0007] (1)混淆了"構(gòu)字法"和"辯字法",過(guò)多地選用了"字根"。研宄"構(gòu)字法"就必然 要研宄數(shù)以百計(jì)的"字根",但漢字輸入技術(shù)卻只需要研宄"辨字法",即把所輸入漢字從"字 庫(kù)"中"分辨"出來(lái)。研宄"構(gòu)字法"必然要把"廣"和"疒"作為兩種"字根",但是研宄"辯 字法"的方案若規(guī)定"頭碼"只取頭三筆,則"疒"的頭三筆就是"廣",當(dāng)然就只能算一個(gè)"字 素"。只要能簡(jiǎn)便地把所輸入漢字從字庫(kù)中"分辨"出來(lái),"字素"越少越容易學(xué)。
[0008] (2)過(guò)分地追求"低重碼率",甚至追求"零重碼率"。但是經(jīng)實(shí)際使用證明,為了 "辨辯辮瓣"這四個(gè)字而增加識(shí)別碼的方法是得不償失的。只要鍵入一個(gè)輸入碼時(shí)出現(xiàn)的同 碼字不超過(guò)八個(gè),用戶在移動(dòng)終端既不需要翻頁(yè),又能在提示欄上一目了然的直接觀察選 取,極大地提高了用戶的使用體驗(yàn)。
[0009] 3、現(xiàn)有的基于形音碼的漢字輸入法,既利用了漢字的字形信息,同時(shí)利用了漢字 的語(yǔ)音信息,是漢字輸入技術(shù)的一個(gè)進(jìn)步。起初,只是把一個(gè)音碼作為一種特殊的識(shí)別碼 放在形碼之后,然后逐漸發(fā)展成漢字輸入法的一種,有代表性的為已獲專利權(quán)的鍵書輸入 法。但這種基于形音字的漢字輸入法,存在以下不足之處是:
[0010] (1)沿襲了形碼的字元太多的缺點(diǎn);
[0011] (2)把形碼放在首位,讓多字詞語(yǔ)的輸入碼跟該詞語(yǔ)的拼音縮寫不一致。例如,雖 然看起來(lái)"弓長(zhǎng)張、木子李"的說(shuō)法跟"張弓長(zhǎng)、李木子"的說(shuō)法沒(méi)有多大區(qū)別,但對(duì)于使用者 使用習(xí)慣而言區(qū)別很大。以四字成語(yǔ)"張冠李戴"的輸入作為一個(gè)例子,若用"形音碼"來(lái) 輸入是"GBMT(弓一木土)",用"音形碼"來(lái)輸入就是"ZGLD (張冠李戴)"。
[0012] 4、現(xiàn)有的基于音形碼的漢字輸入法既利用了漢字的語(yǔ)音信息,也利用了漢字的字 形信息,并且因?yàn)榘岩舸a放在首位,使得多字詞語(yǔ)的輸入碼跟該詞語(yǔ)的拼音縮寫保持一致。 但現(xiàn)有的基于音形碼由于沿襲了形碼的字元太多的缺點(diǎn),使音形碼的實(shí)用受到很大的限 制。
【發(fā)明內(nèi)容】
[0013] 本發(fā)明的目的是提供一種基于形碼的漢字編碼輸入法,能夠克服現(xiàn)有漢字輸入法 的多種弊端,能夠按照規(guī)范的筆畫序?qū)⒋斎霛h字拆分為橫向結(jié)構(gòu)、豎向結(jié)構(gòu)、包圍結(jié)構(gòu)或 整體結(jié)構(gòu),再形成數(shù)量不多于四個(gè)的構(gòu)件表示,最后利用鍵盤上對(duì)應(yīng)設(shè)置的數(shù)字碼鍵進(jìn)行 輸入,具有代碼最少、學(xué)習(xí)難度小、快速準(zhǔn)確的優(yōu)點(diǎn),特別適用于手機(jī)輸入。
[0014] 本發(fā)明采用下述技術(shù)方案:
[0015] 漢字編碼輸入法,其特征在于:將設(shè)定的單碼構(gòu)件分別設(shè)置于鍵盤的數(shù)字碼鍵上, 直接通過(guò)按鍵輸入與漢字構(gòu)件對(duì)應(yīng)的一個(gè)或多個(gè)數(shù)字碼鍵,實(shí)現(xiàn)漢字的輸入;
[0016] 構(gòu)件是指固定的漢字、筆畫或筆畫組合;單碼構(gòu)件是指下面列舉的與鍵盤的數(shù)字 碼鍵所對(duì)應(yīng)的漢字、筆畫或筆畫組合,雙碼構(gòu)件是指由兩個(gè)單碼構(gòu)件所組成的漢字、筆畫 或筆畫組合;復(fù)合構(gòu)件是指由單碼構(gòu)件、雙碼構(gòu)件或三碼以上構(gòu)件組成的漢字、筆畫或筆畫 組合;
[0017] 所述的單碼構(gòu)件與計(jì)算機(jī)標(biāo)準(zhǔn)鍵盤的數(shù)字碼鍵的對(duì)應(yīng)關(guān)系如下:
[0018] 數(shù)字碼鍵1對(duì)應(yīng)的單碼構(gòu)件為"一、二、工、廠、王、丁、于、尸、主";
[0019] 數(shù)字碼鍵2對(duì)應(yīng)的單碼構(gòu)件為"上、止、小、巾、山、丨、1-對(duì)、M/、門、木";
[0020] 數(shù)字碼鍵3對(duì)應(yīng)的單碼構(gòu)件為" j、兒、千、九、幾、月、j、//、廠、勹、:!
[0021] 數(shù)字碼鍵4對(duì)應(yīng)的單碼構(gòu)件為"門、心、、、'?、,、、、、"、7、~";
[0022] 數(shù)字碼鍵5對(duì)應(yīng)的單碼構(gòu)件為"乙、女、又、已、了、刁、彐、鄉(xiāng)、卩、1_、L、3、<、 3";
[0023] 數(shù)字碼鍵6對(duì)應(yīng)的單碼構(gòu)件為"六、文、廣、、i_";
[0024]數(shù)字碼鍵7對(duì)應(yīng)的單碼構(gòu)件為"七、車、火、C、廿、、z、廿、升、夂";
[0025] 數(shù)字碼鍵8對(duì)應(yīng)的單碼構(gòu)件為"八、乂、入、人、個(gè)、彳、〃、乂";
[0026]數(shù)字碼鍵9對(duì)應(yīng)的單碼構(gòu)件為"土、士、十、t、少";
[0027] 數(shù)字碼鍵0對(duì)應(yīng)的單碼構(gòu)件為"口、日、中、口";
[0028] 在輸入漢字時(shí),漢字的編碼碼長(zhǎng)最長(zhǎng)為4碼,其編碼規(guī)則如下:
[0029] 首先,按照規(guī)范書寫的筆畫序,根據(jù)組成待輸入漢字的若干個(gè)構(gòu)件的排列形式,將 待輸入漢字分為橫向結(jié)構(gòu)漢字、豎向結(jié)構(gòu)漢字、包圍結(jié)構(gòu)漢字或整體結(jié)構(gòu)漢字;
[0030] 在待輸入漢字為橫向結(jié)構(gòu)漢字時(shí),首先將待輸入漢字的首個(gè)復(fù)合構(gòu)件作為左部, 將待輸入漢字的剩余部分作為右部;然后按照規(guī)范書寫的筆畫序?qū)Υ斎霛h字的左部和右 部進(jìn)行拆分,將左部和右部均拆分為一個(gè)單碼構(gòu)件和/或多個(gè)單碼構(gòu)件和/或由多個(gè)單碼 構(gòu)件組成的整體結(jié)構(gòu);最后先后取左部和右部所包含的全部單碼構(gòu)件所對(duì)應(yīng)的數(shù)字碼鍵, 多個(gè)單碼構(gòu)件組成的整體結(jié)構(gòu)視為一個(gè)單碼構(gòu)件并取此整體結(jié)構(gòu)中首個(gè)單碼構(gòu)件所對(duì)應(yīng) 的數(shù)字碼鍵;
[0031] 其中,若左部所包含的全部單碼構(gòu)件的數(shù)量大于等于2,則只取左部所包含的前兩 個(gè)單碼構(gòu)件所對(duì)應(yīng)的數(shù)字碼鍵;若右部所包含的全部單碼構(gòu)件的數(shù)量大于等于3,此時(shí)若 左部?jī)H包含一個(gè)單碼構(gòu)件,則右部取前三個(gè)單碼構(gòu)件所對(duì)應(yīng)的數(shù)字碼鍵;若左部包含兩個(gè) 單碼構(gòu)件,則右部取前兩個(gè)單碼構(gòu)件所對(duì)應(yīng)的數(shù)字碼鍵;
[0032] 在待輸入漢字為豎向結(jié)構(gòu)漢字時(shí),首先將待輸入漢字的首個(gè)復(fù)合構(gòu)件作為上部, 將待輸入漢字的剩余部分作為下部;然后按照規(guī)范書寫的筆畫序?qū)Υ斎霛h字的上部和下 部進(jìn)行拆分,將上部和下部均拆分為一個(gè)單碼構(gòu)件和/或多個(gè)單碼構(gòu)件和/或由多個(gè)單碼 構(gòu)件組成的整體結(jié)構(gòu);最后先后取上部和下部所包含的全部單碼構(gòu)件所對(duì)應(yīng)的數(shù)字碼鍵, 多個(gè)單碼構(gòu)件組成的整體結(jié)構(gòu)視為一個(gè)單碼構(gòu)件并取此整體結(jié)構(gòu)中首個(gè)單碼構(gòu)件所對(duì)應(yīng) 的數(shù)字碼鍵;
[0033] 其中,若上部所包含的全部單碼構(gòu)件的數(shù)量大于等于2,則只取上部所包含的前兩 個(gè)單碼構(gòu)件所對(duì)應(yīng)的數(shù)字碼鍵;若下部所