利用汉语拼音声调检索中文姓名的方法

文档序号:6420210阅读:464来源:国知局
专利名称:利用汉语拼音声调检索中文姓名的方法
技术领域
本发明涉及一种检索中文姓名的方法,尤其涉及一种利用汉语拼音声调检索中文姓名的方法。
背景技术
随着计算机和通讯技术的高速发展,移动电话以及个人数字助理(Personal Digital Assistant,以下简称PDA)等便携信息终端已经高度普及,利用便携信息终端处理数据和信息的中文软件平台也越来越丰富。在使用便携信息终端处理个人信息时,联系人的检索操作是不可或缺的。
一般中文平台的用户通讯簿或数据库中联系人的姓名为中文姓名。中文姓名常用的汉字有几千个,传统方法一般利用拼音或部首等方法检索中文姓名,其速度很慢。姓名的输入通常要输入2-4个汉字,再加上PDA手写识别所花费的时间、挑选重码汉字所需要的时间、检索中文姓名的效率一般很低;在操作中,用户需要输入大量的信息,进行多次点击输入操作,操作很不方便。
另外,现有技术除了采用姓名首字的拼音首字母进行查询以外,也有其他的查询方法,如联想(北京)有限公司于2001年9月5日申请的中国专利申请01131176.2号所示,该专利申请揭示一种按汉字拼音声母来进行查询中文姓名的方法。按照该种查询中文姓名的方法,首先要根据输入的姓名数据生成一个包含姓名汉字拼音声母的姓名索引文件,然后将用户输入的声母在此姓名索引文件中进行匹配,并进一步获取该记录的标示信息和数据偏移量,最后根据该偏移量的值从数据中读取输入的声母所对应的姓名记录。这种查询中文姓名方法比起传统的拼音或部首检索方法虽有进步,但是在大多采用标准12键小键盘的移动电话上操作时,仍然存在很大的缺陷。例如要查找姓名“张正直”时,由于其声母组合为“zzz”,就需要十二次按“9”键的动作,并且每四次按键之间还需要一定的时间间隔以跨越软件平台所设定的按键时限,这样就大大增加了查询所花费的时间,同时也使得查询操作十分繁杂。

发明内容本发明的目的在于提供一种利用汉语拼声调检索中文姓名的方法。
本发明的目的是通过以下技术方案实现的,本发明一种利用汉语拼音声调检索中文姓名的方法,包括查询过程,其特征在于所述查询过程利用包含汉字与其声调对应关系的数据结构,通过汉语拼音声调进行查询。
该方法还包括排序过程,所述排序过程利用包含汉字与其声调对应关系的数据结构,按照汉语拼音声调进行排序。
所述按照汉语拼音声调进行排序过程包括如下步骤从包含汉字与其声调对应关系的数据结构中获得当前记录的拼音声调信息;将当前记录的拼音声调与之前记录的拼音声调相比较并得出本次排列结果。
所述按照汉语拼音声调进行查询的过程包括如下步骤输入要查询的姓名的声调信息;将上述输入的声调信息与要查询的目标数据结构中的数据的声调信息逐条对比并返回查询结果。
一种利用汉语拼音声调检索中文姓名的方法,包括排序过程,其特征在于所述排序过程利用包含汉字与其声调对应关系的数据结构,按照汉语拼音声调进行排序。
该方法还包括查询过程,所述查询过程利用包含汉字与其声调对应关系的数据结构,通过汉语拼音声调进行查询。
所述按照汉语拼音声调进行排序过程包括如下步骤从包含汉字与其声调对应关系的数据结构中获得当前记录的拼音声调信息;将当前记录的拼音声调与之前记录的拼音声调相比较并得出本次排列结果。
所述按照汉语拼音声调进行查询的过程包括如下步骤输入要查询的姓名的声调信息;将上述输入的声调信息与要查询的目标数据结构中的数据的声调信息逐条比较并返回查询结果。
相较于现有技术,本发明利用汉语拼声调检索中文姓名的方法,大大降低了汉字姓名检索结果的重复率并减少了机械输入的次数,从而简化了输入操作的复杂度,并能够迅速定位检索目标,进而提高了检索效率,克服了传统检索方法的不足。

图1为本发明利用汉语拼声调检索中文姓名的方法数据流图。
图2为本发明的排序方法流程图。
图3为本发明的拼音声调比较流程图。
图4为本发明的排序数据示意图。
图5为本发明的查询方法的流程图。
具体实施方式请参阅图1所示,根据本发明利用汉语拼声调检索中文姓名的方法,对中文姓名的快速检索大致可以分为两个阶段排序和查询。其中排序阶段按照通讯簿数据中姓名的汉语拼音声调信息将所有的通讯簿数据进行排序,并将排序的结果存储在一数据结构中。查询阶段接受用户输入的查询信息,并将其与排序的结果数据逐条进行比较,直到找到匹配记录,检索完成。
下面结合具体例子将本发明利用汉语拼音声调检索中文姓名的方法分为排序和查找两个阶段进行说明,在该例子中,便携信息终端为一移动电话,该移动电话采用标准12键键盘;包含汉字与其声调对应关系的数据结构为字源公司提供的中文字库,其中包含汉字内码与拼音信息等数据;在该移动电话中,用阿拉伯数字1、2、3、4分别代表汉语拼音声调的“阴平”、“阳平”、“上声”、“去声”;要查询的目标数据结构为一通讯簿,其数据为“赵伟”、“王刚”、“林志扬”、“黄培清”、“任建标”、“司马相如”等六个人名。
第一阶段排序。该移动电话中,通讯簿数据存储在sim卡中,在开机后软件平台的初始化程序将其从sim卡复制到内存当中,并且在复制过程当中就实现排序过程。
通讯簿数据在存储的时候,是按照在物理存储设备(sim卡)的存储位置来排序的,而在复制到内存的过程中,就按照汉字拼音的声调来进行排序。下面以“赵伟”、“王刚”、“林志扬”、“黄培清”、“任建标”、“司马相如”为例说明这个过程。
请参阅图2、图3及图4所示,在方法200中,首先,在步骤201中,将sim卡中的第一笔通讯簿记录“赵伟”读入,然后执行步骤202,将记录“赵伟”复制到临时数组temp[1],在步骤203中,按照字库中的内码和拼音信息的对应关系查找到“赵伟”相应的拼音声调组合“43”,由于这是第一条记录,所以在步骤204中不用比较声调,而将记录其排序结果的临时数据temp order[1]记为“1”,此时数组temp[]及temp_order[]的内容如图4(a)所示。
接下来,执行步骤206,然后重复所述201-203各步骤,读第二笔记录“王刚”,将此记录复制到临时数组temp[2]中,并从字库中查得其声调信息为“21”,按照204步骤开始比较,2041步骤找到temp_order[]数组中值为“1”的temp_order[1]成员,2042步骤按照字库中的内码和拼音信息的对应关系查找到相应的拼音声调组合“43”,在2043步骤中,两者长度相等,2046步骤将“21”与“43”相比较,得到小于的结果,因此2048步骤将temp_order[1]的值改为“2”,而2049步骤将temp_order[2]的值记为“1”,此时数组temp[]及temp_order[]的内容如图4(b)所示。
读入第三笔记录“林志扬”,重复200-204各步骤,将此记录复制到临时数组temp[3]中,同时按照字库中的内码和拼音信息的对应关系查找到相应的拼音声调组合“242”,将其与temp_order[]数组中值为“1”的temp_order[2]成员的声调“21”相比较,由于后者为两位的声调,所以在其后补一个零,得到“210”,再用“242”与其相比较,得到大于的结果;继续将其与temp_order[]数组中值为“2”的temp_order[1]成员的声调“43”相比较,同样在其后补零得到“430”再用“242”来做比较,得到小于的结果,因此将temp_order[3]的值记为“2”,而将temp_order[1]的值加“1”,改为“3”,此时数组temp[]及temp_order[]的内容如图4(c)所示。
下面继续读入第四笔记录“黄培清”,重复200-204各步骤,将此记录复制到临时数组temp[4]中,同时按照字库中的内码和拼音信息的对应关系查找到相应的拼音声调组合“221”,将其与temp_order[]数组中值为“1”的temp_order[2]成员的声调“21”相比较,由于后者为两位的声调,所以在其后补一个零,得到“210”,再用“221”与其相比较,得到大于的结果,继续将其与temp_order[]数组中值为“2”的temp_order[3]成员的声调“242”相比较,得到小于的结果,因此将temp_order[4]的值记为“2”,而将temp_order[1]和temp_order[3]的值各加“1”,改为“4”和“3”,此时数组temp[]及temp_order[]的内容如图4(d)所示。
再读入第五笔记录“任建标”,重复200-204各步骤,将此记录复制到临时数组temp[5]中,同时按照字库中的内码和拼音信息的对应关系查找到相应的拼音声调组合“241”,将其与temp_order[]数组中值为“1”的temp_order[2]成员的声调“21”相比较,由于后者为两位的声调,所以在其后补一个零,得到“210”,再用“241”与其相比较,得到大于的结果;继续将其与temp_order[]数组中值为“2”的temp_order[4]成员的声调“221”相比较,得到大于的结果;继续将其与temp_order[]数组中值为“3”的temp_order[3]成员的声调“242”相比较,得到小于的结果,因此将temp_order[5]的值记为“3”,而将temp_order[1]和temp_order[3]的值各加“1”,改为“5”和“4”,此时数组temp[]及temp_order[]的内容如图4(e)所示。
最后读入第六笔记录“司马相如”,重复200-204各步骤,将此记录复制到临时数组temp[6]中,同时按照字库中的内码和拼音信息的对应关系查找到相应的拼音声调组合“1342”,将其与temp_order[]数组中值为“1”的temp_order[5]成员的声调“21”相比较,由于后者为两位的声调,所以在其后补两个零,得到“2100”,再用“1342”与其相比较,得到小于的结果,因此将temp_order[6]的值记为“1”,而将temp_order[1]~temp_order[5]的值都分别加“1”,得到“6”、“2”、“5”、“3”、“4”。执行完后,临时数组temp[]及temp_order[]的内容分别如图4(f)所示。
可以看到,临时数组中temp[]的内容仍是按照读取的顺序进行排列的,而数组temp_order[]中则分别记录了temp[]数组中各成员按声调进行排序后的位置序号,在执行完此项操作之后,按照步骤207利用一个中间变量将全部temp[]数组中的成员按照temp_order[]数组中所记录的排列顺序重新排列,即可得到最终的排序结果,此时的数组temp[]的内容如图4(g)所示。
这样就完成了通讯簿数据的排序工作,得到了按照声调进行排列的通讯簿数据temp[]。
第二阶段查找。当所有的通讯簿数据按照声调的顺序排列好后,就可以进行查找了,下面仍以“赵伟”、“王刚”、“林志扬”、“黄培清”、“任建标”、“司马相如”的通讯簿中查找“赵伟”为例进行说明。
请参阅图5所示,在查询步骤500中进行查找,在步骤501中根据要查找的姓名“赵伟”输入其声调组合“43”,步骤502获取第一条记录“司马相如”的声调组合“1342”,步骤503将两者长度进行比较,得到小于的结果,执行505步骤将要查找的声调“43”补两个零为“4300”,步骤506将其与第一条记录的声调“1342”相比较,得到大于的结果;则将位置序号加1,继续比较下一条,根据第二条记录“王刚”,在字库的内码与拼音信息的对应关系中找到其声调组合“21”,将其与查找值“43”相比较,仍然得到大于的结果;继续比较下一条,根据第三条记录“黄培清”,在字库的内码与拼音信息的对应关系中找到其声调组合“221”,比较时先在查找值后面加一个零得到“430”再与“221”比较,仍然得到大于的结果;则继续比较下一条,根据第四条记录“任建标”,在字库的内码与拼音信息的对应关系中找到其声调组合“241”,比较时先在查找值后面加一个零得到“430”再与“241”比较,仍然得到大于的结果;则继续比较下一条,根据第五条记录“林志扬”,在字库的内码与拼音信息的对应关系中找到其声调组合“242”,比较时先在查找值后面加一个零得到“430”再与“242”相比较,仍然得到大于的结果;则继续比较下一条,根据第六条记录“赵伟”,在字库的内码与拼音信息的对应关系中找到其声调组合“43”,将其与查找值“43”相比较,得到相等的结果,执行步骤508,即将当前位置序号i作为查找结果,返回此条记录,显示“赵伟”的姓名和其通讯信息数据等。这样就完成了一次查询的过程。
这是一个在通讯簿中能够找到匹配数据的例子,下面将以在“赵伟”、“王刚”、“林志扬”、“黄培清”、“任建标”、“司马相如”的通讯簿中查询“周鹏”为例说明一个在通讯簿中没有匹配记录的过程。
首先,根据首条记录“司马相如”,在字库的内码与拼音信息的对应关系中找到其声调组合“1342”,将其与搜索值“周鹏”的声调组合“12”相比较,比较时先在后者后面加两个零得到“1200”再与“1342”比较,得到小于的结果,这样就执行步骤510,返回查询结果“无匹配记录!”,结束查询过程。
相较于现有技术,本发明利用汉语拼声调检索中文姓名的方法,大大降低了汉字姓名查询结果的重复率并减少了机械输入的次数,从而简化了输入操作的复杂度,并能够迅速定位查询目标,进而提高了查询效率,克服了传统查询方法的不足。
权利要求
1.一种利用汉语拼音声调检索中文姓名的方法,包括查询过程,其特征在于所述查询过程利用包含汉字与其声调对应关系的数据结构,通过汉语拼音声调进行查询。
2.如权利要求1所述利用汉语拼音声调检索中文姓名的方法,其特征在于该方法还包括排序过程,所述排序过程利用包含汉字与其声调对应关系的数据结构,按照汉语拼音声调进行排序。
3.如权利要求2所述的利用汉语拼音声调检索中文姓名的方法,其特征在于所述按照汉语拼音声调进行排序过程包括如下步骤从包含汉字与其声调对应关系的数据结构中获得当前记录的拼音声调信息;将当前记录的拼音声调与之前记录的拼音声调相比较并得出本次排列结果。
4.如权利要求1、2或3所述的利用汉语拼音声调检索中文姓名的方法,其特征在于所述按照汉语拼音声调进行查询的过程包括如下步骤输入要查询的姓名的声调信息;将上述输入的声调信息与要查询的目标数据结构中的数据的声调信息逐条比较并返回查询结果。
5.一种利用汉语拼音声调检索中文姓名的方法,包括排序过程,其特征在于所述排序过程利用包含汉字与其声调对应关系的数据结构,按照汉语拼音声调进行排序。
6.如权利要求5所述利用汉语拼音声调检索中文姓名的方法,其特征在于该方法还包括查询过程,所述查询过程利用包含汉字与其声调对应关系的数据结构,通过汉语拼音声调进行查询。
7.如权利要求6所述的利用汉语拼音声调检索中文姓名的方法,其特征在于所述按照汉语拼音声调进行排序过程包括如下步骤从包含汉字与其声调对应关系的数据结构中获得当前记录的拼音声调信息;将当前记录的拼音声调与之前记录的拼音声调相比较并得出本次排列结果。
8.如权利要求7所述的利用汉语拼音声调检索中文姓名的方法,其特征在于所述按照汉语拼音声调进行查询的过程包括如下步骤输入要查询的姓名的声调信息;将上述输入的声调信息与要查询的目标数据结构中的数据的声调信息逐条对比并返回查询结果。
全文摘要
一种利用汉语拼音声调检索中文姓名的方法,包括排序和查询过程,其中排序和查询过程均利用当今已被广泛使用的包含汉字与其声调对应关系的数据结构,按照汉语拼音声调分别进行排序和查询。该方法大大降低了中文姓名检索结果的重复率并减少了机械输入的次数,从而简化了输入操作的复杂程度,并能够迅速定位检索目标,进而提高了检索效率,克服了传统检索方法的不足。
文档编号G06F17/30GK1547135SQ20031010824
公开日2004年11月17日 申请日期2003年10月29日 优先权日2003年10月29日
发明者高远, 杨柯, 高 远 申请人:高远, 杨柯, 高 远
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1