CN115563409A - 一种地址行政区划识别方法、装置、设备及介质 - Google Patents
一种地址行政区划识别方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115563409A CN115563409A CN202211273190.5A CN202211273190A CN115563409A CN 115563409 A CN115563409 A CN 115563409A CN 202211273190 A CN202211273190 A CN 202211273190A CN 115563409 A CN115563409 A CN 115563409A
- Authority
- CN
- China
- Prior art keywords
- administrative division
- target
- character
- administrative
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Character Discrimination (AREA)
Abstract
本申请公开了一种地址行政区划识别方法、装置、设备及介质,涉及信息技术领域。该方法包括:获取待识别的目标地址对应的目标地址字符串,并针对目标地址字符串设置空的目标路径选择约束变量;遍历目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;在预设行政区划数据链表中的目标行政区划第一字符对应的第一结点簇中查找目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;当需要根据拉链表进行跨层级结点簇切换时更新所述目标路径选择约束变量,在后续的遍历过程中根据目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种地址行政区划识别方法、装置、设备及介质。
背景技术
行政区划是国家为便于行政管理而分级划分的区域,行政区划亦称行政区域。国务院民政部门负责全国行政区划的具体管理工作。国务院其他有关部门按照各自职责做好全国行政区划相关的管理工作。根据中华人民共和国行政区划代码,县及县以上行政区划代码由六位数字表示。第一、二位表示省(自治区、直辖市)第三、四位表示市(地区、自治州)第五、六位表示县(市辖区、县级市),六位行政区划代码包含了省市县三级的层次式行政隶属关系。当前,根据行政区划代码表可查找中文地址对应的行政区划代码,而通过自动识别中文地址对应的行政区划代码以加快行政区划代码识别的技术可更高效的解决行政区划代码识别问题。相关技术中,可将待识别的地址信息中提取若干区划字段,并针对划分好的区划字段分别在行政区划映射表中进行匹配,最后将若干行政区划字段的匹配结果结合以确定待识别的地址信息对应的行政区划代码。然而,由于地址信息中存在同名的情况,在使用若干区划字段结合以得到行政区划代码时容易出现匹配不清楚以导致的识别失误的问题;另一方面,由于需要多次区划字段的匹配会导致识别速度较慢效率较低的问题。综上,如何在进行行政区划识别时避免同名行政区划信息识别错误并保证识别过程中的高效性的问题有待进一步解决。
发明内容
有鉴于此,本发明的目的在于提供一种地址行政区划识别方法、装置、设备及介质,能够在进行行政区划识别时避免同名地址信息识别错误并保证识别过程中的高效性。其具体方案如下:
第一方面,本申请公开了一种地址行政区划识别方法,包括:
获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量;
遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表;
在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。
可选的,所述获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量之前,还包括:
根据行政区划代码表中的全部行政区划的名称字符、行政区划代码以及行政区划上下级关系构建所述预设行政区划数据链表。
可选的,所述根据行政区划代码表中的全部行政区划的名称字符、行政区划代码以及行政区划上下级关系构建所述预设行政区划数据链表,包括:
读取所述行政区划代码表中行政区划的名称字符与行政区划代码,并根据所述名称字符与所述行政区划代码构建行政区划结点簇;
根据所述行政区划结点簇与所述行政区划上下级关系构建所述行政区划的跨层级拉链表;
根据所述行政区划结点簇与所述行政区划的跨层级拉链表构建所述预设行政区划数据链表。
可选的,所述读取所述行政区划代码表中行政区划的名称字符与行政区划代码,并根据所述名称字符与所述行政区划代码构建行政区划结点簇,包括:
读取所述行政区划代码表中行政区划的名称字符的首字符,并根据所述首字符构建结点字符;
读取所述行政区划代码表中行政区划的名称字符的首字符后的字符,并基于所述结点字符与所述行政区划代码构建行政区划结点簇。
可选的,所述遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符之后,还包括:
如果在所述目标地址字符串中没有找到对应的目标行政区划第一字符,则判定针对目标地址字符串的地址识别失败。
可选的,当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码之后,还包括:
如果所述目标行政区划代码为县级代码或区级代码,则结束地址识别并输出所述目标行政区划代码;
如果所述目标行政区划代码为非县级代码以及区级代码,则识别所述目标地址字符串的下一字符,并根据所述下一字符在所述预设行政区划数据链表中确定所述下一字符结点簇的跳转入口。
可选的,所述如果所述目标行政区划代码为非县级代码以及区级代码,并且该结点上配置有拉链表入口,则识别所述目标地址字符串的下一字符,并根据所述下一字符在所述预设行政区划数据链表中确定所述下一字符对应的结点簇入口之后,还包括:
在所述下一字符对应的所述入口结点簇中查找所述下一字符的下一字符对应的字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
根据所述拉链表跳转结点簇,并更新所述目标路径选择约束变量为已识别的行政区划代码,然后根据所述目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。
第二方面,本申请公开了一种地址行政区划识别装置,包括:
地址字符串获取模块,用于获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量;
第一字符确定模块,用于遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表;
节点递进模块,用于在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
行政区划代码确定模块,用于当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的所述的地址行政区划识别方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的所述的地址行政区划识别方法的步骤。
本申请在进行地址行政区划识别时,获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量,遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符,所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表,在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束,当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。可见,本申请在进行地址行政区划识别时,首先获取带识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量,进一步遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符,所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表,在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束,当需要根据拉链表进行跨层级结点簇切换时更新所述目标路径选择约束变量,在后续的遍历过程中根据目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。由此可见,本申请在进行地址行政区划识别时,遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符之后,根据第一字符对应第一结点簇按顺序查找第二字符,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束,使得在进行地址行政区划识别时通过名称和地址的字符串单次遍历,直接输出匹配结果,文本识别计算效率最高;另一方面,根据行政区划代码表构建的结点簇和拉链表,以得到预设行政区划数据链表,并根据所述预设行政区划数据链表进行对目标地址的行政区划代码识别,采用拉链表的方式将行政区划层次相关的结点数据进行关联,有效地减少了多层次结点的重复表示,由此减少了预置数据的存储空间;再者,通过目标路径选择约束变量排除同名区划,避免了匹配不清楚以导致的识别失误的问题。综上,本申请能够在进行行政区划识别时避免同名行政区划信息识别错误并保证识别过程中的高效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种地址行政区划识别方法流程图;
图2为本申请提供的地址行政区划识别流程示意图;
图3为本申请提供的一种具体的地址行政区划识别方法流程图;
图4为本申请提供的预设行政区划数据链表构建流程示意图;
图5为本申请提供的预设行政区划数据链表示意图;
图6为本申请提供的一种地址行政区划识别装置结构示意图;
图7为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,可将待识别的地址信息中提取若干区划字段,并针对划分好的区划字段分别在行政区划映射表中进行匹配,最后将若干行政区划字段的匹配结果结合以确定待识别的地址信息对应的行政区划代码。然而,由于地址信息中存在同名的情况,在使用若干区划字段结合以得到行政区划代码时容易出现匹配不清楚以导致的识别失误的问题;另一方面,由于需要多次区划字段的匹配会导致识别速度较慢效率较低的问题。综上,为此,本申请提供了一种地址行政区划识别方法能够在进行行政区划识别时避免同名行政区划信息识别错误并保证识别过程中的高效性。
本发明实施例公开了一种地址行政区划识别方法,参见图1所示,该方法包括:
步骤S11:获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量。
在本实施例中,获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量。具体地,所述目标地址字符串为所述目标地址对应的字符串,在获取到待识别的目标地址对应的目标地址字符串之后,针对所述目标地址字符串设置目标路径选择约束变量,并将所述目标路径选择约束变量标记为空。可以理解的是,所述目标路径选择约束变量为用于约束所述目标行政区划代码的路径,即目标路径选择约束变量的作用在于同名区划的剔除,以便后续根据所述目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。通过上述技术方案,获取待识别的目标地址对应的目标地址字符串,以便于后续遍历所述目标地址字符串并识别所述目标地址字符串对应的目标行政区划代码。
步骤S12:遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表。
在本实施例中,遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表。具体地,从所述目标地址字符串的首字符开始,查询结点簇入口哈希散列表,如果存在则确定目标行政区划第一字符;如果不存在则递进目标地址字符串的下一个字符进行查询。可以理解的是,如果在所述目标地址字符串中没有命中入口哈希散列表的目标行政区划第一字符,则判断针对所述目标地址字符串的识别失败。需要指出得到是,以同一起点发散的单向结点链表群,链表的每一个结点代表一个中文汉字,用于表示组成行政区划名称的字符顺序,每个结点包含一个中文字符或英文字符,0-n条指向下一结点单向结点指针以及一个与本结点相关的行政区划代码数组。因为县区级行政区划存在同名情况,例如:“市中区”关联有370103山东省济南市市中区、370402山东省枣庄市市中区、511002四川省内江市市中区、511102四川省乐山市市中区四个不同的县级行政区划。行政区划代码数据用于存放这四个代码项。通过上述技术方案,确定目标行政区划第一字符,以便于后续在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点及后续结点。
步骤S13:在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束。
在本实施例中,在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束。具体地,在当前目标行政区划第一字符对应的第一结点簇,根据入口指向的第一结点,查询是否包含下一地址字符对应的第二字符结点指针,如包含则递进指针和地址字符位置。如果在所述目标地址字符串中没有找到对应的目标行政区划第一字符,则判定针对目标地址字符串的地址识别失败。
步骤S14:当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码。
在本实施例中,当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码,包括:如果所述目标行政区划代码为县级代码或区级代码,则结束地址识别并输出所述目标行政区划代码;如果所述目标行政区划代码为非县级代码以及区级代码,则识别所述目标地址字符串的下一字符,并根据所述下一字符在所述预设行政区划数据链表中确定所述下一字符对应的结点簇入口。具体地,地址行政区划识别流程示意图如图2所示,在所述下一字符结点簇中查找所述下一字符的下一字符对应的字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;拉链表跳转结点簇时更新所述目标路径选择约束变量为已识别的行政区划代码,后续根据所述目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。分析当前结点关联的区划代码中的多个行政区划代码数组,根据当前目标路径选择约束变量选中合适的行政区划代码。选中的代码如果是县(区)级的,则结束解析,返回当前代码;如选中的代码是非县(区)级的则递进地址的下一字符并查询选中代码相关的拉链表,如拉链表中包含下一字符,则当前结点指针跳转入新的结点簇,同时路径选择约束变量设为选中的代码。如拉链表中未发现下一地址递进字符,则结束解析流程,输出当前选中代码。
在本实施例中,采用拉链表的方式将不同层次行政区划相关的结点数据进行关联,有效地减少了多层次结点的重复表示,由此减少了预置数据的存储空间。采用多层级行政区划使用同一套最简化区划名称结点簇方案,为解决区划名称和简称同名的问题,引入目标路径选择约束变量,访问第一个区划结点簇时带入的路径选择目标路径选择约束变量为空,将通过拉链表跳转进下级区划结点簇时带入拉链表所属的行政区划代码替换目标路径选择约束变量。在结点簇后续遍历时匹配路径选择约束变量,层级不匹配的代码不作选择。
可见,本实施例在进行地址行政区划识别时,首先获取带识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量,进一步遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符,所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表,在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束,当需要根据拉链表进行跨层级结点簇切换时更新所述目标路径选择约束变量,在后续的遍历过程中根据目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。由此可见,本申请在进行地址行政区划识别时,遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符之后,根据第一字符对应第一结点簇按顺序查找第二字符,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束,使得在进行地址行政区划识别时通过名称和地址的字符串单次遍历,直接输出匹配结果,文本识别计算效率最高;另一方面,根据行政区划代码表构建的结点簇和拉链表,以得到预设行政区划数据链表,并根据所述预设行政区划数据链表进行对目标地址的行政区划代码识别,采用拉链表的方式将行政区划层次相关的结点数据进行关联,有效地减少了多层次结点的重复表示,由此减少了预置数据的存储空间;再者,通过目标路径选择约束变量排除同名区划,避免了匹配不清楚以导致的识别失误的问题。综上,本申请能够在进行行政区划识别时避免同名行政区划信息识别错误并保证识别过程中的高效性。
参见图3所示,本发明实施例公开了一种具体的地址行政区划识别方法,相对于上一实施例,本实施例对技术方案作了进一步说明和优化。
步骤S21:根据行政区划代码表中的全部行政区划的名称字符、行政区划代码以及行政区划上下级关系构建所述预设行政区划数据链表。
在本实施例中,根据行政区划代码表中的全部行政区划的名称字符、行政区划代码以及行政区划上下级关系构建所述预设行政区划数据链表,包括:读取所述行政区划代码表中行政区划的名称字符与行政区划代码,并根据所述名称字符与所述行政区划代码构建行政区划结点簇;根据所述行政区划结点簇与所述行政区划上下级关系构建所述行政区划的跨层级拉链表;根据所述行政区划结点簇与所述行政区划的跨层级拉链表构建所述预设行政区划数据链表。具体地,行政区划表可以通过文本文件存储,也可以通过数据库记录存储,根据应用场景而定,2022年版本全国行政区划数量为3212个,所述行政区划代码表中包含行政区划名称字符、行政区划简称以及形成区划代码。读取所述行政区划代码表中行政区划的名称字符的首字符,并根据所述首字符构建结点字符;读取所述行政区划代码表中行政区划的名称字符的首字符后的后续字符,并基于所述结点字符与所述行政区划代码构建行政区划结点簇。
在本实施例中,预设行政区划数据链表构建流程示意图如图4所示,循环读取一个行政区划信息,针对区划名称和简称分别进行结点簇构建,读取名称首字符,以首字符为参数进行入口哈希散列表查询,如结点不存在则创建,如存在则直接定位,返回结点指针并标记为当前结点,从名称字符串的第2个位置起逐个读取字符,在当前结点查询是否已有该字符相关的下一结点,如结点不存在则创建,如已存在则返回指针并标记为当前结点,最后检查当前结点的代码关联数组加上读取的行政区划代码,根据2022年版本的行政区划表,加载的结点簇数为927个。进一步地,行政区划的层次分为两级和三级。两级的为直辖市加下属区县,三级的为省、市(地)、县(区)。拉链表设置在省(直辖市)、市(地)级,即第一层和第二层区划上。拉链表存放该区划所有下级及下下级区划名称的首字符。循环读取每个行政区划代码和名称首字符,提取当前行政区划代码的上级区划代码和上上级区划代码,分别对所有上级区划代码进行处理。以指定层级的上级区划代码进行拉链表哈希散列查询,如指定层次的上级区划代码不存在,则创建拉链表,如存在则直接返回相应的拉链表。在返回的上级拉链表中加入当前行政区划名称首字符,拉链表不存放重复字符。根据2022年版本的行政区划表,配置拉链表的行政区划个数为360个,最长的拉链表字符数为142个,平均拉链表字符数为13个。
在本实施例中,预设行政区划数据链表示意图如图5所示,构建多跨的下级字符拉链表,用以关联具有上下层级关系的名称结点簇,省级结点拉链表存放该省级结点下各地市级区划名称首字符和所有下属县区级区划名称的首字符,地市级结点拉链表存放该地市级结点下各县区级区划名称首字符,直辖市结点拉链表只存放下属各区县级行政区划名称的首字符。为增强识别算法的容错性,同时加入各区划的常用简称。比如“乌鲁木齐市”简称“乌市”,“土默特左旗”简称“土左旗”。可以识别诸如“浙江省杭州市西湖区”,“杭州市西湖区”,“杭州西湖区”;“新疆维吾尔自治区伊犁哈萨克自治州霍尔果斯市”,“新疆伊犁霍尔果斯市”,“新疆霍尔果斯市”,“霍尔果斯市”等多种常用地址表示方法。结点簇和拉链表构建完成后,可以进行地址字符串的逐个字符比对查询,每一个地址只需一次字符串遍历,即可完成行政区划的识别工作。通过上述技术方案,采用内存链表存储标准内容的方案,不依赖于数据库的查询匹配能力,一个地址解析只需一次字符遍历,查询结点簇即可判定,不采用名称相似度算法运算以节省计算资源,可以从任一结点启动识别,适用性较好。
步骤S22:获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量。
步骤S23:遍历所述目标地址字符串并根据所述预设行政区划数据链表确定目标行政区划第一字符。
如果在所述目标地址字符串中没有找到对应的目标行政区划第一字符,则判定针对目标地址字符串的地址识别失败。
步骤S24:在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束。
步骤S25:当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码。
可见,在本实施例中,支持行政区划名称简写方式,可以吸纳非常规路径的定义逐步提升识别容错性。拉链表的存储可以通过有序、无序数组、链表以及哈希表的方式实现;采用的结点关联区划编码数组,可以通过预置全部区划代码数组,并采用代码的数组索引取代代码字符串存储,以节省代码字符串的存储空间;采用的行政区划简称,可以采用人工配置行政区表的方式,同时也可以采用自动化名称简化方法,剔除名称中的民族、“自治”,“联合旗”,“省”,“特别行政区”,“地区”,“州”,“市”,“县”,“盟”,“旗”等常见的简写要素。
参见图6所示,本申请实施例公开了一种地址行政区划识别装置,包括:
地址字符串获取模块11,用于获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量;
第一字符确定模块12,用于遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表;
节点递进模块13,用于在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
行政区划代码确定模块14,用于当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码。
可见,本实施例在进行地址行政区划识别时,首先获取带识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量,进一步遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符,所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表,在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束,当需要根据拉链表进行跨层级结点簇切换时更新所述目标路径选择约束变量,在后续的遍历过程中根据目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。由此可见,本申请在进行地址行政区划识别时,遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符之后,根据第一字符对应第一结点簇按顺序查找第二字符,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束,使得在进行地址行政区划识别时通过名称和地址的字符串单次遍历,直接输出匹配结果,文本识别计算效率最高;另一方面,根据行政区划代码表构建的结点簇和拉链表,以得到预设行政区划数据链表,并根据所述预设行政区划数据链表进行对目标地址的行政区划代码识别,采用拉链表的方式将行政区划层次相关的结点数据进行关联,有效地减少了多层次结点的重复表示,由此减少了预置数据的存储空间;再者,通过目标路径选择约束变量排除同名区划,避免了匹配不清楚以导致的识别失误的问题。综上,本申请能够在进行行政区划识别时避免同名行政区划信息识别错误并保证识别过程中的高效性。
在一些具体实施例中,所述地址行政区划识别装置还包括:
数据链表构建模块,用于根据行政区划代码表中的全部行政区划的名称字符、行政区划代码以及行政区划上下级关系构建所述预设行政区划数据链表。
在一些具体实施例中,所述数据链表构建模块,具体包括:
行政区划结点簇构建单元,用于读取所述行政区划代码表中行政区划的名称字符与行政区划代码,并根据所述名称字符与所述行政区划代码构建行政区划结点簇;
跨层级拉链表构建单元,用于根据所述行政区划结点簇与所述行政区划上下级关系构建所述行政区划的跨层级拉链表;
行政区划数据链表构建单元,用于根据所述行政区划结点簇与所述行政区划的跨层级拉链表构建所述预设行政区划数据链表。
在一些具体实施例中,所述行政区划结点簇构建单元,具体用于:读取所述行政区划代码表中行政区划的名称字符的首字符,并根据所述首字符构建结点字符;读取所述行政区划代码表中行政区划的名称字符的首字符后的字符,并基于所述结点字符与所述行政区划代码构建行政区划结点簇。
在一些具体实施例中,所述地址行政区划识别装置还包括:
识别失败判定模块,用于如果在所述目标地址字符串中没有找到对应的目标行政区划第一字符,则判定针对目标地址字符串的地址识别失败。
在一些具体实施例中,所述地址行政区划识别装置还包括:
识别结束模块,用于如果所述目标行政区划代码为县级代码或区级代码,则结束地址识别并输出所述目标行政区划代码;
继续识别模块,用于如果所述目标行政区划代码为非县级代码以及区级代码,并且该结点上配置有拉链表入口,则识别所述目标地址字符串的下一字符,并根据所述下一字符在所述预设行政区划数据链表中确定所述下一字符对应的结点簇入口。
在一些具体实施例中,所述地址行政区划识别装置还包括:
下一层级结点簇确定模块,用于在所述下一层级对应的所述入口结点簇中查找所述下一字符的对应的字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
目标路径选择约束变量更新模块,用于根据所述拉链表跳转结点簇,并更新所述目标路径选择约束变量为已识别的行政区划代码,然后根据所述目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。
图7所示为本申请实施例提供的一种电子设备20。该电子设备20,具体还可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的地址行政区划识别方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源储存的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221,计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的地址行政区划识别方法的计算机程序外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的地址行政区划识别方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种地址行政区划识别方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种地址行政区划识别方法,其特征在于,包括:
获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量;
遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表;
在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码。
2.根据权利要求1所述的地址行政区划识别方法,其特征在于,所述获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量之前,还包括:
根据行政区划代码表中的全部行政区划的名称字符、行政区划代码以及行政区划上下级关系构建所述预设行政区划数据链表。
3.根据权利要求2所述的地址行政区划识别方法,其特征在于,所述根据行政区划代码表中的全部行政区划的名称字符、行政区划代码以及行政区划上下级关系构建所述预设行政区划数据链表,包括:
读取所述行政区划代码表中行政区划的名称字符与行政区划代码,并根据所述名称字符与所述行政区划代码构建行政区划结点簇;
根据所述行政区划结点簇与所述行政区划上下级关系构建所述行政区划的跨层级拉链表;
根据所述行政区划结点簇与所述行政区划的跨层级拉链表构建所述预设行政区划数据链表。
4.根据权利要求3所述的地址行政区划识别方法,其特征在于,所述读取所述行政区划代码表中行政区划的名称字符与行政区划代码,并根据所述名称字符与所述行政区划代码构建行政区划结点簇,包括:
读取所述行政区划代码表中行政区划的名称字符的首字符,并根据所述首字符构建结点字符;
读取所述行政区划代码表中行政区划的名称字符的首字符后的字符,并基于所述结点字符与所述行政区划代码构建行政区划结点簇。
5.根据权利要求1所述的地址行政区划识别方法,其特征在于,所述遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符之后,还包括:
如果在所述目标地址字符串中没有找到对应的目标行政区划第一字符,则判定针对目标地址字符串的地址识别失败。
6.根据权利要求1至5中任一项所述的地址行政区划识别方法,其特征在于,所述当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码之后,还包括:
如果所述目标行政区划代码为县级代码或区级代码,则结束地址识别并输出所述目标行政区划代码;
如果所述目标行政区划代码为非县级代码以及区级代码,并且该结点上配置有拉链表入口,则识别所述目标地址字符串的下一字符,并根据所述下一字符在所述预设行政区划数据链表中确定所述下一字符对应的结点簇入口。
7.根据权利要求6所述的地址行政区划识别方法,其特征在于,所述如果所述目标行政区划代码为非县级代码以及区级代码,并且该结点上配置有拉链表入口,则识别所述目标地址字符串的下一字符,并根据所述下一字符在所述预设行政区划数据链表中确定所述下一字符对应的结点簇入口之后,还包括:
在所述下一字符对应的所述入口结点簇中查找所述下一字符的对应的字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
根据所述拉链表跳转结点簇,并更新所述目标路径选择约束变量为已识别的行政区划代码,然后根据所述目标路径选择约束变量确定所述目标地址对应的目标行政区划代码。
8.一种地址行政区划识别装置,其特征在于,包括:
地址字符串获取模块,用于获取待识别的目标地址对应的目标地址字符串,并针对所述目标地址字符串设置空的目标路径选择约束变量;
第一字符确定模块,用于遍历所述目标地址字符串并根据预设行政区划数据链表确定目标行政区划第一字符;所述预设行政区划数据链表为根据行政区划代码表构建的结点簇和拉链表;
节点递进模块,用于在所述预设行政区划数据链表中的所述目标行政区划第一字符对应的第一结点簇中查找所述目标行政区划第一字符的下一字符对应的第二字符结点,并依次循环递进节点指针与字符位置直到当前结点簇匹配结束;
行政区划代码确定模块,用于当需要根据所述拉链表进行跨层级结点簇切换时,更新所述目标路径选择约束变量,在后续的遍历过程中根据所述目标路径选择约束变量在多个同名区划存在时确定所述目标地址对应的目标行政区划代码。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的地址行政区划识别方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的地址行政区划识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211273190.5A CN115563409A (zh) | 2022-10-18 | 2022-10-18 | 一种地址行政区划识别方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211273190.5A CN115563409A (zh) | 2022-10-18 | 2022-10-18 | 一种地址行政区划识别方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115563409A true CN115563409A (zh) | 2023-01-03 |
Family
ID=84746630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211273190.5A Pending CN115563409A (zh) | 2022-10-18 | 2022-10-18 | 一种地址行政区划识别方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115563409A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026824A (zh) * | 2019-11-28 | 2020-04-17 | 福建吉诺车辆服务股份有限公司 | 一种智能路径规划方法及系统 |
CN117251517A (zh) * | 2023-09-12 | 2023-12-19 | 河南省农业科学院农业经济与信息研究所 | 大数据视野下的年鉴行政区划信息匹配方法和模型 |
-
2022
- 2022-10-18 CN CN202211273190.5A patent/CN115563409A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026824A (zh) * | 2019-11-28 | 2020-04-17 | 福建吉诺车辆服务股份有限公司 | 一种智能路径规划方法及系统 |
CN117251517A (zh) * | 2023-09-12 | 2023-12-19 | 河南省农业科学院农业经济与信息研究所 | 大数据视野下的年鉴行政区划信息匹配方法和模型 |
CN117251517B (zh) * | 2023-09-12 | 2024-05-17 | 河南省农业科学院农业经济与信息研究所 | 大数据视野下的年鉴行政区划信息匹配方法和模型 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115563409A (zh) | 一种地址行政区划识别方法、装置、设备及介质 | |
US6915340B2 (en) | System and method for deriving future network configuration data from the current and previous network configuration data | |
CN101324896B (zh) | 一种矢量数据的存储方法、查询方法和管理系统 | |
CN106469372B (zh) | 一种地址映射方法及装置 | |
CN107766433A (zh) | 一种基于Geo‑BTree的范围查询方法及装置 | |
CN108733810B (zh) | 一种地址数据匹配方法及装置 | |
CN113326264A (zh) | 数据处理方法、服务器及存储介质 | |
CN103092992B (zh) | 基于Key/Value型NoSQL数据库的矢量数据先序四叉树编码和索引方法 | |
US20140025652A1 (en) | Redistribute native xml index key shipping | |
CN115017158A (zh) | 节点信息查询方法 | |
Bose et al. | Succinct geometric indexes supporting point location queries | |
US10007739B1 (en) | Address database reconciliation | |
CN111813744A (zh) | 文件的搜索方法、装置、设备及存储介质 | |
Vu et al. | R*-grove: Balanced spatial partitioning for large-scale datasets | |
CN112256821B (zh) | 中文地址补全的方法、装置、设备及存储介质 | |
CN116680278B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110232063B (zh) | 层级数据查询方法、装置、计算机设备和存储介质 | |
CN112307169A (zh) | 地址数据的匹配方法、装置、计算机设备及存储介质 | |
CN104376000A (zh) | 确定网页属性的方法及装置 | |
CN115841094A (zh) | 一种编码方法、装置、设备、介质及产品 | |
CN113821550B (zh) | 路网拓扑图的划分方法、装置、设备及计算机程序产品 | |
CN104123357A (zh) | 一种查询卡口的方法和装置 | |
CN116414808A (zh) | 详细地址规范化的方法、装置、计算机设备和存储介质 | |
CN108509585A (zh) | 一种异构数据实时交互优化处理方法 | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |