專利名稱:一種漢字拼形輸入法的智能輸入處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種漢字拼形輸入法的智能輸入處理方法,可以應(yīng)用在五筆、鄭碼、表形碼、倉頡等漢字拼形或類拼形輸入法中。
拼音輸入為了克服其重碼率高的缺點(diǎn),隨著計(jì)算機(jī)技術(shù)的不斷向前發(fā)展,不斷地引入各種智能處理技術(shù),以提高漢字輸入的速度。先有“智能ABC”實(shí)現(xiàn)計(jì)算機(jī)自動分詞,以詞組為輸入單位,降低重碼率,加快輸入速度,再而有“微軟拼音”、“智能狂拼”等以句子為輸入單位的智能輸入法?!拔④浧匆簟陛斎敕ǖ耐瞥霰蛔u(yù)為“劃時代”的貢獻(xiàn),其強(qiáng)大的智能處理,計(jì)算機(jī)自動進(jìn)行分詞,無須人工去做,使拼音輸入變得更加容易,更加方便,輸入速度大大提升。
拼音輸入的智能語句輸入處理方法主要原理是通過兩個工序來完成1)以聲母作為識別一個字單元的分隔點(diǎn),然后找出每個字單元的編碼所對應(yīng)的所有漢字;2)以字單元作為交通網(wǎng)絡(luò)圖的一個節(jié)點(diǎn),每個字單元抽出一個對應(yīng)的漢字作為一個路徑,用任意兩節(jié)點(diǎn)之間所跨越的節(jié)點(diǎn)的各個編碼串組成詞拼音編碼串進(jìn)行詞的匹配。找出詞頻最高的詞,將其作為節(jié)點(diǎn)與節(jié)點(diǎn)之間的一條通路。計(jì)算由起節(jié)點(diǎn)到終節(jié)點(diǎn)的最短路徑,得出最短路徑所經(jīng)過的通路上對應(yīng)的字詞所組成的句子,用該句子作為用戶輸入的拼音編碼串所對應(yīng)的漢字句子。
為形象說明這一原理,下面以拼音輸入為例。
如用戶用拼音輸入今天是星期五jin-tian-shi-xing-qi-wu今天是星期五對于計(jì)算機(jī)來說,如果每個字詞沒有詞頻的話,并不知道用戶具體輸入的是什么內(nèi)容。
如以上的輸入語句計(jì)算機(jī)可能會識別出以下這些字、詞、句,其中數(shù)字代表這些詞的詞頻級,值越小代表詞頻越高-今天(6)——天時(7)- -星期(7)--欺侮(9)-盡(4)--天(4)--是(2)--行(4)--期(5)--五(5)---實(shí)行(7)-——星期五(12)-----以上的字詞可以代表如下句子今天是星期五盡天時行欺侮今天實(shí)行欺侮盡天時星期五如果將句子的開始到結(jié)尾連成一條通路,將各字或詞代表其中一段可行的通路,以上的這些句子就是其中一條由開始到結(jié)尾的可行的路徑。例如“盡天時星欺侮”這一句的路徑是“盡”+“天時”+“行”+“欺侮”;“今天實(shí)行欺侮”這一句的路徑是“今天”+“實(shí)行”+“欺侮”等等。
如果用詞的詞頻級來表示每一通路的路徑長度,并適當(dāng)調(diào)整每一可行通路的長度,使得由開始到結(jié)尾的最短路徑只有一條,那么我們可以定義這一條由開始到結(jié)尾的最短路徑所組成的句子就是我們所要輸入的句子。我們就可以根據(jù)用戶的輸入,通過查找最短路徑的算法,來確定用戶的輸入是什么句子。例如以上的句子的路徑長度分別是今天是星期五=“今天”+是+“星期五”=6+2+12=20盡天時行欺侮=“盡”+“天時”+“行”+“欺侮”=4+7+4+9=24今天實(shí)行欺侮=“今天”+“實(shí)行”+“欺侮”=6+7+9=22盡天時星期五=“盡”+“天時”+“星期五”=4+7+12=23其中路徑最短的一句話是“今天是星期五”=6+2+12=20所以計(jì)算機(jī)通過這一結(jié)論可以確定用戶是要輸入“今天是星期五”這一句話。
相反,對于拼形輸入來說,在智能處理方面就大大遜色,“王碼五筆”和“幸福五筆”依然的和剛推出時一樣,一點(diǎn)改進(jìn)也沒有,可以講得上一點(diǎn)兒智能處理也沒有,如自動調(diào)頻,自動造詞等。近來推出的“智能陳橋輸入法”雖然有很大改進(jìn),如自動調(diào)頻、造詞、變形的語句輸入、顯示簡碼等,博得了不少傳統(tǒng)的用戶的青睞。但和微軟拼音的強(qiáng)大語句輸入的智能處理相比,還差一大截。
拼形輸入出現(xiàn)這種局面的原因,主要是由于如下原因所造成。(一)傳統(tǒng)認(rèn)識上的誤區(qū)認(rèn)為只要有優(yōu)秀的漢字鍵盤編碼方案就能使重碼率接近零,大大提高輸入的速度,根本無須要智能處理,只有拼音這種重碼率大高的編碼方案才需要智能處理。殊不知,為了追求這個重碼率為零的目標(biāo),其代價是將漢字的編碼規(guī)則搞得復(fù)雜到令人難以接受,使許多初學(xué)者被拒之門外。這就是為什么傳統(tǒng)的拼音輸入法還是成為主流輸入法的原因。最流行的拼形輸入法——五筆字型也只占了小部分的用戶群,使用其它拼形輸入法的人則鳳毛麟角。(二)關(guān)鍵的原因是技術(shù)沒有解決由于拼音輸入法可以通過聲韻母進(jìn)行字和字的劃分,所以可以識別到用戶是進(jìn)行字輸入還是詞的輸入,進(jìn)而可以識別到整句話的輸入。而拼形輸入就不能根據(jù)輸入的編碼進(jìn)行字詞的識別。
例如用拼音輸入法輸入“今天是星期五”,可以整個語句進(jìn)行輸入jin’tian’shi’xing’qi’wu。計(jì)算機(jī)通過對聲韻母的劃分可以判斷出用戶要輸入多少個字,進(jìn)而可以進(jìn)行詞的匹配,再進(jìn)而通過各詞的使用詞頻進(jìn)行運(yùn)算,得出輸入的句子。如“微軟拼音”輸入法就是這樣處理的。而對于拼形輸入來說,以五筆為例,輸入以上的字需要輸入輸入編碼wynb gd j jtg adwegghg由于每字(含詞)的取碼,由1至4碼不等,各字具體的取碼是均勻分布的,字和字的具體的編碼之間沒有特征來區(qū)分,進(jìn)而限制了拼形輸入法以語句輸入的發(fā)展。
所以要使拼形輸入可以向語句輸入的方向發(fā)展,關(guān)鍵就是解決通過輸入的編碼來分隔字的問題。而這就是本輸入法的核心專利技術(shù)之一。
本發(fā)明是通過如下技術(shù)方案來實(shí)現(xiàn)的它包括兩個步驟(I)輸入的拼形編碼串與每個字單元的對應(yīng)的識別方法采用奇偶位識別漢字句子編碼串,即在漢字句子輸入過程中每字單元取兩碼的方法來進(jìn)行輸入,通過判斷輸入的漢字編碼的奇偶數(shù)來進(jìn)行字單元的分隔,識別到輸入編碼串中所代表的字單元的個數(shù),即字的個數(shù),第一個字單元對應(yīng)第1編碼和第2編碼,第二字單元將對應(yīng)第3編碼、第4編碼,第N個的單元第2N-1編碼和第2N編碼。(II)遍歷字詞,用匹配的字詞組成一個交通網(wǎng)絡(luò)圖,然后查找該交通網(wǎng)絡(luò)圖的最短路徑,得出最短路徑所對應(yīng)的漢字組合成的句子(a)定交通網(wǎng)絡(luò)圖的各個節(jié)點(diǎn),即利用步驟(I)分隔出的每個字單元,以字單元作為交通網(wǎng)絡(luò)圖的一個節(jié)點(diǎn),每一個節(jié)點(diǎn)由兩碼組成;(b)用各個節(jié)點(diǎn)的編碼串以及任意兩個節(jié)點(diǎn)之間所跨越的節(jié)點(diǎn)共同組成的一個編碼串進(jìn)行字詞的匹配,匹配是用編碼串在詞庫中進(jìn)行查找,查找出和編碼串相符且詞頻最高的字詞,兩碼為字的匹配,兩碼以上為詞的匹配,凡存在匹配的字詞,就將其作為節(jié)點(diǎn)與節(jié)點(diǎn)之間的一條通路,并根據(jù)詞頻的大小賦予該通路一長度值,詞頻越大,長度越短,反之亦然;(C)通過步驟(a)和步驟(b),我們就將用戶輸入語句對應(yīng)的編碼串轉(zhuǎn)化為一帶權(quán)值的交通網(wǎng)絡(luò)圖,該交通網(wǎng)絡(luò)圖的節(jié)點(diǎn)數(shù)為編碼串的長度/2,每一條通路對應(yīng)一個字詞,計(jì)算由起節(jié)點(diǎn)到終節(jié)點(diǎn)的最短路徑,得出最短路徑所經(jīng)過的通路上對應(yīng)的字詞所組成的句子,用該句子作為用戶輸入的編碼串所對應(yīng)的漢字句子。
本發(fā)明在輸入過程中還含有快速修正步驟(III),包括回退修正和邊輸入邊修正,回退修正是指當(dāng)輸入一句話后,發(fā)現(xiàn)前面出現(xiàn)的字或詞不是所需的可以移動光標(biāo),每次移動兩個字母,即一個字,進(jìn)行正確字,詞的選取,選取時可以由左至右或由右至左進(jìn)行,當(dāng)字單元的兩個碼不能識別出正確的漢字時,通過輸入第三碼快速找出合適的漢字;邊輸入邊修正是指在輸入過程中,當(dāng)出現(xiàn)的字詞不是所需的,可以從重碼列表中選擇正確的字詞或進(jìn)行分詞。
本發(fā)明在進(jìn)行漢字輸入過程中,實(shí)行動態(tài)調(diào)整詞頻步驟(IV),即當(dāng)輸入過程中或在回退修正時,出現(xiàn)重碼的字詞時,如果第一個出現(xiàn)最高頻的字詞就是所需的字,用戶無需進(jìn)行選擇繼續(xù)輸入其它編碼;如果不是用戶所需的字詞,用戶必須進(jìn)行選擇,用戶進(jìn)行了選擇后,計(jì)算機(jī)則自動將選擇的詞的詞頻調(diào)整成該重碼詞組中的最高頻,在下次輸入時,就不用再選擇了,調(diào)頻還包括分詞處理,即降低詞組的詞頻,使得系統(tǒng)選擇單字而非詞組。
本發(fā)明還包括動態(tài)增加、刪除詞句步驟(V),即當(dāng)用戶進(jìn)行選擇字詞時或用了第三碼進(jìn)行修正或在最后一字加上了第三碼作較驗(yàn)時,系統(tǒng)自動將該句話作為詞組或?qū)⒕洳鸱殖稍~增加到詞庫中,同時存放簡碼及智能語句輸入碼;當(dāng)用戶選擇了某組重碼詞其中的一個時,系統(tǒng)自動將其它重碼詞的詞頻降低一級,并對這些重碼詞進(jìn)行檢查,刪除詞頻達(dá)到最低警戒線的詞。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn)1)本發(fā)明采用通過奇偶位識別漢字編碼串中漢字或詞的技術(shù),實(shí)現(xiàn)每字兩鍵的字、詞、句混合輸入,通過電腦自動調(diào)頻,動態(tài)組詞的輔助功能,保證了整句輸入的正確率接近100%,語句輸入過程中計(jì)算機(jī)自動分詞,無須輸入空格鍵,使輸入的過程非常連貫,輸入速度更快,輸入更輕松;2)本智能輸入法只需每字打兩鍵就可以,輸入規(guī)則簡單易學(xué),容易掌握,輸入速度高,而且該輸入法所具有強(qiáng)大智能功能,不用人工分詞,免除了在輸入過程中要經(jīng)常打空格的弊端,用戶所需的字詞語句乎之欲出,漢字輸入的感覺有如何云流水,非常流暢,將漢字輸入的變成了一種藝術(shù)享受;3)由于本發(fā)明的強(qiáng)大的智能處理使得簡化現(xiàn)有的漢字鍵盤編碼方案成為可能,通過簡化現(xiàn)有的字型鍵盤編碼體系,可以使用戶更加容易學(xué)習(xí);4)快速修正步驟、動態(tài)調(diào)整詞頻步驟、動態(tài)增加、刪除詞句步驟只是本智能處理的輔助功能。這些輔助功能的目的是使用戶經(jīng)過一定時間的磨合,就能實(shí)現(xiàn)“每字兩碼的整句輸入的正確率達(dá)到100%”目標(biāo)。
圖1是本發(fā)明輸入編碼串例子1對應(yīng)的交通網(wǎng)絡(luò)圖;圖2是本發(fā)明輸入編碼串例子2對應(yīng)的交通網(wǎng)絡(luò)圖;圖3是本發(fā)明輸入編碼串例子3對應(yīng)的交通網(wǎng)絡(luò)圖;圖4是圖3中用漢字和詞組代替輸入編碼串后對應(yīng)的交通網(wǎng)絡(luò)圖。
3、碼長為3碼的漢字編碼已足夠根據(jù)以上第四碼使用率極少的特點(diǎn),我們可以去掉漢字編碼的第四碼,只取漢字前三碼。其實(shí)這三碼的編碼空間為25+25×25+25×25×25>15000,相對于GB漢字集的6763個漢字來說,編碼空間已足夠大,更何況常用的漢字只有3000。即使有重碼,但重碼出現(xiàn)可能性比較低,且重碼的字?jǐn)?shù)并不多,通過選擇,也很易進(jìn)行輸入。對于一般性文章,基本上三碼即可以打出想要的字。關(guān)鍵的問題是視乎能否找到一種比較均衡的漢字編碼方案。
4、智能造句的原理采用類似于微軟拼音輸入法的語句處理技術(shù)。了解幾個概念語料指用于詞頻統(tǒng)計(jì)的語言資料。詞頻即詞頻度在一定數(shù)量的語料中同一個詞語出現(xiàn)的頻度,一般用詞語的出現(xiàn)次數(shù)或覆蓋率來表示。在這里用出現(xiàn)次數(shù)來表示。詞頻級根據(jù)詞的詞頻的大小由高至低按一定的標(biāo)準(zhǔn)將詞分成一定的等級,假設(shè)分為20級,該等級就是詞的詞頻級。級別的數(shù)值越少表示詞的詞頻越大,級別數(shù)值越大表示詞的詞頻越小。如級別為0表示詞頻最大,級別20表示詞頻最小。詞頻和詞頻級的關(guān)系詞頻越大,詞頻級的值就大,反之越小。為簡單起見,將詞頻看成和詞頻級相對應(yīng)的整數(shù),如詞的頻度為20,則詞頻級為0,頻度為19,則詞頻級為1....如詞的頻度為0,則詞頻級為20。由于每個字詞有一詞頻,所以可以將用戶的輸入編碼串進(jìn)行字詞的匹配,轉(zhuǎn)化為交通網(wǎng)絡(luò)圖,然后計(jì)算最短路徑來得出輸入的句子。
5、通過奇偶位識別漢字編碼串中漢字或詞,實(shí)現(xiàn)每字兩筆的字、詞、句混合輸入。根據(jù)兩鍵的字在單字輸入的中所占漢字的詞頻最高的特點(diǎn),以及詞組輸入均為4鍵的特點(diǎn),我們采用在句子的輸入過程中每字取兩碼的方法來進(jìn)行輸入,第三碼只作為單字輸入和進(jìn)行修正時用。由于字與詞的鍵數(shù)均為偶數(shù)鍵,這樣我們就可以仿照“微軟拼音”輸入法通過聲韻母來分隔字一樣,通過判斷輸入的漢字編碼的奇偶數(shù)來進(jìn)行字或詞的分隔,識別到句子對應(yīng)的編碼串中所代表的字或詞的個數(shù),并結(jié)合類似于“微軟拼音”的語句處理技術(shù),進(jìn)而實(shí)現(xiàn)每字兩筆的字、詞、句混合輸入。
以下詳細(xì)介紹字、詞、句混合輸入處理過程當(dāng)用戶輸入的編碼少于四碼,為單字輸入模式,和傳統(tǒng)輸入的方式一致。
高頻字(一級字)一碼+空格鍵次高頻字(二級字)一二碼+空格鍵三級字一二三碼+空格鍵當(dāng)連續(xù)輸入四碼以上時自動切換到智能詞組語句輸入。
1、智能處理的具體要求及具有的功能(1)每字取一二兩碼。智能算法是以奇數(shù)位作為一字詞的開始碼。
(2)第三碼用于回退修正、語句輸入的最后一字的較驗(yàn)、以及動態(tài)增加詞句的標(biāo)志用。
(3)輸入窗口分兩行顯示,上面一行顯示漢字,下面一行顯示編碼。
(4)遇到斷點(diǎn)自動完成全句話的輸入。斷點(diǎn)是指非漢字編碼,包括各種標(biāo)點(diǎn)符號、英文字母、空格、回車等非漢字編碼的輸入。
(4)修正。包括回退修正和邊輸入邊修正。回退修正是指當(dāng)輸入一句話后,發(fā)現(xiàn)前面出現(xiàn)的字或詞不是所需的可以移動光標(biāo)進(jìn)行正確字,每次移動兩個字母即一個字,詞的選取,選取時可以由左至右或由右至左進(jìn)行。邊輸入邊修正是指在輸入過程中,當(dāng)出現(xiàn)的字詞不是所需的,可以從重碼列表中選擇正確的詞。邊輸入邊修正的好處是不需要移動光標(biāo),缺點(diǎn)的在整個句子輸全完成之前不能確定是否需要選詞。重碼提示窗口根據(jù)當(dāng)前光標(biāo)所在的位置依次顯示該光標(biāo)之前的四字三字兩字一字的重碼字,如果光標(biāo)當(dāng)前位置在最后,且輸入的編碼數(shù)為奇數(shù),則用三碼匹配重碼字。選取重碼詞時可以輸入第三碼進(jìn)行快速選取。進(jìn)行選取重碼的字詞后該字詞就作為固定字,漢字顯示欄根據(jù)選字情況自動重新進(jìn)行修正。對于重碼字詞的選擇系統(tǒng)自動調(diào)頻。將選中的詞的詞頻調(diào)為與該重碼組中詞頻最高的詞的詞頻,將原詞頻最高的重碼詞的詞頻降低一度。
(5)也可以移動光標(biāo)至編碼輸入錯誤的地方進(jìn)行編碼修正或刪除插入。漢字顯示欄自動進(jìn)行修正。
(6)動態(tài)調(diào)整詞頻。當(dāng)輸入過程中或在回退修正時,出現(xiàn)重碼的字詞時,如果第一個出現(xiàn)最高頻的字詞就是所需的字,用戶無需進(jìn)行選擇繼續(xù)輸入其它編碼;如果不是用戶所需的字詞,用戶必須進(jìn)行選擇,可以用數(shù)字0-9進(jìn)行選擇。用戶進(jìn)行了選擇后,計(jì)算機(jī)則自動將選擇的詞的詞頻調(diào)整成該重碼詞組中的最高頻,在下次輸入時,就不用再選擇了。
(7)通過降低詞頻來進(jìn)行拆詞。輸入過程中可能出現(xiàn)一個詞組,而該詞組并不是所需的,用戶真正需要的是字。例如用戶想輸入“又小”兩個字,假設(shè)“又小”這兩個字和“更小”這一詞重碼,且“更小”的詞頻比“又小”兩字加起來的詞頻高,則智能處理會認(rèn)為用戶要輸入的是“更小”一詞,而非“又小”。在重碼提示窗口會出現(xiàn)“更小,小”等的重碼選擇,這時用戶可以通過選擇“小”字來進(jìn)行拆詞,系統(tǒng)判斷出用戶選擇單字,而非詞組,則會將“更小”的詞頻降低,這時“又小”兩字相加的詞頻就會高于“更小”這一詞,計(jì)算機(jī)就會自動選擇“又小”這兩個字作為輸入而非“更小”這一詞。
(8)動態(tài)增加詞句。
當(dāng)用戶進(jìn)行選擇字詞時或用了第三碼進(jìn)行修正或在最后一字加上了第三碼作較驗(yàn)時,系統(tǒng)自動將該句話為詞組增加到詞庫中。同時存放簡碼,即每詞四鍵及智能語句輸入碼,每字兩鍵。
(9)能夠識別到三字詞、四字詞、以及四字詞以上取四碼的輸入。完全可以做到,因?yàn)樵~的輸入和單字輸入一樣都是偶數(shù)碼,且三字以上的詞和兩字詞一樣都是取四碼。
(10)引入固定字。固定字是在組詞的過程中不再改變的字,即該字已確定了不再變更。固定字的作用可以降低語句處理時計(jì)算的復(fù)雜度。
固定字在出現(xiàn)重碼時通過選擇而確定的字詞。在語句輸入過程中,用戶一但選擇了某個詞,則該詞在整個語句輸入過程中不再變更。只能用該詞進(jìn)行前后的組詞,而不是通過該詞對應(yīng)的編碼進(jìn)行前后組詞。
(11)智能學(xué)習(xí)。不同的用戶來自不同的專業(yè)領(lǐng)域,而不同的專業(yè)領(lǐng)域中存在著大量的重碼的字詞。在不同的專業(yè)領(lǐng)域,這些重碼字詞的使用詞頻是各自不相同的,在某一專業(yè)領(lǐng)域中是常用詞,但在另一個專業(yè)領(lǐng)域中并不是常用詞,甚至是生僻詞。例如五筆字型的詞“程序設(shè)計(jì)”和詞“行為主義”是重碼詞,編碼都為“tyyy”。但“程序設(shè)計(jì)”在計(jì)算機(jī)領(lǐng)域中是常用詞,而“行為主義”在計(jì)算機(jī)領(lǐng)域中是生僻字;“行為主義”在社會學(xué)或行為學(xué)中是常用詞,而在計(jì)算機(jī)領(lǐng)域中是生僻字。我們可以通過對相關(guān)文章,即某專業(yè)類進(jìn)行學(xué)習(xí),自動調(diào)整詞庫中各字詞的詞頻以適應(yīng)該專業(yè)類的文章。學(xué)習(xí)的過程就是用計(jì)算機(jī)模擬手工輸入的過程。通過學(xué)習(xí)之后,既調(diào)整了詞頻,也組成新詞,以后人工進(jìn)行相關(guān)專業(yè)類文章的輸入時,就能使對相關(guān)文章的輸入的正確率大大提高。例如,如果某用戶是一位在政府機(jī)關(guān)從事有關(guān)黨政工作,則可以選擇一類黨政文章進(jìn)行學(xué)習(xí)。學(xué)習(xí)后輸入黨政性的文章,就可以無須進(jìn)行重碼選擇,正確率也非常高;如果某用戶是從事金融方面工作的,可以選擇有關(guān)金融方面的文章進(jìn)行學(xué)習(xí),學(xué)習(xí)后輸入金融方面的文章時,正確率就非常高。
下面舉一個例子具體說明本發(fā)明的內(nèi)容。以輸入“中國人民解放軍”來說明(1)詞庫結(jié)構(gòu)(索引傳統(tǒng)編碼+路徑,智能輸入編碼+路徑,詞)詞最大長度為8,詞傳統(tǒng)編碼智能輸入編碼路徑長度(越小代表詞越常用,詞頻越高)中 k kl 3叫 klj kl 7聽 klt kl 8唱 kqkq 9是 q qn 3日 qwqw 5國 qwqw 6人 a aw 6釜 awf aw 7命 aeae 7民 fzfz 7咸 fzx fz 10多 x xw 4解 xoxo 6為 d df 4文 dcdc 5放 dcf dc 7定 b bn 5軍 bsj bs 9罕 bsh bs 10宰 bsz bs 11覦 abab 13中國 klqw klqw 7中日 klqw klqw 9國人 qwawqwar 10人民 awfzawfz 9全民 awfzawfz 10中國人民 klafklqwawfz 13解放 xodcxodc 9解放軍 xdbsxodcbs10*中國人民解放軍 kqrbklqtrwfzxsdobs19打“*”的為計(jì)算機(jī)自動造詞(2)輸入過程。
以輸入“中國人民解放軍”這一句為例,演示本智能輸入法的具體處理過程,對輸入的編碼進(jìn)行每兩碼一字進(jìn)行劃分輸入編碼k輸出結(jié)果中重碼列表1中輸入第一鍵,顯示高頻字“中”輸入編碼kl輸出結(jié)果中重碼列表1中2叫2聽....
編碼為“kl”的最高頻的字為“中”輸入編碼klq輸出結(jié)果中是重碼列表1是輸入第一鍵q,顯示高頻字“是”輸入編碼klqw輸出結(jié)果中國重碼列表1中國2中日3日4國....
“中國”一詞的詞頻最高輸入編碼klqwa輸出結(jié)果中國人重碼列表1人輸入第一鍵a,顯示高頻字“人”輸入編碼klqwaw輸出結(jié)果中國人重碼列表1國人2人3入句子分為“中國”+“人”詞頻最高輸入編碼klqwawf輸出結(jié)果中國釜重碼列表1釜句子分為“中國”+“人”+“釜”詞頻最高輸入編碼klqwawfz輸出結(jié)果中國人民重碼列表1人民2全民3民句子分為“中國”+“人民”詞頻最高輸入編碼klqwawfzx輸出結(jié)果中國人咸重碼列表1咸句子分為“中國”+“人”+“咸”詞頻最高輸入編碼klqwawfzxo輸出結(jié)果中國人民解重碼列表1解句子分為“中國”+“人民”+“解”詞頻最高輸入編碼klqwawfzxod輸出結(jié)果中國人民解為重碼列表1為句子分為“中國”+“人民”+“解”+“為”詞頻最高輸入編碼klqwawfzxodc輸出結(jié)果中國人民解放重碼列表1解放2文3放句子分為“中國”+“人民”+“解放”詞頻最高輸入編碼klqwawfzxodcb輸出結(jié)果中國人民解放定重碼列表1定句子分為“中國”+“人民”+“解放”+“定”詞頻最高,“定”為高頻字輸入編碼klqwawfzxodcbs輸出編碼中國人民解放軍重碼列表1解放軍2軍3罕4宰句子分為“中國”+“人民”+“解放軍”詞頻最高輸入編碼klqwawfzxodcbs+空格(或標(biāo)點(diǎn)符號或回車或其他非編碼輸入)輸出編碼中國人民解放軍(輸出)至此我們輸入了klqwawfzxodcbs+空格,這串編碼后計(jì)算機(jī)就會輸出中國人民解放軍這一句話,平均每字的鍵盤擊鍵數(shù)為2。(3)回退修正。
●當(dāng)輸入的過程中發(fā)現(xiàn)某個字如不是所需的字或某個編碼誤時,如誤將“w”輸為“e”時,如下圖所示。
klqwaefzxodcbs中國命人解放軍可以移動光標(biāo)至e,按刪除鍵將e刪除。刪除后輸入由klqwaefzxodcbs中國命人解放軍變成klqwafzxodcbs中國第驟拆莧(暫時變亂)在刪除e處輸入w則變回正確klqtrwfzxsdcbs中國人民解放軍●選字修正。回退修正由右到左移動光標(biāo),在移動光標(biāo)的同時顯示光標(biāo)對應(yīng)的字的所有重碼字(如為重碼的詞,則詞優(yōu)先顯示),如出現(xiàn)某個不正確,則可以通過輸入數(shù)字進(jìn)行選擇。例如輸入完整個句子后發(fā)展,輸入編碼“klqw”所對應(yīng)的輸出結(jié)果中出現(xiàn)了“中日”而非“中國”時,就可以移動光標(biāo)至“klqw”后,輸入重碼列表“中國”對應(yīng)的數(shù)字進(jìn)行選擇。一經(jīng)選擇后,“中國”的詞頻就調(diào)到比“中日”的高,在下一次輸入時就會自動出“中國”,而非“中日”了。也可以邊輸入邊修正當(dāng)輸入編碼“klqw”時,如果發(fā)現(xiàn)輸出結(jié)果中出現(xiàn)了“中日”而非“中國”時,輸入重碼列表“中國”對應(yīng)的數(shù)字進(jìn)行選擇,選擇完后,繼續(xù)進(jìn)行輸入?!裼玫谌a快速修正。當(dāng)進(jìn)行重碼字的選擇時,可以輸入第三編碼快速定位選擇的字。例如假如在以上輸入過程中,輸入了“放”字的編碼“dc”后如果計(jì)算機(jī)出現(xiàn)“文”而非“放”字時,可以將光標(biāo)移到“文”字對應(yīng)編碼的地方,輸入“放”字的第三碼“f”,則計(jì)算機(jī)自動將“文”字改為“放”字?!駝討B(tài)造詞。當(dāng)發(fā)生過選擇重碼字或有第三碼修正時,在最后輸出該語句時自動對該詞句進(jìn)行組詞,并追加到詞庫中。例如,如果以上“中國人民解放軍”在輸入過程中發(fā)生了重碼的選擇,則輸出該語句時自動將其追加到詞庫中。
詞 傳統(tǒng)編碼 智能方式編碼 路徑中國人民解放軍 kqab klqwawfzxodcbs12+字?jǐn)?shù)=19(默認(rèn)為值)“kqab”碼為前三字第一碼+最后一字的首碼(4) 當(dāng)?shù)诙屋斎搿爸袊嗣窠夥跑娊夥胖袊钡恼Z句時,由于詞庫中存在“中國人民解放軍”一詞,我們可以以詞組輸入該詞。整個輸過程簡單演示為如下k中“中”為編碼k對應(yīng)的高頻字kq唱“kq”對應(yīng)的最高頻字為“唱”kqa唱人句子分為“唱”+“人”詞頻最高kqab中國人民解放軍
“kqab”對應(yīng)詞庫的中詞組“中國人民解放軍”,且詞頻最高kqabx中國人民解放軍多句子分為“中國人民解放軍”+“多”詞頻最高kqabxo中國人民解放軍解句子分為“中國人民解放軍”+“解”詞頻最高kqabxod中國人民解放軍解為句子分為“中國人民解放軍”+“解”+“為”詞頻最高kqabxodc中國人民解放軍解放句子分為“中國人民解放軍”+“解放”詞頻最高kqabxodck中國人民解放軍解放中句子分為“中國人民解放軍”+“解放”+“中”詞頻最高kqabxodckl中國人民解放軍解放中句子分為“中國人民解放軍”+“解放”+“中”詞頻最高kqabxodcklq中國人民解放軍解放中是句子分為“中國人民解放軍”+“解放”+“中”+“是”詞頻最高kqabxodcklqw中國人民解放軍解放中國句子分為“中國人民解放軍”+“解放”+“中國”詞頻最高kqabxodcklqw+空格(或標(biāo)點(diǎn)符號或回車或其他非編碼輸入)中國人民解放軍解放中國(輸出)至此我們完成了字、詞、句的混合輸入。我們輸入“中國人民解放軍解放中國”這一句話,共11個字,我們只需輸入編碼“kqabxodcklqw”,共12個編碼,就可以完成整個輸入,平均每字的擊鍵數(shù)為1.1鍵。(三)具體實(shí)現(xiàn)(一)算法具體說明1、總體設(shè)計(jì)思路(1)詞庫設(shè)計(jì)詞庫中記錄了每個字詞的編碼,包括傳統(tǒng)的編碼和智能編碼及各個字詞對應(yīng)的路徑值,即詞頻信息,傳統(tǒng)的編碼是對字1,2,3碼,對詞四碼;智能編碼是每字兩碼。
(2)根據(jù)用戶輸入的編碼,查找遍歷所有可行的通路,即字詞匹配,記錄其路徑長度。將所有字詞的信息組成一個網(wǎng)絡(luò)交通圖。
(3)在所有字詞所組成的網(wǎng)絡(luò)交通圖中找出一條由開始到結(jié)尾的最短路徑。
(4)由開始到結(jié)尾的最短路徑所組成的句子就是所需的。然后輸出該句子2、本智能輸入法需要遍歷的可能通路以輸入句子長度為10字,最大詞長8字為例,由于每字為2碼,所以總共有20個編碼。
假如我們輸入的編碼為ab cd ef gh ij kl mn op qr st。要求每字兩碼輸入,對于系統(tǒng)已有的三字詞取碼為4碼(11+12+21+31),已有四字以上的詞取碼也為4碼(11+21+31+n11),所以可以確定字或詞的首碼肯定為偶數(shù)碼。所以對于以上的輸入編碼,我們要遍歷的通路數(shù)(即搜索可能的字詞個數(shù))為一字詞10個(每字兩碼,20/2)二字詞9個三個字(每字取兩碼的情況)8個四個字(每字取兩碼的情況)7個五字詞(每字取兩碼的情況)6個六字詞(每字取兩碼的情況)5個七字詞(每字取兩碼的情況)4個八字詞(每字取兩碼的情況)3個三字詞(取四碼一詞的情況)同兩字詞一樣,9個四字詞(取四碼一詞的的情況)同兩字詞一樣9個五字詞(取四碼一詞的的情況)同兩字詞一樣9個六字詞(取四碼一詞的的情況)同兩字詞一樣9個七字詞(取四碼一詞的的情況)同兩字詞一樣9個八字詞(取四碼一詞的的情況)同兩字詞一樣9個以上三字以上的詞取四碼一詞的情況,由于和兩字詞取兩碼的情況一樣,所以將其忽略。總共要搜索的詞個數(shù)共為52計(jì)算公式為(句子字?jǐn)?shù)+句子字?jǐn)?shù)-MIN(最大詞長,句子字?jǐn)?shù))+1)×MIN(最大詞長,句子字?jǐn)?shù))/2=(10+10-8+1)×MIN(最大詞長,句子字?jǐn)?shù))/2=13×8/2=52如果輸入的句子長度為6字則一字詞6個二字詞5個三個字(每字取兩碼的情況)4個四個字(每字取兩碼的情況)3個五字詞(每字取兩碼的情況)2個六字詞(每字取兩碼的情況)1個三字詞(每字取一碼的情況)同兩字詞5個四字詞(每字取一碼的情況)同兩字詞5個總共要搜索的詞個數(shù)共為21=(句子字?jǐn)?shù)+句子字?jǐn)?shù)-MIN(最大詞長,句子字?jǐn)?shù))+1)×MIN(最大詞長,句子字?jǐn)?shù))/2=(6+6-6+1)×6/2=21如輸入的句子長度為25字,則要搜索的詞個數(shù)共為(25+25-8+1)×8/2=172由以上可以看出用戶輸入一句話系統(tǒng)需要搜索的字詞數(shù)是非常多的,為提高遍歷的速度,在用戶輸入完每一偶數(shù)鍵時,遞增都做一次遍歷。將整個句子的字詞數(shù)的搜索分?jǐn)偟矫恳蛔种小A硗鉃榱私档陀?jì)算最短路徑的復(fù)雜程度,引入固定字,固定字是用戶選擇的重碼字,當(dāng)用戶選擇了某個重碼字,則該字就作為詞中的固定字,例如在上面輸入“今天是星期五”的句子時,當(dāng)用戶選擇了重碼字“星”而非“行”時則有“實(shí)行”這條路徑是不可行的,這樣可以簡化查找最短路徑的計(jì)算。3、詞庫設(shè)計(jì)(1)詞庫中要包括的信息字詞,字詞的編碼包括傳統(tǒng)的編碼(對字1,2,3碼,詞四碼)和智能編碼(每字兩碼)、各個字詞對應(yīng)的路徑值(詞頻信息)。
(2)詞庫具有5萬條常用的詞已足夠。因?yàn)楸局悄茉O(shè)計(jì)準(zhǔn)確率很高(政治、經(jīng)濟(jì)、計(jì)算機(jī)方面達(dá)到98以上),且可以動態(tài)造詞,所以無須象智能狂拼一樣把詞庫搞得太大。當(dāng)然詞數(shù)越多,準(zhǔn)確率相對就高,但超過了5萬條后準(zhǔn)確率增加不是很明顯,為提高系統(tǒng)的速度,減少空間,系統(tǒng)詞庫5萬條常用的詞已足夠。
(3)為加快遍歷速度和降低詞庫的所占的存儲空間,可以采用字詞分開存放、智能編碼和傳統(tǒng)編碼分開存放、四字詞以下的詞庫和四字以上的詞庫分開存放的方法。
(4)另外還必須為詞庫建立各種索引,方便快速查找(按詞,按編碼,按智能編碼,按詞頻)。
系統(tǒng)詞庫和用戶詞庫分開存放。因?yàn)橄到y(tǒng)詞庫中數(shù)據(jù)量大,如增加、刪除涉及到大量的排序、數(shù)據(jù)移動等,所以系統(tǒng)詞庫不能進(jìn)行增加、刪除、只能進(jìn)行詞頻的調(diào)整,而用戶詞庫詞數(shù)量少,一般設(shè)定數(shù)量在5000條為宜,增加、刪除詞相對方便。用戶詞庫滿了之后,可以采用某種算法刪除不常用的詞,增加新的詞。這些算法中可以采取不常用先淘汰、排在最后的先淘汰等方法。排在最后的先淘汰的方法,最容易實(shí)現(xiàn),不常用先淘汰最合理,但系統(tǒng)開銷會很大。4、查找最短路徑的算法說明我們將用戶由鍵盤輸入的一串漢字編碼由開始到結(jié)尾,順序取每兩碼作為一個點(diǎn),這些點(diǎn)作為一個單字詞,用線順序連起來,如果每個點(diǎn)同點(diǎn)之間的編碼串連成一起可以組成詞組的話,也用線連起來。這樣,對于用戶所輸入的編碼串就轉(zhuǎn)化為一個交通網(wǎng)絡(luò)圖。每兩個點(diǎn)之間的通路表示這兩個點(diǎn)之間的編碼組成的編碼串和某個詞組的編碼串相匹配。
例如輸入編碼串a(chǎn)b cd ef gh ij kl mn op qr st只有單字而沒有詞的情況下的交通網(wǎng)絡(luò)圖如圖1所示,由頭到尾的路徑只有一條。
假如存在如下編碼的詞組兩字詞cdef ghij三字詞mnopqr四字詞qrst(取四碼匹配,每字兩碼的情況不匹配)則交通網(wǎng)絡(luò)圖如圖2所示我們用詞代替上圖中的編碼串,并為每一個詞賦予一個路徑長度值,這一長度值代表交通網(wǎng)絡(luò)圖中每一結(jié)點(diǎn)之間的每一條可行的通路的路徑長度。這樣我們就可以通過求交通圖中的源點(diǎn)到最后一個結(jié)點(diǎn)的最短路徑所組成的通路來得出用戶輸入的編碼中所代表的句子。
例如句子“中國人民解放軍”(句子對應(yīng)的編碼串為”klqwawfzxodcbx”)的網(wǎng)絡(luò)圖如圖3所示,用編碼匹配字詞后網(wǎng)絡(luò)圖如圖4所示??梢钥闯鲎疃痰穆窂綖椤爸袊?人民”+“解放軍”=7+9+10=2權(quán)利要求
1.一種漢字拼形輸入法的智能輸入處理方法,其特征在于它包括兩個步驟(I)輸入的拼形編碼串與每個字單元的對應(yīng)的識別方法采用奇偶位識別漢字句子編碼串,即在漢字句子輸入過程中每字單元取兩碼的方法來進(jìn)行輸入,通過判斷輸入的漢字編碼的奇偶數(shù)來進(jìn)行字單元的分隔,識別到輸入編碼串中所代表的字單元的個數(shù),即字的個數(shù),第一個字單元對應(yīng)第1編碼和第2編碼,第二字單元將對應(yīng)第3編碼、第4編碼,第N個的單元第2N-1編碼和第2N編碼;(II)遍歷字詞,用匹配的字詞組成一個交通網(wǎng)絡(luò)圖,然后查找該交通網(wǎng)絡(luò)圖的最短路徑,得出最短路徑所對應(yīng)的漢字組合成的句子(a)確定交通網(wǎng)絡(luò)圖的各個節(jié)點(diǎn),即利用步驟(I)分隔出的每個字單元,以字單元作為交通網(wǎng)絡(luò)圖的一個節(jié)點(diǎn),每一個節(jié)點(diǎn)由兩碼組成;(b)用各個節(jié)點(diǎn)的編碼串以及任意兩個節(jié)點(diǎn)之間所跨越的節(jié)點(diǎn)共同組成的一個編碼串進(jìn)行字詞的匹配,匹配是用編碼串在詞庫中進(jìn)行查找,查找出和編碼串相符且詞頻最高的字詞,兩碼為字的匹配,兩碼以上為詞的匹配,凡存在匹配的字詞,就將其作為節(jié)點(diǎn)與節(jié)點(diǎn)之間的一條通路,并根據(jù)詞頻的大小賦予該通路一長度值,詞頻越大,長度越短,反之亦然;(c)通過步驟(a)和步驟(b),我們就將用戶輸入語句對應(yīng)的編碼串轉(zhuǎn)化為一帶權(quán)值的交通網(wǎng)絡(luò)圖,該交通網(wǎng)絡(luò)圖的節(jié)點(diǎn)數(shù)為編碼串的長度/2,每一條通路對應(yīng)一個字詞,計(jì)算由起節(jié)點(diǎn)到終節(jié)點(diǎn)的最短路徑,得出最短路徑所經(jīng)過的通路上對應(yīng)的字詞所組成的句子,用該句子作為用戶輸入的編碼串所對應(yīng)的漢字句子。
2.根據(jù)權(quán)利要求1所述的一種漢字拼形輸入法的智能輸入處理方法,其特征在于輸入過程中還含有快速修正步驟(III),它包括回退修正和邊輸入邊修正,回退修正是指當(dāng)輸入一句話后,發(fā)現(xiàn)前面出現(xiàn)的字或詞不是所需的可以移動光標(biāo),每次移動兩個字母,即一個字,進(jìn)行正確字,詞的選取,選取時可以由左至右或由右至左進(jìn)行,當(dāng)字單元的兩個碼不能識別出正確的漢字時,通過輸入第三碼快速找出合適的漢字;邊輸入邊修正是指在輸入過程中,當(dāng)出現(xiàn)的字詞不是所需的,可以從重碼列表中選擇正確的字詞或進(jìn)行分詞。
3.根據(jù)權(quán)利要求1或2所述的一種漢字拼形輸入法的智能輸入處理方法,其特征在于進(jìn)行漢字輸入過程中還包括實(shí)行動態(tài)調(diào)整詞頻步驟(IV),即當(dāng)輸入過程中或在回退修正時,出現(xiàn)重碼的字詞時,如果第一個出現(xiàn)最高頻的字詞就是所需的字,用戶無需進(jìn)行選擇繼續(xù)輸入其它編碼;如果不是用戶所需的字詞,用戶必須進(jìn)行選擇,用戶進(jìn)行了選擇后,計(jì)算機(jī)則自動將選擇的詞的詞頻調(diào)整成該重碼詞組中的最高頻,在下次輸入時,就不用再選擇了;調(diào)頻還包括分詞處理,即降低詞組的詞頻,使得系統(tǒng)選擇單字而非詞組。
4.根據(jù)權(quán)利要求3所述的一種漢字拼形輸入法的智能輸入處理方法,其特征在于它還包括動態(tài)增加、刪除詞句步驟(V),即當(dāng)用戶進(jìn)行選擇字詞時或用了第三碼進(jìn)行修正或在最后一字加上了第三碼作較驗(yàn)時,系統(tǒng)自動將該句話作為詞組或?qū)⒕洳鸱殖稍~增加到詞庫中,同時存放簡碼及智能語句輸入碼;當(dāng)用戶選擇了某組重碼詞其中的一個時,系統(tǒng)自動將其它重碼詞詞頻降低一級,并對這些重碼詞進(jìn)行檢查,刪除詞頻達(dá)到最低警戒線的詞。
全文摘要
一種漢字拼形輸入法的智能輸入處理方法,它包括兩個步驟(I)輸入的拼形編碼串與每個字單元的對應(yīng)的識別方法在漢字句子輸入過程中每字單元取兩碼的方法來進(jìn)行輸入,通過判斷輸入的漢字編碼的奇偶數(shù)來進(jìn)行字單元的分隔,識別到輸入編碼串中所代表的字單元的個數(shù),(II)遍歷字詞,用匹配的字詞組成一個交通網(wǎng)絡(luò)圖,然后查找該交通網(wǎng)絡(luò)圖的最短路徑,得出最短路徑所對應(yīng)的漢字組合成的句子。它解決拼形輸入法以語句輸入的技術(shù)問題,實(shí)現(xiàn)每字兩鍵的字、詞、句混合輸入,整句輸入的正確率接近100%,輸入的過程非常連貫,輸入速度更快,輸入更輕松;輸入規(guī)則簡單易學(xué),容易掌握,輸入速度高,并帶有強(qiáng)大智能功能,不用人工分詞,免除了在輸入過程中要經(jīng)常打空格的弊端。
文檔編號G06F3/023GK1453692SQ0211514
公開日2003年11月5日 申請日期2002年4月23日 優(yōu)先權(quán)日2002年4月23日
發(fā)明者劉恒林 申請人:劉恒林