CN111291099A - 一种地址模糊匹配方法、系统及计算机设备 - Google Patents
一种地址模糊匹配方法、系统及计算机设备 Download PDFInfo
- Publication number
- CN111291099A CN111291099A CN202010400129.7A CN202010400129A CN111291099A CN 111291099 A CN111291099 A CN 111291099A CN 202010400129 A CN202010400129 A CN 202010400129A CN 111291099 A CN111291099 A CN 111291099A
- Authority
- CN
- China
- Prior art keywords
- address
- address data
- matching
- administrative
- data
- 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.)
- Granted
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Automation & Control Theory (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种地址模糊匹配方法,包括如下步骤:S1、获取待匹配的地址数据集;S2、结合行政区划分将地址数据集分为多组地址数据子集;S3、对第一组地址数据子集进行K‑means聚类匹配得到多个地址簇;S4、结合多个地址簇得到候选地址集,判断当前候选地址集是否为空,如果为空,则对下一组地址数据子集进行K‑means聚类匹配得到多个地址簇,再转S5,否则将下一组地址数据子集与候选地址集进行两两匹配,将下一组地址数据子集中各地址数据归入相应的地址簇中,再转S5;S5、对连续两组地址数据子集的匹配结果进行合并,判断是否所有地址数据子集均匹配完毕,如果是,则输出多个地址簇,否则转S4。本发明具有较低的性能损耗度。
Description
技术领域
本发明涉及地址匹配技术领域,特别涉及一种地址模糊匹配方法、系统及计算机设备。
背景技术
中文地址模糊匹配算法可用来发现同一地址不同表述的地址集合,例如金融领域中可以用于发现同一地址集合,分析其存在欺诈风险的概率。现在对地址模糊匹配的做法大致有:
1、维护标准地址库,通过将输入地址与地址库比对,将地址转换为经纬度,并计算两个经纬度在地图上的距离作为地址相似度的标准。由于标准地址库数据量过大,在进行比对时会消耗大量资源,而且比对未经标准化的地址时也会造成误差,不太适用大规模地址、细粒度的匹配。
目前适用于大规模地址的模糊匹配算法较少,依赖人工维护标准地址库,基于经纬度无法精确定位楼栋信息、楼层及房间号,不适合海量、差异度小的地址匹配。
2、通过n折交叉匹配完成模型参数的训练,但是在大规模数据集下,n个地址的模糊匹配需要调用C(n,2)次,在千万级的数据量下对的消耗过大。利用分布式计算平台,例如spark平台的分布式计算方法可以在一定程度上降低对性能的消耗,但是仅仅靠分布式计算方式对性能的提升非常有限。
发明内容
基于此,有必要提供一种对性能消耗较低的地址模糊匹配方法、系统及计算机设备,以解决现有技术中进行大规模地址模糊匹配时,调用模糊匹配的次数较多,导致性能消耗非常大的技术问题。
本发明实施例一方面提供一种地址模糊匹配方法,包括如下步骤:
S1、获取待匹配的地址数据集,并对所述地址数据集进行预处理;
S2、结合行政区划分将所述地址数据集分为多组地址数据子集;
S3、对第一组所述地址数据子集进行K-means聚类匹配得到多个地址簇;
S4、结合多个地址簇得到候选地址集,判断当前候选地址集是否为空,如果为空,则对下一组地址数据子集进行K-means聚类匹配得到多个地址簇,然后转S5,如果不为空,则将下一组地址数据子集与所述候选地址集进行两两匹配,将下一组地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,然后转S5;
S5、对连续两组地址数据子集的匹配结果进行合并,判断是否所有地址数据子集均匹配完毕,如果是,则输出多个地址簇,得到地址匹配结果,如果否,则转S4。
作为上述实施例的进一步改进,结合行政区划分将所述地址数据集中地址数据分为多组地址数据子集,具体为:
对所述地址数据集中地址数据进行各级行政区的标准化补全;
针对不同区域设定不同的地址描述规则,按所述地址描述规则对标准化补全后的地址数据进行地址切割,得到多个层级的地址要素;
按各级行政区对应的地址要素对所述地址数据集中地址数据进行分组,得到多组所述地址数据子集。
作为上述实施例的进一步改进,对所述地址数据集中地址数据进行各级行政区的标准化补全,具体为:按从高到低的顺序对所述地址数据中各级行政区进行标准化补全;
按从高到低的顺序对所述地址数据中各级行政区进行标准化补全,具体为:
判断待标准化的当前级行政区是否为最高级行政区,如果是,则将行政区层级库中所有最高级行政区作为候选行政区,并转下一步,如果不是,则进一步判断前级行政区标准化补全后的结果是否均为空,如果均为空,则将行政区层级库中所有当前级行政区作为候选行政区,并转下一步,如果不均为空,则将与当前级行政区距离最近且补全结果不为空的前级行政区作为参考行政区,则根据行政区层级库将所述参考行政区所包含的所有当前级行政区作为候选行政区,并转下一步;
则每一所述候选行政区分别与所述地址数据中当前级行政区进行匹配,如果匹配成功,则按匹配结果对所述地址数据中当前级行政区进行补全,如果匹配失败,则去除所述地址数据中的当前级行政区通词,然后进行二次匹配,如果二次匹配成功,则按二次匹配结果对所述地址数据的当前级行政区进行补全,如果二次匹配仍然失败,则将所述地址数据的当前级行政区置为空;
如果所述地址数据的当前级行政区匹配成功,且前级行政区匹配失败,则以当前级行政区的匹配结果对应的前级行政区作为匹配结果对所述地址数据的前级行政区进行补全;
判断各级行政区是否均匹配完成,如果是,则输出标准化补全后的地址数据,如果否,则以下一级行政区更新当前级行政区,并转第一步。
作为上述实施例的进一步改进,对所述地址数据子集进行K-means聚类匹配得到多个地址簇,具体为:
从所述地址数据子集中随机选取一个地址数据;
分别计算选定地址数据与所述地址数据子集其他地址数据的相似度,判断相似度值是否大于设定阈值,如果大于,则将相应地址数据与所述选定地址数据归于同一地址簇,并将相应地址数据从所述地址数据子集中删除,如果不大于,则仍然将相应地址数据保留于所述地址数据子集中;
判断所述地址数据子集是否为空,如果为空,则输出所有地址簇,如果不为空,则从所述地址数据子集中重新随机选取一个地址数据,并转上一步。
作为上述实施例的进一步改进,将地址数据子集与所述候选地址集进行两两匹配,将地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,具体为:
从所述地址数据子集中取出一个地址数据作为待匹配地址数据;
分别计算待匹配地址数据与所述候选地址集中每一候选地址数据之间的相似度,获取与待匹配地址数据相似度最大的候选地址数据,将所述待匹配数据归于相似度最大的候选地址数据所在的地址簇中;
判断所述地址数据子集中所有地址数据是否均已匹配完成,如果是,则输出更新后的地址簇,如果否,则从所述地址数据子集中取出下一个地址数据作为待匹配地址数据,然后转上一步。
作为上述实施例的进一步改进,计算两个地址数据之间的相似度具体为:
对两个地址数据分别进行地址切割,并提取两个所述地址数据的地址要素;
比较两个地址数据相同层次的地址要素,如果都不为空且不同,则认定为两个地址数据不同,直接将两个所述地址数据之间的相似度置为0,如果都不为空且相同,则删除两个地址数据对应的地址要素,得到两个简化地址数据,然后采用Levenshtein相似度算法计算两个所述简化地址数据之间的相似度,得到两个所述地址数据之间的相似度。
作为上述实施例的进一步改进,基于分布式计算平台对所述地址数据子集进行所述K-means聚类匹配或所述两两匹配。
作为上述实施例的进一步改进,本方法还包括:
以地址要素作为字段,对每个所述地址簇的地址代表进行存储,得到代表地址库;
获取待匹配的实时地址数据,并对所述实时地址数据进行预处理;
以所述实时地址数据的地址要素作为精准查询条件,以所述实时地址数据作为模糊查询条件,去匹配所述代表地址库中代表地址,获取匹配得分最高的设定个数的初选代表地址,计算每一初选代表地址与所述实时地址数据之间的相似度,以相似度最大的初选代表地址作为匹配代表地址,判断所述匹配代表地址与所述实时地址数据之间的相似度是否大于设定值,如果大于,则判定所述匹配代表地址与所述实时地址数据为同一地址,如果不大于,则将所述实时地址数据作为新的代表地址存储到所述代表地址库中。
本发明实施例另一方面提供一种地址模糊匹配系统,包括预处理模块以及模糊匹配子模块:
所述预处理模块用于获取待匹配的地址数据集,并对所述地址数据集进行预处理;结合行政区划分将所述地址数据集中地址数据分为多组地址数据子集
所述模糊匹配模块用于完成以下步骤:
S3、对第一组所述地址数据子集进行K-means聚类匹配得到多个地址簇;
S4、结合多个地址簇得到候选地址集,判断当前候选地址集是否为空,如果为空,则对下一组地址数据子集进行K-means聚类匹配得到多个地址簇,然后转S5,如果不为空,则将下一组地址数据子集与所述候选地址集进行两两匹配,将下一组地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,然后转S5;
S5、对连续两组地址数据子集的匹配结果进行合并,判断是否所有地址数据子集均匹配完毕,如果是,则输出多个地址簇,得到地址匹配结果,如果否,则转S4。
本发明实施例再一方面提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
本发明实施例的地址模糊匹配方法、系统及计算机设备,在对批量的地址数据进行匹配之前,先按行政区划分对地址数据进行分组,然后分别对各组地址数据子集进行匹配,且当前一组地址数据子集的匹配结构不为空时,可将其匹配结果当做当前组地址数据子集的匹配候选地址集,进行匹配,从而使得后续地址数据子集的匹配可基于前面各组地址子集的匹配结果之上进行,降低了匹配的难度,减少了对大批量地址数据进行匹配时的匹配次数,降低了对性能的消耗。
附图说明
通过附图中所示的本发明优选实施例更具体说明,本发明上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本的主旨。
图1为本发明实施例的地址模糊匹配方法的流程图;
图2为本发明实施例的地址模糊匹配方法应用于三级行政区的地址数据中的流程图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示,本发明实施例提供一种地址模糊匹配方法,包括如下步骤:
S1、获取待匹配的地址数据集,并对所述地址数据集进行预处理;
S2、结合行政区划分将所述地址数据集分为多组地址数据子集;
S3、对第一组所述地址数据子集进行K-means聚类匹配得到多个地址簇;
S4、结合多个地址簇得到候选地址集,判断当前候选地址集是否为空,如果为空,则对下一组地址数据子集进行K-means聚类匹配得到多个地址簇,然后转S5,如果不为空,则将下一组地址数据子集与所述候选地址集进行两两匹配,将下一组地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,然后转S5;
S5、对连续两组地址数据子集的匹配结果进行合并,判断是否所有地址数据子集均匹配完毕,如果是,则输出多个地址簇,得到地址匹配结果,如果否,则转S4。
本实施例中地址数据为典型的三级行政区地址数据,如图2所示,其模糊匹配的步骤具体如下:
步骤0:在对地址数据进行匹配之间先对地址数据进行数据预处理,具体包括全角半角转换、特殊字符处理,以及去除用户自己填写的无意义的数据(如只有省/市/区的无效地址,自由职业者的无关数据等);提取地址数据的地址要素组成的地址子串,并按照行政区划分进行分组计算,本实施例中将地址数据集分为四个地址数据子集,分别为省市区都不为空的地址数据子集D1、省市不为空且区为空的地址数据子集D2、省不为空且市和区都为空的地址数据子集D3以及省市区都为空的地址数据子集D4。
步骤1:省市区都不为空的地址数据子集D1,进行K-means聚类匹配。
步骤2:对于省市不为空且区为空的地址数据子集D2,如果步骤1的结果集为空,则执行步骤21:对当前步骤的结果集进行K-means聚类匹配;否则,执行步骤22:将步骤1的结果作为候选地址集,进行两两匹配。
步骤3:将步骤1和步骤2的结果进行合并。
步骤4:对于省不为空且市和区都为空的地址数据子集D3,如果步骤3的结果集为空,则执行步骤41:对当前步骤的结果集进行K-means聚类匹配;否则,执行步骤42:将步骤3的结果作为候选地址集,进行两两匹配。
步骤5:将步骤3和步骤4的结果进行合并
步骤6:对于省市区都为空的地址数据子集D4,如果步骤5的结果集为空,则执行步骤61:对当前步骤的结果集进行K-means聚类匹配;否则,执行步骤62:将步骤5的结果作为候选地址集,进行两两匹配。
步骤7:将步骤5和步骤6的结果进行合并,得到批量匹配的结果,每一个地址簇中的地址数据即为同一个地址。
对连续两组地址数据子集的匹配结果进行合并,具体为:对两组地址数据子集匹配得到的所有地址簇进行合并。对地址簇进行合并即:当两个地址簇中包含有相同的地址数据时,对这两个地址簇进行合并,即求取两个地址簇的并集。如地址簇1:[广东广州天河区281号,广州林和东路281号],地址簇2:[广州林和东路281号,广东省广州市林和东路281号],包含相同地址数据“广州林和东路281号”,对它们进行合并结果为:[广东广州天河区281号,广州林和东路281号,广东省广州市林和东路281号]。
本实施例通过分组分别匹配的方式实现了对海量地址的快速分组匹配,大幅提升了算法的计算速度。引入K-means思想,实现分布式聚类算法,并结合行政区实现海量地址分组,在不损失精度的情况下减少待匹配地址的数据量、模糊匹配的调用频次,减少相似度计算频次,提高地址聚类效率;
以下对每一步骤进行具体的阐述。
在优选实施例中,结合行政区划分将所述地址数据集中地址数据分为多组地址数据子集,具体为:
对所述地址数据集中地址数据进行各级行政区的标准化补全;
针对不同区域设定不同的地址描述规则,按所述地址描述规则对标准化补全后的地址数据进行地址切割,得到多个层级的地址要素;
按各级行政区对应的地址要素对所述地址数据集中地址数据进行分组,得到多组所述地址数据子集。
地址数据不全或不是标准格式时,会影响地址的匹配精准度和效率,因此在进行匹配前,先对地址进行标准化补全,然后进行地址切割,得到多个地址要素,地址要素包括行政区、路名、门牌号、楼号、房间号等,以便后续按照行政区划分对地址数据集进行分组,同时便于后续按不同粒度进行地址相似度计算。
具体的,地址切割为:针对不同区域的地址要素组成的不同描述(如街道乡镇:镇/乡/居委会/办事处社区/街道。道路片区:大道/路/庄/街/集。街道号、村组:组/队/小区/公寓/弄等。详细地址:单元/层/栋/号楼/楼/房间等。)设定不同的地址描述规则,按照自定义的地址描述规则,切割得到街道门牌号/路/巷/楼栋/房间号等地址要素。
在优选实施例中,对所述地址数据集中地址数据进行各级行政区的标准化补全,具体为:按从高到低的顺序对所述地址数据中各级行政区进行标准化补全;
按从高到低的顺序对所述地址数据中各级行政区进行标准化补全,具体为:
判断待标准化的当前级行政区是否为最高级行政区,如果是,则将行政区层级库中所有最高级行政区作为候选行政区,并转下一步,如果不是,则进一步判断前级行政区标准化补全后的结果是否均为空,如果均为空,则将行政区层级库中所有当前级行政区作为候选行政区,并转下一步,如果不均为空,则将与当前级行政区距离最近且补全结果不为空的前级行政区作为参考行政区,则根据行政区层级库将所述参考行政区所包含的所有当前级行政区作为候选行政区,并转下一步;
则每一所述候选行政区分别与所述地址数据中当前级行政区进行匹配,如果匹配成功,则按匹配结果对所述地址数据中当前级行政区进行补全,如果匹配失败,则去除所述地址数据中的当前级行政区通词,然后进行二次匹配,如果二次匹配成功,则按二次匹配结果对所述地址数据的当前级行政区进行补全,如果二次匹配仍然失败,则将所述地址数据的当前级行政区置为空;
如果所述地址数据的当前级行政区匹配成功,且前级行政区匹配失败,则以当前级行政区的匹配结果对应的前级行政区作为匹配结果对所述地址数据的前级行政区进行补全;
判断各级行政区是否均匹配完成,如果是,则输出标准化补全后的地址数据,如果否,则以下一级行政区更新当前级行政区,并转第一步。
用户在地址数据录入过程中,有发生表述不完整或录入有误的可能。在生产环境,上述情况的存在会致使我们不能充分利用地址数据信息。对于大规模地址数据,人工进行数据清洗和分类过于繁琐,效率低下切易出错。所以本实施例实现地址标准化,具体的,以最典型的三级行政区为例来说明行政区的标准化补全,则步骤如下:
省补全。依次遍历全国三级行政区层级库的省级行政区,匹配待标准化的地址数据的省级行政区,如果匹配成功,则按匹配结果,例如湖北省对地址数据中省级行政区进行补全,若无匹配结果,去掉省级行政区通词(“省”,“ 自治区”等)再次匹配,如果匹配成功,同样按匹配结果对地址数据中省级行政区进行补全即可,若仍然无匹配结果,则将省置为空。
市补全。若省级行政区的标准化补全结果不为空,则依次遍历该省对应下的城市列表进行匹配;若省级行政区为空,遍历三级行政区层级库中所有城市列表进行匹配。若无匹配结果,去掉市级行政区通词(“市”)再次匹配。如果匹配到市级行政区,且省为空,则用市级对应的省级行政区补全省,例如如果匹配到的市级行政区为武汉市,则以湖北省补全地址数据的省级行政区。。
区县补全。若市不为空(不包括无县级划分的城市),依次匹配该市下的所有区县;若市为空, 省不为空,匹配省下面所有的区县;若省市均为空,匹配所有区县。若无匹配结果,去掉区县级行政区通词(“区”、“县”等)再次匹配。若已补全区县,而省或市为空,则用区县对应的省市进行补全。
在优选实施例中,对所述地址数据子集进行K-means聚类匹配得到多个地址簇,具体为:
从所述地址数据子集中随机选取一个地址数据;
分别计算选定地址数据与所述地址数据子集其他地址数据的相似度,判断相似度值是否大于设定阈值,如果大于,则将相应地址数据与所述选定地址数据归于同一地址簇,并将相应地址数据从所述地址数据子集中删除,如果不大于,则仍然将相应地址数据保留于所述地址数据子集中;
判断所述地址数据子集是否为空,如果为空,则输出所有地址簇,如果不为空,则从所述地址数据子集中重新随机选取一个地址数据,并转上一步。
对于同一分组的地址数据子集,在进行K-means聚类匹配时,在地址数据子集中随机选取一个地址数据,对该地址数据的地址子串分别和地址数据子集中其他地址数据的地址子串两两计算对应级别的Levenshtein相似度,大于设定阈值的可聚为一类,一直按照上面步骤循环,直到地址数据子集中地址数据全部聚类好。
在优选实施例中,将地址数据子集与所述候选地址集进行两两匹配,将地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,具体为:
从所述地址数据子集中取出一个地址数据作为待匹配地址数据;
分别计算待匹配地址数据与所述候选地址集中每一候选地址数据之间的相似度,获取与待匹配地址数据相似度最大的候选地址数据,将所述待匹配数据归于相似度最大的候选地址数据所在的地址簇中;
判断所述地址数据子集中所有地址数据是否均已匹配完成,如果是,则输出更新后的地址簇,如果否,则从所述地址数据子集中取出下一个地址数据作为待匹配地址数据,然后转上一步。
对于同一分组的地址数据子集,与候选地址集进行两两匹配时,先从待匹配的地址数据子集中取出一个待匹配地址数据,跟候选地址集中的每一个候选地址数据进行两两相似度计算,相似度具体采用Levenshtein相似度算法,找出最大的相似度的地址归为同一类,直到全部地址都进行过两两匹配。
在优选实施例中,计算两个地址数据之间的相似度具体为:
对两个地址数据分别进行地址切割,并提取两个所述地址数据的地址要素;
比较两个地址数据相同层次的地址要素,如果都不为空且不同,则认定为两个地址数据不同,直接将两个所述地址数据之间的相似度置为0,如果都不为空且相同,则删除两个地址数据对应的地址要素,得到两个简化地址数据,然后采用Levenshtein相似度算法计算两个所述简化地址数据之间的相似度,得到两个所述地址数据之间的相似度。
本实施例对两个地址数据进行相似度计算时,首先对两个地址数据进行了标准化的补全以及地址要素的切割,然后比较相对应的地址要素,如果都不为空且不同,则认定为两个地址数据不同,直接将两个所述地址数据之间的相似度置为0,不再进行后面的计算,减少不必要的计算。如果都不为空且相同,则删除两个地址数据对应的地址要素,减少后续相似度计算时所占比重,得到两个简化地址数据,同样可以减少相似度计算的难度和频率。最后对由不为空且不同的地址要素组成的简化地址数据进行相似度的计算,得到两个地址数据之间的相似度。
本实施例中地址数据见相似度的计算既可应用于k-means聚类时,用来计算选定地址数据与所述地址数据子集其他地址数据的相似度,也可以应用于两两匹配时,用来计算待匹配地址数据与所述候选地址集中每一候选地址数据之间的相似度。
本实施例对传统Levenshtein相似度算法进行改进,在自定义地址补全规则和地址切割的基础之上应用Levenshtein相似度,不仅考虑到文本字符串的整体相似度,也解决了传统Levenshtein相似度算法只关注地址全局角度相似度而忽视地址中更加有区分度的局部核心关键词的问题,实现不同层次地址要素的模糊匹配,允许用户进行不同粒度、不同层次的地址匹配,适合差异度小的地址数据的匹配,大幅提升了差异度小的地址之间的匹配精度。
在优选实施例中,基于分布式计算平台对所述地址数据子集进行所述K-means聚类匹配或所述两两匹配。
利用分布式计算平台进行分布式匹配计算,进一步降低对性能的损耗,提高匹配效率。分布式计算平台可采用spark平台。
在优选实施例中,如图2所示,本方法还包括:
步骤8:以地址要素作为字段,对每个所述地址簇的地址代表进行存储,得到代表地址库;
获取待匹配的实时地址数据,并对所述实时地址数据进行预处理;
以所述实时地址数据的地址要素作为精准查询条件,以所述实时地址数据作为模糊查询条件,去匹配所述代表地址库中代表地址,获取匹配得分最高的设定个数的初选代表地址,计算每一初选代表地址与所述实时地址数据之间的相似度,以相似度最大的初选代表地址作为匹配代表地址,判断所述匹配代表地址与所述实时地址数据之间的相似度是否大于设定值,如果大于,则判定所述匹配代表地址与所述实时地址数据为同一地址,如果不大于,则将所述实时地址数据作为新的代表地址存储到所述代表地址库中。
在对大规模的地址数据集进行模糊匹配后,将分类得到的每个地址簇的地址代表以文档的形式存储到ElasticSearch中得到代表地址库,并以地址要素(包括省、市、区、门牌号、巷、路、楼栋号、房间号等信息)作为字段进行存储,方便对该文档进行索引查找。
建立了代表地址库后就可以对地址数据进行实时模糊匹配了,地址实时模糊匹配算法具体操作如下:
对于一个新的实时地址数据,在进行匹配之间同样需要进行预处理,预处理过程同上述地址数据集中地址数据的预处理即可。同样适用上述标准化补全方法以及地址切割方法将实时地址数据的行政区进行补全,然后切割提取得到地址要素,并以地址要素作为精准查询条件,地址数据作为模糊查询条件,去匹配ElasticSearch中存储的地址代表库,获取K个得分最高的搜索结果,然后将搜索结果中地址代表与实时地址数据进行Levenshtein相似度匹配,找到相似度最大的地址代表,如果相似度最大的地址代表满足阈值要求,则认为是同一个地址,否则将实时地址数据作为一个新的地址代表,存入到ElasticSearch的地址代表库中,以实现地址代表库的自动更新。
本优选实施例基于ElasticSearch开源搜索引擎海量数据快速查询的优点,选择ElasticSearch存储地址代表,后续通过实时地址数据的实时匹配计算自动化维护地址代表库,减少人工对地址库的维护,避免引入噪声。
本发明实施例还提供一种地址模糊匹配系统,包括预处理模块以及模糊匹配子模块:
所述预处理模块用于获取待匹配的地址数据集,并对所述地址数据集进行预处理;结合行政区划分将所述地址数据集中地址数据分为多组地址数据子集
所述模糊匹配模块用于完成以下步骤:
S3、对第一组所述地址数据子集进行K-means聚类匹配得到多个地址簇;
S4、结合多个地址簇得到候选地址集,判断当前候选地址集是否为空,如果为空,则对下一组地址数据子集进行K-means聚类匹配得到多个地址簇,然后转S5,如果不为空,则将下一组地址数据子集与所述候选地址集进行两两匹配,将下一组地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,然后转S5;
S5、对连续两组地址数据子集的匹配结果进行合并,判断是否所有地址数据子集均匹配完毕,如果是,则输出多个地址簇,得到地址匹配结果,如果否,则转S4。
本发明实施例提供的地址模糊匹配系统设备用于实现地址模糊匹配方法,因此地址模糊匹配方法所具备的技术效果,该地址模糊匹配系统同样具备,在此不再赘述。
本发明实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例的方法的步骤。该计算机设备可以是可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器、处理器。
本实施例中,存储器(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card ,SMC),安全数字(Secure Digital ,SD)卡,闪存卡(Flash Card)等。当然,存储器还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器通常用于存储安装于计算机设备的操作系统和各类应用软件等。此外,存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器通常用于控制计算机设备的总体操作。本实施例中,处理器用于运行存储器中存储的程序代码或者处理数据,以实现上述实施例的地址模糊匹配方法。
本发明实施例提供的计算机设备用于实现地址模糊匹配方法,因此地址模糊匹配方法所具备的技术效果,该计算机设备同样具备,在此不再赘述。
本发明提供的地址模糊匹配方法、系统及计算机设备,采用基于K-means算法思想改造的地址模糊匹配分布式算法,降低了地址模糊匹配的性能损耗,提高了地址匹配的效率,算法调用频次大幅度降低,对大规模数据集模糊匹配计算的支撑。同时自定义地址补全规则,引入Levenshtein相似度作为相似判断标准,并通过多轮迭代实现海量地址模糊聚类,克服了基于经纬度无法定位到楼栋、楼层和具体门牌号的局限,并实现了定制化层级的地址模糊匹配提高了批量地址模糊匹配的准确度,更适合海量、低延迟、差异度小的地址之间的模糊匹配。在初始化进行批量模糊匹配后,后续通过实时计算自动化维护地址模糊匹配库,减少了人工维护的成本和错误的发生。
本发明已经应用到一公司中的4千万左右的真实地址集合,并对不同人工打标测试集进行相似度匹配,准确度达到85%左右,具有良好的准确度和稳定性,且与该公司引进的第三方中文地址模糊匹配系统相比,整体性能提升20倍。
综上所述,本发明解决了串行模糊匹配不适用于大规模地址集的缺点,提出一种基于并行分布式计算平台,引入K-means思想,实现分布式聚类算法,并结合自定义规则、行政区分组划分的思想,实现了对生产环境下海量、差异度小的地址数据集合的快速计算,并通过实时维护地址代表集合,减少了人工维护的成本和错误的发生。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种地址模糊匹配方法,其特征在于,包括如下步骤:
S1、获取待匹配的地址数据集,并对所述地址数据集进行预处理;
S2、结合行政区划分将所述地址数据集分为多组地址数据子集;
S3、对第一组所述地址数据子集进行K-means聚类匹配得到多个地址簇;
S4、结合多个地址簇得到候选地址集,判断当前候选地址集是否为空,如果为空,则对下一组地址数据子集进行K-means聚类匹配得到多个地址簇,然后转S5,如果不为空,则将下一组地址数据子集与所述候选地址集进行两两匹配,将下一组地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,然后转S5;
S5、对连续两组地址数据子集的匹配结果进行合并,判断是否所有地址数据子集均匹配完毕,如果是,则输出多个地址簇,得到地址匹配结果,如果否,则转S4。
2.根据权利要求1所述的地址模糊匹配方法,其特征在于,结合行政区划分将所述地址数据集中地址数据分为多组地址数据子集,具体为:
对所述地址数据集中地址数据进行各级行政区的标准化补全;
针对不同区域设定不同的地址描述规则,按所述地址描述规则对标准化补全后的地址数据进行地址切割,得到多个层级的地址要素;
按各级行政区对应的地址要素对所述地址数据集中地址数据进行分组,得到多组所述地址数据子集。
3.根据权利要求2所述的地址模糊匹配方法,其特征在于,对所述地址数据集中地址数据进行各级行政区的标准化补全,具体为:按从高到低的顺序对所述地址数据中各级行政区进行标准化补全;
按从高到低的顺序对所述地址数据中各级行政区进行标准化补全,具体为:
判断待标准化的当前级行政区是否为最高级行政区,如果是,则将行政区层级库中所有最高级行政区作为候选行政区,并转下一步,如果不是,则进一步判断前级行政区标准化补全后的结果是否均为空,如果均为空,则将行政区层级库中所有当前级行政区作为候选行政区,并转下一步,如果不均为空,则将与当前级行政区距离最近且补全结果不为空的前级行政区作为参考行政区,则根据行政区层级库将所述参考行政区所包含的所有当前级行政区作为候选行政区,并转下一步;
则每一所述候选行政区分别与所述地址数据中当前级行政区进行匹配,如果匹配成功,则按匹配结果对所述地址数据中当前级行政区进行补全,如果匹配失败,则去除所述地址数据中的当前级行政区通词,然后进行二次匹配,如果二次匹配成功,则按二次匹配结果对所述地址数据的当前级行政区进行补全,如果二次匹配仍然失败,则将所述地址数据的当前级行政区置为空;
如果所述地址数据的当前级行政区匹配成功,且前级行政区匹配失败,则以当前级行政区的匹配结果对应的前级行政区作为匹配结果对所述地址数据的前级行政区进行补全;
判断各级行政区是否均匹配完成,如果是,则输出标准化补全后的地址数据,如果否,则以下一级行政区更新当前级行政区,并转第一步。
4.根据权利要求1所述的地址模糊匹配方法,其特征在于,对所述地址数据子集进行K-means聚类匹配得到多个地址簇,具体为:
从所述地址数据子集中随机选取一个地址数据;
分别计算选定地址数据与所述地址数据子集其他地址数据的相似度,判断相似度值是否大于设定阈值,如果大于,则将相应地址数据与所述选定地址数据归于同一地址簇,并将相应地址数据从所述地址数据子集中删除,如果不大于,则仍然将相应地址数据保留于所述地址数据子集中;
判断所述地址数据子集是否为空,如果为空,则输出所有地址簇,如果不为空,则从所述地址数据子集中重新随机选取一个地址数据,并转上一步。
5.根据权利要求1所述的地址模糊匹配方法,其特征在于,将地址数据子集与所述候选地址集进行两两匹配,将地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,具体为:
从所述地址数据子集中取出一个地址数据作为待匹配地址数据;
分别计算待匹配地址数据与所述候选地址集中每一候选地址数据之间的相似度,获取与待匹配地址数据相似度最大的候选地址数据,将所述待匹配数据归于相似度最大的候选地址数据所在的地址簇中;
判断所述地址数据子集中所有地址数据是否均已匹配完成,如果是,则输出更新后的地址簇,如果否,则从所述地址数据子集中取出下一个地址数据作为待匹配地址数据,然后转上一步。
6.根据权利要求4所述的地址模糊匹配方法,其特征在于,计算两个地址数据之间的相似度具体为:
对两个地址数据分别进行地址切割,并提取两个所述地址数据的地址要素;
比较两个地址数据相同层次的地址要素,如果都不为空且不同,则认定为两个地址数据不同,直接将两个所述地址数据之间的相似度置为0,如果都不为空且相同,则删除两个地址数据对应的地址要素,得到两个简化地址数据,然后采用Levenshtein相似度算法计算两个所述简化地址数据之间的相似度,得到两个所述地址数据之间的相似度。
7.根据权利要求1所述的地址模糊匹配方法,其特征在于,基于分布式计算平台对所述地址数据子集进行所述K-means聚类匹配或所述两两匹配。
8.根据权利要求1所述的地址模糊匹配方法,其特征在于,还包括:
以地址要素作为字段,对每个所述地址簇的地址代表进行存储,得到代表地址库;
获取待匹配的实时地址数据,并对所述实时地址数据进行预处理;
以所述实时地址数据的地址要素作为精准查询条件,以所述实时地址数据作为模糊查询条件,去匹配所述代表地址库中代表地址,获取匹配得分最高的设定个数的初选代表地址,计算每一初选代表地址与所述实时地址数据之间的相似度,以相似度最大的初选代表地址作为匹配代表地址,判断所述匹配代表地址与所述实时地址数据之间的相似度是否大于设定值,如果大于,则判定所述匹配代表地址与所述实时地址数据为同一地址,如果不大于,则将所述实时地址数据作为新的代表地址存储到所述代表地址库中。
9.一种地址模糊匹配系统,其特征在于,包括预处理模块以及模糊匹配子模块:
所述预处理模块用于获取待匹配的地址数据集,并对所述地址数据集进行预处理;结合行政区划分将所述地址数据集中地址数据分为多组地址数据子集
所述模糊匹配模块用于完成以下步骤:
S3、对第一组所述地址数据子集进行K-means聚类匹配得到多个地址簇;
S4、结合多个地址簇得到候选地址集,判断当前候选地址集是否为空,如果为空,则对下一组地址数据子集进行K-means聚类匹配得到多个地址簇,然后转S5,如果不为空,则将下一组地址数据子集与所述候选地址集进行两两匹配,将下一组地址数据子集中各地址数据归入相应的地址簇中,得到更新后的地址簇,然后转S5;
S5、对连续两组地址数据子集的匹配结果进行合并,判断是否所有地址数据子集均匹配完毕,如果是,则输出多个地址簇,得到地址匹配结果,如果否,则转S4。
10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010400129.7A CN111291099B (zh) | 2020-05-13 | 2020-05-13 | 一种地址模糊匹配方法、系统及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010400129.7A CN111291099B (zh) | 2020-05-13 | 2020-05-13 | 一种地址模糊匹配方法、系统及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291099A true CN111291099A (zh) | 2020-06-16 |
CN111291099B CN111291099B (zh) | 2020-08-14 |
Family
ID=71021713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010400129.7A Active CN111291099B (zh) | 2020-05-13 | 2020-05-13 | 一种地址模糊匹配方法、系统及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291099B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112101878A (zh) * | 2020-11-11 | 2020-12-18 | 万邑通商(北京)信息科技有限公司 | 一种自动校验和修正全球地址的方法 |
CN115809315A (zh) * | 2022-11-24 | 2023-03-17 | 中科星图智慧科技安徽有限公司 | 一种地名地址标准化匹配算法 |
WO2023207827A1 (zh) * | 2022-04-29 | 2023-11-02 | 华为技术有限公司 | 地址分组方法及相关装置 |
CN117493414A (zh) * | 2023-11-03 | 2024-02-02 | 山东三木众合信息科技股份有限公司 | 一种数据管理筛选方法及系统 |
CN117493414B (zh) * | 2023-11-03 | 2024-05-31 | 山东三木众合信息科技股份有限公司 | 一种数据管理筛选方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166679A (zh) * | 2014-07-08 | 2014-11-26 | 北京迪威特科技有限公司 | 一种用于分拣的地址匹配方法 |
CN107943973A (zh) * | 2017-11-28 | 2018-04-20 | 上海云信留客信息科技有限公司 | 一种大数据智能清洗系统及云机器人智能清洗服务平台 |
WO2018081827A1 (en) * | 2016-10-31 | 2018-05-03 | Microsoft Technology Licensing, Llc | Fuzzy matching of entity data across multiple storage systems |
CN108090221A (zh) * | 2018-01-02 | 2018-05-29 | 北京市燃气集团有限责任公司 | 一种燃气卡数据与用户管理数据的关联方法 |
CN109101474A (zh) * | 2017-06-20 | 2018-12-28 | 菜鸟智能物流控股有限公司 | 一种地址聚合的方法、包裹聚合的方法以及设备 |
CN109271462A (zh) * | 2018-11-23 | 2019-01-25 | 河北航天信息技术有限公司 | 一种基于K-means算法模型的纳税人税务登记注册地址信息聚类方法 |
CN110728526A (zh) * | 2019-08-19 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 地址识别方法、设备以及计算机可读介质 |
CN111125289A (zh) * | 2019-12-24 | 2020-05-08 | 广州图匠数据科技有限公司 | 一种门店数据清洗匹配方法、装置、设备以及存储介质 |
-
2020
- 2020-05-13 CN CN202010400129.7A patent/CN111291099B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166679A (zh) * | 2014-07-08 | 2014-11-26 | 北京迪威特科技有限公司 | 一种用于分拣的地址匹配方法 |
WO2018081827A1 (en) * | 2016-10-31 | 2018-05-03 | Microsoft Technology Licensing, Llc | Fuzzy matching of entity data across multiple storage systems |
CN109101474A (zh) * | 2017-06-20 | 2018-12-28 | 菜鸟智能物流控股有限公司 | 一种地址聚合的方法、包裹聚合的方法以及设备 |
CN107943973A (zh) * | 2017-11-28 | 2018-04-20 | 上海云信留客信息科技有限公司 | 一种大数据智能清洗系统及云机器人智能清洗服务平台 |
CN108090221A (zh) * | 2018-01-02 | 2018-05-29 | 北京市燃气集团有限责任公司 | 一种燃气卡数据与用户管理数据的关联方法 |
CN109271462A (zh) * | 2018-11-23 | 2019-01-25 | 河北航天信息技术有限公司 | 一种基于K-means算法模型的纳税人税务登记注册地址信息聚类方法 |
CN110728526A (zh) * | 2019-08-19 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 地址识别方法、设备以及计算机可读介质 |
CN111125289A (zh) * | 2019-12-24 | 2020-05-08 | 广州图匠数据科技有限公司 | 一种门店数据清洗匹配方法、装置、设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
刘哲 等: "一种中文地址类相似重复信息的检测方法", 《小型微型计算机系统》 * |
刘哲: "ETL过程中的数据清洗技术研究与应用", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112101878A (zh) * | 2020-11-11 | 2020-12-18 | 万邑通商(北京)信息科技有限公司 | 一种自动校验和修正全球地址的方法 |
WO2023207827A1 (zh) * | 2022-04-29 | 2023-11-02 | 华为技术有限公司 | 地址分组方法及相关装置 |
CN115809315A (zh) * | 2022-11-24 | 2023-03-17 | 中科星图智慧科技安徽有限公司 | 一种地名地址标准化匹配算法 |
CN117493414A (zh) * | 2023-11-03 | 2024-02-02 | 山东三木众合信息科技股份有限公司 | 一种数据管理筛选方法及系统 |
CN117493414B (zh) * | 2023-11-03 | 2024-05-31 | 山东三木众合信息科技股份有限公司 | 一种数据管理筛选方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111291099B (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111783419B (zh) | 地址相似度计算方法、装置、设备和存储介质 | |
CN111353030B (zh) | 基于旅游领域知识图谱的知识问答检索方法及装置 | |
CN111291099B (zh) | 一种地址模糊匹配方法、系统及计算机设备 | |
CN108628811B (zh) | 地址文本的匹配方法和装置 | |
CN108388559A (zh) | 地理空间应用下的命名实体识别方法及系统、计算机程序 | |
CN107145577A (zh) | 地址标准化方法、装置、存储介质及计算机 | |
WO2021189977A1 (zh) | 地址编码方法、装置、计算机设备及计算机可读存储介质 | |
CN110599200B (zh) | Ota酒店的虚假地址的检测方法、系统、介质及设备 | |
CN113869052B (zh) | 基于ai的房屋地址匹配方法、存储介质及设备 | |
CN116414823A (zh) | 一种基于分词模型的地址定位方法和装置 | |
CN114780746A (zh) | 基于知识图谱的文档检索方法及其相关设备 | |
CN114780680A (zh) | 基于地名地址数据库的检索与补全方法及系统 | |
CN113868351A (zh) | 一种地址聚类方法、装置、电子设备及存储介质 | |
CN113505190B (zh) | 地址信息修正方法、装置、计算机设备和存储介质 | |
CN114201480A (zh) | 一种基于nlp技术的多源poi融合方法、装置及可读存储介质 | |
CN112445976A (zh) | 一种基于拥堵指数图谱的城市地址定位方法 | |
CN111767476A (zh) | 一种基于hmm模型的智慧城市时空大数据空间化引擎构建方法 | |
CN117010373A (zh) | 一种电力设备资产管理数据所属类别和组的推荐方法 | |
WO2023087702A1 (zh) | 一种表格证件影像件的文本识别方法及计算设备 | |
CN115329083A (zh) | 文档分类方法、装置、计算机设备和存储介质 | |
CN116431625A (zh) | 一种地理实体的定位分析方法、装置及计算机设备 | |
CN115185986A (zh) | 省市区地址信息匹配方法、装置、计算机设备及存储介质 | |
CN114003812A (zh) | 地址匹配方法、系统、设备及存储介质 | |
CN114513550A (zh) | 一种地理位置信息的处理方法、装置及电子设备 | |
CN112579713B (zh) | 地址识别方法、装置、计算设备及计算机存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |