会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 专利权 / 申请 / 国际申请 / 请求书 / 发明名称 / 一种基于密度聚类算法的地址实体共指消解方法

一种基于密度聚类算法的地址实体共指消解方法

阅读:396发布:2021-02-28

IPRDB可以提供一种基于密度聚类算法的地址实体共指消解方法专利检索,专利查询,专利分析的服务。并且本发明提出了一种基于密度聚类算法的地址实体共指消解方法,步骤如下:S1、使用电子地图接口的地址解析功能处理地址数据集,获得地理坐标和格式化地址;S2、根据地理坐标和格式化地址计算地理距离和名称距离,进行第一次密度聚类,获得多个聚类后的簇;S3、根据名称距离严格、地理距离宽松的距离度量方法,进行再聚类,得到多个超簇;S4、计算超簇的名称,将超簇的名称作为该建筑物的名称。本发明方法结合了地址的文本信息和地理信息,可以准确的发现位于相同建筑物内的地址,极大的减小甚至消除了地址别名、简称和错别字的影响。,下面是一种基于密度聚类算法的地址实体共指消解方法专利的具体信息内容。

1.一种基于密度聚类算法的地址实体共指消解方法,其特征在于,包括以下步骤:S1、使用电子地图接口的地址解析功能处理地址数据集,所述地址数据集包括多条待处理的原始地址,获得每个原始地址对应的地理坐标和格式化地址;

S2、根据地理坐标和格式化地址,计算每两个原始地址之间的地理距离和名称距离,进行第一次密度聚类,获得多个聚类后的簇;

S3、根据名称距离严格、地理距离宽松的距离度量方法,对第一次密度聚类得到的簇进行再聚类,得到多个超簇,所述每个超簇代表一个建筑物;

S4、计算超簇的名称,将超簇的名称作为该建筑物的名称,超簇内包括的地址为该建筑物内的地址。

2.根据权利要求1所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,所述每条原始地址包括一个地点的地址信息和唯一的ID。

3.根据权利要求1所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,所述地址坐标指电子地图中原始地址对应的经纬度坐标;所述格式化地址指存在标志性的分割词语的地址,所述标志性的分割词语包括“省”、“市”、“区”、“路”。

4.根据权利要求1所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,所述步骤S2的具体操作如下:S21、从格式化地址中提取建筑物名称,所述提取规则为:从“formatted_address”字段的值中去除“province”、“city”、“district”、“street”、“number”字段的值,并去除”|”及之后的字符,得到代表建筑物名称的字段;

S22、任选两个原始地址,根据两个原始地址对应的地址坐标计算地理距离;

S23、获取与S22中两个原始地址对应的建筑物名称,根据最小编辑距离和缩放因子计算两个原始地址的名称距离;

S24、重复步骤S22和S23,计算每两个原始地址之间的地理距离和名称距离;

S25、利用地理距离和名称距离计算原始地址距离,对地址数据集中的所有原始地址进行第一次密度聚类,得到多个聚类后的簇,所述每个簇内包括多个原始地址;

S26、计算每个簇的坐标和名称,所述簇的坐标指簇内所有原始地址的平均坐标,所述簇的名称通过如下规则获得:遍历簇内所有原始地址对应的建筑物名称,查找字段最短的建筑物名称,如果该建筑物名称是簇内其他建筑物名称的子序列,该建筑物名称即为簇的名称,否则,用簇内出现次数最多的建筑物名称作为簇的名称。

5.根据权利要求4所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,所述步骤S23中名称距离的计算公式如下:3

name_distance(si,sj)=800×(edit_distance(si,sj)×factor(si,sj))其中,地址数据集中共有n个原始地址,si为第i个原始地址对应的建筑物名称,sj为第j个原始地址对应的建筑物名称,i∈[1,n],j∈[1,n],name_distance(si,sj)表示原始地址i与原始地址j的名称距离,edit_distance(si,sj)表示si到sj的最小编辑距离,即通过增加、删除或修改一个字符使得si对应的字符串变为sj对应的字符串所需要的最少操作次数,factor(si,sj)表示缩放因子。

6.根据权利要求5所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,所述的计算公式如下:其中,wi表示si字符串的权重,wj表示sj字符串的权重,li表示si字符串的长度,lj表示sj字符串的长度。

7.根据权利要求5所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,步骤S25中原始地址距离的计算公式如下:distance=α×geo_distance(gi,gj)+β×name_distance(si,sj)其中,geo_distance(gi,gj)表示地址坐标gi到gj的地理距离,α、β为权重参数,α+β=1。

