System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及文档压缩,具体涉及一种文档签名压缩方法、装置、电子设备和存储介质。
技术介绍
1、在海量文本模糊去重的过程中,每一篇文档往往都会用上百维的向量来表示。要进行模糊去重,需要在内存里维持一个很大的矩阵。文档数越多,矩阵越大。这导致算法对机器内存有了很大刚性需求。为了降低海量文档模糊去重对内存的需求,需要将文档的表示进一步压缩,目前主要是基于局部敏感哈希算法(lsh),通过shingling和min-hashing两个步骤,实现将一个文档转换成上百维的数组表示的文档签名(signature)。所有文档的签名合在一起,形成了一个巨大的签名矩阵。
2、签名矩阵内存占用大,文档数越多,内存占用越大。用几百维的数组表示一个文档签名,内存占用还是比较大。比如说,用100维的整数表示文档签名,因为64位服务器中,当用python处理数据时,一个整数会占用8个字节,那么一个文档签名就占用8x 100=0.8k字节。如果有1亿篇文档,那么需要构建一个1亿x 0.8k维的文档签名矩阵。这个文档签名矩阵就需要1亿x 0.8k空间,约等于80g空间。即仅仅存储这样一个矩阵就花了80g内存。在实际计算相似度的过程中,还需要进行相似文档的聚类,以及相似度计算,真实内存占用会远大于80g,这样就导致对机器内存资源有了较高的需求。
技术实现思路
1、本专利技术提供一种文档签名压缩方法、装置、电子设备和存储介质,能够解决上述技术问题。
2、第一方面,本专利技术实施例提供一种文档签名
3、获取文档签名;
4、将文档签名以4个整数为一组,分成多个组;
5、将多个组中的每一个组通过压缩算法压缩成一个长整数;
6、将多个组压缩得到的多个长整数组成数组得到压缩后的文档签名。
7、进一步地,上述一种文档签名压缩方法中,将多个组中的每一个组通过压缩算法压缩成一个长整数,包括:
8、初始化一个为0的长整型数a;
9、将每一个组中的4个整数中的每一个整数转化成二进制,通过依次与长整型数a相加以及依次向左移位法将每一个组压缩成一个长整数;
10、其中,a为八个字节。
11、进一步地,上述一种文档签名压缩方法中,通过依次与长整型数a相加以及依次向左移位法将每一个组压缩成一个长整数,包括:
12、将4个整数中的第一个整数转化成二进制,将第一个整数对应的二进制加到长整型数a上且向左移动16位得到第一长整数;
13、将4个整数中的第二个整数转化成二进制,将第二个整数对应的二进制加到第一长整数上且向左移动16位得到第二长整数;
14、将4个整数中的第三个整数转化成二进制,将第三个整数对应的二进制加到第二长整数上且向左移动16位得到第三长整数;
15、将4个整数中的第四个整数转化成二进制,将第四个整数对应的二进制加到第三长整数上且向左移动16位得到一个组的长整数。
16、进一步地,上述一种文档签名压缩方法中,文档签名是4的倍数。
17、第二方面,本专利技术实施例还提供一种文档签名压缩装置,包括:
18、获取模块:用于获取文档签名;
19、分组模块:用于将文档签名以4个整数为一组,分成多个组;
20、压缩模块:用于将多个组中的每一个组通过压缩算法压缩成一个长整数;
21、组成模块:用于将多个组压缩得到的多个长整数组成数组得到压缩后的文档签名。
22、进一步地,上述一种文档签名压缩装置中,压缩模块应用于将多个组中的每一个组通过压缩算法压缩成一个长整数,包括:
23、初始化一个为0的长整型数a;
24、将每一个组中的4个整数中的每一个整数转化成二进制,通过依次与长整型数a相加以及依次向左移位法将每一个组压缩成一个长整数;
25、其中,a为八个字节。
26、进一步地,上述一种文档签名压缩装置中,通过依次与长整型数a相加以及依次向左移位法将每一个组压缩成一个长整数,包括:
27、将4个整数中的第一个整数转化成二进制,将第一个整数对应的二进制加到长整型数a上且向左移动16位得到第一长整数;
28、将4个整数中的第二个整数转化成二进制,将第二个整数对应的二进制加到第一长整数上且向左移动16位得到第二长整数;
29、将4个整数中的第三个整数转化成二进制,将第三个整数对应的二进制加到第二长整数上且向左移动16位得到第三长整数;
30、将4个整数中的第四个整数转化成二进制,将第四个整数对应的二进制加到第三长整数上且向左移动16位得到一个组的长整数。
31、进一步地,上述一种文档签名压缩装置中,文档签名是4的倍数。
32、第三方面,本专利技术实施例还提供了一种电子设备,包括:处理器和存储器;
33、处理器通过调用存储器存储的程序或指令,用于执行如上任一项一种文档签名压缩方法。
34、第四方面,本专利技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储程序或指令,程序或指令使计算机执行如上任一项一种文档签名压缩方法。
35、本专利技术的有益效果是:本专利技术通过获取文档签名;将文档签名以4个整数为一组,分成多个组;将多个组中的每一个组通过压缩算法压缩成一个长整数;将多个组压缩得到的多个长整数组成数组得到压缩后的文档签名。本专利技术将文档签名依次以4个整数为一组,分成若干组,然后对每一组,根据压缩算法将其压缩成一个长整数,然后将各组压缩后的长整数组成一个新的数组作为压缩后的文档签名。压缩后的文档签名的个数是原来的1/4,内存占用将减少为原来的1/4,计算简单,因为加入压缩算法而新增的计算时间几乎可以忽略,所以实现了在几乎不影响计算速度的前提下,可以让同等内存配置的服务器进行更大规模的模糊文本去重。
本文档来自技高网...【技术保护点】
1.一种文档签名压缩方法,其特征在于,包括:
2.根据权利要求1所述的一种文档签名压缩方法,其特征在于,所述将所述多个组中的每一个组通过压缩算法压缩成一个长整数,包括:
3.根据权利要求2所述的一种文档签名压缩方法,其特征在于,所述通过依次与长整型数a相加以及依次向左移位法将每一个组压缩成一个长整数,包括:
4.根据权利要求1所述的一种文档签名压缩方法,其特征在于,所述文档签名是4的倍数。
5.一种文档签名压缩装置,其特征在于,包括:
6.根据权利要求5所述的一种文档签名压缩装置,其特征在于,所述压缩模块应用于将所述多个组中的每一个组通过压缩算法压缩成一个长整数,包括:
7.根据权利要求6所述的一种文档签名压缩方法,其特征在于,所述通过依次与长整型数a相加以及依次向左移位法将每一个组压缩成一个长整数,包括:
8.根据权利要求5所述的一种文档签名压缩装置,其特征在于,所述文档签名是4的倍数。
9.一种电子设备,其特征在于,包括:处理器和存储器;
10.一种计算机可读存储介质,
...【技术特征摘要】
1.一种文档签名压缩方法,其特征在于,包括:
2.根据权利要求1所述的一种文档签名压缩方法,其特征在于,所述将所述多个组中的每一个组通过压缩算法压缩成一个长整数,包括:
3.根据权利要求2所述的一种文档签名压缩方法,其特征在于,所述通过依次与长整型数a相加以及依次向左移位法将每一个组压缩成一个长整数,包括:
4.根据权利要求1所述的一种文档签名压缩方法,其特征在于,所述文档签名是4的倍数。
5.一种文档签名压缩装置,其特征在于,包括:
6.根据权利要求5所述的一种文档签名压缩装置,其特征在于,所述...
【专利技术属性】
技术研发人员:任禾,刘升平,梁家恩,
申请(专利权)人:云知声智能科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。