对地理地址进行标准化的方法和装置与流程

文档序号:18193246发布日期:2019-07-17 05:41阅读:1978来源:国知局
对地理地址进行标准化的方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种对地理地址进行标准化的方法和装置。



背景技术:

对用户的地理地址进行统计、分析和挖掘,可以获得诸多具有较高的商业价值的数据信息。由于用户的地理地址信息往往是用户自己输入详细地址,而每个人对同一地址的理解可能不同,因此对于相同的地址,用户输入的内容往往不是统一的,其格式也是千差万别,并且有些人为了避免被风控规则拦截,会人为的在填写的详细地址中加入噪音,从而导致相同地址可能会存在非常多形式的地址串,为地址的识别带了诸多困难,使得后续做地址维度的分析以及设计地址维度的指标的难度增加。

因此,在获取并识别用户的地理地址的过程中,需要对用户输入的地理地址进行标准化,将用户输入的地理地址转换为定义的标准形式。目前,对地理地址进行标准化是通过基于规则的方法来进行的,该方法基于地址层级规则,将地址分级划分为省、市、区、街道、城、栋、单元,然后分词获得最终的标准化结果。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有技术的标准化方法适用性、准确性和处理效率较低,对于地理地址中存在的一些异常情况,使用现有技术的标准化方法,则需要为每一种异常情况都额外添加特殊规则才能标准化地址,这往往需要很多的人工介入操作及规则设置,造成极大的资源浪费。



技术实现要素:

有鉴于此,本发明实施例提供一种对地理地址进行标准化的方法和装置,具有较高的准确性和处理效率,且适用性广。

为实现上述目的,根据本发明实施例的一个方面,提供了一种对地理地址进行标准化的方法,包括:

接收一待处理地理地址;

在预定义的标准化地址库中查找与该待处理地理地址相似度最高的标准地址作为第一标准地址,相应的相似度作为第一相似度,当所述第一相似度大于预定的第一阈值,则确定该第一标准地址是所述待处理地理地址的标准化地址。

本发明实施例提供的对地理地址进行标准化的方法,还包括:

当所述第一相似度不大于预定的第一阈值,则生成所述待处理地理地址的地址向量;

在所述标准化地址库对应的标准地址向量库中查找与所述待处理地理地址相似度最高的标准地址向量,相应的相似度作为第二相似度,当所述第二相似度大于预定的第二阈值,则确定所查找的标准地址向量对应的第二标准地址是所述地理地址的标准化地址。

本发明实施例提供的对地理地址进行标准化的方法,还包括:

当所述第二相似度不大于所述第二阈值,且所述第一相似度和所述第二相似度的加权平均值大于预定的第三阈值,则确定所述第一相似度和所述第二相似度中较大者对应的标准地址是所述待处理地理地址的标准化地址。

进一步的,标准化地址库通过下述步骤获得:

接收样本地理地址集;

对样本地理地址集进行预处理;

基于地址词典读取所述地理地址集中的地理地址的地址键码及相应层级,并基于地址键码的层级去除其中不符合层级要求的地址键码,获得该地理地址的由所述地址键码分隔的层级标准化地址,从而得到由所述层级标准化地址组成的标准化地址库。

进一步的,生成所述待处理地理地址的地址向量包括:

在所述标准化地址库对应的词向量库中查找获得所述待处理地理地址的地址词对应的词向量;

根据所述待处理地理地址对应的词向量,基于预设的分层级地址词词典,通过词袋方式生成所述待处理地理地址的地址向量。

进一步的,所述词向量库通过下述步骤获得:

把所述标准化地址库中的所有地理地址的地址词转换成词向量,词向量的值是对应地址词的权重系数,所述权重系数是基于该地址词的上下文语义分配的,从而获得所述标准化地址库对应的词向量库。

进一步的,所述地址向量库通过下述步骤获得:

根据所述标准化地址库中的地理地址对应的词向量,基于预设的分层级地址词词典,通过词袋方式生成所述标准化地址库中的地理地址的地址向量,从而获得由地址向量组成的地址向量库。

进一步的,所述预设的分层级地址词词典是按照地址层级分层的多维向量,其中每一层表示一个地址层级且具有多个维度,每一层中包含有标准化地址库中存在的该层对应的地址层级的所有地址词种类,每一个地址词种类用该层级的一个维度表示。

