一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

相似地址筛选方法、装置、计算设备以及存储介质与流程

2021-11-10 02:51:00 来源:中国专利 TAG:


1.本发明涉及数据处理领域,特别是涉及一种相似地址筛选方法、装置、计算设备以及存储介质。


背景技术:

2.随着互联网的飞速发展,快递物流等行业对于地址数据的应用越来越广泛。在海量地址数据的应用过程中,经常需要计算地址之间的相似度以确定地址数据的准确性。
3.目前,传统的地址相似度大多基于某两个特定地址之间进行计算,无法实现对相似地址的批处理和批量筛选,存在计算效率较低、运行成本较大、占用资源较多的问题。


技术实现要素:

4.本发明实施例提供一种相似地址筛选方法、装置、计算设备以及存储介质,以解决现有技术中地址相似度计算效率较低、运行成本较大、占用资源较多的问题。
5.为了解决上述问题,本发明实施例是这样实现的:
6.第一方面,本发明实施例公开了一种相似地址筛选方法,包括:
7.获取多个地址数据,并将所述地址数据按照预设规则进行分区,得到多个地址分区;
8.对于每一个地址分区,基于所述地址分区中的地址数据,生成所述地址分区对应的第一地址向量矩阵;
9.将所述第一地址向量矩阵进行切分,得到多个第一目标向量矩阵;
10.基于所述多个第一目标向量矩阵,确定所述地址分区中各个地址数据之间的相似度;
11.基于所述相似度,筛选出目标相似地址数据。
12.可选的,所述将所述地址数据按照预设规则进行分区,包括:
13.将所述地址数据进行切分,得到所述地址数据的行政区字段和具体地址字段;
14.依据所述行政区字段,将所述行政区字段相同的地址数据划分至同一地址分区。
15.可选的,所述基于所述地址分区中的地址数据,生成所述地址分区对应的第一地址向量矩阵,包括:
16.在所述地址数据中存在高频字符的情况下,抽取所述地址数据中的高频字符作为目标地址数据;所述高频字符为在所述地址分区中出现频率高于预设频率阈值的地址字符;
17.将所述目标地址数据添加至目标词库中;
18.通过预设向量生成模型,生成所述目标词库中的每个目标地址数据对应的地址向量,得到所述第一地址向量矩阵。
19.可选的,所述确定所述地址分区中各个地址数据之间的相似度,包括:
20.复制所述第一地址向量矩阵,得到第二地址向量矩阵;
21.将所述第二地址向量矩阵进行切分,得到多个第二目标向量矩阵;所述第二目标向量矩阵与所述第一目标向量矩阵的行列数相同;
22.对于任意一个所述第一目标向量矩阵与任意一个所述第二目标向量矩阵,确定所述第一目标向量矩阵与所述第二目标向量矩阵的计算结果在结果矩阵中的位置;
23.若所述计算结果在结果矩阵的上三角位置,则将所述第一目标向量矩阵与所述第二目标向量矩阵输入预设相似度模型进行计算,得到结果子矩阵;所述上三角位置为结果矩阵中行数不大于列数的位置;
24.若所述计算结果不在结果矩阵的上三角位置,则不对所述第一目标向量矩阵与所述第二目标向量矩阵进行计算。
25.可选的,所述基于所述相似度,筛选出目标相似地址数据,包括:
26.针对每一个结果子矩阵,确定所述结果子矩阵中每个元素是否大于预设相似度阈值;所述结果子矩阵中每个元素均为地址相似度;
27.在所述元素大于预设相似度阈值的情况下,保存所述元素以及所述相似度在结果子矩阵中的行列值;
28.基于所述行列值在第一地址向量矩阵中确定出所述元素对应的目标地址数据,并保存所述目标地址数据以及所述元素,得到目标相似地址数据;
29.在所述元素不大于所述预设相似度阈值的情况下,丢弃所述元素。
30.第二方面,本发明实施例公开了一种相似地址筛选装置,包括:
31.分区模块,用于获取多个地址数据,并将所述地址数据按照预设规则进行分区,得到多个地址分区;
32.生成模块,用于对于每一个地址分区,基于所述地址分区中的地址数据,生成所述地址分区对应的第一地址向量矩阵;
33.切分模块,用于将所述第一地址向量矩阵进行切分,得到多个第一目标向量矩阵;
34.确定模块,用于基于所述多个第一目标向量矩阵,确定所述地址分区中各个地址数据之间的相似度;
35.筛选模块,用于基于所述相似度,筛选出目标相似地址数据。
36.可选的,所述分区模块,具体用于:
37.将所述地址数据进行切分,得到所述地址数据的行政区字段和具体地址字段;
38.依据所述行政区字段,将所述行政区字段相同的地址数据划分至同一地址分区。
39.可选的,所述生成模块,具体用于:
40.在所述地址数据中存在高频字符的情况下,抽取所述地址数据中的高频字符作为目标地址数据;所述高频字符为在所述地址分区中所有的地址数据中出现频率高于预设频率阈值的地址字符;
41.将所述目标地址数据添加至目标词库中;
42.通过预设向量生成模型,生成所述目标词库中的每个目标地址数据对应的地址向量,得到所述第一地址向量矩阵。
43.可选的,所述确定模块,具体用于:
44.复制所述第一地址向量矩阵,得到第二地址向量矩阵;
45.将所述第二地址向量矩阵进行切分,得到多个第二目标向量矩阵;所述第二目标
向量矩阵与所述第一目标向量矩阵的行列数相同;
46.对于任意一个所述第一目标向量矩阵与任意一个所述第二目标向量矩阵,确定所述第一目标向量矩阵与所述第二目标向量矩阵的计算结果在结果矩阵中的位置;
47.若所述计算结果在结果矩阵的上三角位置,则将所述第一目标向量矩阵与所述第二目标向量矩阵输入预设相似度模型进行计算,得到结果子矩阵;所述上三角位置为结果矩阵中行数不大于列数的位置;
48.若所述计算结果不在结果矩阵的上三角位置,则不对所述第一目标向量矩阵与所述第二目标向量矩阵进行计算。
49.可选的,所述筛选模块,具体用于:
50.针对每一个结果子矩阵,确定所述结果子矩阵中每个元素是否大于预设相似度阈值;所述结果子矩阵中每个元素均为地址相似度;
51.在所述元素大于预设相似度阈值的情况下,保存所述元素以及所述相似度在结果子矩阵中的行列值;
52.基于所述行列值在第一地址向量矩阵中确定出所述元素对应的目标地址数据,并保存所述目标地址数据以及所述元素,得到目标相似地址数据;
53.在所述元素不大于所述预设相似度阈值的情况下,丢弃所述元素。
54.第三方面,本发明实施例还提供了一种计算设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现第一方面所述的相似地址筛选方法的步骤。
55.第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现第一方面所述的相似地址筛选方法的步骤。
56.在本发明实施例中,获取多个地址数据,并将该多个地址数据按照预设规则进行分区,得到多个地址分区;对于每一个地址分区,基于地址分区中的地址数据,生成地址分区对应的第一地址向量矩阵;将第一地址向量矩阵进行切分,得到多个第一目标向量矩阵;基于多个第一目标向量矩阵,确定地址分区中的各个地址数据之间的相似度;基于相似度,筛选出目标相似地址数据。本发明实施例中,通过对地址数据进行分区得到多个地址分区,同时对每个地址分区中的地址向量矩阵进行切分计算,实现了对大量地址的批处理,能够批量筛选出相似度高的地址,并且由于是对切分后的小矩阵进行计算,对资源占用较小,计算效率较高,节省了运行成本。
附图说明
57.图1示出了本发明的一种相似地址筛选方法的步骤流程图;
58.图2示出了现有技术中的一种特大矩阵的处理结果;
59.图3示出了本发明的一种地址数据切分的流程示意图;
60.图4示出了本发明的一种第一地址向量矩阵的生成过程示意图;
61.图5示出了本发明的一种第一地址向量矩阵的相似度计算过程示意图;
62.图6示出了本发明的一种地址筛选方法的处理流程示意图;
63.图7示出了本发明的一种相似地址筛选装置的结构框图。
具体实施方式
64.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
65.参照图1,示出了本发明的一种相似地址筛选方法的步骤流程图,该方法具体可以包括:
66.步骤101、获取多个地址数据,并将所述地址数据按照预设规则进行分区,得到多个地址分区。
67.本发明实施例中,地址数据可以是指收货地址等表示地址的数据。预设规则可以是指预先设置的对地址数据进行分区并得到地址分区的规则,例如可以是按照省市区对地址数据进行分区等,本发明实施例对此不作限定。
68.本发明实施例的应用场景为针对大量地址的批处理和相似地址的批量筛选,在本步骤中,可以通过使用计算引擎spark读取海量的地址数据。该spark是一种分布式的、专为大规模数据处理而设计的快速通用的计算引擎。在获取到海量地址数据后,可以通过pyspark对地址数据进行分区,得到多个地址分区。其中,该pyspark是一种python和spark组合起来的分布式计算框架,pyspark则是为python开发者提供的编程接口,通过python语言可以实现spark上的数据开发。
69.需要注意的是,本步骤中,将海量地址数据分区得到的每个地址分区分别划分到spark的不同任务(task)上计算。这样,通过将不同的地址分区在不同任务进程中进行分布计算,能够缩小数据的处理量,提高处理效率。
70.步骤102、对于每一个地址分区,基于所述地址分区中的地址数据,生成所述地址分区对应的第一地址向量矩阵。
71.本发明实施例中,第一地址向量矩阵可以是指地址分区中的地址数据对应的地址向量矩阵,该地址向量矩阵可以包括有该地址分区中的各个地址数据。
72.本步骤中,在划分得到多个地址分区之后,可以先将各个地址分区中的地址数据进行向量化,进而得到由多个地址向量组成的第一地址向量矩阵,后续可以基于矩阵计算,得到地址数据之间的相似度。
73.步骤103、将所述第一地址向量矩阵进行切分,得到多个第一目标向量矩阵。
74.本发明实施例中,第一目标向量矩阵可以是指第一地址向量矩阵切分后得到的向量矩阵,该第一目标向量矩阵的大小可以基于计算设备的处理能力进行设置,计算设备的处理能力越大,第一目标向量矩阵越大。
75.本步骤中,由于获取了海量的地址数据,第一地址向量矩阵可能为特大矩阵,直接对该特大矩阵进行处理时,会导致内存溢出,无法进行计算。示例性地,图2示出了现有技术中的一种特大矩阵的处理结果。如图2中所示出的,若直接对特大矩阵进行计算,则计算设备会显示超出了系统内存,无法实现计算。而在本发明实施例中,可以通过对第一地址向量矩阵进行切分,得到多个可以直接进行计算的小矩阵,即多个第一目标向量矩阵。具体的,可以通过控制自定义切分函数中的batch_size参数,控制后续参与计算的第一目标向量矩阵的大小,以降低数据处理量,实现数据的快速处理。当然,在实际应用中,也可以采用其他
方式对第一地址向量矩阵进行切分,本发明实施例对此不作限定。
76.步骤104、基于所述多个第一目标向量矩阵,确定所述地址分区中的各个地址数据之间的相似度。
77.本发明实施例中,相似度可以是指地址数据与地址数据之间的相似度,该相似度是一个0~1之间的值,相似度越高表示两个地址越相似。
78.本步骤中,在将第一地址向量矩阵切分得到多个第一目标向量矩阵后,可以通过将多个第一目标向量矩阵两两输入预设相似度模型中,通过矩阵计算,得到地址分区中各个地址数据之间的相似度。该预设相似度模型可以基于向量余弦距离计算的相似度公式进行构建,也可以基于其他的相似度计算方式进行构建,本发明实施例对此不作限定。
79.步骤105、基于所述相似度,筛选出目标相似地址数据。
80.本发明实施例中,目标相似地址数据可以是指相似度高于预设相似度阈值的地址数据。在计算得到各个地址数据之间的相似度之后,可以判断该相似度是否大于预设相似度阈值,后续可以筛选出相似度大于预设相似度阈值的地址数据作为目标相似地址数据,实现相似地址的批量筛选。
81.综上所述,本发明实施例提供的一种相似地址筛选方法,获取多个地址数据,并将该多个地址数据按照预设规则进行分区,得到多个地址分区;对于每一个地址分区,基于地址分区中的地址数据,生成地址分区对应的第一地址向量矩阵;将地址向量矩阵进行切分,得到多个第一目标向量矩阵;基于多个第一目标向量矩阵,确定地址分区中的各个地址数据之间的相似度;基于相似度,筛选出目标相似地址数据。本发明实施例中,通过对地址数据进行分区得到多个地址分区,同时对每个地址分区中的地址向量矩阵进行切分计算,实现了对大量地址的批处理,能够批量筛选出相似度高的地址,并且由于是对切分后的小矩阵进行计算,对资源占用较小,计算效率较高,节省了运行成本。
82.可选的,本发明实施例中,步骤101具体可以包括以下步骤1011至步骤1012:
83.步骤1011、将所述地址数据进行切分,得到所述地址数据的行政区字段和具体地址字段。
84.本发明实施例中,行政区字段可以指地址数据中的表示行政区划的字段,例如可以是指省市区等字段。具体地址字段可以是指地址数据中除了省市区这些行政区字段之后剩余的字段,例如可以是街道、小区、楼号等。
85.本步骤中,在通过使用spark获取到原始的海量地址数据后,首先对该原始的地址数据进行预处理,该预处理可以包括去重和清洗。通过对地址数据进行预处理,可以删除无效和重复的地址数据,以减少数据处理量。之后,可以通过cpca模块对地址数据进行切分,得到地址数据的行政区字段和具体地址字段。该切分工具cpca是python中的一个类库,可以实现字段的快速切分。示例性地,地址数据为“浙江省杭州市余杭区海创园”,通过切分工具cpca进行切分后,得到该地址数据的行政区字段为“浙江省”、“杭州市”、“余杭区”,具体地址字段为“海创园”;之后可以将行政区字段按照行政区范围从大到小的拼接标准,即按照省市区的顺序进行拼接,输出该地址数据的切分结果:行政区字段为“浙江省杭州市余杭区”,具体地址字段为“海创园”。
86.示例性地,图3示出了本发明实施例的一种地址数据切分的流程示意图。如图3所示出的,在获取到海量的地址数据之后,先进行数据预处理,例如去重、数据清洗等;之后通
过cpca模块对地址数据进行切分,确定出该地址数据的所属行政区以及具体地址;然后将所属行政区按照省市区的拼接标准进行字段的拼接,最后输出按照省市区拼接的行政区字段和具体地址字段。
87.步骤1012、依据所述行政区字段,将所述行政区字段相同的地址数据划分至同一地址分区。
88.本发明实施例中,在将地址数据切分为行政区字段和具体地址字段之后,可以依据行政区字段,通过pyspark将省市区相同的地址数据划分至同一地址分区,后续将同一个省市区的地址数据划分到spark的同一个任务中里处理,实现数据的分布计算。
89.本发明实施例中,将地址数据进行切分,得到地址数据的行政区字段和具体地址字段;依据行政区字段,将行政区字段相同的地址数据划分至同一地址分区。这样,将相同省市区的地址数据划分到同一个地址分区,既能够缩小数据的计算量,也能保证相似度高的地址数据之间所在的真实地理位置相近,提高相似地址筛选的准确度。
90.可选的,本发明实施例中,步骤102具体可以包括以下步骤1021至步骤1023:
91.步骤1021、在所述地址数据中存在高频字符的情况下,抽取所述地址数据中的高频字符作为目标地址数据;所述高频字符为在所述地址分区中所有的地址数据中出现频率高于预设频率阈值的地址字符。
92.本发明实施例中,预设频率阈值可以是指预先设置的字符出现频率的临界值。高频字符可以是指在地址分区的地址数据中,出现频率高于预设频率阈值的字符。目标地址数据可以是指用于相似度计算的地址数据。
93.本步骤中,由于获取到了海量的地址数据,同一个地址分区中的地址数据数据量也可能较大。为了提高数据处理的效率,需要提取出高频的、区分性好的词来形成词库。本步骤中,在一个地址数据中,可能有多个字符,该多个字符中可能存在例如生僻字等出现频率较低的、区分性较差的字符,此时在抽取目标地址数据时可以舍弃。具体的,通过正则来抽取出地址数据中的高频字符组成目标地址数据,这样能够对地址数据进行筛选,限制最终生成的地址向量矩阵的大小,提高后续数据处理的效率。
94.步骤1022、将所述目标地址数据添加至目标词库中。
95.本发明实施例中,目标词库可以是指用于构建地址向量的词库。该目标词库可以基于自然语言处理中的gensim.corpora.dictionary方法来形成,本发明实施例对于目标词库的具体生成方法不作限定。
96.步骤1023、通过预设向量生成模型,生成所述目标词库中的每个目标地址数据对应的地址向量,得到所述第一地址向量矩阵。
97.本发明实施例中,预设向量生成模型可以是指预先设置的用于将目标词库中的每个目标地址数据生成地址向量的模型。该预设向量生成模型可以是指词频

