地址匹配方法及装置与流程

文档序号:17762912发布日期:2019-05-24 21:51阅读:458来源:国知局
地址匹配方法及装置与流程

本发明涉及自然语言处理领域,具体涉及一种地址匹配方法及装置。



背景技术:

地理信息是当前最常用的社会公共信息资源,与大众的日常生活紧密相关,同时,也是政府基础行政管理的基础资源。文本地址是指用文字所描述的地理位置,例如“北京市朝阳区北苑路”。地址匹配是将文本地址映射为空间中的地理位置,即地理坐标的过程。例如,用户将一个文本地址输入终端设备,终端设备返回该文本地址所描述的地理位置的经纬度坐标,从而在地图上定位到该地址。

在执行地址匹配的任务时,一般地,首先需要获取标准地址库。标准地址库中存储有大量文本地址,这些文本地址的格式比较规范,故而也称之为标准地址。每一个标准地址都对应一个地理坐标信息。然后从标准地址库中查找与待匹配的文本地址相匹配的标准地址,即目标地址,返回该目标地址的地理坐标信息。

从标准地址库中匹配出目标地址时,一般采用计算文本相似度的方法。即,分别计算待匹配的文本地址与每一个标准地址之间的文本相似度;将与待匹配的文本地址的文本相似度最高的标准地址,确定为与该待匹配的文本地址相匹配的目标地址。采用该地址匹配方法,匹配结果的准确率较低,尤其是在待匹配的文本地址不够规范,与标准地址存在较大区别的情况下。

举例来说,标准地址库中包括以下2个标准地址及其对应的地理坐标信息。

标准地址1:重庆市北碚区万达广场屈臣氏专卖店;对应的地理坐标信息1为(106.39669,29.803425)。

标准地址2:重庆市巴南区渝南大道297号万达广场屈臣氏专卖店;对应的地理坐标信息2为(106.551054,29.405288)。

待匹配的文本地址1:巴南区万达广场屈臣氏专卖店。

计算标准地址1与文本地址1的文本相似度s11,结果为0.81649。计算标准地址2与文本地址1的文本相似度s12,结果为0.77459。由于s11的值最大,故而将标准地址1确定为目标地址,进而返回该目标地址,即标准地址1对应的地理坐标信息1。

显然,尽管标准地址2与待匹配的文本地址1的文本相似度s12较小,但是实际上标准地址2才是用户期望被匹配出来的、准确的地址。因此,上述的计算文本相似度的地址匹配方法的准确率较低,这是本领域技术人员亟待解决的问题。



技术实现要素:

本申请提供一种地址匹配方法,根据地址元素的类型的优先级来逐级查询,从而较为准确地从标准地址库中匹配出目标地址,提高了地址匹配的准确率。

第一方面,提供一种地址匹配方法,包括:

切分待匹配的文本地址,得到至少一个地址元素,其中,每一个所述地址元素具有对应的地址元素类型;

根据所述地址元素类型的预设优先级,确定第一查询条件;

从标准地址库中查找得到第一查询结果,所述第一查询结果包含所有符合所述第一查询条件的标准地址;

如果所述第一查询结果中的标准地址的数量在预设的阈值范围之内,则从所述第一查询结果中筛选出目标地址,其中,所述阈值范围的下限值大于0。

结合第一方面,在第一方面第一种可能的实现方式中,所述地址元素类型包括行政区划元素、区域元素、日常元素和关键元素中的至少两个;所述地址元素类型的优先级为行政区划元素<区域元素<日常元素<关键元素。

结合第一方面的第一种实现方式,在第一方面第二种可能的实现方式中,从所述第一查询结果中筛选出目标地址的步骤,包括:

将所述第一查询结果中长度最短的标准地址确定为所述目标地址。

结合第一方面的第一种实现方式和/或第二种实现方式,在第一方面第三种可能的实现方式中,该方法还包括:

如果所述第一查询结果中的标准地址的数量高于阈值范围的上限值,则判断所述第一查询条件是否包含从所述文本地址中切分出的所有地址元素;

如果否,则根据所述地址元素类型的预设优先级,确定第二查询条件,所述第二查询条件所包含的地址元素多于所述第一查询条件所包含的地址元素;

利用所述第二查询条件从所述标准地址库中筛选出目标地址。

结合第一方面及上述任一种可能的实现方式,在第一方面第四种可能的实现方式中,该方法还包括:

如果是,则从所述第一查询结果中筛选出目标地址。

结合第一方面及上述任一种可能的实现方式,在第一方面第五种可能的实现方式中,该方法还包括:

如果所述第一查询结果为空,则将第三查询结果中与所述文本地址距离最近的标准地址,确定为目标地址;其中,所述第三查询结果包括所述第三查询结果包括标准地址库中所有符合第三查询条件的标准地址,所述第三查询条件所包含的地址元素少于所述第一查询条件所包含的地址元素。

结合第一方面及上述任一种可能的实现方式,在第一方面第六种可能的实现方式中,该方法还包括:

如果第一查询结果为空,则从标准地址库中查找出与新增元素的读音最相似的替代元素;其中,所述新增元素为第一查询条件与第三查询条件相比新增加的地址元素,所述第三查询条件所包含的地址元素少于所述第一查询条件所包含的地址元素;

将所述第一查询条件中的新增元素更新为所述替代元素,得到第四查询条件;

利用所述第四查询条件从所述标准地址库中筛选出目标地址。

结合第一方面及上述任一种可能的实现方式,在第一方面第七种可能的实现方式中,从标准地址库中查找出与新增元素的读音最相似的替代元素的步骤,包括:

