拼音搜索方法

文档序号:6340977阅读:1654来源:国知局
专利名称:拼音搜索方法
技术领域
本发明涉及计算机汉字拼音识别与搜索技术领域,特别涉及一种拼音搜索方法。
背景技术
随着计算机应用的普及,网络即时通信软件成为人们日常生活中的常用软件之一,方便了大家的日常交流互通。各种即时通信软件中都会有联系人搜索功能,但是联系人的昵称或者姓名中可能会含有多音字,很多即时通信软件中并不支持多音字的多种读音, 导致有时候搜索不出联系人。这种搜索有一些特点联系人昵称、姓名都不会很长,数据量相对也不大,但是对搜索的效率要求比较高,否则会影响与用户的界面交互效果。而且最好还有一些易错拼音的容错处理,更方便用户的使用。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是在拼音搜索时,如何识别易错拼音、多音字,以增强容错能力和拼音搜索效率和查准率。( 二 )技术方案为解决上述技术问题,本发明提供了一种拼音搜索方法,包括以下步骤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日
发明者陈千华 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1