[发明专利]一种快速计算海量数据集间匹配度的方法在审
申请号: | 202211681172.0 | 申请日: | 2022-12-27 |
公开(公告)号: | CN115858882A | 公开(公告)日: | 2023-03-28 |
发明(设计)人: | 蔡税地 | 申请(专利权)人: | 浙江远东工业开发有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903;G06F7/58 |
代理公司: | 深圳市育科知识产权代理有限公司 44509 | 代理人: | 杨宁 |
地址: | 315100 浙江省宁波市余*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 计算 海量 数据 匹配 方法 | ||
本发明属于数据处理技术领域,具体涉及一种快速计算海量数据集间匹配度的方法,包括以下步骤:步骤一、根据不同长度的字符串开发对应哈希函数;步骤二、利用哈希函数将数据集中的字符串进行哈希运算,得到与字符串对应的映射值;步骤三、根据数据集中字符串的数量和映射值的长度在内存中开辟bitmap;步骤四、将两个数据集放置到开辟的bitmap中;步骤五、按照利用按位与操作依次计算两个数据集中的字符串是否匹配;步骤六、统计所有字符串的匹配结果,计算并输出两个数据集之间的匹配度。克服了现有技术的不足,通过对字符串计算哈希值,然后将所有字段对应的哈希值存入到bitmap中,并通过按位与操作来计算匹配度,提高数据集对比的效率。
技术领域
本发明属于数据处理技术领域,具体涉及一种快速计算海量数据集间匹配度的方法。
背景技术
在需要对两个具有海量数据的数据集之间计算数据匹配度时,常用的技术是先对第一个数据集的每条记录进行遍历,取到记录后,再对另一个数据集进行遍历,最后对两条记录进行比对。
这项技术最大的缺点是时间复杂度较高,达到O(n2)。现有技术的改进方案是分别对每个数据集先进行排序,然后取出排序后的数据集记录进行比对。优化后的方案虽然在时间复杂度上有所降低,但提升的效果有限。例如常用的快速排序、堆排序和归并排序,他们的平均时间复杂度可以降低到O(nlog2n),比原先的O(n2)有所提升,但仍然开销较大。另外一个缺点是快速排序等算法的最坏时间复杂度仍旧保持在O(n2)。
除了时间复杂度,上述两种技术方案都无法降低空间开销,虽然空间复杂度保持在O(n),但如果数据达到上亿级别的时候,总的内存开销很大,这时需要采用磁盘交换技术,磁盘的IO开销也将成为瓶颈之一。
发明内容
本发明的目的在于提供一种快速计算海量数据集间匹配度的方法,克服了现有技术的不足,通过对字符串计算哈希值,然后将所有字段对应的哈希值存入到bitmap中,并通过按位与操作来计算匹配度,提高数据集对比的效率。
为解决上述问题,本发明所采取的技术方案如下:
一种快速计算海量数据集间匹配度的方法,包括以下步骤:
步骤一、根据不同长度的字符串开发对应哈希函数;
步骤二、利用哈希函数将数据集中的字符串进行哈希运算,得到与字符串对应的映射值;
步骤三、根据数据集中字符串的数量和映射值的长度在内存中开辟bitmap;
步骤四、将两个数据集放置到开辟的bitmap中;
步骤五、按照利用按位与操作依次计算两个数据集中的字符串是否匹配;
步骤六、统计所有字符串的匹配结果,计算并输出两个数据集之间的匹配度。
进一步,步骤一中所述哈希函数的构造方法包括针对较长字符串的分段叠加法、针对整数类型字符串的除留余数法、直接定址法和数字分析法以及针对小数类型字符串的伪随机数法。
进一步,所述哈希函数通过上述方法构造后组建哈希映射工厂,具体步骤包括:
通过构造针对不同类型字符串的哈希函数,将其集合组成哈希映射工厂;在增加新的字符串类型时,通过改动哈希映射工厂构造新的哈希函数,然后将哈希函数与字符串对应分配。
进一步,步骤二中为了防止相同的字符串经过哈希函数计算以后出现相同的值,在进行哈希运算获取映射值之后增加扰动函数进行二次哈希计算,确保不同的字符串对应不同的映射值。
进一步,所述扰动函数的表达式为:
(h=key.hashCode())^(h16)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江远东工业开发有限公司,未经浙江远东工业开发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211681172.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置