获取新增元素的拼音特征;

如果一个标准元素与所述新增元素的类型相同,则利用所述新增元素的拼音特征,以及所述标准元素的拼音特征,计算所述新增元素与所述标准元素之间的余弦相似度;其中,所述标准元素为标准地址库中的标准地址所包含的地址元素;

将与所述新增元素的余弦相似度最高的标准元素确定为替代元素。

结合第一方面及上述任一种可能的实现方式,在第一方面第八种可能的实现方式中,该方法还包括:

如果第一查询结果为空,则从预设的近义词库中查找新增元素的近义词;其中,所述新增元素为第一查询条件与第三查询条件相比新增加的地址元素,所述第三查询条件所包含的地址元素少于所述第一查询条件所包含的地址元素;

将所述第一查询条件中的新增元素更新为所述近义词,得到第五查询条件;

利用所述第五查询条件从所述标准地址库中筛选出目标地址。

第二方面,提供一种地址匹配装置,包括:

处理单元,用于切分待匹配的文本地址,得到至少一个地址元素;根据所述地址元素类型的预设优先级,确定第一查询条件;从标准地址库中查找得到第一查询结果;在所述第一查询结果中的标准地址的数量在预设的阈值范围之内的情况下,从所述第一查询结果中筛选出目标地址;其中,每一个所述地址元素具有对应的地址元素类型,所述第一查询结果包含所有符合所述第一查询条件的标准地址,所述阈值范围的下限值大于0。

上述的地址匹配方法及装置,首先切分待匹配的文本地址,得到至少一个地址元素;然后根据地址元素类型的优先级确定第一查询条件,并从标准地址库中查找到相应的第一查询结果。如果第一查询结果中的标准地址数量在预设的阈值范围之内,就从第一查询结果中筛选出目标地址。由于根据地址元素类型的优先级来逐级查询,并在合理的查询结果中筛选目标地址,从而可以较为准确地匹配出目标地址,提高了地址匹配的准确率。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请地址匹配方法的具体实施方式之一的流程图;

图2为本申请地址匹配方法的具体实施方式之二的流程图;

图3为本申请地址匹配方法的具体实施方式之三的流程图;

图4为本申请地址匹配方法的具体实施方式之四的流程图;

图5为本申请地址匹配装置的具体实施方式之一的结构示意图。

具体实施方式

为解决地址匹配方法的准确率较低的问题,本申请提供一种新的地址匹配方法,从文本地址中切分出具有优先级的地址元素,然后按照地址元素类型的优先级逐级匹配,从而提高地址匹配的准确率。该地址匹配方法可以被应用在多种不同的应用场景中,例如应用在警用地理信息系统中,或者物流信息系统中等。

请参见图1,图1为本申请的地址匹配方法的其中一种实现方式的流程图。该匹配方法包括以下s100至s400的步骤。

s100:切分待匹配的文本地址,得到至少一个地址元素,其中,每一个所述地址元素具有对应的地址元素类型。

国家为了便于行政管理,根据政治、经济、民族、历史等各种因素的不同,把领土划分成大小不同、层次不等的区域,即行政区划。根据划分原则的不同,所划分出的行政区划也可能不同。一般来说,国内的行政区划至少分为三级,分别是:(一)全国分为省、自治区、直辖市;(二)省、自治区分为自治州、县、自治县、市;(三)县、自治县分为乡、民族乡、镇。此外,也有的将行政区划分为四级,层级由上至下分别为省级行政区、地级行政区、县级行政区和乡级行政区。在乡级行政区以下还可以划分村、社区、局等村级行政区,在村级行政区以下还可以划分村民小组、社区居民小组等组级行政区。

一般地,人们会采用不同级别的行政区划来表示地址。因此,文本地址中的这些表示行政区划的字符串,可以称为行政区划元素。

此外,根据应用场景的不同,文本地址中一般还可以包括比行政区划更小的区域,例如街、路、巷、道、商圈等,表示这些区域的字符串,可以称为区域元素。文本地址中还可以包括表示建筑物、机构、场所等的尾缀的字符串,例如超市、小区、宾馆、酒店、会馆、广场、大厦、大学、医院等。由于这些建筑物、机构或者场所等实体的地理位置一般相对稳定,是人们日常生活中经常接触的,故而这些字符串也可以称为日常元素。文本地址中还可以包括具有显著的标识性的字符串,例如711、屈臣氏、大悦城等,这些字符串可以称为关键元素。

因此,地址元素可以包括四种不同类型,即:行政区划元素、区域元素、日常元素和关键元素。此外,根据应用场景的不同,地址元素还可以包括其他类型,本申请对此不作限定。

一个文本地址通常会包括以上四种不同类型的地址元素中的至少一种。为了表示更加确切的地理位置,一般地,一个文本地址会包括两种或者两种以上不同类型的地址元素。

为了切分出不同类型的地址元素,在一种实现方式中,可以预先获取词库。词库中可以包括不同类型的子词库,例如行政区划词库、日常词库等。每一个子词库中包括不同的词。将子词库分别与待匹配的文本地址进行匹配,就可以从文本地址中切分出地址元素,同时,该地址元素的类型与该子词库的类型相对应。在另一种实现方式中,可以预先获取规则库。规则库中可以包括不同类型的子规则库,例如关键规则库、区域规则库等。每一个子规则库中包括不同的正则表达式。将待匹配的文本地址与子规则库中的正则表达式分别进行匹配,也可以从待匹配的文本地址中切分出地址元素,同时,该地址元素的类型与该子规则库的类型相对应。此外,在切分地址元素时,上述的不同切分方式还可以相互结合使用。

例如,行政区划词库中包括:重庆市、巴南区等。

日常词库中包括:广场、小区、专卖店等。

关键规则库中包括正则表达式1:^(.*)广场(.*)专卖店。

待匹配的文本地址1:巴南区万达广场屈臣氏专卖店。

需要说明的是,在正则表达式1中,“^”表示从字符串起始位置开始匹配。“*”表示匹配前面的子表达式任意次。“.”表示匹配任意单个字符。()表示将括号内的表达式定义为组。“^(.*)广场(.*)专卖店”表示匹配字符串起始位置和“广场”之间的任意个字符,以及匹配“广场”和“专卖店”之间的任意个字符。

在切分时,首先将行政区划词库与待匹配的文本地址1进行比对,可以从中切分出一个地址元素“巴南区”,其类型为行政区划元素。

然后将待匹配的文本地址1中剩余部分,即“万达广场屈臣氏专卖店”与日常词库进行比对,可以从中切分出两个地址元素“广场”和“专卖店”,其类型为日常元素。同时,此处可以保存这两个地址元素在待匹配的文本地址1中的位置顺序,以便后续确定查询条件的时候使用。

再将正则表达式1与“万达广场屈臣氏专卖店”匹配,可以从文本地址1中切分出两个地址元素“万达”和“屈臣氏”,其类型为关键元素。同时,此处也可以保存这两个地址元素在待匹配的文本地址1中的位置顺序,以便后续确定查询条件的时候使用。

这样,从待匹配的文本地址1中可以切分出5个地址元素,具体如下:

行政区划元素:巴南区;

日常元素:广场、专卖店;

关键元素:万达、屈臣氏。

在一般的地址匹配方法中,也可以先利用分词工具,例如结巴分词等,对文本地址进行切分,然后再计算文本地址与标准地址的相似度。但是,一方面采用分词工具切分得不够准确,容易将一个地址元素切分成多个分词;另一方面,切分出的分词也无法确定其对应的地址元素类型。故而,通过采用本申请前述的切分方法,可以较为准确地切分出地址元素,同时可以确定每一个地址元素的类型,以便于后续基于地址元素类型的优先级来匹配出目标地址。

s200:根据地址元素类型的预设优先级,确定查询条件。

s300:从标准地址库中查找得到查询结果,所述查询结果包含所有符合查询条件的标准地址;

s400:如果查询结果中的标准地址的数量在预设的阈值范围之内,则从查询结果中筛选出目标地址。

地址元素类型的优先级可以根据应用场景的不同来预先设定。例如,对于某一些应用场景,可以将前述的四种类型的地址元素的优先级设置为:行政区划元素<区域元素<日常元素<关键元素。还例如,对于另一些应用场景,可以将这四种类型的地址元素的优先级设置为:行政区划元素>关键元素>区域元素>日常元素。在确定查询条件时,可以根据地址元素类型的优先级的降序,来逐渐将地址元素增加到查询条件中,也可以根据地址元素类型的优先级的升序,来逐渐将地址元素增加到查询条件中。

举例来说,沿用前述的例子,当查询条件中仅包括关键元素时,查询条件为“屈臣氏and万达”;如果将日常元素增加到查询条件中,则新的查询条件为“屈臣氏and万达and广场and专卖店”。

需要说明的是,待匹配的文本地址中切分出的同一种类型的地址元素可能有多个,即存在多个相同优先级的地址元素。在这种情况下,在确定查询条件时,可以根据这些地址元素在待匹配的文本地址中的位置,按照从左往右或者从右往左的顺序,将地址元素逐个增加到查询条件中。

还需要说明的是,在每一个地址元素类型中,还可以划分不同的子类型,并设定不同子类型的优先级。例如,在行政区划元素中,就可以划分为省级、市级、县级、区级、乡镇级、村级等不同的子类型,可以设定其优先级为省级<市级<县级<区级<乡镇级<村级。在这种情况下,当将地址元素增加到查询条件中时,可以先根据地址元素类型的优先级,再根据同一个地址元素的不同子类型的优先级,来确定查询条件。

标准地址库中的标准地址及其对应的地理坐标信息可以来自公安机关以往累积信息数据,也可以来自百度地图等电子地图中的信息数据,还可以通过多种不同来源信息数据相互补充得到。本申请中的对标准地址库中的标准地址及其对应的地理坐标信息的来源不作限定。

根据匹配的情况不同,根据地址元素类型的优先级,确定查询条件的步骤,以及后续从标准地址库中查找得到查询结果的步骤,可能仅执行一次,也可能循环执行多次。

为了更加清楚地表述不同查询轮次中的查询条件和查询结果,可以将其中任意一次查询轮次中确定的查询条件作为第一查询条件,相应地查询结果为第一查询结果。如果该轮查询之前存在上一轮查询,则将上一轮查询的查询条件作为第三查询条件,相应地查询结果为第三查询结果。如果该轮查询之后存在下一轮查询,则将下一轮查询的查询条件作为第二查询条件,相应地查询结果为第二查询结果。

例如,沿用前述的例子,切分出的地址元素共5个。假设地址元素类型的优先级为:行政区划元素<区域元素<日常元素<关键元素;根据地址元素类型的优先级的降序,同一个类型的地址元素按照从右往左的顺序来逐个将地址元素增加到查询条件中。