逆向文档频率模型(term frequency

inverse document frequency,tf

idf),该tf

idf模型可以通过pyspark中的gensim.models.tfidfmodel来实现。当然,也可以采用其他的向量生成方式来生成地址向量矩阵,本发明实施例对此不作限定。第一地址向量矩阵可以是指地址分区中每个目标地址数据所生成的地址向量所组成的矩阵,后续可以将该第一地址向量矩阵进行切分计算。
98.本发明实施例中,在地址数据中存在高频字符的情况下,抽取地址数据中的高频
字符作为目标地址数据;该高频字符为在地址分区中所有的地址数据中出现频率高于预设频率阈值的地址字符;将目标地址数据添加至目标词库中;通过预设向量生成模型,生成目标词库中的每个目标地址数据对应的地址向量,得到第一地址向量矩阵。这样,本发明实施例中通过对地址数据中的高频字符进行正则抽取得到目标地址数据,并通过将目标词库中的目标地址数据生成地址向量,能够缩小数据计算量,提高数据处理效率。
99.示例性地,图4示出了本发明实施例的一种第一地址向量矩阵的生成过程示意图。如图4所示出的,在得到地址分区中的地址数据列表后,可以基于该地址数据列表形成地址词典。之后,按照限制字的规则进行正则提取,这样能够限制最终生成的向量的大小,避免计算量过大;也可以按照不限制字的规则进行正则提取,即提取每个地址数据中的每一个字符,保证数据处理的全面性。之后,基于正则提取得到的目标地址数据,形成目标词库,之后再基于目标词库,通过pyspark中的gesim模块中的词袋模型dictionary.doc2bow生成向量语料,进而基于预设向量生成模型生成第一地址向量矩阵。需要注意的是,图4中所示出的地址字统计可以是在正则提取之前,即先对地址分区中的各个地址字符出现的频率进行统计,确定出高频字符,之后在该高频字符的范围内进行正则抽取,确定出目标地址数据;该地址字统计也可以是在正则提取之后,此时正则提取的规则可以是限制地址数据具体地址字段的字符数等,在正则提取之后再对提取到的地址字符进行统计,确定高频字符以及目标地址数据,具体可以基于实际情况灵活采用任一方式,本发明实施例对此不作限定。
100.可选的,本发明实施例中,步骤104具体可以包括以下步骤1041至步骤1045:
101.步骤1041、复制所述第一地址向量矩阵,得到第二地址向量矩阵。
102.本发明实施例中,在得到第一地址向量矩阵之后,该第一地址向量矩阵中的每一行为一个目标地址数据。为了方便计算目标地址数据与其余各个目标地址数据的相似度,可以将该第一地址向量矩阵进行复制,得到第二地址向量矩阵。
103.步骤1042、将所述第二地址向量矩阵进行切分,得到多个第二目标向量矩阵;所述第二目标向量矩阵与所述第一目标向量矩阵的行列数相同。
104.本发明实施例中,在将待计算的第一地址向量矩阵复制得到第二地址向量矩阵之后,将该第一地址向量矩阵与第二地址向量矩阵按照相同的批处理大小进行切割,得到多个第一目标向量矩阵和多个第二目标向量矩阵。
105.本步骤中,在对矩阵进行切割时,可以通过控制自定义切分函数中的batch_size参数来控制切割后的小矩阵即目标向量矩阵的行列数。这样,能够使得对矩阵的切分更加准确。
106.步骤1043、对于任意一个所述第一目标向量矩阵与任意一个所述第二目标向量矩阵,确定所述第一目标向量矩阵与所述第二目标向量矩阵的计算结果在结果矩阵中的位置。
107.本发明实施例中,结果矩阵可以用于表征第一地址向量矩阵与第二地址向量矩阵相似度的计算结果。由于第一目标向量矩阵与所述第二目标向量矩阵是切分后得到的小矩阵,其计算结果是在第一地址向量矩阵与第二地址向量矩阵直接计算得到的结果矩阵中的一部分。
108.需要注意的是,为了提高计算效率,避免内存溢出,本步骤中无需将结果矩阵实际计算出来,仅需基于第一目标向量矩阵在第一地址向量矩阵中的位置以及第二目标向量矩
阵在第二地址向量矩阵中的位置,即可确定出第一目标向量矩阵与所述第二目标向量矩阵的计算结果在结果矩阵中的位置,后续可以用于判断是否为重复计算。
109.具体的,本步骤中,由于第一地址向量矩阵和第二地址向量矩阵是完全相同的,在对切分后得到的任意一个所述第一目标向量矩阵与任意一个所述第二目标向量矩阵两两组合计算相似度时,会存在重复计算的过程。示例性地,假设第一地址向量矩阵切割后得到了a、b、c、d四个第一目标向量矩阵,第二地址向量矩阵切割后得到了a、b、c、d四个第二目标向量矩阵,则a与a、b与b、c与c、d与d两两之间是完全相同的。在计算第一目标向量矩阵a与第二目标向量矩阵b的相似度时,其计算结果与第一目标向量矩阵b与第二目标向量矩阵a是重复的,因此,后续需要避免这样的重复计算,以提高计算效率。
110.步骤1044、若所述计算结果在结果矩阵的上三角位置,则将所述第一目标向量矩阵与所述第二目标向量矩阵输入预设相似度模型进行计算,得到结果子矩阵;所述上三角位置为结果矩阵中行数不大于列数的位置。
111.本发明实施例中,上三角位置为结果矩阵中处在上三角的位置,上三角位置中,行数不大于列数。预设相似度模型可以是指预先设置的用于计算目标地址数据之间相似度的模型,将第一目标向量矩阵与第二目标向量矩阵输入该预设相似度模型之后,可以得到结果子矩阵。具体的,在对小矩阵计算时可以在pyspark中使用sklearn.metrics.pairwise里分装好的距离计算接口进行计算,得到最终的结果子矩阵,本发明实施例对此不作限定。该结果子矩阵可以是指第一目标向量矩阵与第二目标向量矩阵计算得到的相似度矩阵,该结果子矩阵中每一个元素均为相似度的实际计算数值。
112.步骤1045、若所述计算结果不在结果矩阵的上三角位置,则不对所述第一目标向量矩阵与所述第二目标向量矩阵进行计算。
113.本发明实施例中,由于结果矩阵为对称矩阵,以主对角线为对称轴,各元素对应相等,因此在计算时仅需计算得到上三角部分即可。当第一目标向量矩阵与第二目标向量矩阵不在结果矩阵的上三角位置时,则表明该第一目标向量矩阵与该第二目标向量矩阵的计算为重复计算过程,可以不进行计算以提高计算效率。
114.本发明实施例中,复制第一地址向量矩阵,得到第二地址向量矩阵;将第二地址向量矩阵进行切分,得到多个第二目标向量矩阵;对于任意一个第一目标向量矩阵与任意一个第二目标向量矩阵,确定第一目标向量矩阵与第二目标向量矩阵的计算结果在结果矩阵中的位置;若计算结果在结果矩阵的上三角位置,则将第一目标向量矩阵与第二目标向量矩阵输入预设相似度模型进行计算,得到结果子矩阵;上三角位置为结果矩阵中行数不大于列数的位置;若计算结果不在结果矩阵的上三角位置,则不对第一目标向量矩阵与第二目标向量矩阵进行计算。这样,本发明实施例中通过预测第一目标向量矩阵与第二目标向量矩阵在结果矩阵中的位置,若在上三角位置则进行计算,若不在上三角位置则不进行计算,避免了对称矩阵的重复计算,能够防止计算量大导致的内存溢出问题,提高了计算效率。
115.示例性地,图5示出了本发明实施例的一种第一地址向量矩阵的相似度计算过程示意图。如图5所示出的,对于待计算的第一地址向量矩阵进行复制,得到第二地址向量矩阵,之后将第一地址向量矩阵分割为了a、b、c、d四个第一目标向量矩阵,将第二地址向量矩阵分割为了a、b、c、d四个第二目标向量矩阵。之后在对任意一个第一目标向量矩阵以及任
意一个第二目标向量矩阵进行两两计算时,确定计算结果在结果矩阵中的位置,计算结果在结果矩阵的上三角时进行计算,计算结果不在结果矩阵的上三角时不进行计算。这样,能够避免重复计算对称矩阵的上下三角,提高计算效率。
116.可选的,本发明实施例中,步骤105具体可以包括以下步骤1051至步骤1054:
117.步骤1051、针对每一个结果子矩阵,确定所述结果子矩阵中每个元素是否大于预设相似度阈值;所述结果子矩阵中每个元素均为地址相似度。
118.本发明实施例中,结果子矩阵可以是指预设相似度模型输出的用于表征目标地址数据之间的相似度结果矩阵。该结果子矩阵中的每个元素均表征两个目标相似地址之间的相似度。预设相似度阈值可以是指预设设置的用于表征相似度的临界阈值,该阈值的具体数值可以基于实际情况进行灵活设置,本发明实施例对此不作限定。通过该元素所对应的相似度的具体数值与预设相似度阈值的对比判断,可以确定该元素所对应的两个目标地址数据是否相似。
119.步骤1052、在所述元素大于预设相似度阈值的情况下,保存所述元素以及所述相似度在结果子矩阵中的行列值。
120.本发明实施例中,行列值可以是指元素的行数和列数,基于该行列值,能够对应确定第一地址向量矩阵中的两个目标地址数据作为目标相似地址数据。当结果子矩阵中的元素高于该预设相似度阈值时,则可以判定该元素对应的两个目标地址数据为目标相似地址,可以进行筛选。
121.步骤1053、基于所述行列值在第一地址向量矩阵中确定出所述元素对应的目标地址数据,并保存所述目标地址数据以及所述元素,得到目标相似地址数据。
122.本发明实施例中,基于该行列值,确定出该元素在第一地址向量矩阵中的两个目标地址数据,此时可以将这两个目标地址数据作为目标相似地址数据,后续可以保存该目标相似地址数据及其相似度。
123.步骤1054、在所述元素不大于所述预设相似度阈值的情况下,丢弃所述元素。
124.本发明实施例中,在元素不大于预设相似度阈值的情况下,表明该元素所对应的两个目标地址数据相似度较低,可以直接丢弃,无需进行保存处理。
125.示例性地,参照图5,针对第一目标向量矩阵和第二目标向量矩阵计算得到的结果子矩阵,计算设备对结果子矩阵中的每个元素进行解析,在该元素的相似度数值大于预设相似度阈值的情况下,保存该元素以及元素的行列值,以筛选出目标相似地址数据。这样,无需再将结果子矩阵再组合为特大矩阵存储,节约了系统资源。
126.本发明实施例中,针对每一个结果子矩阵,确定结果子矩阵中每个元素是否大于预设相似度阈值;该结果子矩阵中每个元素均为地址相似度;在元素大于预设相似度阈值的情况下,保存元素以及相似度在结果子矩阵中的行列值;基于行列值在第一地址向量矩阵中确定出元素对应的目标地址数据,并保存目标地址数据以及元素,得到目标相似地址数据;在元素不大于预设相似度阈值的情况下,丢弃该元素。这样,本发明实施例中通过对每一个结果子矩阵中的元素进行解析处理,并保存相似度大于预设相似度阈值的目标相似地址数据,无需将计算结果存储为特大矩阵,能够防止内存不足的情况产生,节约系统资源。
127.示例性地,图6示出了本发明实施例的一种地址筛选方法的处理流程示意图。如图
6所示出的,计算设备通过spark读取海量地址数据,之后对海量地址数据进行清洗、去重等预处理;之后通过pyspark将海量地址数据按照省市区进行分区,得到多个地址分区;针对每个地址分区,生成每个地址分区对应的第一地址向量矩阵,并且将该第一地址向量矩阵进行切分,分解为规模较小的小矩阵,即多个第一目标向量矩阵(小矩阵1至小矩阵n)。然后,在多个第一目标向量矩阵的计算结果在结果矩阵的上三角位置进行计算,不在上三角位置时,不进行计算;在计算得到结果子矩阵后,对结果子矩阵中的每个元素进行解析,判断是否大于预设相似度阈值,在大于的情况下保留并汇总结果,不大于的情况下直接舍弃该元素。这样,实现了海量地址之间相似度的计算和相似地址的批量筛选,提高了计算效率。
128.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
129.参照图7,示出了本发明的一种相似地址筛选装置的结构框图,具体,该装置70可以包括如下模块:
130.分区模块701,用于获取多个地址数据,并将所述地址数据按照预设规则进行分区,得到多个地址分区;
131.生成模块702,用于对于每一个地址分区,基于所述地址分区中的地址数据,生成所述地址分区对应的第一地址向量矩阵;
132.切分模块703,用于将所述第一地址向量矩阵进行切分,得到多个第一目标向量矩阵;
133.确定模块704,用于基于所述多个第一目标向量矩阵,确定所述地址分区中各个地址数据之间的相似度;
134.筛选模块705,用于基于所述相似度,筛选出目标相似地址数据。
135.综上所述,本发明实施例提供的相似地址筛选装置,获取多个地址数据,并将该多个地址数据按照预设规则进行分区,得到多个地址分区;对于每一个地址分区,基于地址分区中的地址数据,生成地址分区对应的第一地址向量矩阵;将第一地址向量矩阵进行切分,得到多个第一目标向量矩阵;基于多个第一目标向量矩阵,确定地址分区中的各个地址数据之间的相似度;基于相似度,筛选出目标相似地址数据。本发明实施例中,通过对地址数据进行分区得到多个地址分区,同时对每个地址分区中的地址向量矩阵进行切分计算,实现了对大量地址的批处理,能够批量筛选出相似度高的地址,并且由于是对切分后的小矩阵进行计算,对资源占用较小,计算效率较高,节省了运行成本。
136.可选的,所述分区模块701,具体用于:
137.将所述地址数据进行切分,得到所述地址数据的行政区字段和具体地址字段;
138.依据所述行政区字段,将所述行政区字段相同的地址数据划分至同一地址分区。
139.可选的,所述生成模块702,具体用于:
140.在所述地址数据中存在高频字符的情况下,抽取所述地址数据中的高频字符作为目标地址数据;所述高频字符为在所述地址分区中所有的地址数据中出现频率高于预设频
率阈值的地址字符;
141.将所述目标地址数据添加至目标词库中;
142.通过预设向量生成模型,生成所述目标词库中的每个目标地址数据对应的地址向量,得到所述第一地址向量矩阵。
143.可选的,所述确定模块704,具体用于:
144.复制所述第一地址向量矩阵,得到第二地址向量矩阵;
145.将所述第二地址向量矩阵进行切分,得到多个第二目标向量矩阵;所述第二目标向量矩阵与所述第一目标向量矩阵的行列数相同;
146.对于任意一个所述第一目标向量矩阵与任意一个所述第二目标向量矩阵,确定所述第一目标向量矩阵与所述第二目标向量矩阵的计算结果在结果矩阵中的位置;
147.若所述计算结果在结果矩阵的上三角位置,则将所述第一目标向量矩阵与所述第二目标向量矩阵输入预设相似度模型进行计算,得到结果子矩阵;所述上三角位置为结果矩阵中行数不大于列数的位置;
148.若所述计算结果不在结果矩阵的上三角位置,则不对所述第一目标向量矩阵与所述第二目标向量矩阵进行计算。
149.可选的,所述筛选模块705,具体用于:
150.针对每一个结果子矩阵,确定所述结果子矩阵中每个元素是否大于预设相似度阈值;所述结果子矩阵中每个元素均为地址相似度;
151.在所述元素大于预设相似度阈值的情况下,保存所述元素以及所述相似度在结果子矩阵中的行列值;
152.基于所述行列值在第一地址向量矩阵中确定出所述元素对应的目标地址数据,并保存所述目标地址数据以及所述元素,得到目标相似地址数据;
153.在所述元素不大于所述预设相似度阈值的情况下,丢弃所述元素。
154.可选的,本发明实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述相似地址筛选方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
155.可选的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述相似地址筛选方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
156.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
157.本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
158.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
159.类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在
上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
160.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
161.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
162.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献