基于字符串匹配的身份证住址信息解析方法及系统的制作方法_2

文档序号:9349988阅读:来源:国知局
XX县/区/地区/州/市区)XXX,如“福建省长乐市金峰镇六林村判院272号”;“陕西省商南县试马镇试马街村六组”。
[0017]2.不带“省”字型:XX (省名)XX市(XXX县/区/地区/州/市区)XXX,如“新疆英吉沙县城镇英巴格居委会I组94号”;“新疆阿克陶县木吉乡布拉克村一组097号”。
[0018]3.直接到“市”型:XX市(XXX县/区/地区/州/市区)XXX,如“重庆市云阳县后叶乡清顺村10组18号”。
[0019]4.“直辖市”“区“型:XX市XX区XXX,如“上海市闵行区东川路800号”。
[0020]本发明进一步提出,步骤(5)的实现方式为,按顺序依次提取区,县,市,省信息,依次与高速存储介质中的省市县区映射信息进行匹配,一旦匹配即为所求,停止匹配。
[0021]具体实施时可采用计算机软件技术实现自动运行流程。本发明实施例基于字符串匹配身份证住址信息解析方法的流程如图1所示,其步骤如下:
(I)首先获得全国省市县区及其对应代码,其格式为“省市县区字符串-对应的数字代码”,做为初始的地址条目,如“北京市海淀区-110108”;对所有的地址条目进行如下规整化处理:将省市县及区进行分离,如“河北省唐山市路南区-130202”分解成“河北省唐山市路南区-河北-唐山市-路南区-130202”;“新疆维吾尔自治区昌吉市-652321”分解成“新疆维吾尔自治区昌吉市-新疆-昌吉市-652321 ”,规整后的条目持久存入数据库中;具体实施时可以利用已有的全国省市县区及其对应代码相关数据大全。
[0022](2)初始化,将数据库中所有规整化的地址代码条目读入高速存储介质中,生成映射:读入每个条目同时用两种映射方式存储,一种是省、市、县、区中的最低级别字段(设从高级到低级依次为省、市、县、区)与代码的字典映射,记为映射A ;另一种是代码到省市县全称映射,记为映射B。例如读入“河北省唐山市路南区-130202”,生成最低字段到代码的映射“路南区-652321”,以及代码到字段全称的映射如“652321:新疆维吾尔自治区昌吉市”。
[0023](3)读入一条身份证住址信息的字符串。
[0024](4)对当前读入的这条身份证住址信息的字符串进行处理,只保留区、县和市相应关键字,从而提取关键信息串:先将字符串中的“省”字匹配删除,将32个省名,5个自治区匹配删除,例如将河北省唐山市路南区变为唐山市路南区,新疆维吾尔自治区乌鲁木齐水磨沟区六道湾路改为乌鲁木齐市水磨沟区六道湾路,
(5)将(4)所得关键信息串按照区、县、市(从低级到高级)依次进行匹配截取,直至截取成功,例如,河北省唐山市路南区经(4)提取关键信息得到“唐山市路南区”,从中可先截取到最低级的关键字“路南区”,得到最低级的子串,如果需要继续截取,将截取到高一级的子串“唐山市”。
[0025]具体实现方式如下:
(5.1)从关键信息串中,按照区、县、市的顺序,提取最低级的子串;
(5.2)将当前所取子串与存储介质中的规整化地址代码条目进行查询匹配,如果匹配成功则可根据映射A返回对应的地址代码,完成对当前读入的这条身份证住址信息的匹配,可根据映射B由地址代码自动检索到相应规范的省市县全称,结束本步骤进入步骤
(6);否则进入(5.3);
(5.3)舍弃当前的子串,从关键信息串中,按照区、县、市的顺序,提取高一级的子串, 如果提取失败(字符串剩余为空,没有未取的子串),匹配失败,结束本步骤进入步骤
(6);
如果提取成功则返回执行操作(5.2),直到匹配成功或匹配失败。
[0026](6)如果还需继续进行身份证地址解析,则返回(3)读入下一条身份证住址信息的字符串进行处理,继续循环执行步骤(3)到步骤(5),对下一人员身份进行解析,否则结束运行。
[0027]以下为从步骤(3)开始读入一条身份证住址信息的字符串进行处理的具体实施样例,这里{}表示待匹配的地址字符串:
Address: {新疆阿克陶县木吉乡布拉克村一组097号}:
addrl = {新疆阿克陶县木吉乡布拉克村一组097号}(操作:读入地址字符串); addr2 = {阿克陶县木吉乡布拉克村一组097号}(操作:删除“新疆”); addr3 = {阿克陶县}(操作:“县”匹配,舍弃“县”之后的子字符串);
将addr3与高速存储介质中的规整化地址条目进行匹配,得到规整化地址为“新疆维吾尔自治区阿克陶县”,对应地址代码:“ 653022”。
[0028]
Address: {四川省武胜县龙女镇幸福村I组15号}: addrl = {四川武胜县龙女镇幸福村I组15号}(操作:读入地址字符串); addr2 = {武胜县龙女镇幸福村I组15号}(操作:匹配删除“四川”); addr3 = {武胜县}(操作:匹配“县”,并舍弃“县”之后的子字符串);
将addr3与高速存储介质的规整化地址条目进行匹配,得到其规整化地址为“四川省武胜县”,相应的地址代码为“511622”
Address: {广州市越秀区北京路303号4楼}
addrl = {广州市越秀区北京路303号4楼}(操作:读入地址字符串);addr2 = {广州市越秀区北京路303号4楼}(操作:字符串不包含“省”或“直辖市”,字符串保持不变);
addr3 = {广州市越秀区}(操作:匹配“区”,舍弃“区”后的子字符串);
将addr3与高速存储介质中规整化地址映射条目进行匹配,得到其规整化地址为“广东省广州市越秀区”,相应的地址代码为“440104”。
[0029]
Address: {新疆喀什市下坝路东湖小区34号楼I单元103号} addrl = {新疆喀什市下坝路东湖34号楼I单元103号}(操作:读入地址字符串); addr2 = {喀什市下坝路东湖34号楼I单元103号}(操作:匹配并删除“新疆”); addr3 = {喀什市}(操作:匹配“市”,删除“市”之后的子字符串);
将addr3与高速存储介质中规整化的地址条目进行匹配,得到规整化的地址为“新疆维吾尔自治区喀什地区喀什市”,相应的地址代码为“653101”。
[0030]
Address: {新疆疏勒县草湖镇41团3连I区I栋9号}addrl = {新疆疏勒县草湖镇41团3连I栋9号}(操作:读入地址字符串);addr2 = {新疆疏勒县草湖镇41团3连I栋9号}(操作:字符串不包括“省”或“直辖市”,无匹配,字符串保持不变);
addr3 = {新疆疏勒县}(操作:匹配“县”,舍弃“县”之后的子字符串);
将addr3与高速存储介质中的规整化地址条目进行匹配,得到其地址为“新疆维吾尔自治区疏勒县”,相应的地址代码为“653122”。
[0031]
Address: {乌鲁木齐市水磨沟区六道湾路13号十区平133栋2号}addrl = {乌鲁木齐市水磨沟区六道湾路13号十区平133栋2号}(操作:读入地址字符串);
addr2 = {乌鲁木齐市水磨沟区六道湾路13号十区平133栋2号}(操作:字符串不包括“省”、“自治区”,无匹配,字符串保持不变);
addr3 = {乌鲁木齐市水磨沟区六道湾路13号十区}(操作:匹配最后一个“区”,舍弃“区”后的子字符串);
将addr3与高速存储介质中的规整化地址条目进行匹配,无法获取其地址,去掉其末尾字符,继续进行下面的操作:
Address: {乌鲁木齐市水磨沟区六道湾路13号十}
addrl = {乌鲁木齐市水磨沟区六道湾路13号十}(操作:读入地址字符串);addr2 = {乌鲁木齐市水磨沟区六道湾路13号十}(操作:字符串不包括“省”、“自治区”,无匹配,字符串保持不变);
ad
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1