如果将第一轮查询确定的查询条件视为第一查询条件,则第一查询条件为“屈臣氏”,其在标准地址库中的查询结果为第一查询结果。由于其是第一轮查询,没有上一轮查询。如果其之后存在下一轮查询,下一轮查询的查询条件,即第二查询条件为“屈臣氏and万达”,相应的查询结果为第二查询结果。

如果将第四轮查询确定的查询条件视为第一查询条件,则第一查询条件为“屈臣氏and万达and专卖店and广场”,其在标准地址库中的查询结果为第一查询结果;其上一轮查询的查询条件,即第三查询条件为“屈臣氏and万达and专卖店”,相应的查询结果为第三查询结果。如果其之后存在下一轮查询,下一轮查询的查询条件,即第二查询条件为“屈臣氏and万达and专卖店and广场and巴南区”,相应的查询结果为第二查询结果。

阈值范围可以是预设的数值范围,例如[1,5]。即如果查询结果中的标准地址的数量为1-5条,则从查询结果中筛选出一条与文本地址相匹配的目标地址。通过设定合适的阈值范围,并将查询结果与其比较判断,从而决定是否可以从当前查询轮次的查询结果中筛选出目标地址,还是重新确定新的查询条件,进入下一轮查询。阈值范围的上限不宜过大,否则后续从查询结果中筛选目标地址的准确率可能会下降。阈值范围的下限必须大于0,否则查询结果可能为空,导致无法匹配出目标地址。

例如,第一查询条件为“屈臣氏and万达and专卖店and广场and巴南区”,符合第一查询条件的第一查询结果包括2条标准地址,具体如下:

标准地址2:重庆市巴南区渝南大道297号万达广场屈臣氏专卖店。

标准地址3:重庆市巴南区渝南大道297号万达广场屈臣氏专卖店b2层101。

因此,可以从该第一查询结果中筛选出一个目标地址。在确定第一目标地址之后,该地址匹配方法中还可以包括返回所述目标地址的地理坐标信息的步骤。这里的地理坐标信息可以是天文经纬度、大地经纬度或者地心经纬度。例如,以地心经纬度来说,该地理坐标信息可以包括经度和纬度;又例如,大地经纬度来说,该地理坐标信息除了可以包括经度和纬度之外,还可以包括高度。

上述的地址匹配方法,首先切分待匹配的文本地址,得到至少一个地址元素;然后根据地址元素类型的优先级确定第一查询条件,并从标准地址库中查找到相应的第一查询结果。如果第一查询结果中的标准地址数量在预设的阈值范围之内,就从第一查询结果中筛选出目标地址。由于根据地址元素类型的优先级来逐级查询,并在合理的查询结果中筛选目标地址,从而可以较为准确地匹配出目标地址,提高了地址匹配的准确率。

从前述例子也可以看出,第一查询条件为“屈臣氏and万达and专卖店and广场and巴南区”,像标准地址1这样的地址,不符合第一查询条件,根本不会出现在第一查询结果中,故而也不会被确定为目标地址。这就避免了将与待匹配的文本地址相似度高的标准地址错误确定为标准地址的情况。

在一种实现方式中,可以将第一查询结果中长度最短的标准地址确定为目标地址。沿用前述的例子,则可以从第一查询结果中筛选出标准地址2,将其确定为目标地址。

在一般的标准地址库中,每一个标准地址所对应的地理坐标信息都有一定的有效位数。因此,多个标准地址对应的地理坐标信息可能相同,或者多个标准地址对应的地理坐标信息的差异很小。例如,“巴南区万达广场一层”和“巴南区万达广场b2层101”各自对应的地理坐标信息可能在有效位数之内完全相同。这样,无论将这些标准地址中的哪一个确定为目标地址,都可以获取到较为准确的地理坐标信息。也就是说,前述例子中的“一层”和“b2层101”等字符串,对于地理坐标信息的影响很小。因此,通过将第一查询结果中长度最短的标准地址确定为目标地址,可以快速且准确地选出与文本地址相匹配的目标地址。

可选地,如前所述,如果从文本地址中切分出类似于楼层、室号等对地理坐标信息影响很小的地址元素,可以将这些地址元素先删除,以剩下的地址元素来确定查询条件。

当一个查询轮次中查询结果所包含的标准地址的数量过多,超过了阈值范围的上限值,则可以根据地址元素类型的优先级,将更多的地址元素增加到查询条件中,从而缩小查询结果中标准地址的数量,以提升地址匹配的准确率。

在一种实现方式中,请参见图1,前述地址匹配方法还可以包括以下步骤:

s500:如果查询结果中的标准地址的数量高于阈值范围的上限值,则判断当前的查询条件是否包含从文本地址中切分出的所有地址元素;

如果否,则返回执行s200:根据地址元素类型的预设优先级,确定查询条件;

如果是,则执行s600:从当前的查询结果中筛选出目标地址。

将当前轮次的查询条件视为第一查询条件,相应的查询结果为第一查询结果。如果第一查询结果中标准地址的数量高于阈值范围的上限值,则判断第一查询条件中是否已经包含了从文本地址中切分出的所有地址元素。如果第一查询条件还没有包含所有的地址元素,即还可以将其他地址元素增加到查询条件中,以减少查询结果中标准地址的数量。因此,此时可以根据地址元素类型的优先级,重新确定查询条件。新确定的查询条件即为第二查询条件,第二查询条件中包括的地址元素多于第一查询条件中包括的地址元素。新增加到查询条件中的地址元素的数量可以是一个,也可以是多个。一般来说,可以按照优先级逐个将地址元素增加到新的一轮查询的查询条件中。

