專利名稱:拼音搜索方法
技術領域:
本發明涉及計算機漢字拼音識別與搜索技術領域,特別涉及一種拼音搜索方法。
背景技術:
隨著計算機應用的普及,網絡即時通信軟件成為人們日常生活中的常用軟件之一,方便了大家的日常交流互通。各種即時通信軟件中都會有聯系人搜索功能,但是聯系人的昵稱或者姓名中可能會含有多音字,很多即時通信軟件中并不支持多音字的多種讀音, 導致有時候搜索不出聯系人。這種搜索有一些特點聯系人昵稱、姓名都不會很長,數據量相對也不大,但是對搜索的效率要求比較高,否則會影響與用戶的界面交互效果。而且最好還有一些易錯拼音的容錯處理,更方便用戶的使用。
發明內容
(一)要解決的技術問題本發明要解決的技術問題是在拼音搜索時,如何識別易錯拼音、多音字,以增強容錯能力和拼音搜索效率和查準率。( 二 )技術方案為解決上述技術問題,本發明提供了一種拼音搜索方法,包括以下步驟Sl 根據輸入的拼音串搜索預先生成的漢字拼音表,查找漢字串的拼音是否有與所述輸入的拼音串相匹配的拼音串,若有,則展示所有匹配拼音串對應的漢字串,否則,執行步驟S2 ;S2 檢查所述拼音串中是否有拼寫錯誤,若有,則進行糾錯處理;S3 按糾正后的拼音進行搜索,并顯示搜索結果。其中,所述步驟Sl中漢字拼音表的生成步驟包括Si. 1 根據搜索范圍中的待搜素漢字串中的漢字查找多音字表,生成所述待搜索漢字串的目標拼音串,所述多音字表是以多音字為主鍵,多個拼音為內容的表;Si. 2 若在多音字表中查找不到,則利用GBK編碼直接確定漢字串的拼音,生成目標拼音串;Si. 3 按照待搜索范圍中的漢字串和其對應的目標拼音串的映射關系生成漢字拼首表。其中,所述目標拼音串包括待搜索漢字串的全拼和漢字拼音第一個字母組成的拼音串,包含多音字的待搜索漢字串的目標拼音串包含多音字或多音字組成的詞語的每個讀音的拼音串和第一個字母組成的拼音串。其中,若待搜索漢字串中多音字超過預定個數,則按GBK編碼直接確定漢字串的拼音串。其中,所述預定個數為3。其中,步驟Si. 3之后還包括步驟緩存所述漢字拼音表。
其中,所述步驟S2中糾錯處理的方式為在糾錯表中查找是否有拼寫錯誤的拼音串和正確拼音串的對應關系表項,若有則用對應的正確拼音串替換拼寫錯誤的拼音串。(三)有益效果本發明的拼音搜索方法中對拼音串進行了容錯處理,增強了搜索過程中的容錯能力;生成待搜索漢字串的目標拼音串,建立漢字拼音表并緩存,多音字串的目標拼音串中包含多音字的每個讀音,從而提高了拼音搜索效率和查準率。
圖1是本發明實施例的一種拼音搜索方法流程圖;圖2是圖1中步驟SlOl和S105中搜索前生成目標拼音串的流程圖。
具體實施例方式下面結合附圖和實施例,對本發明的具體實施方式
作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。如圖1所示,為本發明實施例的一種拼音搜索方法流程圖,包括步驟S101,根據輸入的拼音串搜索預先生成的漢字拼音表,查找表中漢字串的拼音。本實施例中,漢字拼音表生成過程具體流程如圖2所示,包括步驟S201,在多音字表中查找待搜索范圍中的待搜索漢字串中漢字的拼音。為了保證查找速度,多音字表使用了 map結構,以對應的漢字為主鍵,多個拼音為內容,多音字表中包括常用多音字。當讀取一個漢字時,先從map表中查找。步驟S202,判斷在多音字表中是否查找到待搜索范圍中的待搜索漢字串中漢字對應的拼音,若找到,則執行步驟S203 ;若沒找到,則執行步驟S204。由于多音字過多時,目標拼音串會很長,為了避免目標拼音串過長,本實施例中還判斷查找到多音字是否超過預定個數,即步驟S203。步驟S203,判斷查找到多音字是否超過預定個數。該值可根據搜索的實際情況和對搜索效率的要求設定。如根據拼音搜索聯系人,一般人的名字和昵稱不超過3個,可以設定為3個。若未超過預定個數,則執行步驟S205,否則,執行步驟S204。步驟S204,非多音字以及超過預定個數的多音字時利用漢字的GBK編碼直接確定漢字的拼音。步驟S205,根據拼音表及GBK編碼查找到的待搜索漢字串中漢字的拼音生成目標拼音串。目標拼音串包括待搜索漢字串的全拼和漢字拼音第一個字母組成的拼音串;若是多音字,則生成的目標拼音串包含多音字或多音字組成的詞語的每個讀音的拼音串和漢字拼音第一個字母組成的拼音串。如待搜索漢字串為“長江”,其中“長”為多音字,那么生成的目標拼音串會有“changjiangZhangjiang”、“cjZj”,而且目標拼音串會與“長江”關聯生成拼音表中一個表項。當輸入“changjiang” "zhangjiang" “cj” “zj”中的任一拼音串進行搜索時,都能夠從目標拼音串中匹配上,就會將“長江”作為一個搜索結果展示給用戶。上述采用GBK的方案,可以避免當多音字表不全時,仍能給漢字查找出一個正確的讀音。為了保證搜索速度,將生成的漢字拼音表進行緩存。緩存的作用是使同一待搜索漢字串生成目標拼音串的操作只需執行一次。提高之后的搜索效率。詳細來說搜索時,待搜索范圍中的待搜索漢字串是確定的。緩存漢字拼音表后,當用拼音去搜索時,直接用輸入的拼音串和緩存的拼音串比較,就能找出對應的漢字串,而不必每次都去重新生成目標拼
曰甲O步驟S102,判斷漢字拼音表中是否有與輸入的拼音串相匹配的拼音串,若有,則執行步驟S106,否則,執行步驟S103。步驟S103,檢查所述拼音串中是否有拼寫錯誤,若有,則執行步驟S104,否則,執行步驟S106。步驟S104,對易錯拼音進行糾錯處理。具體方式為在糾錯表中查找是否有拼寫錯誤的拼音串和正確拼音串的對應關系表項,若有則用對應的正確拼音串替換拼寫錯誤的拼音串。如img,ioU等易錯拼音,當搜索時,會查找用戶的輸入中是否有這些易錯拼寫,若有,則改成正確的對應拼音ing,iu等。步驟S105,按糾正后的拼音進行搜索。步驟S106,展示搜索結果,即所有匹配拼音串對應的漢字串。若有拼寫錯誤,將未進行糾錯處理的搜索結果顯示在前面(當無搜索結果時,顯示“無搜索結果”),糾錯后的結果放在后面代用戶參考。本發明的拼音搜索方法適用于即時通信軟件、電話薄以及電子郵件等應用中采用拼音搜索好友或聯系人。以上實施方式僅用于說明本發明,而并非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發明的范疇,本發明的專利保護范圍應由權利要求限定。
權利要求
1.一種拼音搜索方法,其特征在于,包括以下步驟51根據輸入的拼音串搜索預先生成的漢字拼音表,查找漢字串的拼音是否有與所述輸入的拼音串相匹配的拼音串,若有,則展示所有匹配拼音串對應的漢字串,否則,執行步驟S2 ;52檢查所述拼音串中是否有拼寫錯誤,若有,則進行糾錯處理;53按糾正后的拼音進行搜索,并顯示搜索結果。
2.如權利要求1所述的拼音搜索方法,其特征在于,所述步驟Sl中漢字拼音表的生成步驟包括Si. 1 根據搜索范圍中的待搜素漢字串中的漢字查找多音字表,生成所述待搜索漢字串的目標拼音串,所述多音字表是以多音字為主鍵,多個拼音為內容的表;Si. 2 若在多音字表中查找不到,則利用GBK編碼直接確定漢字的拼音,生成目標拼音串;Si. 3 按照待搜索范圍中的漢字串和其對應的目標拼音串的映射關系生成漢字拼音表。
3.如權利要求2所述的拼音搜索方法,其特征在于,所述目標拼音串包括待搜索漢字串的全拼和漢字拼音第一個字母組成的拼音串,包含多音字的待搜索漢字串的目標拼音串包含多音字或多音字組成的詞語的每個讀音的拼音串和第一個字母組成的拼音串。
4.如權利要求3所述的拼音搜索方法,其特征在于,若待搜索漢字串中多音字超過預定個數,則按GBK編碼直接確定漢字串的拼音串。
5.如權利要求4所述的拼音搜索方法,其特征在于,所述預定個數為3。
6.如權利要求2所述的拼音搜索方法,其特征在于,步驟Si.3之后還包括步驟緩存所述漢字拼音表。
7.如權利要求1 6中任一項所述的拼音搜索方法,其特征在于,所述步驟S2中糾錯處理的方式為在糾錯表中查找是否有拼寫錯誤的拼音串和正確拼音串的對應關系表項,若有則用對應的正確拼音串替換拼寫錯誤的拼音串。
全文摘要
本發明公開了一種拼音搜索方法,包括根據輸入的拼音串搜索預先生成的漢字拼音表,查找漢字串的拼音是否有與所述輸入的拼音串相匹配的拼音串,若有,則展示所有匹配拼音串對應的漢字串,否則,執行步驟S2;S2檢查所述拼音串中是否有拼寫錯誤,若有,則進行糾錯處理;S3按糾正后的拼音進行搜索,并顯示搜索結果。本發明增強了搜索過程中的容錯能力,提高了拼音搜索效率和查準率。
文檔編號G06F17/30GK102567406SQ20101061836
公開日2012年7月11日 申請日期2010年12月22日 優先權日2010年12月22日
發明者陳千華 申請人:北京新媒傳信科技有限公司