进一步的,在所述地址向量库中,每个地址向量对应有n个记录,其中该n个记录的主键分别与该地址向量所对应的地址的n级地址表示相对应,n小于等于地址的层级数,在n级地址表示中,第1级地址表示为地址本身,其后每一级地址表示为去除其上一级地址表示中最高的层级序号对应的层级地址词所余下的地址,

在所述标准化地址库对应的标准地址向量库中查找与所述待处理地理地址相似度最高的标准地址向量包括:

在标准地址向量库中用所述待处理地理地址的n级地址表示逐级查找对应主键,直至找到相对应的主键并获取其所对应的记录中的地址向量,然后计算该地址向量与待处理地理地址的地址向量的相似度。

进一步的,所述第一标准地址是基于所述标准化地址库对应的倒排索引查找获得的,所述倒排索引是基于所述标准化地址库中的所有地理地址的地址词组成的地址词串建立的。

进一步的,接收所述待处理地理地址还包括:对所述待处理地理地址进行预处理,

其中,所述预处理包括简繁转换、全角半角转换、去除标点符号以及去除特殊字符,

其中,当所述待处理地理地址用汉语表示,所述预处理还包括对所述待处理地理地址进行分词获得其对应的地址词。

为实现上述目的,根据本发明实施例的另一个方面,提供了一种对地理地址进行标准化的装置,包括:

接收模块,用于接收一待处理地理地址;

搜索模块,用于在预定义的标准化地址库中查找与该待处理地理地址相似度最高的标准地址作为第一标准地址,相应的相似度作为第一相似度,当所述第一相似度大于预定的第一阈值,则确定该第一标准地址是所述待处理地理地址的标准化地址。

本发明实施例提供的对地理地址进行标准化的装置,还包括:

向量匹配模块,用于当所述第一相似度不大于预定的第一阈值,则生成所述待处理地理地址的地址向量,在所述标准化地址库对应的标准地址向量库中查找与所述待处理地理地址相似度最高的标准地址向量,相应的相似度作为第二相似度,当所述第二相似度大于预定的第二阈值,则确定所查找的标准地址向量对应的第二标准地址是所述地理地址的标准化地址。

本发明实施例提供的对地理地址进行标准化的装置,还包括:

输出模块,用于当所述第二相似度不大于所述第二阈值,且所述第一相似度和所述第二相似度的加权平均值大于预定的第三阈值,则确定所述第一相似度和所述第二相似度中较大者对应的标准地址是所述待处理地理地址的标准化地址。

本发明实施例提供的对地理地址进行标准化的装置,还包括:

第一配置模块,用于通过下述步骤获得标准化地址库:

接收样本地理地址集;

对样本地理地址集进行预处理;

基于地址词典读取所述地理地址集中的地理地址的地址键码及相应层级,并基于地址键码的层级去除其中不符合层级要求的地址键码,获得该地理地址的由所述地址键码分隔的层级标准化地址,从而得到由所述层级标准化地址组成的标准化地址库。

进一步的,所述向量匹配模块进一步用于在所述标准化地址库对应的词向量库中查找获得所述待处理地理地址的地址词对应的词向量,然后根据所述待处理地理地址对应的词向量,基于预设的分层级地址词词典,通过词袋方式生成所述待处理地理地址的地址向量。

本发明实施例提供的对地理地址进行标准化的装置,还包括:

第二配置模块,用于通过下述步骤获得所述词向量库:

把所述标准化地址库中的所有地理地址的地址词转换成词向量,词向量的值是对应地址词的权重系数,所述权重系数是基于该地址词的上下文语义分配的,从而获得所述标准化地址库对应的词向量库。

本发明实施例提供的对地理地址进行标准化的装置,还包括:

第三配置模块,用于通过下述步骤获得所述地址向量库:

根据所述标准化地址库中的地理地址对应的词向量,基于预设的分层级地址词词典,通过词袋方式生成所述标准化地址库中的地理地址的地址向量,从而获得由地址向量组成的地址向量库。

进一步的,在所述地址向量库中,每个地址向量对应有n个记录,其中该n个记录的主键分别与该地址向量所对应的地址的n级地址表示相对应,n小于等于地址的层级数,在n级地址表示中,第1级地址表示为地址本身,其后每一级地址表示为去除其上一级地址表示中最高的层级序号对应的层级地址词所余下的地址,

所述向量匹配模块进一步用于在标准地址向量库中用所述待处理地理地址的n级地址表示逐级查找对应主键,直至找到相对应的主键并获取其所对应的记录中的地址向量,然后计算该地址向量与待处理地理地址的地址向量的相似度。

进一步的,所述搜索模块进一步用于基于所述标准化地址库对应的倒排索引查找获得所述第一标准地址,所述倒排索引是基于所述标准化地址库中的所有地理地址的地址词组成的地址词串建立的。

进一步的,所述接收模块进一步用于对所述待处理地理地址进行预处理,其中,所述预处理包括简繁转换、全角半角转换、去除特殊字符,其中,当所述待处理地理地址用汉语表示,所述预处理还包括对所述待处理地理地址进行分词获得其对应的地址词。

为实现上述目的,根据本发明实施例的另一个方面,提供了一种对地理地址进行标准化的电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的对地理地址进行标准化的方法。

为实现上述目的,根据本发明实施例的另一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的对地理地址进行标准化的方法。

本发明实施例提供的对地理地址进行标准化的方法和装置,通过搜索引擎对待处理地理地址进行匹配获得标准化地址,当匹配结果不满足要求时,则通过地址向量进行匹配标准化地址,相对于现有技术的标准化方法,本发明方法可以有效地标准化带有错别字,多余字符以及同义词等特殊情况的地址,具有较高的准确性和处理效率,且适用性广。并且本发明方法将两种匹配方式集成,通过地址向量匹配,弥补搜索引擎匹配的不足,进一步提高了匹配的准确率。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是本发明实施例提供的对地理地址进行标准化的方法的流程示意图;

图2是本发明实施例提供的对地理地址进行标准化的方法的一种具体的实施方式的流程示意图;

图3是本发明实施例提供的对地理地址进行标准化的方法的离线配置过程的流程示意图;

图4是本发明实施例提供的对地理地址进行标准化的方法的应用流程示意图;

图5是本发明实施例提供的对地理地址进行标准化的装置的示意图;

图6是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本发明实施例提供一种对地理地址进行标准化的方法,如图1所示,该方法包括:步骤s101和步骤s102。

首先,在步骤s101中,接收一待处理地理地址。然后,在步骤s102中,在预定义的标准化地址库中查找与该待处理地理地址相似度最高的标准地址作为第一标准地址,相应的相似度作为第一相似度,当第一相似度大于预定的第一阈值,则确定该第一标准地址是待处理地理地址的标准化地址。

其中,标准化地址库是在本发明提供的离线配置过程中创建的,该离线配置过程将在本发明实施例的后续内容中做详细介绍。标准化地址库中包含有搜集的大量标准地理地址,这些标准地理地址是通过将所搜集的原始地理地址进行规范化层级处理获得的。

在本发明中,步骤s101接收待处理地理地址还包括:对待处理地理地址进行预处理,其中,预处理包括:简繁转换、全角半角转换、去除标点符号以及去除特殊字符等处理过程,当待处理地理地址用汉语表示时,预处理还包括对待处理地理地址进行分词获得其对应的地址词。

在本发明中,分词工具可以采用ansj分词工具,分词采用的分词词库可以通过对权威的地址词库进行爬取或解析获得,并还可以将爬取或解析获得的原始地址结合具体的需求(例如依照用户填写地址的习惯)转换为特定的地址格式,进而组成分词词库。本发明在构建分词词库时,选取权威的地址词库进行构建,以确保基于构建的分词词库进行分词能够尽量准确,进而保证对于汉语地理地址后续进行的标准化处理的准确性。

在步骤s102中,通过搜索引擎在标准化地址库中查找与接收的地理地址最相似的地理地址,搜索引擎返回最相似的第一标准地址和其相应的第一相似度,第一阈值可以是通过相应算法与数据验证得到经验阈值,其通常为小于等于1且大于等于0的小数值,当第一相似度大于第一阈值,即可认为该第一标准地址满足匹配要求,确定该第一标准地址为待处理地理地址的标准化地址进行输出。搜索引擎通过词频-逆向文件频率(tf-idf)的方式为地理地址加权,使得通过搜索引擎在搜索最相似的第一标准地址时,能够很好的考虑到词频因素,返回结果比较符合实际情况,且整个过程快速高效。其中,搜索引擎可以采用分布式多用户能力的全文搜索引擎elasticsearch来实现。