例如,沿用前述的例子,假设第四轮查询的查询条件为第一查询条件“屈臣氏and万达and专卖店and广场”,此前的四轮查询中,查询结果中的标准地址数量均大于5条。

此时,判断第一查询条件中是否包含了全部的5个地址元素。结果还有一个地址元素并未包含在第一查询条件中。根据地址元素类型的优先级,所有优先级高于行政区划元素的地址元素都已经包含在第一查询条件中。则将在行政区划元素中的“巴南区”增加到查询条件中,得到第二查询条件“屈臣氏and万达and专卖店and广场and巴南区”。

然后就可以利用第二查询条件从标准地址库中筛选出目标地址。具体来说,首先从标准地址库中查找得到与第二查询条件相应的第二查询结果;再将第二查询结果中标准地址的数量与阈值范围比较,以此判断是否可以从第二查询结果中筛选出目标地址,还是再重新确定新的查询条件。如果重新确定新的查询条件,则开始新一轮查询和判断,直到从标准地址库中筛选出目标地址,则结束。确定查询条件和判断的过程可以参考前述的s200至s600的步骤,此处不再赘述。

如果第一查询条件已经包含所有的地址元素,即已经没有其他地址元素可以被增加到查询条件中,则可以从当前的查询结果,即第一查询结果中筛选出目标地址。此时,还是可以将第一查询结果中长度最短的标准地址确定为目标地址。这种情况常常会出现在机场、火车站等热门地点。

如果标准地址库不够完善,或者待匹配的文本地址比较不规范,则即便采用前述的地址匹配方法,也可能出现匹配不到目标地址,或者匹配出的目标地址不准确的情况。

为了解决这些问题,在前述的任意一种地址匹配方法的基础上,还可以通过联想匹配法、拼音匹配法和/或近义词匹配法,来进一步地提高地址匹配的召回率和/或准确率。以下将结合三个实例来分别对这三种匹配方法作说明。

(一)联想匹配法

请参见图2,在前述的s300的步骤之后,还可以包括:

s700:如果查询结果为空,则将上一轮查询结果中与文本地址距离最近的标准地址,确定为目标地址。

将当前轮次查询的查询条件视为第一查询条件,当前的查询结果为第一查询结果;将上一轮查询的查询条件视为第三查询条件,上一轮查询结果为第三查询结果。在上一轮查询中,包括以下步骤:

根据地址元素类型的预设优先级,确定第三查询条件;

从标准地址库中查找得到第三查询结果,所述第三查询结果包含所有符合第三查询条件的标准地址。

这里确定第三查询条件和查找的过程,可以参考前述s200和s300的步骤,此处不再赘述。由于第三查询结果中的标准地址的数量高于阈值范围的上限值,故而,根据地址元素类型的预设优先级,增加地址元素到第三查询条件中,从而确定第一查询条件。

第三查询结果高于阈值范围的上限值,而第一查询结果为空,造成这种情况的其中一种原因可能是标准地址库不够完善,即标准地址库中未收录与待匹配的文本地址完全匹配的标准地址。

为此,可以将第三查询结果中与文本地址距离最近的标准地址,确定为目标地址。在一种实现方式中,该步骤可以包括:

确定新增元素的地址元素类型,所述新增元素为第一查询条件与第三查询条件相比新增加的地址元素;

如果第三查询结果中的一个标准元素与所述新增元素的类型相同,则计算所述标准元素与所述新增元素之间的距离;

将包含与所述新增元素距离最近的标准元素的标准地址,确定为目标地址。

在本申请中,标准元素为标准地址库中的标准地址所包含的地址元素,例如,在前述的标准地址1中,“重庆市”、“北碚区”、“万达”、“广场”、“屈臣氏”、“专卖店”都分别可以是一个标准元素,其中,“重庆市”、“北碚区”均为行政区划元素,“万达”、“屈臣氏”均为关键元素,“广场”、“专卖店”均为日常元素。

遍历第三查询结果中的每一条标准地址,如果一条标准地址中的一个标准元素与新增元素的类型相同,则计算该标准元素与新增元素之间的距离。在计算距离时,可以采用文本相似度来衡量距离,也可以以其他方式来衡量。

在实际生活中,同一个大区域中的不同小区域,或者同一片区域内的不同建筑物,往往会按照一定的规律来编号。编号相差较小的区域或者建筑物,其实际的地理位置往往也距离较近,相应地其地理坐标信息也往往十分接近。基于此,在一种应用场景中,如果一个标准元素和新增元素中都含有数字,则可以计算二者数字之差,以此来衡量二者之间的距离。将与新增元素的数字之差最小的标准元素,确定为与之距离最近的标准元素,进而将包含该标准元素的标准地址确定为目标地址。

举例来说,行政区划词库中所有包括不同级别的行政区划元素,具体包括贵阳市、云岩区等。

区域规则库中包括正则表达式2:.*路。

关键规则库中包括正则表达式3:\d{1,4}号。

标准地址库中包括:

标准地址4:贵阳市云岩区百花山路212号;

标准地址5:贵阳市云岩区百花山路100号。

待匹配的文本地址2:贵阳市云岩区百花山路209号。

首先,将文本地址2与行政区划词库、区域规则库和关键规则分别进行匹配,可以从中切分出4个地址元素,具体如下:

行政区划元素:贵阳市、云岩区;

区域元素:百花山路;

关键元素:209号。