8.根据权利要求4所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,步骤S3中根据名称距离严格、地理距离宽松的距离度量方法,其中,距离度量方法的计算公式如下:其中,distancepq表示再聚类时的距离,第一次聚类后得到m个簇,Sp表示簇p的名称,Sq表示簇q的名称,p∈[1,m],q∈[1,m],geo_distancepq表示簇p与簇q的地理距离,geo_distancepq根据簇p和簇q的坐标计算。

9.根据权利要求1所述的一种基于密度聚类算法的地址实体共指消解方法,其特征在于,所述步骤S4中超簇的名称通过如下规则获得:遍历超簇内的簇,查找字段最短的簇的名称,如果该簇的名称是超簇内其他簇的名称的子序列,该簇的名称即为超簇的名称,否则,用超簇内出现次数最多的名称作为超簇的名称。

说明书全文

一种基于密度聚类算法的地址实体共指消解方法

技术领域

[0001] 本发明涉及一种地址实体共指消解方法,属于机器学习技术领域。

背景技术

[0002] 地址数据通常是一种半结构化,甚至非结构化的数据。大多数地址数据来源于人工填写,没有经过统一和规范的处理,因此继承了自然语言本身的不准确性,而且很多地点都有其别名或者简称,比如,“国家领军人才创业园”简称“国创园”,这两种名称指向相同的建筑(或建筑群),但名称相差较大,一般的程序难以将这两种名称归为一类;也有很多相同的名称指向不同的地点,比如,一个城市可以存在很多个万达中心,所以不能将“万达中心”这样的地址归为同一建筑物。此外,由于笔误等人为因素,建筑名称中包含错别字的情况也时有发生。
[0003] 地址信息中通常存在“省”、“市”、“区”、“路”等标志性的分割词语,目前有方法可以使用正则匹配来确定建筑物名称,进而将相同名称归为同一个建筑,但地址的书写不具有规范性,想要准确根据地址找出所有建筑物的名称很难,并且难以处理简称和别名。类似的方法还有命名实体识别,该方法需要大量的标注样本进行训练,成本较高,且仍然难以处理简称和别名的问题。

发明内容