如图2所示,作为一种具体的实施方式,本发明实施例提供的对地理地址进行标准化的方法还包括:步骤s103。当第一相似度不大于预定的第一阈值,则执行步骤103,首先,生成待处理地理地址的地址向量,然后,在标准化地址库对应的标准地址向量库中查找与待处理地理地址相似度最高的标准地址向量,相应的相似度作为第二相似度,当第二相似度大于预定的第二阈值,则确定所查找的标准地址向量对应的第二标准地址是地理地址的标准化地址。

标准化地址库对应的标准地址向量库是在本发明提供的离线配置过程中创建的,其中包含了标准化地址库中的所有标准地址的地址向量。在步骤s103中,将待处理的地理地址的地址向量与地址向量库中的地址向量进行匹配,从而得到基于地址向量匹配的最相似的第二标准地址,当第二相似度大于第二阈值,即可认为该第二标准地址满足匹配要求,确定该第二标准地址为待处理地理地址的标准化地址进行输出。其中,标准地址向量库中的地址向量基于地址词的上下文语义构建的。使得通过地址向量匹配最相似的第一标准地址时,能够很好的考虑到上下文语义,返回结果较为准确。

本发明中,步骤s102通过搜索引擎对待处理地理地址进行匹配,当匹配结果不满足要求时,则步骤s103通过地址向量进行匹配,结合两种匹配方式,通过考虑到上下文语义的地址向量匹配方式,弥补基于词频的搜索引擎匹配方式可能存在的不足,提高匹配的准确率。

由于通过搜索引擎进行匹配较之通过地址向量进行匹配的处理计算量较小,处理速度较快,因此,在本发明中,对于接收的待处理地理地址先进行基于搜索引擎的匹配,当结果不满足要求时,才通过地址向量进行匹配,从而在保证匹配的准确率的同时,尽可能的提高匹配的速度。

当然,由于通过搜索引擎进行匹配和通过地址向量进行匹配是两个相对独立的过程,在本发明的其他实施方式中,也可以先通过地址向量进行匹配,当匹配结果不满足要求时,再通过搜索引擎进行匹配。又或者,上述两种匹配方式也可以并行执行。

本发明实施例提供的对地理地址进行标准化的方法还包括:步骤s104。当第二相似度不大于第二阈值,且第一相似度和第二相似度的加权平均值大于预定的第三阈值,执行步骤s104。在步骤s104中确定第一相似度和第二相似度中较大者对应的标准地址是待处理地理地址的标准化地址。在本步骤中,第一相似度和第二相似度的权值可以通过逻辑回归logisticregression模型学习得到,逻辑回归模型学习上述两种匹配方式得到对应的第一相似度和第二相似度的重要性,将该重要性作为两者的权值。

在本发明中,第一阈值、第二阈值和第三阈值可以是通过相应算法与数据验证得到经验阈值,其通常为小于等于1且大于等于0的小数值。

步骤s104在步骤s102和步骤s103的结果都不满足要求时,对两个结果的相似度进行进一步的衡量,并输出满足相应要求的结果作为待处理地理地址的标准地址,以尽可能的扩大能够标准化的地理地址的范围。

如图3所示,本发明提供的离线配置过程中包括:创建标准化地址库,创建标准化地址库对应的词向量库和地址向量库,创建标准化地址库的倒排索引,以及创建分词词库。

在该离线配置过程中,通过下述步骤获得标准化地址库:首先,接收样本地理地址集,样本地理地址集可以通过搜集一定时期内的地址获得,例如,搜集半年内用户在电商网站输入的收获地址作为样本地理地址集。

然后,对样本地理地址集进行预处理,其中,预处理包括:简繁转换、全角半角转换、去除标点符号以及去除特殊字符等处理过程。

对于预处理后的样本地理地址,基于地址词典读取地理地址集中的地理地址的地址键码及相应层级。其中地址词典由地址键码及对应层级序号构成。以中国的地址词典为例,可以根据如下表1所示的中国地址层级键码表以及特定的地理地址样本,获取对应的地址词典。

表1

根据上表1中国地址层级键码表以及特定的地理地址样本可以抽取获得对应的地址词典:“省市县区镇村单路段期街苑城园院场道巷号座组楼室厦幢弄寓栋房门庙局店铺桥山河收观层站所…”,其中每个地址键码具有相应的层级序号。