假设地址元素类型的优先级为:行政区划元素>区域元素>关键元素>日常元素;根据地址元素类型的优先级的降序,同一个类型的地址元素按照从左往右的顺序来逐个增加地址元素到查询条件中;阈值范围为1-5条。

假设第三查询条件为“贵阳市and云岩区and百花山路”,第三查询结果中标准地址的数量为10条,其中包括了前述的标准地址4和标准地址5。由于第三查询结果超过阈值范围的上限值,故而根据地址元素类型的优先级,再增加一个关键元素“209号”,重新确定查询条件,即第一查询条件“贵阳市and云岩区and百花山路and209号”。利用第一查询条件到标准地址库中查找,第一查询结果为空。

此时,针对第三查询结果中的10条标准地址,从中查找既包含数字,同时类型还是关键元素的标准元素。查找到标准地址4中的标准元素“212号”和标准地址5中的标准元素“100号”。分别计算二者与新增元素“209号”的距离。“212号”与“209号”的距离为3,“100号”与“209号”的距离为109。因此,“212号”与“209号”的距离最近,将包含该标准元素的标准地址,即标准地址4确定为目标地址。

通过上述的联想匹配法,当标准地址库不够完善时,也可筛选出一个与文本地址的地理位置十分接近的目标地址。这样,一方面,可以避免采用计算相似度的方法,从而避免确定出的目标地址与文本地址相差较远,以影响地址匹配的准确率的问题;另一方面,也可以避免采用前述的地址匹配方法导致匹配不出任何目标地址,以影响地址匹配的召回率的问题。该联想匹配法尤其适合应用在关键元素或者区域元素上,因此,在采用该方法之前,可以先判断新增元素是否属于这两种类型中的任一种,如果属于,再执行前述的s700的步骤。

(二)拼音匹配法

请参见图3,在前述的s300的步骤之后,还可以包括:

s810:如果查询结果为空,则从标准地址库中查找出与新增元素的读音最相似的替代元素;其中,所述新增元素为当前查询条件与上一轮查询条件相比新增加的地址元素;

s820:将当前查询条件中的新增元素更新为所述替代元素,得到新的查询条件;返回执行s300。

如前所述,将当前轮次查询的查询条件视为第一查询条件,当前的查询结果为第一查询结果;将上一轮查询的查询条件视为第三查询条件,上一轮查询结果为第三查询结果。由于第三查询结果中的标准地址的数量高于阈值范围的上限值,故而,第一查询条件包含的地址元素必然多于第三查询条件。第一查询条件与第三查询条件相比新增加的地址元素,即为新增元素。

第三查询结果高于阈值范围的上限值,而第一查询结果为空,造成这种情况的另一种原因可能是文本地址不规范,例如,文本地址中的某个地址元素中含有读音相似的错别字等。为此,可以利用地址元素的拼音特征来纠正这些错别字,然后利用正确的地址元素所组成的查询条件,再重新进行查询。

在一种实现方式中,从标准地址库中查找出与新增元素的读音最相似的替代元素的步骤,可以包括:

获取新增元素的拼音特征向量;

如果一个标准元素与所述新增元素的类型相同,则利用所述新增元素的拼音特征向量,以及所述标准元素的拼音特征向量,计算所述新增元素与所述标准元素之间的相似度;其中,所述标准元素为标准地址库中的标准地址所包含的地址元素;

将与所述新增元素的余弦相似度最高的标准元素确定为替代元素。

一个地址元素的拼音特征,主要是指该地址元素中每一个汉字的标音字母和声调。例如,对于前述的“万达”这一关键元素,其拼音特征即为“wan4da2”,其中,声调可以采用1、2、3、4来表示,对应表示第一声、第二声、第三声、第四声。拼音特征向量是用于表示拼音特征的向量。例如,拼音特征“wan4da2”对应的拼音特征向量为[...,0.15584,0.42189,-0.21774,0.64046,0.16566,-0.06584,...]。拼音特征向量可以从事先训练好的word2vector中获取。

需要说明的是,在获取地址元素的拼音特征向量时,可以直接从word2vector中获取整个地址元素对应的拼音特征向量,也可以分别获取每一个字的标音字母和声调对应的向量,然后利用每一个字的向量计算得到整个地址元素对应的拼音特征向量。

遍历标准地址库的每一条标准地址所包含的标准元素,如果某一个标准元素与新增元素的类型相同,则利用拼音特征来计算该标准元素与新增元素之间的相似度。在计算相似度时,先获取标准元素的拼音特征向量和新增元素的拼音特征向量。然后计算两个拼音特征向量的余弦相似度,以此来衡量二者的相似程度。此外,还可以采用欧氏距离、jaccard相似系数等来衡量二者之间的相似程度。遍历完毕之后,将与新增元素的相似度最高的标准元素确定为替代元素,并将第一查询条件中的新增元素更新为所述替代元素,得到第四查询条件。

然后可以利用第四查询条件从标准地址库中筛选出目标地址。具体来说,首先从标准地址库中查找得到与第四查询条件相应的第四查询结果;再将第四查询结果中标准地址的数量与阈值范围比较,以此判断是否可以从第四查询结果中筛选出目标地址,还是再重新确定新的查询条件。如果重新确定新的查询条件,则开始新一轮查询和判断,直到从标准地址库中筛选出目标地址,则结束。具体过程可以参考前述的s200至s600的步骤,此处不再赘述。

举例来说,

标准地址库中包括有标准地址6:贵阳市云岩区百花山路粥香扑面。

