專利名稱:人名輸入處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種輸入漢字人名的方法及系統(tǒng),特別是一種能夠快速輸入漢語人名,減少選字并實現(xiàn)連續(xù)輸入的方法和系統(tǒng)。
背景技術(shù):
與印歐語系的字母文字不同,東方語系常常具有一個非常大的字符集,例如中文、日文和韓文。GB2312中的漢字達到6763個,而GBK中的漢字超過20,000個,因此漢字的輸入始終被認為漢語信息化的第一難題。在日語和韓語輸入中也存在著同樣的問題。為解決漢字輸入問題,在過去二十多年中,誕生了眾多的輸入法,包括著名的五筆字型和智能ABC等等。紫光拼音輸入法和微軟拼音輸入法還通過語言統(tǒng)計模型,一定程度上解決了減少選字和連續(xù)輸入的問題。
普通輸入法通過詞表來進行從拼音到漢字的轉(zhuǎn)換,然而人名區(qū)別于固定詞條,具有動態(tài)組合的特性,因而無法預(yù)先收錄一個足夠大的人名表,這也就使得用戶輸入姓名時常常需要經(jīng)過繁雜的多次選字。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種能夠高效輸入人名的方法,該方法可以嵌入到現(xiàn)有的輸入法中,也可以設(shè)計成一種獨立的輸入法。作為一個軟件系統(tǒng),可用于任何一種需要進行人名輸入的諸如臺式計算機、個人數(shù)字助理以及移動電話之類的信息設(shè)備。
根據(jù)本發(fā)明的一個方面,提供一種能夠識別輸入人名的輸入方法,包括步驟檢測輸入編碼序列中的姓氏輸入編碼;從姓氏列表中檢索與輸入的姓氏輸入編碼對應(yīng)的姓氏的候選用字;從輸入編碼序列中獲得名字的字數(shù);當(dāng)判斷名字的字數(shù)是單名時,則計算作為目標的單名候選用字的使用概率,并根據(jù)候選用字的使用概率,按降序排列候選用字;和當(dāng)判斷名字的字數(shù)是雙名時,則計算作為目標的雙名候選用字的使用概率,并根據(jù)候選用字的使用概率,按降序排列候選用字。
根據(jù)本發(fā)明的另一個方面,提供一種能夠識別輸入人名的輸入方法,包括步驟檢測輸入編碼序列中的姓氏輸入編碼;從姓氏列表中檢索與輸入的姓氏輸入編碼對應(yīng)的漢字姓氏的候選用字;輸入單名音節(jié)并查找存儲的單名索引表;和利用表達式S(w)=0.5*(f(w,G0|p)+f(w,G2|p))獲得該拼音對應(yīng)的所有名字用候選字。
根據(jù)本發(fā)明的另一個方面,提供一種能夠識別輸入人名的輸入方法,包括步驟檢測輸入編碼序列中的姓氏輸入編碼;從姓氏列表中檢索與輸入的姓氏輸入編碼對應(yīng)的漢字姓氏的候選用字;輸入雙名音節(jié)并查找存儲的雙名索引表;生成與輸入的輸入編碼對應(yīng)的雙名候選組合,并利用表達式S(w1w2)=f(w1,G1|p)×f(w2,G2|p)×(1+f(w2|w1)+f(s2|s1))]]>評價生成的每個雙名侯選組合;和輸出具有最高得分的雙名候選組合作為雙名候選用字。
根據(jù)本發(fā)明的另一個方面,提供一種能夠識別輸入人名的輸入方法,包括步驟從當(dāng)前輸入的音節(jié)序列中獲得當(dāng)前的音節(jié);查詢姓氏列表,判斷姓氏列表是否為空;如果姓氏列表為空,則結(jié)束姓名輸入判斷,并返回空結(jié)果,如果姓氏候選列表不為空,則以姓氏列表中的第一個候選作為輸出姓氏,并列出姓氏候選用字;如果判斷輸出的姓氏不正確,則選擇一個姓氏候選用字;如果輸出結(jié)果是需要的姓氏,則從輸入的音節(jié)序列中計算單名候選用字或候選雙名用字。
根據(jù)本發(fā)明的另一個方面,提供一種能夠識別輸入人名的輸入裝置,包括輸入編碼裝置,用于將漢字轉(zhuǎn)換成可接受的輸入編碼序列;姓氏處理裝置,用于檢測和判斷用戶輸入的輸入編碼中的姓氏;名字處理裝置,用于在姓氏處理單元檢測到輸入編碼中的姓氏后,識別后續(xù)拼音序列中的名字;和人名輸出裝置,用于輸出與輸入編碼對應(yīng)的名字候選漢字。
根據(jù)本發(fā)明的方法,能夠高效地輸入漢字人名,對該方法稍作語種相關(guān)的修改也適用于輸入日文和韓文。
通過下面結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行詳細描述,將使本發(fā)明的上述及其它目的、特征和優(yōu)點更加清楚。應(yīng)該指出,下面給出的說明僅是為了更好地理解本發(fā)明而提供的實施例,而不是對本發(fā)明的限制。其中圖1是表示根據(jù)本發(fā)明實施例的人名輸入系統(tǒng)的示意方框圖;圖2是表示漢語姓氏反向索引表;圖3是表示根據(jù)本發(fā)明實施例人名輸入系統(tǒng)在獨立輸入模式下的單名識別和輸入;圖4是表示根據(jù)本發(fā)明實施例人名輸入系統(tǒng)在獨立輸入模式下的雙名識別和輸入;和圖5是表示根據(jù)本發(fā)明實施例具有人名輸入功能的輸入界面。
具體實施例方式
下面參照附圖對本發(fā)明的實施例進行詳細的說明,在描述過程中省略了對于本發(fā)明來說是不必要的細節(jié)和功能,以防止對本發(fā)明的理解造成混淆。
下面描述根據(jù)本發(fā)明的輸入法的基本原理。應(yīng)該指出,雖然本發(fā)明實施例中描述的漢字人名輸入,但本發(fā)明的構(gòu)思和原理可以應(yīng)用到其它領(lǐng)域的漢字輸入方法。另外,通過進行與語種相關(guān)的修改,本發(fā)明也可應(yīng)用于日文和韓文輸入。
下面以中文為例描述本發(fā)明。如果不考慮少數(shù)民族的姓名特例,中文中的姓名通常只具有四種有限的組合形式,即,單姓單名、單姓雙名、復(fù)姓單名以及復(fù)姓雙名。
由于姓、名用字的組合可能性非常之大,普通輸入法無法提供一個覆蓋全部的姓名詞表。但是,中國人的姓名用字及其組合是存在一定含義,而不是無規(guī)律任意組合的。另外,中國人的姓氏用字是有限的。因此,存在著概率意義下的分布特征。本發(fā)明就是利用該特征,通過一個人名識別算法來幫助用戶在從編碼到漢字的轉(zhuǎn)換過程中減少選字的次數(shù),從而做到高效地輸入人名。
為清楚說明問題,本實施例以拼音輸入為例說明本發(fā)明的人名輸入法。應(yīng)該指出,雖然本實施例中以拼音輸入為例,但本發(fā)明并不局限于此,本發(fā)明中提出的方法同樣適用于其他類型的輸入法,例如基于筆畫的輸入法等。
本發(fā)明的人名輸入方法包括兩種應(yīng)用模式,即在已知當(dāng)前輸入內(nèi)容為人名的獨立模式,和連續(xù)輸入漢字時的連續(xù)模式。在獨立模式下,輸入法被設(shè)定為只用來輸入漢語人名,此后輸入的字串將被認為是一個姓名,一種人名識別算法將被用來評估和選擇輸入拼音產(chǎn)生的候選漢字,使得用戶可以通過較少的選字完成輸入任務(wù)。獨立模式適用于需要同時出現(xiàn)大量人名的場合,例如,輸入工資表,人員名單等。在連續(xù)模式下,人名識別算法動態(tài)地檢測用戶輸入的拼音串中可能存在的人名,并輔助用戶的選字,從而提高輸入的效率。連續(xù)模式適用于在一般的文章輸入等場合輸入人名的情況。獨立模式可以由用戶主動將輸入法程序設(shè)定為姓名輸入模式或者切換到姓名輸入法,也可以由操作系統(tǒng)、網(wǎng)頁瀏覽器等環(huán)境自動激活姓名輸入法,例如填寫網(wǎng)頁表格中的姓名項。連續(xù)輸入模式則用于大段文本輸入中提高姓名輸入的效率。在兩種模式下,本發(fā)明都通過一個人名識別算法來達到高效輸入人名的目的。人名識別算法利用設(shè)定的識別方式和數(shù)學(xué)模型,對輸入的拼音編碼產(chǎn)生的候選字進行排序,最后產(chǎn)生最大概率意義下的漢字組合,從而降低了用戶輸入名字時選字的次數(shù),達到高效輸入的目的。兩種模式下的算法運行方式有所差別,將在下文中分別對此進行描述。
下面根據(jù)本發(fā)明的原理說明根據(jù)本發(fā)明的人名識別模型及其建立。人名識別模型及其建立人名識別模型是一個數(shù)學(xué)模型,該模型從一個預(yù)先建立的姓名數(shù)據(jù)庫中統(tǒng)計必要的數(shù)學(xué)參數(shù),用來在輸入階段評價一個漢字(組合)作為漢語姓名侯選漢字的可能性。
姓名數(shù)據(jù)庫中羅列了一系列真實人名,例如“陳賡,張治中,馮玉祥,戴安瀾”等等。針對中文姓名的四種有限組合形式,對單名和雙名分別進行處理。這是由于從數(shù)學(xué)統(tǒng)計角度來說,單名和雙名擁有的信息量不同。
對于單名,假設(shè)我們考察一個漢字w作為姓名中的單名用字G0的情況。為了不失其一般性,可以以“賡”字為例。當(dāng)用戶輸入拼音“geng”時,在人名庫中,與發(fā)“geng”音的名字用字包括“賡、庚、耕、恒、耿、亙”等。對這些同音字作為名字用字進行計數(shù)統(tǒng)計,并且按其在名中出現(xiàn)頻度的降序排列,以此預(yù)測單名用字??偟膩碚f,為了預(yù)測單名用字,需要建立一個從拼音編碼到同音候選單名用字的索引,且所有的單名用字按一個特定頻次進行降序排列,構(gòu)成一個單名索引表。如下面的表1所示 表中的數(shù)字表示該字在名字中出現(xiàn)的頻次。該索引表可以存儲在諸如計算機之類的信息處理設(shè)備的存儲裝置中,即作為預(yù)測單名用字的識別模型。對該索引表的數(shù)學(xué)描述為拼音編碼為p的所有漢字,作為單名用字的頻次,即如下面的表達式(1)表示。
f(w,G0|p)=單名用字w的使用次數(shù)…(1)同樣,對于雙名,可以假設(shè)漢字w1和w2分別作為雙名的第一字G1和第二字G2。為了不失一般性,以雙名名字“治中”為例。當(dāng)用戶輸入拼音“zhizhong”時,如同單名用字,人名庫中分別具有zhi和zhong在雙名中作為第一字和第二字出現(xiàn)的同名字表。對名字“治中”的出現(xiàn)頻次進行計數(shù)并建立如同單名用字索引表。其數(shù)學(xué)描述分別為f(w,G1|p)=編碼為p的雙名用字w作為雙名第一字的使用次數(shù)f(w,G2|p)=編碼為p的雙名用字w作為雙名第二字的使用次數(shù)…(2)此外,雙名的兩個單字之間的連接頻度是一個度量兩個獨立漢字構(gòu)成雙名的可能性的有效方法。其原理是二元連接參數(shù)對出現(xiàn)過的姓名具有將強的記憶作用。故引入單字連接頻度f(w2|w1) 上式表示單字連接頻度等于漢字w1和w2作為雙名的次數(shù)除以以漢字w1作為雙名中的第一字的次數(shù)。其中漢字w1和w2作為雙名的次數(shù)包括漢字w1和w2分別在雙名中出現(xiàn),以及一起出現(xiàn)的次數(shù)。
另外,作為替換,采用雙名的兩個單字的帶調(diào)音節(jié)的連接頻度也是一種較好的度量方法。其原理是漢語姓名重視朗讀的順暢性。因此引入了帶調(diào)音節(jié)連接頻度f(s2|s1)函數(shù) 其中s表示輸入字的音節(jié)。
如上面的表達式(1)-(4)所示,表達式(1)統(tǒng)計作為目標的單名用字頻率,用來描述單名用字的使用頻率。這個數(shù)值可以作為單名用字排序的依據(jù)。表達式(2)統(tǒng)計目標為雙名用字的漢字在不同位置的頻率。表達式(3)和(4)統(tǒng)計目標用于評價兩個姓名用字及其發(fā)音的組合能力。
對于單名,考慮到單名用字也常常作為雙名用字的第二字,故設(shè)定其使用分值為E1S(w)=0.5*(f(w,G0|p)+f(w,G2|p))(5)(請詳細說明表達式(5)的含義)對于雙名,假設(shè)兩個拼音產(chǎn)生的一個漢字候選組合為w1w2,其使用分值被設(shè)定為E2S(w1w2)=f(w1,G1|p)×f(w2,G2|p)×(1+f(w2|w1)+f(s2|s1))---(6)]]>(請詳細說明上式的含義)人名輸入系統(tǒng)下面參考
本發(fā)明的人名輸入系統(tǒng)。
具有根據(jù)本發(fā)明所描述的能夠高效輸入人名功能的輸入法可以作為現(xiàn)有輸入法的補充部分,或者作為獨立軟件用于任何需要輸入人名的設(shè)備中。圖1是根據(jù)本發(fā)明一個實施例的人名輸入系統(tǒng)的結(jié)構(gòu)方框圖。
根據(jù)本發(fā)明的人名輸入系統(tǒng)包括編碼輸入裝置1,姓氏處理單元2,名字處理單元3,人名輸出裝置4,姓氏列表存儲單元5,識別規(guī)則存儲單元6,和識別模型存儲單元7。
輸入編碼裝置1接受用戶輸入的字符編碼序列,并將該輸入字符序列提供給姓氏處理單元2。姓氏處理單元2利用姓氏列表存儲單元5和識別規(guī)則存儲單元6進行姓氏檢測,并將檢測到的姓氏提供給名字處理單元3。名字處理單元3利用識別模型7進行名字檢測,將檢測的結(jié)果輸出到人名輸出裝置4,并由人名輸出裝置4顯示與輸入的字符編碼序列對應(yīng)的人名。下面說明圖1中的各個部分的操作。
編碼輸入為輸入漢字,用戶需要以某種編碼方法來把漢字轉(zhuǎn)換成計算機可接受的編碼串。對于基于漢語拼音的輸入法,其編碼串就是漢字的拼音串??紤]最具一般性的全拼輸入,以輸入姓名“夏海榮”為例,用戶將可能輸入“xia hai rong”。該拼音串輸入到系統(tǒng)中后,被解析成“xia”、“hai”和“rong”三個獨立音節(jié)。
姓氏處理漢語具有相當(dāng)穩(wěn)定的姓氏,通過建立一張姓氏列表(見表一),可以用來檢測和判斷用戶輸入的拼音中的姓氏。姓氏列表中所包括的姓氏可以通過編碼進行檢索,例如對于上例中的姓氏“夏”可以通過輸入的“xia”進行檢索。再例如,姓氏“歐陽”可以通過輸入的“ou yang”進行檢索。姓氏列表可以存儲在姓氏列表存儲單元5中。
表一漢語姓氏列表(部分)
在該表在使用時,常常需要建立一個從編碼到姓氏的反向索引,其結(jié)構(gòu)圖2所示。通過這個反向索引表,可以判斷一個輸入的音節(jié),是否可能構(gòu)成一個人名中的姓氏,以及有多少同音的姓氏。例如,當(dāng)輸入拼音“ai”時,姓氏處理單元2可以到姓氏列表存儲單元5中查找拼音編碼“ai”所對應(yīng)的漢字姓氏。通常,拼音編碼“ai”所對應(yīng)的漢字姓氏只有“艾”,因此,檢測出的姓氏既為“艾”。
漢語姓氏中存在著少量的復(fù)姓,例如“夏侯、歐陽、尉遲、諸葛”等,其第一字本身也可作為單姓。在此情況下,作為例子,系統(tǒng)可以將其默認為構(gòu)成一個復(fù)姓,但允許用戶去進行修改。即當(dāng)用戶輸入拼音“ouyang…”時,姓氏處理單元2可以認為該人名的姓氏為“歐陽”而不是“歐”。而當(dāng)輸入拼音“ou”時,姓氏處理單元2可以檢出單姓用字“歐”和“區(qū)”,并且作為一種設(shè)置,可以檢出復(fù)姓“歐陽”。
另外,漢語姓氏中還包括部分同音字,如圖2中列出的“張”和“章”。沒有顯著有效的方法可以解決該問題,用戶可以通過選字過程進行確定。
對于用戶的輸入,如果系統(tǒng)不能找出一個合適的姓氏,則中止人名輸入過程,切換到輸入法的正常選字過程來進行選字輸入。
上述識別規(guī)則可以存儲在識別規(guī)則存儲單元6中。
名字處理與姓氏相比,名字用字比姓氏用字要廣泛的多,因此此處涉及上面描述的主要算法過程。其過程因系統(tǒng)處于獨立模式還是連續(xù)模式而稍有差別。對于確定了的輸入法程序,可以在信息處理設(shè)備上設(shè)定一個特殊的按鍵組合或者如按鈕、菜單項等其他控制方式,來切換姓名輸入的模式。
1.獨立模式在獨立模式下,用戶的目的就是輸入人名,所以認為其輸入的碼串總是有效的姓名編碼。在用戶輸入結(jié)束后,系統(tǒng)就可以直接獲知姓名的總字數(shù),通過姓氏處理單元2的處理后,名字處理單元3就可以獲知名字的字數(shù),即,是單名還是雙名。因此,名字處理單元3可以針對單名和雙名獨立分別處理。
圖3示出了本發(fā)明的系統(tǒng)處理單名用字的操作流程。首先,在步驟301輸入單名音節(jié)s。此后,在步驟S302,名字處理單元3查找單名索引表了。接下來,在步驟S303利用表達式(5)獲得該拼音對應(yīng)的所有名字用候選字,并在步驟S304挑選具有最高頻次的單名候選字作為輸出用字。作為例子,單名索引表可以存儲在識別模型單元7中,也可以單獨設(shè)置存儲單元,用于存儲名字用字索引表。例如,將其分為單名索引表,和雙名索引表。
下面以用戶輸入姓名“chen geng”為例來詳細說明,姓氏處理單元首先判斷“chen”為單姓“陳”,然后根據(jù)索引表找出“geng”按頻次排序的候選字“賡、耕、亙…”,以第一個候選字“賡”作為選擇輸出,并保留該列表供用戶選擇。
圖4示出了本發(fā)明的系統(tǒng)處理雙名用字的操作流程。首先,在步驟401輸入雙名音節(jié)s1,s2。此后,在步驟S402,名字處理單元4查找存儲的雙名索引表。接下來,在步驟S403生成與輸入的拼音對應(yīng)的雙名候選組合,并在步驟S404利用表達式(6)評價在步驟S403中生成的每個雙名侯選組合。在步驟S405輸出具有最高得分的雙名候選作為輸出用字。輸出順序可以按雙名組合出現(xiàn)的頻次排列。
下面以用戶輸入“xia hai rong”為例來詳細說明在獨立模式下,人名輸入系統(tǒng)識別雙名的過程。系統(tǒng)首先判斷“xia”為單姓“夏”,然后根據(jù)雙名索引表找出“hai”和“rong”的按頻次排序的候選字,“海、亥、還”和“容、榮、蓉、融、溶、熔”。組合并利用表達式(6)進行打分后,按得分排序雙名候選字如下海榮、海蓉、海融、海熔,用戶可選擇系統(tǒng)給出的侯選字。最后,系統(tǒng)將以“海榮”作為識別輸出。
2.連續(xù)模式下面說明根據(jù)本發(fā)明在連續(xù)模式下處理人名輸入的情況。在連續(xù)模式下,用戶連續(xù)地輸入漢字編碼字串,沒有明顯的標志來標明人名的起始和結(jié)束,因此系統(tǒng)需要動態(tài)地檢測出用戶輸入漢字編碼串中存在的人名。其基本算法如下首先,可以設(shè)置當(dāng)前音節(jié)變量s,和s的候選字w。從當(dāng)前輸入的音節(jié)序列中獲得當(dāng)前的音節(jié)s。此后,查詢姓氏列表,獲得姓氏候選列表1。判斷姓氏列表是否為空。如果姓氏列表為空,則結(jié)束連續(xù)模式下的姓名輸入判斷,并返回空結(jié)果。如果姓氏候選列表不為空,則以姓氏列表中的第一個候選作為輸出姓氏。此后,用戶可以判斷輸出的姓氏是否正確,如果輸入不正確,即輸出的姓氏不是用戶需要的姓氏,用戶可以選擇一個候選字。如果輸出的是非姓氏用字,則結(jié)束姓氏識別過程,返回空結(jié)果,繼續(xù)漢字輸入。如果輸出的結(jié)果是用戶需要的姓氏,則分別假設(shè)用戶輸入的是單名和雙名。此后,按照上述表達式(5)和(6)分別對輸入的編碼拼音進行評分計算,并將具有最高得分的單名和雙名用字顯示給用戶。
此后,用戶判斷選出的人名是否正確。如果正確,則結(jié)束本次人名輸入識別。如果用戶判斷選出的人名不正確,則根據(jù)給出的候選字選擇名字的第一個字。如果用戶確定人名輸入結(jié)束,則結(jié)束本次人名輸入識別。如果用戶確定人名輸入沒有結(jié)束,本發(fā)明的系統(tǒng)則按照表達式(6)進行評分計算,并選擇具有最高得分的雙名顯示給用戶。用戶可以判斷選擇的人名的第二個字是否正確。如果正確,則結(jié)束本次人名輸入。如果不正確,則選擇名字的第二個字,結(jié)束本次人名輸入識別。
為了清楚起見,上述過程可用下表表示
下面舉例什么根據(jù)本發(fā)明的任命輸入法,在連續(xù)模式下的識別過程。例如,假設(shè)用戶輸入拼音串“wo he li bao ying lao shi you guo yi mianzhi yuan”,目標字串是“我和李寶英老師有過一面之緣”。對每個音節(jié)查找其對應(yīng)的姓氏,列表如下
按照本發(fā)明的識別過程,系統(tǒng)首先將“wo”轉(zhuǎn)換成假設(shè)姓氏“沃”后,用戶在4.2.1選擇“我”非姓氏用字,返回空,本次人名識別輸入結(jié)束。依次執(zhí)行至“l(fā)i”,用戶在4.2.1選擇“李”,其后系統(tǒng)分別假設(shè)單名和雙名,并通過計算向用戶推薦一個候選人名“李寶英”,用戶在第6.1步判斷系統(tǒng)推薦人名錯誤,故由用戶在6.1選擇“?!?,隨后系統(tǒng)再輸出人名“李保英”,正確結(jié)束。系統(tǒng)按照算法,依次處理每個音節(jié),直至音節(jié)串結(jié)束。
作為替換,可以在用戶每次輸入姓氏和人名后對用戶的輸入的人名進行記錄和統(tǒng)計。如果與以前輸入的姓氏或人名相同,則利用上面的表達式(1)-(6)更新相應(yīng)人名的輸入頻次。由此可以根據(jù)人名的使用頻率,針對用戶輸入的拼音編碼實時地改變候選排序,以便更高效地進行人名輸入。
運行于PC平臺上的輸入法通??梢跃哂幸粋€輸入?yún)^(qū)和一個信息區(qū),用戶在輸入?yún)^(qū)中輸入拼音等編碼,而信息區(qū)中顯示編碼對應(yīng)的漢字候選。如果本發(fā)明工作在獨立模式或者作為一個獨立的輸入法,則輸入?yún)^(qū)和信息區(qū)均可直接利用,使用過程類似于普通的輸入法。如果工作在連續(xù)模式,為了不影響輸入法正常的輸入和選字過程,可以在其輸入?yún)^(qū)附近,例如,正常輸入法的下面增加一個用于顯示人名檢測結(jié)果的第二信息區(qū),如圖6所示。
在正常輸入漢字的過程中,用戶通過第一輸入?yún)^(qū)輸入漢字編碼,而從第一信息區(qū)中進行選字以更正輸入?yún)^(qū)中的錯誤漢字。本發(fā)明在檢測到可能的姓名時,就在屏幕上繪出第二信息區(qū),用戶可以通過輸入法未定義的按鍵,例如方向鍵或者Tab鍵等,或者使用鼠標,切換到第二信息區(qū),然后從第二信息區(qū)中選擇本發(fā)明提供的候選人名用字。
本發(fā)明的人名輸入法可以應(yīng)用需要輸入漢字的設(shè)備上,例如,個人計算機(PC),便攜式計算機,移動電話,PDA(個人數(shù)字助理)等設(shè)備上。
根據(jù)本發(fā)明的人名輸入系統(tǒng)可以通過硬件實現(xiàn)。也可以利用軟件或硬件和軟件的結(jié)合來實現(xiàn)。所述程序可記錄在諸如軟盤,硬盤,閃盤,CD-ROM,DVD-ROM之類的機器可讀的記錄介質(zhì)上。
雖然參考優(yōu)選實施例對本發(fā)明進行了描述,本發(fā)明并不局限于此,而僅由所附權(quán)利要求限定,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明精神的情況下可對本發(fā)明的實施例進行各種改變和改進。
權(quán)利要求
1.一種能夠識別輸入人名的輸入方法,包括步驟檢測輸入編碼序列中的姓氏輸入編碼;從姓氏列表中檢索與輸入的姓氏輸入編碼對應(yīng)的姓氏的候選用字;從輸入編碼序列中獲得名字的字數(shù);當(dāng)判斷名字的字數(shù)是單名時,則計算作為目標的單名候選用字的使用概率,并根據(jù)候選用字的使用概率,按降序排列候選用字;和當(dāng)判斷名字的字數(shù)是雙名時,則計算作為目標的雙名候選用字的使用概率,并根據(jù)候選用字的使用概率,按降序排列候選用字。
2.根據(jù)權(quán)利要求1所述的方法,其中計算單名候選用字的使用概率的步驟利用下面的表達式(1)計算單名候選用字的使用概率,f(w,G0|p)=單名用字w的使用次數(shù)...(1)其中w表示漢字,G0表示漢字在名中的位置,p表示拼音編碼為p的所有漢字,作為單名用字的頻次。
3.根據(jù)權(quán)利要求1所述的方法,其中計算作為目標的雙名候選用字的使用概率的步驟利用下面的表達式(2)計算雙名候選用字的使用概率,f(w,G1|p)=編碼為p的雙名用字w作為雙名第一字的使用次數(shù)f(w,G2|p)=編碼為p的雙名用字w作為雙名第二字的使用次數(shù)……(2)其中w1和w2表示漢字,G1表示雙名第一字,G2表示雙名第二字,p表示拼音編碼為p的雙名漢字的使用次數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其中計算作為目標的雙名候選用字的使用概率的步驟還包括利用下面的表達式(3)計算雙名候選用字的連接頻度的步驟, 其中f(w2|w1)表示單字連接頻度。
5.根據(jù)權(quán)利要求3所述的方法,其中計算作為目標的雙名候選用字的使用概率的步驟還包括利用下面的表達式(4)計算雙名候選用字的連接頻度的步驟, 其中f(s2|s1)表示帶調(diào)音節(jié)連接頻度。
6.根據(jù)權(quán)利要求2所述的方法,其中計算單名候選用字的使用概率的步驟利用下面的表達式(5)計算單名候選用字的使用概率的得分,S(w)=0.5*(f(w,G0|p)+f(w,G2|p))……(5)所述記分考慮了單名用字也常常作為雙名用字的第二字。
7.根據(jù)權(quán)利要求3所述的方法,其中計算作為目標的雙名候選用字的使用概率的步驟還包括利用下面的表達式(4)計算雙名候選用字的組合的得分,S(w1w2)=f(w1,G1|p)×f(w2,G2|p)×(1+f(w2|w1)+f(s1|s2))......(6)]]>所述記分考慮了兩個輸入編碼產(chǎn)生的一個漢字候選組合w1w2。
8.根據(jù)權(quán)利要求1至7所述的方法,其中所述輸入編碼是漢字拼音編碼。
9.一種能夠識別輸入人名的輸入方法,包括步驟檢測輸入編碼序列中的姓氏輸入編碼;從姓氏列表中檢索與輸入的姓氏輸入編碼對應(yīng)的漢字姓氏的候選用字;輸入單名音節(jié)并查找存儲的單名索引表;和利用表達式S(w)=0.5*(f(w,G0|p)+f(w,G2|p))獲得該拼音對應(yīng)的所有名字用候選字。
10.根據(jù)權(quán)利要求9所述的方法,其中所述輸入編碼是漢字拼音編碼。
11.一種能夠識別輸入人名的輸入方法,包括步驟檢測輸入編碼序列中的姓氏輸入編碼;從姓氏列表中檢索與輸入的姓氏輸入編碼對應(yīng)的漢字姓氏的候選用字;輸入雙名音節(jié)并查找存儲的雙名索引表;生成與輸入的輸入編碼對應(yīng)的雙名候選組合,并利用表達式S(w1w2)=f(w1,G1|p)×f(w2,G2|p)×(1+f(w2|w1)+f(s1|s2))]]>評價生成的每個雙名侯選組合;和輸出具有最高得分的雙名候選組合作為雙名候選用字。
12.根據(jù)權(quán)利要求11所述的方法,其中所述輸入編碼是漢字拼音編碼。
13.一種能夠識別輸入人名的輸入方法,包括步驟從當(dāng)前輸入的音節(jié)序列中獲得當(dāng)前的音節(jié);查詢姓氏列表,判斷姓氏列表是否為空;如果姓氏列表為空,則結(jié)束姓名輸入判斷,并返回空結(jié)果,如果姓氏候選列表不為空,則以姓氏列表中的第一個候選作為輸出姓氏,并列出姓氏候選用字;如果判斷輸出的姓氏不正確,則選擇一個姓氏候選用字;如果輸出結(jié)果是需要的姓氏,則從輸入的音節(jié)序列中計算單名候選用字或候選雙名用字。
14.根據(jù)權(quán)利要求13所述的方法,其中進一步包括按照表達式S(w)=0.5*(f(w,G0|p)+f(w,G2|p))計算單名候選用字的得分,并顯示具有最高得分的單名候選用字的步驟。
15.根據(jù)權(quán)利要求13所述的方法,其中進一步包括按照表達式S(w1w2)=f(w1,G1|p)×f(w2,G2|p)×(1+f(w2|w1)+f(s2|s1))]]>計算雙名候選用字的得分,并顯示具有最高得分的單名候選用字的步驟。
16.根據(jù)權(quán)利要求13所述的方法,其中進一步包括當(dāng)判斷選出的人名不正確時,則根據(jù)給出的候選字選擇名字的第一個字的步驟。
17.根據(jù)權(quán)利要求16所述的方法,其中進一步包括在人名輸入沒有結(jié)束的情況下,按照表達式S(w1w2)=f(w1,G1|p)×f(w2,G2|p)×(1+f(w2|w1)+f(s2|s1))]]>進行評分計算,并選擇具有最高得分的雙名顯示給用戶的步驟。
18.根據(jù)權(quán)利要求17所述的方法,其中進一步包括判斷選擇的人名的第二個字是否正確,如果不正確,則選擇名字的第二個字,結(jié)束人名輸入識別的步驟。
19.根據(jù)權(quán)利要求13所述的方法,其中進一步包括如果輸出的是非姓氏用字,則結(jié)束姓氏識別過程,繼續(xù)漢字輸入。
20.根據(jù)權(quán)利要求13-19所述的方法,其中所述輸入的音節(jié)的漢字拼音。
21.一種能夠識別輸入人名的輸入裝置,包括輸入編碼裝置,用于將漢字轉(zhuǎn)換成可接受的輸入編碼序列;姓氏處理裝置,用于檢測和判斷用戶輸入的輸入編碼中的姓氏;名字處理裝置,用于在姓氏處理單元檢測到輸入編碼中的姓氏后,識別后續(xù)拼音序列中的名字;和人名輸出裝置,用于輸出與輸入編碼對應(yīng)的名字候選漢字。
22.根據(jù)權(quán)利要求21所述的裝置,其中進一步包括姓氏列表存儲裝置,用于存儲漢字姓氏列表,所述姓氏可以通過編碼進行檢索。
23.根據(jù)權(quán)利要求21所述的裝置,其中進一步包括識別規(guī)則存儲單元用于存儲根據(jù)輸入的輸入編碼判斷所輸入的拼音對應(yīng)單姓還是復(fù)姓姓氏。
24.根據(jù)權(quán)利要求21所述的裝置,其中進一步包括識別模型存儲裝置,用于存儲進行名字識別的數(shù)學(xué)模型,所述數(shù)學(xué)模型從預(yù)先建立的姓名數(shù)據(jù)庫中統(tǒng)計必要的數(shù)學(xué)參數(shù),用來在輸入階段評價一個漢字或漢字的組合作為漢語姓名侯選漢字的概率。
25.根據(jù)權(quán)利要求21至24所述的裝置,其中所述輸入編碼是漢字拼音編碼。
全文摘要
本發(fā)明揭示了一種能夠識別輸入人名的輸入方法和裝置。所述方法包括步驟檢測輸入編碼序列中的姓氏輸入編碼;從姓氏列表中檢索與輸入的姓氏輸入編碼對應(yīng)的姓氏的候選用字;從輸入編碼序列中獲得名字的字數(shù);當(dāng)判斷名字的字數(shù)是單名時,則計算作為目標的單名候選用字的使用概率,并根據(jù)候選用字的使用概率,按降序排列候選用字;和當(dāng)判斷名字的字數(shù)是雙名時,則計算作為目標的雙名候選用字的使用概率,并根據(jù)候選用字的使用概率,按降序排列候選用字。
文檔編號G06F17/27GK1755669SQ20041008318
公開日2006年4月5日 申請日期2004年9月29日 優(yōu)先權(quán)日2004年9月29日
發(fā)明者夏海榮 申請人:松下電器產(chǎn)業(yè)株式會社