基于地址词典读取样本地理地址集中的地理地址的地址键码及相应层级。例如,一样本地理地址为“浙江省杭州市上城区望江街道凤凰城a栋b单元xxx”,基于地址词典读取其地址键码及相应层级为:“省[2]市[234]城[7]区[248]街道[6]城[7]栋[8]单元[8]”,其中,省市城…为地址键码,括号[]中的数字为对应的层级序号。

之后,基于地址键码的层级去除其中不符合层级要求的地址键码,获得该地理地址的由地址键码分隔的层级标准化地址,从而得到由层级标准化地址组成的标准化地址库。如上例,由于规范的地址层级只能为从小到大,即1至9依次增大,所以市层级取值2和4不符合要求,保留值3,城层级取值为7,不符合要求,合并到区名,区层级取值2和8不符合要求,保留层级4。在将不符合要求的地址键码去除后,得到符合层级要求的地址键码“省[2]市[3]区[4]街道[6]城[7]栋[8]单元[8]”,并获得该地理地址的由地址键码分隔的层级标准化地址:“浙江省杭州市上城区望江街道凤凰城2栋4单元201”,其中空格表示由地址键码分隔。

在构建标准化地址库的过程中进行上述地址层级标准化主要目的是解析样本地址的层级以及去除噪音,若样本地址本身是规范化的,其规范化后的输出结果是不变的。

当待匹配的地理地址和相应的标准化地址库用汉语表示时,离线配置过程中还包括:创建分词词库,分词结果的好坏依赖于于词库的搜集,因此为使地址分词能够尽量准确,本发明对权威的地址词库进行爬取或解析,并将获得地址内容转换为符合用户习惯的地址格式,例如地址“a庄村民委员会”,由于通常用户在填写村一级地址时习惯填写a村,而不是a村民委员会,所以在创建分词词库时把“a庄村民委员会”转换为“a庄村”,使其更符合用户习惯,从而在基于该分词词库进行分词时,得到分词结果更为准确。

在分词词库创建完成后,基于该分词词库对标准化地址库中的地址进行分词,得到地址对应的地址词,分词工具可以采用ansj分词工具。

分词完成后,基于标准化地址库中的所有地理地址的地址词组成的地址词串利用搜索引擎建立标准化地址库的倒排索引,形成用于在线匹配的倒排索引库。搜索引擎可以采用分布式多用户能力的全文搜索引擎elasticsearch来实现。

离线配置过程中还包括:创建词向量库,词向量库通过下述步骤获得:

利用将单词转换为向量形式的工具把标准化地址库中的所有地理地址的地址词转换成词向量,并将词向量保存至数据库中,从而获得标准化地址库对应的词向量库。所利用的将单词转换为向量形式的工具可以采用word2vec工具,将地址词输入word2vec工具进行训练后,得到每个地址词的权重系数,词向量的值是地址词的权重系数,该权重系数是word2vec工具基于该地址词的上下文语义分配的。

如上例,地址词“浙江省”、“杭州市”、“上城区”经过word2vec模型训练过后,得到如下的词向量:浙江省:0.98、杭州市:0.83、上城区:0.88,其中冒号后面的数值代表对应词的词向量。将上述地址词和词向量以键值对的形式保存在数据库中。

离线配置过程中还包括:创建地址向量库,地址向量库通过下述步骤获得:

根据标准化地址库中的地理地址对应的词向量,以及预设的分层级地址词词典,通过词袋方式生成标准化地址库中的地理地址的地址向量,从而获得由地址向量组成的地址向量库。

在创建地址向量库前,先需创建分层级地址词词典,该分层级地址词词典是一个按照地址层级分层的多维向量,其中每一层表示一个地址层级且具有多个维度,每一层中包含有标准化地址库中存在的该层对应的地址层级的所有地址词种类,每一个地址词种类用该层级的一个维度表示。例如在一个中国地理地址的标准化地址库中,省一级地址层级的地址词有50种,市一级地址层级的地址词有200种,区一级地址层级的地址词有500种,镇一级地址层级的地址词有1000种,小区一级地址层级的地址词有5000种,则在该标准化地址库对应的分层级地址词词典中,省对应的层级用50维向量表示,市对应的层级用200维向量表示,区对应的层级用500维向量表示,镇对应的层级用1000维向量表示,小区对应的层级用5000维向量表示,所以该词典大小就是6750(50+200+500+1000+5000)维度大小。