[0004] 为了解决地址实体共指消解困难,难以识别简称和别名的问题,本发明提出了一种基于密度聚类算法的地址实体共指消解方法,利用电子地图获取地址的坐标,通过改进的密度聚类的距离度量方法连续两次对地址进行聚类,对地址内同一建筑物的不同名称进行统一,并将同一建筑物内的地址聚合起来,实现地址实体共指消解。
[0005] 为解决上述技术问题,本发明采用了如下技术手段:
[0006] 一种基于密度聚类算法的地址实体共指消解方法,具体包括以下步骤:
[0007] S1、使用电子地图接口的地址解析功能处理地址数据集,所述地址数据集包括多条待处理的原始地址,获得每个原始地址对应的地理坐标和格式化地址;
[0008] S2、根据地理坐标和格式化地址,计算每两个原始地址之间的地理距离和名称距离,进行第一次密度聚类,获得多个聚类后的簇;
[0009] S3、根据名称距离严格、地理距离宽松的距离度量方法,对第一次密度聚类得到的簇进行再聚类,得到多个超簇,所述每个超簇代表一个建筑物;
[0010] S4、计算超簇的名称,将超簇的名称作为该建筑物的名称,超簇内包括的地址为该建筑物内的地址。
[0011] 进一步的,所述每条原始地址包括一个地点的地址信息和唯一的ID;所述地址坐标指电子地图中原始地址对应的经纬度坐标;所述格式化地址指存在标志性的分割词语的地址,所述标志性的分割词语包括“省”、“市”、“区”、“路”。
[0012] 进一步的,所述步骤S2的具体操作如下:
[0013] S21、从格式化地址中提取建筑物名称,所述提取规则为:从“formatted_address”字段的值中去除“province”、“city”、“district”、“street”、“number”字段的值,并去除”|”及之后的字符,得到代表建筑物名称的字段;
[0014] S22、任选两个原始地址,根据两个原始地址对应的地址坐标计算地理距离;
[0015] S23、获取与S22中两个原始地址对应的建筑物名称,根据最小编辑距离和缩放因子计算两个原始地址的名称距离;
[0016] S24、重复步骤S22和S23,计算每两个原始地址之间的地理距离和名称距离;
[0017] S25、利用地理距离和名称距离计算原始地址距离,对地址数据集中的所有原始地址进行第一次密度聚类,得到多个聚类后的簇,所述每个簇内包括多个原始地址;
[0018] S26、计算每个簇的坐标和名称,所述簇的坐标指簇内所有原始地址的平均坐标,所述簇的名称通过如下规则获得:
[0019] 遍历簇内所有原始地址对应的建筑物名称,查找字段最短的建筑物名称,如果该建筑物名称是簇内其他建筑物名称的子序列,该建筑物名称即为簇的名称,否则,用簇内出现次数最多的建筑物名称作为簇的名称。
[0020] 进一步的,所述步骤S23中名称距离的计算公式如下:
[0021] name_distance(si,sj)=800×(edit_distance(si,sj)×factor(si,sj))3  (1)[0022] 其中,地址数据集中共有n个原始地址,si为第i个原始地址对应的建筑物名称,sj为第j个原始地址对应的建筑物名称,i∈[1,n],j∈[1,n],name_distance(si,sj)表示原始地址i与原始地址j的名称距离,edit_distance(si,sj)表示si到sj的最小编辑距离,即通过增加、删除或修改一个字符使得si对应的字符串变为sj对应的字符串所需要的最少操作次数,factor(si,sj)表示缩放因子。
[0023] 进一步的,所述的计算公式如下:
[0024]
[0025] 其中,wi表示si字符串的权重,wj表示sj字符串的权重,li表示si字符串的长度,lj表示sj字符串的长度。
[0026] 进一步的,步骤S25中原始地址距离的计算公式如下:
[0027] distance=α×geo_distance(gi,gj)+β×name_distance(si,sj)  (3)
[0028] 其中,geo_distance(gi,gj)表示地址坐标gi到gj的地理距离,α、β为权重参数,α+β=1。
[0029] 进一步的,步骤S3中根据名称距离严格、地理距离宽松的距离度量方法,其中,距离度量方法的计算公式如下:
[0030]
[0031] 其中,distancepq表示再聚类时的距离,第一次聚类后得到m个簇,Sp表示簇p的名称,Sq表示簇q的名称,p∈[1,m],q∈[1,m],geo_distancepq表示簇p与簇q的地理距离,geo_distancepq根据簇p和簇q的坐标计算。
[0032] 进一步的,所述步骤S4中超簇的名称通过如下规则获得:
[0033] 遍历超簇内的簇,查找字段最短的簇的名称,如果该簇的名称是超簇内其他簇的名称的子序列,该簇的名称即为超簇的名称,否则,用超簇内出现次数最多的名称作为超簇的名称。
[0034] 采用以上技术手段后可以获得以下优势:
[0035] 本发明提出了一种基于密度聚类算法的地址实体共指消解方法,通过电子地图接口解析地址信息,得到原始地址对应的地理坐标和格式化地址,然后分别计算原始地址的名称距离和地理距离,进行第一次密度聚类,将名称相似、坐标相近的地址聚合到一个簇中,当建筑物占地面积较大时,第一次密度聚类可能将同一个建筑物内的地址聚合成多个簇,为了进一步提高聚类的精准度,使用名称距离严格、地理距离宽松的距离度量方法进行第二次聚类,最终得到超簇,一个超簇对应一个建筑物,超簇内包括多个地址信息,这些地址信息都指向该建筑物或该建筑物内部内部。本发明方法结合了地址的文本信息和地理信息,通过最小编辑距离和缩放因子计算名称距离,可以有效识别建筑物的简称和别名,通过地理距离辅助控制聚类距离,可以准确的发现位于相同建筑物内的地址,聚类后计算簇和超簇的名称,进而统一建筑物名称,可以极大的减少甚至消除简称、别名、错别字的影响,实现地址实体共指消解。

附图说明

[0036] 图1为本发明一种基于密度聚类算法的地址实体共指消解方法的步骤流程图。
[0037] 图2为本发明一种基于密度聚类算法的地址实体共指消解方法的工作流程图。
[0038] 图3是本发明实施例中一个密度聚类结果的显示界面。

具体实施方式