对于待匹配的文本地址3:贵阳市云岩区百花山路粥香铺面。

从文本地址3中切分出的地址元素如下:

行政区划元素:贵阳市、云岩区;

区域元素:百花山路;

关键元素:粥香铺面。

假设地址元素类型的优先级为:行政区划元素>区域元素>关键元素>日常元素;根据地址元素类型的优先级的降序,同一个类型的地址元素按照从左往右的顺序来逐个增加地址元素到查询条件中;阈值范围为1-5条。

假设第三查询条件为“贵阳市and云岩区and百花山路”,第三查询结果中标准地址的数量为10条,其中包括了前述的标准地址6。由于第三查询结果超过阈值范围的上限值,故而根据地址元素类型的优先级,再增加一个关键元素“粥香铺面”,重新确定查询条件,即第一查询条件“贵阳市and云岩区and百花山路and粥香铺面”。利用第一查询条件到标准地址库中查找,第一查询结果为空。

此时,可以遍历标准地址库中所有的类型为关键元素的标准元素,计算其与新增元素“粥香铺面”之间的余弦相似度。例如,当前遍历到标准元素“粥香扑面”时,首先获取“粥香铺面”的拼音特征“zhou1xiang1pu4mian4”,以及“粥香扑面”的拼音特征“zhou1xiang1pu1mian4”。获取二者的拼音特征向量分别如下:

zhou1xiang1pu1mian4:[...,0.15984,0.85539,-0.09774,0.04046,0.13526,-0.59202,...];

zhou1xiang1pu4mian4:[…,0.38058,-0.65045,0.12360,0.35971,-0.30049,0.29482,…]。

计算这两个拼音特征向量的余弦相似度为0.93724。当遍历完毕之后,假设结果标准元素“粥香扑面”与新增元素“粥香铺面”之间的余弦相似度最大,则将该标准元素“粥香扑面”确定为替代元素。

将第一查询条件“贵阳市and云岩区and百花山路and粥香铺面”中的“粥香铺面”更新为前述的替代元素,则得到第四查询条件“贵阳市and云岩区and百花山路and粥香扑面”。然后可以利用第四查询条件从标准地址库查找得到第四查询结果。

假设第四查询结果中仅包括1条标准地址,即标准地址6。由于第四查询结果中标准地址的数量在1-5条的范围之内,故而可以直接将标准地址6确定为目标地址。最后可以返回标准地址6对应的地理坐标信息(106.724575,26.605214)。

通过上述的拼音匹配法,即便文本地址不规范,例如存在读音相似的错别字,也可以筛选出一个与文本地址相匹配的目标地址。这样,可以进一步提高地址匹配的准确率,同时,也可以减少文本地址不规范导致匹配不出任何目标地址,影响地址匹配的召回率的问题。该联想匹配法可以应用在所有类型的地址元素中,尤其适合应用在关键元素上。

(三)近义词匹配法

请参见图4,在前述的s300的步骤之后,还可以包括:

s910:如果查询结果为空,则从预设的近义词库中查找新增元素的近义词;其中,所述新增元素为当前查询条件与上一轮查询条件相比新增加的地址元素;

s920:将当前查询条件中的新增元素更新为所述近义词,得到新的查询条件;返回执行s300。

如前所述,将当前轮次查询的查询条件视为第一查询条件,当前的查询结果为第一查询结果;将上一轮查询的查询条件视为第三查询条件,上一轮查询结果为第三查询结果。由于第三查询结果中的标准地址的数量高于阈值范围的上限值,故而,第一查询条件包含的地址元素必然多于第三查询条件。第一查询条件与第三查询条件相比新增加的地址元素,即为新增元素。

第三查询结果高于阈值范围的上限值,而第一查询结果为空,造成这种情况的另一种原因可能是文本地址不规范,例如,文本地址中的某个地址元素采用的是标准元素的近义词等。为此,可以利用近义词库来找到该地址元素的近义词,通过将该地址元素替换为其近义词,重新确定查询条件,然后再重新进行查询。

近义词库中可以包括多个词组,每一个词组中包括至少两个词,同一个词组中的这至少两个词彼此互为近义词。例如,在近义词库的其中一组词组中,包括三个词:酒店、大酒店、宾馆,那么其中任一个词均是另外两个词的近义词。

从近义词库中查找新增元素的近义词,如果能够查找到,则把第一查询条件中的新增元素替换为近义词,得到第五查询条件。然后利用第五查询条件从标准地址库中筛选出目标地址,具体可以参考前述联想匹配法、拼音匹配法,以及s200至s600步骤的相关描述,此处不再赘述。

需要说明的是,在近义词库中可能查找到新增元素的多个近义词,此时,可以将每一个近义词分别替换第一查询条件中的新增元素,从而得到多个相应的第五查询条件。在一种实现方式中,可以分别利用这多个第五查询条件来查询,最终选取一个目标地址。在另一种实现方式中,也可以依次利用这多个第五查询条件来查询,一旦筛选出一个目标地址,就停止查询,不再利用剩余的第五查询条件来继续查询。

举例来说,

标准地址库中包括有标准地址7:贵阳市延安中路88号紫林庵人才市场。

待匹配的文本地址4:贵阳市紫林庵人才大市场。

从文本地址4中切分出的地址元素如下:

行政区划元素:贵阳市;

日常元素:大市场;

关键元素:紫林庵。

假设地址元素类型的优先级为:关键元素>日常元素>区域元素>行政区划元素;根据地址元素类型的优先级的降序,同一个类型的地址元素按照从右往左的顺序来逐个增加地址元素到查询条件中;阈值范围为1-5条。