对应上例,若标准化地址库中省一级地址层级的地址词的种类包含有“浙江省”、“河北省”、“山东省”…,则在其对应的分层级地址词词典中省对应的层级的维度属性值即为上述地址词种类按照序号排列(浙江省,河北省,山东省,…)。

通过词袋方式生成地址向量具体为:根据标准化地址库中的地理地址对应的地址词和词向量,确定该地理地址的所有地址词在分层级地址词词典中的位置(维度),然后构建该地理地址的地址向量,其地址向量与分层级地址词词典的层级和维度相同,并在其地址词对应的维度处,用该地址词的词向量的值表示,其余维度设置为0。对应上例,若某一地理地址的省一级地址层级的地址词为“山东省”词向量为“0.77”,“山东省”在分层级地址词词典中的序号为3,则其地址向量中省对应的层级的向量即为(0,0,0.77,…),其他层级的向量以此类推,得到一个6750维大小的稀疏向量。

将构建好的标准化地址库中的地理地址和与其对应的地址向量以键值对的形式保存在数据库中,从而形成由地址向量组成的地址向量库。

在本发明中,为了避免在本发明方法提供的基于向量进行匹配的过程中需要在数据库中进行全表扫描,在离线配置过程中将地址向量库中多个层级化地址前缀作为主键保存。

在地址向量库中,地址向量对应有n个记录,其中该n个记录的主键分别对应地址的n级地址表示,n小于等于地址的层级数,在n级地址表示中,第1级地址表示为地址本身,其后每一级地址表示为其上一级地址表示去除其中最高的层级序号对应的层级地址词所余下的地址,其中,去除的最高的层级序号对应的层级地址词不限于一个。

例如,一地理地址:浙江省杭州市a区b街道c城2栋4单元2号。其对应地址向量为:addressvec。在本发明中,将该地理地址和其地址向量保存通过hbase数据库保存。

在hbase数据库存储5条记录,hbase存储格式为:<主键(rowkey),addressvec>。该五条记录分别为:

<rowkey1,addressvec>;

<rowkey2,addressvec>;

<rowkey3,addressvec>;

<rowkey4,addressvec>;

<rowkey5,addressvec>。

其中,rowkey1存储:hash(浙江省杭州市a区b街道c城2栋4单元2号)+“_”+hash(addressvec),其中,“_”为拼接符,哈希hash是把地址和向量值转换为数字表示的函数。即主键rowkey1对应的第1级地址表示为“浙江省杭州市a区b街道c城2栋4单元2号”。

rowkey2存储:hash(浙江省杭州市a区b街道c城2栋4单元)+”_”+hash(addressvec),即主键rowkey2对应的第2级地址表示为“浙江省杭州市a区b街道c城2栋4单元”,较之第1级地址表示去除了最高的层级序号对应的层级地址词“2号”,以下主键以此类推,不再赘述。

rowkey3存储:hash(浙江省杭州市a区b街道c城2栋)+“_”+hash(addressvec);

rowkey4存储:hash(浙江省杭州市a区b街道c城)+“_”+hash(addressvec);

rowkey5存储:hash(浙江省杭州市a区b街道)+“_”+hash(addressvec)。

步骤s103在标准化地址库对应的标准地址向量库中查找与待处理地理地址相似度最高的标准地址向量具体包括:

用待处理地理地址的n级地址表示逐级查找相对应的主键,直至获得该主键所对应的地址向量,并计算该地址向量与待处理地理地址的地址向量的相似度,n小于等于地址的层级数,在n级地址表示中,第1级地址表示为待处理地理地址本身,其后每一级地址表示为其上一级地址表示去除其中最高的层级序号对应的层级地址词所余下的地址,其中,去除的最高的层级序号对应的层级地址词不限于一个。

对应于上例,若待处理地址为:浙江省杭州市a区b街道c城2栋5单元,在进行地址向量匹配时,首先通过该地址查询hbase数据库,在查询过程中会先将该地址转换为hash(浙江省杭州市a区b街道c城2栋5单元,即待处理地址的第1级地址表示),查询出rowkey中包含该hash值前缀的所有记录作为最相似的地址对应的记录,从这些记录中取出地址向量进行相似度计算;