[0039] 下面结合附图对本发明的技术方案作进一步说明:
[0040] 本发明提出了一种基于密度聚类算法的地址实体共指消解方法,如图1和2所示,步骤如下:
[0041] S1、将所有需要处理的原始地址依次存储到地址数据集中,每个原始地址中包括地址信息和唯一的ID,此处的地址信息一般是由文字和数字组成的,比如“宁海路街道山西路67号世贸中心大厦1806室”,ID可以是数字或者代码,主要用来标识该原始地址。使用电子地图接口的地址解析功能处理地址数据集中的原始地址,获得每个原始地址对应的地理坐标和格式化地址,地理坐标指原始地址对应的经纬度坐标,格式化地址指存在“省”、“市”、“区”、“路”等标志性的分割词语的地址。地址数据集、地理坐标和格式化地址都可以存储在数据库中。本实施例中调用高德地图的接口,在地图上可视化的展示地址,根据原始地址“宁海路街道山西路67号世贸中心大厦1806室”解析地理坐标和格式化地址:
[0042]
[0043]
[0044] 其中,地理坐标为(118.770321,32.065303),格式化地址为“江苏省南京市鼓楼区世贸中心大厦”,可以看出在解析过程中省略了一些不必要的信息,也添加了一些标注性分割词语。
[0045] S2、根据地理坐标和格式化地址,计算每两个原始地址之间的地理距离和名称距离,进行第一次密度聚类,获得多个聚类后的簇。步骤S2的具体操作如下:
[0046] S21、获取所有的格式化地址,从格式化地址中提取建筑物名称,提取建筑物名称其实就是从格式化地址的字段中找到代表地址所属建筑物的名称的过程,具体提取规则为:从“formatted_address”(即格式化地址)字段的值中去除“province”、“city”、“district”、“street”、“number”字段的值,并去除”|”及之后的字符,得到代表建筑物名称的字段。本实施例中,从“江苏省南京市鼓楼区世贸中心大厦”这一格式化地址中提取出的建筑物名称为“世贸中心大厦”,该建筑物还有其他别称和简称,本实施例在其他地址中提取出“世界贸易中心大厦”、“世贸大厦”的建筑物名称,在后续步骤中将通过两次聚类解决别名和简称的问题。
[0047] S22、任选两个原始地址,获取这两个原始地址对应的地址坐标、格式化地址和建筑物名称,根据两个原始地址对应的地址坐标计算地理距离。
[0048] S23、根据最小编辑距离和缩放因子计算两个原始地址的名称距离,具体公式如下:
[0049] name_distance(si,sj)=800×(edit_distance(si,sj)×factor(si,sj))3  (5)[0050] 其中,设地址数据集中共有n个原始地址,si为第i个原始地址对应的建筑物名称,sj为第j个原始地址对应的建筑物名称,i∈[1,n],j∈[1,n],name_distance(si,sj)表示原始地址i与原始地址j的名称距离,edit_distance(si,sj)表示si到sj的最小编辑距离,factor(si,sj)表示缩放因子。
[0051] 最小编辑距离表示通过增加、删除或修改一个字符使得si对应的字符串变为sj对应的字符串所需要的最少操作次数,比如将“世贸大厦”变为“世贸中心大厦”,需要在“世贸大厦”的字符串中增加“中心”这2个字,即4个字符,此时edit_distance(si,sj)=4,本发明实施例中最小编辑距离的伪代码如下:
[0052]
[0053] 由于建筑物命名规则,在建筑物名称中有一些字出现的格外频繁,且这些字在识别建筑物方面作用不是非常大,比如“大”、“厦”、“广”、“场”等字,在计算名称距离的时候应当减小这类字对名称距离的影响程度,所以本发明方法中引入缩放因子,factor(si,sj)的计算公式如下:
[0054]
[0055] 其中,li表示si字符串的长度,lj表示sj字符串的长度,wi表示si字符串的权重,wj表示sj字符串的权重。
[0056] 第k个原始地址对应的建筑物名称字符串的权重wk的值由该字符串内每一个字符权重的累加得到:
[0057]
[0058] 其中,Rk表示第k个原始地址对应的建筑物名称的字符串,weightc表示字符串中字符c的权重,weightc由字符c的逆文档频率idfc的值来确定:
[0059]
[0060] 其中,idfc用来衡量字符在所有名称中出现的普遍程度,idfc的值越小代表该字符越常见,在本发明中,即这个字符越不重要,idfc的计算公式如下:
[0061]
[0062] 其中,|D|表示建筑物名称的总数量,|{e:c∈de}|表示包含字符c的建筑物名称的数量。
[0063] S24、重复步骤S22和S23,计算每两个原始地址之间的地理距离和名称距离,计算得到的地理距离和名称距离与原始地址一一对应后存储到数据库中,在后续计算时可以通过原始地址的ID从数据库中调用需要的信息。
[0064] S25、利用地理距离和名称距离计算原始地址距离,具体计算公式如下:
[0065] distance=α×geo_distance(gi,gj)+β×name_distance(si,sj)  (10)
[0066] 其中,geo_distance(gi,gj)表示地址坐标gi到gj的地理距离,α、β为权重参数,α+β=1。
[0067] 利用原始地址距离对地址数据集中的所有原始地址进行第一次密度聚类,在进行密度聚类之前,还需要人为设定eps和minPts,eps为邻域半径,minPts为最小领域密度。
[0068] 密度聚类算法将数据点分为核心点、边界点和噪音点,的具体操作如下:
[0069] (1)获取地址数据集D,将所有原始地址对象标记为unvisited;
[0070] (2)随机选择一个unvisited对象a;
[0071] (3)标记a为visited;
[0072] (4)以a为圆心、eps为半径确定a的邻域范围,计算其他对象到a的原始地址距离distance,distance不大于eps的对象是a的邻域对象,当a的邻域对象数量不少于minPts,则a为核心点,进入(5),否则回到(2);
[0073] (5)创建一个队列Q,将a加入Q,逐一获取a的邻域对象集合N中的每一个unvisited对象b,计算b的邻域对象数量,如果b的邻域对象数量不少于minPts,b为核心点,将b加入Q,以此类推,得到密度可达的核心点集合Q;
[0074] (6)创建一个新簇By,将Q中的所有对象加入簇By,遍历Q中的对象,将每个对象的邻域对象集合中的每一个unvisited对象设置为visited,并加入簇By;
[0075] (7)重复步骤(2)-(6),直到没有unvisited对象,输出簇的集合。
[0076] 基于密度的簇的集合包括多个簇,所述每个簇内包括多个原始地址。
[0077] S26、计算每个簇的坐标和名称,所述簇的坐标指簇内所有原始地址的平均坐标,所述簇的名称通过如下规则获得:
[0078] 遍历簇内所有原始地址对应的建筑物名称,查找字段最短的建筑物名称,如果该建筑物名称是簇内其他建筑物名称的子序列,该建筑物名称即为簇的名称,否则,用簇内出现次数最多的建筑物名称作为簇的名称。
[0079] S3、如果两个不同的建筑物相邻较近或一个建筑物的占地面积较大时,只进行一次密度聚类很可能会将相邻较近的不同建筑物聚为一簇或将同一建筑物分成多簇,本发明方法中改进的第一次密度聚类算法虽然可以最大程度的避免将相邻较近的不同建筑物聚为一簇,但仍然存在将同一建筑物分成多簇的问题,所以本发明方法进行了第二次密度聚类。根据名称距离严格、地理距离宽松的距离度量方法,对第一次密度聚类得到的簇进行再聚类,第二次密度聚类的距离计算公式如下:
[0080]
[0081] 其中,distancepq表示再聚类时的距离,第一次聚类后得到m个簇,Sp表示簇p的名称,Sq表示簇q的名称,p∈[1,m],q∈[1,m],geo_distancepq表示簇p与簇q的地理距离,geo_distancepq根据簇p和簇q的坐标计算。也就是说,如果两个簇的名称互不为子序列,则距离无穷大,否则距离等于地理距离。第二次密度聚类后可以得到多个超簇,本发明方法中每个超簇代表一个建筑物。
[0082] S4、通过如下规则计算超簇的名称:遍历超簇内的簇,查找字段最短的簇的名称,如果该簇的名称是超簇内其他簇的名称的子序列,该簇的名称即为超簇的名称,否则,用超簇内出现次数最多的名称作为超簇的名称。
[0083] 将超簇的名称作为该建筑物的名称,比如“世贸中心大厦”,超簇内包括的地址即为该建筑物内的地址,比如“宁海路街道山西路67号世贸中心大厦1806室”就是“世贸中心大厦”这个建筑物内的地址。
[0084] 本发明方法得出的结果可以存储在服务器中,也可以在电脑或手机等设备上显示,图3是本发明实施例中的一个显示界面,图中的左侧是基于高德地图的可视化的地址分布,右侧是以JSON格式展示聚类结果。
[0085] 本发明方法结合了地址的文本信息和地理信息,通过最小编辑距离和缩放因子计算名称距离,可以有效识别建筑物的简称和别名,通过地理距离辅助控制聚类距离,可以准确的发现位于相同建筑物内的地址,聚类后计算簇和超簇的名称,进而统一建筑物名称,可以极大的减少甚至消除简称、别名、错别字的影响,实现地址实体共指消解。
[0086] 上面结合附图对本发明的实施方式作了详细地说明,但是本发明并不局限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用