第三查询条件为“紫林庵”,第三查询结果中标准地址的数量为50条,其中包括了前述的标准地址7。由于第三查询结果超过阈值范围的上限值,故而根据地址元素类型的优先级,再增加一个日常元素“大市场”,重新确定查询条件,即第一查询条件“紫林庵and大市场”。利用第一查询条件到标准地址库中查找,第一查询结果为空。然后在近义词库中查找新增元素“大市场”的近义词,查找到“市场”。以“市场”替换新增元素,得到第五查询条件“紫林庵and市场”。以第五查询条件查询,假设第五查询结果1中仅包含标准地址7这一个标准地址,则将标准地址7确定为目标地址。

通过上述的近义词匹配法,即便文本地址不规范,例如以标准元素的近义词来表述一个地址元素,也可以筛选出一个与文本地址相匹配的目标地址。这样,可以进一步提高地址匹配的准确率,同时,也可以减少文本地址不规范导致匹配不出任何目标地址,影响地址匹配的召回率的问题。该近义词匹配法可以应用在所有类型的地址元素中,尤其适合应用在关键元素或者日常元素上。

需要说明的是,上述的三种改进的匹配方法可以单独应用在前述的基于优先级匹配的方法中,也可以相互结合应用在前述的基于优先级匹配的方法中,本申请对此不作限定。

在本申请的第二个实施例中,请参考图5,提供一种地址匹配装置,包括:

处理单元1,用于切分待匹配的文本地址,得到至少一个地址元素;根据所述地址元素类型的预设优先级,确定第一查询条件;从标准地址库中查找得到第一查询结果;在所述第一查询结果中的标准地址的数量在预设的阈值范围之内的情况下,从所述第一查询结果中筛选出目标地址;其中,每一个所述地址元素具有对应的地址元素类型,所述第一查询结果包含所有符合所述第一查询条件的标准地址,所述阈值范围的下限值大于0。

可选地,所述地址元素类型包括行政区划元素、区域元素、日常元素和关键元素中的至少两个;所述地址元素类型的优先级为行政区划元素<区域元素<日常元素<关键元素。

可选地,处理单元1还用于将所述第一查询结果中长度最短的标准地址确定为所述目标地址。

可选地,处理单元1还用于在所述第一查询结果中的标准地址的数量高于阈值范围的上限值的情况下,判断所述第一查询条件是否包含从所述文本地址中切分出的所有地址元素;在所述第一查询条件没有包含从所述文本地址中切分出的所有地址元素的情况下,根据所述地址元素类型的预设优先级,确定第二查询条件;以及,利用所述第二查询条件从所述标准地址库中筛选出目标地址;其中,所述第二查询条件所包含的地址元素多于所述第一查询条件所包含的地址元素。

可选地,处理单元1还用于在所述第一查询条件包含从所述文本地址中切分出的所有地址元素的情况下,从所述第一查询结果中筛选出目标地址。

可选地,处理单元1还用于在所述第一查询结果为空的情况下,将第三查询结果中与所述文本地址距离最近的标准地址,确定为目标地址;其中,所述第三查询结果包括所述第三查询结果包括标准地址库中所有符合第三查询条件的标准地址,所述第三查询条件所包含的地址元素少于所述第一查询条件所包含的地址元素。

可选地,处理单元1还用于在第一查询结果为空的情况下,从标准地址库中查找出与新增元素的读音最相似的替代元素;将所述第一查询条件中的新增元素更新为所述替代元素,得到第四查询条件;以及,利用所述第四查询条件从所述标准地址库中筛选出目标地址;其中,所述新增元素为第一查询条件与第三查询条件相比新增加的地址元素,所述第三查询条件所包含的地址元素少于所述第一查询条件所包含的地址元素。

可选地,该地址匹配装置还包括获取单元2,用于获取新增元素的拼音特征;

处理单元1还用于在一个标准元素与所述新增元素的类型相同的情况下,利用所述新增元素的拼音特征,以及所述标准元素的拼音特征,计算所述新增元素与所述标准元素之间的余弦相似度;以及,将与所述新增元素的余弦相似度最高的标准元素确定为替代元素;其中,所述标准元素为标准地址库中的标准地址所包含的地址元素。

可选地,处理单元1还用于在第一查询结果为空的情况下,从预设的近义词库中查找新增元素的近义词;将所述第一查询条件中的新增元素更新为所述近义词,得到第五查询条件;以及,利用所述第五查询条件从所述标准地址库中筛选出目标地址。其中,所述新增元素为第一查询条件与第三查询条件相比新增加的地址元素,所述第三查询条件所包含的地址元素少于所述第一查询条件所包含的地址元素。

此外,本实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第一个实施例中的任一种地址匹配方法的部分或全部步骤。

这里的可读存储介质可为磁碟、光盘、dvd、usb、只读存储记忆体(rom)或随机存储记忆体(ram)等,本申请对具体的存储介质形式不作限定。

地址匹配装置以及计算机可读存储介质用于执行第一个实施例中的任一种方法的部分或全部步骤,相应地具有前述方法所具有的有益效果,此处不再赘述。

应理解,在本申请的各种实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成限定。

除非另外说明,本说明书中的“多个”,指的是两个或者两个以上。此外,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解,“第一”、“第二”等字样并不对数量和执行次序构成限定,并且“第一”、“第二”等字样也并不限定一定不同。

应理解,本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于地址匹配装置、计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1