若不包含该hash值前缀,则查询出rowkey中包含hash(浙江省杭州市a区b街道c城2栋,即待处理地址的第2级地址表示)前缀的所有记录,以此类推直至找到最相似的地址,否则表示没有相似地址。

如图4所示,对应于上述离线配置过程,在本发明提供的对地理地址进行标准化的方法应用于电商领域对用户输入的中文地址进行标准化的应用场景中,实时接收用户输入的订单地址数据流,从中获取待处理地理地址,对待处理地理地址进行繁体转换为简体、全角转换为半角、去除标点符号及特殊字符等预处理操作。

然后,将待处理地理地址通过ansj分词工具基于离线配置的分词词库进行分词,基于待处理地理地址的地址词利用搜索引擎elasticsearch进行搜索,通过标准化地址库对应的倒排索引查找获得的标准化地址库中与待处理地理地址最相似的第一标准地址和其第一相似度,当第一相似度大于预定的第一阈值,则确定该第一标准地址是待处理地理地址的标准化地址并输出。

当第一相似度不大于预定的第一阈值,则生成待处理地理地址的地址向量,其中,生成待处理地理地址的地址向量包括:在离线配置过程中构建的标准化地址库对应的词向量库中查找获得待处理地理地址的地址词对应的词向量,即查找词向量库中与待处理地理地址的地址词相同的地址词,将该相同的地址词对应的词向量作为待处理地理地址的词向量,然后根据词向量和分层级地址词词典获得待处理地理地址的地址向量。该生成地理地址向量的过程与离线配置过程中构建标准化地址库中的地址的地址向量的过程相同,在此不再赘述。

然后,在标准化地址库对应的标准地址向量库中查找同地址前缀的地址向量,利用余弦相似度进行相似度比较,计算出向量空间上的相似度,从而表示文本语义上的相似度。找到与待处理地理地址相似度最高的标准地址向量,相应的相似度作为第二相似度,当第二相似度大于预定的第二阈值,则确定所查找的标准地址向量对应的第二标准地址是地理地址的标准化地址并输出。

当第二相似度不大于第二阈值,且第一相似度和第二相似度的加权平均值大于预定的第三阈值,则确定第一相似度和第二相似度中较大者对应的标准地址是待处理地理地址的标准化地址,否则对待处理地理地址进行基于规则的标准化流程。

本发明实施例提供的对地理地址进行标准化的方法,通过搜索引擎对待处理地理地址进行匹配获得标准化地址,当匹配结果不满足要求时,则通过地址向量进行匹配标准化地址,相对于现有技术的标准化方法,本发明方法可以有效地标准化带有错别字,多余字符以及同义词等特殊情况的地址,具有较高的准确性和处理效率,且适用性广。并且本发明方法将两种匹配方式集成,通过地址向量匹配,弥补搜索引擎匹配的不足,进一步提高了匹配的准确率。

本发明实施例还提供一种对地理地址进行标准化的装置,如图5所示,该装置500包括:

接收模块501,用于接收一待处理地理地址;

搜索模块502,用于在预定义的标准化地址库中查找与该待处理地理地址相似度最高的标准地址作为第一标准地址,相应的相似度作为第一相似度,当第一相似度大于预定的第一阈值,则确定该第一标准地址是待处理地理地址的标准化地址。

本发明实施例还提供的对地理地址进行标准化的装置,还包括:向量匹配模块,向量匹配模块用于当第一相似度不大于预定的第一阈值,则生成待处理地理地址的地址向量,在标准化地址库对应的标准地址向量库中查找与待处理地理地址相似度最高的标准地址向量,相应的相似度作为第二相似度,当第二相似度大于预定的第二阈值,则确定所查找的标准地址向量对应的第二标准地址是地理地址的标准化地址。

本发明实施例还提供的对地理地址进行标准化的装置,还包括:输出模块,输出模块用于当第二相似度不大于第二阈值,且第一相似度和第二相似度的加权平均值大于预定的第三阈值,则确定第一相似度和第二相似度中较大者对应的标准地址是待处理地理地址的标准化地址。

本发明实施例还提供的对地理地址进行标准化的装置,还包括:第一配置模块,第一配置模块用于通过下述步骤获得标准化地址库:

接收样本地理地址集;

