海量文件相似计算方法及装置制造方法及图纸

技术编号:32461403 阅读:11 留言:0更新日期:2022-02-26 08:51
本发明专利技术公开了一种海量文件相似计算方法及装置,获取所有要计算相似度的文本所对应的SIMHASH;将所有SIMHASH分为n份,将每一份作为key把完整的SIMHASH作为值存入Set集合中;将所述Set集合作为值存入到HashMap中;再次遍历所有SIMHAS,将遍历到的每个SIMHASH分成n份;将遍历后分成的n份SIMHASH段分别放到Map中查找是否有相同;若有相同,则可能存在与其相似的SIMHASH;获取Map中的值再逐一比较是否有满足相似条件的SIMHASH;本发明专利技术提供的海量文件相似计算方法及装置,解决了在大量文件的情况下计算相似度速度非常慢甚至无法计算出结果的问题,而且速度得到了很大提升,可以在几秒内就获得结果。内就获得结果。内就获得结果。

【技术实现步骤摘要】
海量文件相似计算方法及装置


[0001]本专利技术涉及信息
,具体涉及一种海量文件相似计算方法及装置。

技术介绍

[0002]自然语言处理在保密系统业务中应用广泛。比如自动甄别涉密信息、涉密公文、涉密邮件等。为保密处置人员节省了大量的处置时间并提高了相应的处置准确度。
[0003]随着业务系统的数据库容量不断增加及应用范围不断扩大,保密处置人员每天都面临着在海量文件中查找相似文件,进行相似度比较。由于对相似的文本内容的处理是相同的,所以当查找到某一个文件和其他文件的相似信息后就可以将这些相似地文件一同进行处置,这样在对文件处理时就能做到以一抵百效果。当然这种以一抵百的前提是需要提前计算好所有文件之间的相似关系。
[0004]为了更加清楚的说明现有技术,需要举例来说明:
[0005]例如,现在有十个文件,将这10个文件从1到10进行编号。确定1号文件和另外9个文件是否相似时需要将1号文件与2到10号文件进行比较才能确定。那么2号文件就需要和1号文件及3到10号文件进行比较。依次类推。最后需要比较的次数是90次,因为每一个文件都和其他9个文件进行了一次比较。
[0006]那么这个比较的复杂的度是一个笛卡尔积的复杂度。有10个文件就是10乘10等于100次。有100个文件就是100乘100,1万次。但是实际需要比较的文件数量在10万级到百万级之间。这就是一个非常大量的计算。
[0007]所以在文件数量较少时现有技术是可以满足时限要求的,但是随着文件数量的增加原有的笛卡尔积比较方法已经无法满足时限需求,而且当数据量达到万级以上时对机器的CPU开销非常明显且长时间无法完成记过计算。

技术实现思路

[0008]为此,本专利技术实施例提供一种海量文件相似计算方法及装置,以解决现有技术存在的当文件数量太多时原有的笛卡尔积比较方法已经无法满足时限需求并且开销过大的问题。
[0009]为了实现上述目的,本专利技术实施例提供如下技术方案:
[0010]第一方面,一种海量文件相似计算方法,包括:
[0011]获取所有要计算相似度的文本所对应的SIMHASH;
[0012]将所有SIMHASH分为n份,将每一份作为key把完整的SIMHASH作为值存入Set集合中;
[0013]将所述Set集合作为值存入到HashMap中;
[0014]再次遍历所有SIMHAS,将遍历到的每个SIMHASH分成n份;
[0015]将遍历后分成的n份SIMHASH段分别放到Map中查找是否有相同;
[0016]若有相同,则可能存在与其相似的SIMHASH;
[0017]获取Map中的值再逐一比较是否有满足相似条件的SIMHASH。
[0018]进一步的,所述SIMHASH是一个64位的01串。
[0019]进一步的,所述64位的01串是将文件内容进行降维得到的。
[0020]进一步的,所述获取Map中的值再逐一比较是否有满足相似条件的SIMHASH,具体为:
[0021]将两个SIMHASH首尾对齐依次比较每一位是否相同;
[0022]若不相同的位数小于等于3,则确认两个文件是相似的。
[0023]进一步的,所述n为2、4、8或16。
[0024]进一步的,所述方法还包括:将比较成功后的值做持久化处理。
[0025]第二方面,一种海量文件相似计算装置,包括:
[0026]降维模块,用于获取所有要计算相似度的文本所对应的SIMHASH;
[0027]划分模块,用于将所有SIMHASH分为n份;
[0028]存入模块,用于将每一份作为key把完整的SIMHASH作为值存入Set集合中;
[0029]以及将所述Set集合作为值存入到HashMap中;
[0030]遍历模块,用于再次遍历所有SIMHAS;
[0031]判断模块,用于将遍历后分成的n份SIMHASH段分别放到Map中查找是否有相同;
[0032]比较模块,用于获取Map中的值再逐一比较是否有满足相似条件的SIMHASH。
[0033]进一步的,还包括:持久化模块,用于将比较成功后的值做持久化处理。
[0034]第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现海量文件相似计算方法的步骤。
[0035]第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现海量文件相似计算方法的步骤。
[0036]本专利技术至少具有以下有益效果:本专利技术提供一种海量文件相似计算方法及装置,获取所有要计算相似度的文本所对应的SIMHASH;将所有SIMHASH分为n份,将每一份作为key把完整的SIMHASH作为值存入Set集合中;将所述Set集合作为值存入到HashMap中;再次遍历所有SIMHAS,将遍历到的每个SIMHASH分成n份;将遍历后分成的n份SIMHASH段分别放到Map中查找是否有相同;若有相同,则可能存在与其相似的SIMHASH;获取Map中的值再逐一比较是否有满足相似条件的SIMHASH;本专利技术提供的海量文件相似计算方法及装置,解决了在大量文件的情况下计算相似度速度非常慢甚至无法计算出结果的问题,而且速度得到了很大提升,可以在几秒内就获得结果。
附图说明
[0037]为了更清楚地说明现有技术以及本专利技术,下面将对现有技术以及本专利技术实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的附图。
[0038]本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本专利技术可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响本专利技术所能产生的功效及所能达成的目的下,均
应仍落在本专利技术所揭示的
技术实现思路
能涵盖的范围内。
[0039]图1为本专利技术实施例提供的海量文件相似计算方法流程图;
[0040]图2为本专利技术实施例提供的海量文件相似计算方法流程框图。
具体实施方式
[0041]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0042]在本专利技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)旨在区别指代的对象。对于具有时序流程的方案,这种术语表述方式不必理解为描述特定的顺序或先后次序,对于装置结构的方案,这种术语表述方式也不存在对重要程度、位置关系的区分等。
[0043]此外,术语“包括”、“具有”以及他们的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种海量文件相似计算方法,其特征在于,包括:获取所有要计算相似度的文本所对应的SIMHASH;将所有SIMHASH分为n份,将每一份作为key把完整的SIMHASH作为值存入Set集合中;将所述Set集合作为值存入到HashMap中;再次遍历所有SIMHAS,将遍历到的每个SIMHASH分成n份;将遍历后分成的n份SIMHASH段分别放到Map中查找是否有相同;若有相同,则可能存在与其相似的SIMHASH;获取Map中的值再逐一比较是否有满足相似条件的SIMHASH。2.根据权利要求1所述的海量文件相似计算方法,其特征在于,所述SIMHASH是一个64位的01串。3.根据权利要求2所述的海量文件相似计算方法,其特征在于,所述64位的01串是将文件内容进行降维得到的。4.根据权利要求1所述的海量文件相似计算方法,其特征在于,所述获取Map中的值再逐一比较是否有满足相似条件的SIMHASH,具体为:将两个SIMHASH首尾对齐依次比较每一位是否相同;若不相同的位数小于等于3,则确认两个文件是相似的。5.根据权利要求1所述的海量文件相似计算方法,其特征在于,所述n为2、4、8或16...

【专利技术属性】
技术研发人员:代俊朴
申请(专利权)人:北京鼎普科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1