对样本地理地址集进行预处理;

基于地址词典读取地理地址集中的地理地址的地址键码及相应层级,并基于地址键码的层级去除其中不符合层级要求的地址键码,获得该地理地址的由地址键码分隔的层级标准化地址,从而得到由层级标准化地址组成的标准化地址库。

在本发明中,向量匹配模块进一步用于在标准化地址库对应的词向量库中查找获得待处理地理地址的地址词对应的词向量,然后根据待处理地理地址对应的词向量,基于预设的分层级地址词词典,通过词袋方式生成待处理地理地址的地址向量。

本发明实施例还提供的对地理地址进行标准化的装置,还包括:第二配置模块,第二配置模块用于通过下述步骤获得词向量库:

把标准化地址库中的所有地理地址的地址词转换成词向量,词向量的值是对应地址词的权重系数,权重系数是基于该地址词的上下文语义分配的,从而获得标准化地址库对应的词向量库。

本发明实施例还提供的对地理地址进行标准化的装置,还包括:第三配置模块,第三配置模块用于通过下述步骤获得地址向量库:

根据标准化地址库中的地理地址对应的词向量,基于预设的分层级地址词词典,通过词袋方式生成标准化地址库中的地理地址的地址向量,从而获得由地址向量组成的地址向量库。

在本发明中,在地址向量库中,每个地址向量对应有n个记录,其中该n个记录的主键分别与该地址向量所对应的地址的n级地址表示相对应,n小于等于地址的层级数,在n级地址表示中,第1级地址表示为地址本身,其后每一级地址表示为去除其上一级地址表示中最高的层级序号对应的层级地址词所余下的地址,

向量匹配模块进一步用于在标准地址向量库中用待处理地理地址的n级地址表示逐级查找对应主键,直至找到相对应的主键并获取其所对应的记录中的地址向量,然后计算该地址向量与待处理地理地址的地址向量的相似度。

在本发明中,搜索模块进一步用于基于标准化地址库对应的倒排索引查找获得第一标准地址,倒排索引是基于标准化地址库中的所有地理地址的地址词组成的地址词串建立的。

在本发明中,接收模块进一步用于对待处理地理地址进行预处理,其中,预处理包括简繁转换、全角半角转换、去除特殊字符,其中,当待处理地理地址用汉语表示,预处理还包括对待处理地理地址进行分词获得其对应的地址词。

本发明实施例提供的对地理地址进行标准化的装置,通过搜索引擎对待处理地理地址进行匹配获得标准化地址,当匹配结果不满足要求时,则通过地址向量进行匹配标准化地址,相对于现有技术的标准化方法,本发明方法可以有效地标准化带有错别字,多余字符以及同义词等特殊情况的地址,具有较高的准确性和处理效率,且适用性广。并且本发明方法将两种匹配方式集成,通过地址向量匹配,弥补搜索引擎匹配的不足,进一步提高了匹配的准确率。

下面参考图6,其示出了适于用来实现本发明实施例的电子设备的计算机系统x00的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统x00包括中央处理单元(cpu)x01,其可以根据存储在只读存储器(rom)x02中的程序或者从存储部分x08加载到随机访问存储器(ram)x03中的程序而执行各种适当的动作和处理。在ramx03中,还存储有系统x00操作所需的各种程序和数据。cpux01、romx02以及ramx03通过总线x04彼此相连。输入/输出(i/o)接口x05也连接至总线x04。

以下部件连接至i/o接口x05:包括键盘、鼠标等的输入部分x06;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分x07;包括硬盘等的存储部分x08;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分x09。通信部分x09经由诸如因特网的网络执行通信处理。驱动器x10也根据需要连接至i/o接口x05。可拆卸介质x11,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器x10上,以便于从其上读出的计算机程序根据需要被安装入存储部分x08。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分x09从网络上被下载和安装,和/或从可拆卸介质x11被安装。在该计算机程序被中央处理单元(cpu)x01执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、搜索模块、向量匹配模块和输出模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块还可以被描述为“对所述待处理地理地址进行预处理的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:

接收一待处理地理地址;

在预定义的标准化地址库中查找与该待处理地理地址相似度最高的标准地址作为第一标准地址,相应的相似度作为第一相似度,当所述第一相似度大于预定的第一阈值,则确定该第一标准地址是所述待处理地理地址的标准化地址。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

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