一种知识图谱压缩存储改进优化算法的制作方法

文档序号:36425359发布日期:2023-12-20 19:44阅读:24来源:国知局
一种知识图谱压缩存储改进优化算法的制作方法

本发明涉及知识图谱相关领域,具体为一种知识图谱压缩存储改进优化算法。


背景技术:

1、知识图谱:是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。

2、稀疏矩阵:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。

3、布鲁姆过滤器:布鲁姆过滤器是一种特殊的哈希表,这个哈希表中的每一个槽只存储0或1,所以可以使用计算机中的最小单位bit来存储每一个01以达到空间的极大节省。在数据集非常大的条件下进行某个数据对象a的查找即使是利用哈希表仍然会有很大的开销,尤其是当要在多个独立分布的数据集中查找的时候开销更加明显。

4、rle压缩技术:rle压缩算法的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。

5、rle算法的原理就是用一个表示块数的属性加上一个数据块代表原来连续的若干块数据,从而达到节省存储空间的目的。一般rle算法都选择数据块的长度为1字节,表示块数的诚性也用1字节表示,对于颜色数小于256色的图像文件或文本文件,块长度选择1字节是比较合适的。

6、二元组排序技术:二元元组组按照第一个元素从小到大排序,若第一个相同第二个按照从大到小排序,二元元组被数学家们用来描述确定成分的数学对象。

7、k2-triples:k2-triples是一种专门针对共享属性的元组设计的元组压缩存储方式,其基本思想是建立在k2-tree基础上的。k2-triples利用一个位矩阵存储具有相同属性元组,其中位矩阵的行和列分别对应元组的主语和宾语当位矩阵中任意位所对应的主语和宾语存在时,将其设置为1,否则设为0。


技术实现思路

1、本发明的目的在于提供一种知识图谱压缩存储改进优化算法,以知识图谱数据经过二次压缩后,提高压缩存储后的数据的检索效率,将位串中代表1的位块提取出来,并与其下标构成一个二元组,通过二元组数组的排序,将大量连续的代表1的位块优先检索,从而大道提高检索速度的目的,其中稀疏矩阵经过二次rle压缩后,已经将连续的0或者1压缩成一位数,那么压缩后的位穿两个相邻的位代表的一定是不同的二进制位。这时候我们只需要将二进制位为1的数位和对应的下标记录下来,就可以准确地找到稀疏矩阵中的有效数据,同时数位的数值越大,代表连续的1就越多,优先对这些连续的1检索查询。

2、为实现上述目的,本发明提供如下技术方案:一种知识图谱压缩存储改进优化算法,包括,包括以下步骤:

3、步骤s1、在k2-tree树进行二级压缩后得到一个位串,位串里的每一个数字都代表了二进制位0和1的频数;

4、步骤s2、根据首位标识符判断哪些位块包含“1”这个二进制位;

5、步骤s3、对步骤s2中判断得出的有效数位的数值和数组下标构成一个二元组数组,二元组的第一个元素就是该位块有多少个连续的“1”,二元组的第二个元素就是该位块在二次压缩后的位串中的下标;

6、步骤s4、以步骤s3中每个二元组数据的第一个元素从大到小进行排序,得到的二元组数组越靠前的元素,连续含有的1二进制位越多;

7、步骤s5、当读取数据时候,首先读取二元组数组中每个元素的第二个数,该数就是二次压缩后位串对应的下标,然后利用该下标访问位串;

8、步骤s6、当需要查询数据的时候,对排序后的二元组数组依次检索,越靠前的数组元素代表二次压缩后位串中越多的“1”二进制位,所包含的信息量也就越大。

9、优选的,所述步骤s1中位串的格式为:[首位标识符]+二进制位的频数,例如[1]21 1 1 2 1 1 2 1 1 1 1 1 2 2 2 2 2 1 3 1 4 1 2 1 1,在这个位串中,[1]表示二进制字符串从1开始,0和1位块交替排列因此第0位上的2就表示2个1,第一位上的1表示一个0,第二位上的一表示一个1,第三位上的1表示一个0,第四位上的2表示2个1,依次类推,1代表的是矩阵中任意位所对应的主语和宾语存在,反之则为0。

10、优选的,所述步骤s2中根据首位标识符判断哪些位块包含“1”这个二进制位具体为:

11、首先,根据步骤s1中的首位标识符,找出所有含1的位块,由于二次压缩后的位串中,第一位为标识位,然后要对第一位进行判断,标识位为1则表示位串有效位是从1开始的;标识位为0,则表示位串是从0开始的,其中如果判断出第一位为1,则读取偶数位,因为下标是从0开始的,如果判断出第一位为0,则读取奇数位。

12、优选的,所述步骤s3中二元组的格式如下:args{{data,index}},其中,data为位串中的数据,index为位串的下标,使用二元组存储数据既存储目标对象,又存储该对象在原字符串中的位置;将所有含有1的位块数值和在二次压缩后的位串中的下标构成二元数组,第一个元素为数值,第二个元素为下标。

13、优选的,所述步骤s4中使用冒泡排序对每个二元组数据的第一个元素从大到小进行排列,具体冒泡排序为:

14、for(int i=0;i<arr.length-1&&flag;i++)

15、if args[i][1]<args[i+1][1]

16、swap(args[i],args[i+1])

17、end。

18、与现有技术相比,本发明的有益效果是:本发明通过在k2-tree树进行二级压缩后,对子矩阵进行数据块大小的优先级排序,当检索数据时,根据优先级检索,这样排在前面的块均为主语和宾语同时存在,可以提高数据读取效率,该方法也可应用于电商领域的个性化排序,能够针对用户偏好将用户最想要的排在前面优先检索到。



技术特征:

1.一种知识图谱压缩存储改进优化算法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种知识图谱压缩存储改进优化算法,其特征在于:所述步骤s1中位串的格式为:[首位标识符]+二进制位的频数,例如[1]2 1 1 1 2 1 1 2 1 1 1 1 12 2 2 2 2 1 3 1 4 1 2 1 1,在这个位串中,[1]表示二进制字符串从1开始,0和1位块交替排列因此第0位上的2就表示2个1,第一位上的1表示一个0,第二位上的一表示一个1,第三位上的1表示一个0,第四位上的2表示2个1,依次类推,1代表的是矩阵中任意位所对应的主语和宾语存在,反之则为0。

3.根据权利要求1所述的一种知识图谱压缩存储改进优化算法,其特征在于:所述步骤s2中根据首位标识符判断哪些位块包含“1”这个二进制位具体为:

4.根据权利要求1所述的一种知识图谱压缩存储改进优化算法,其特征在于:所述步骤s3中二元组的格式如下:args{{data,index}},其中,data为位串中的数据,index为位串的下标,使用二元组存储数据既存储目标对象,又存储该对象在原字符串中的位置;将所有含有1的位块数值和在二次压缩后的位串中的下标构成二元数组,第一个元素为数值,第二个元素为下标。

5.根据权利要求1所述的一种知识图谱压缩存储改进优化算法,其特征在于:所述步骤s4中使用冒泡排序对每个二元组数据的第一个元素从大到小进行排列,具体冒泡排序为:


技术总结
本发明涉及知识图谱相关领域,具体为一种知识图谱压缩存储改进优化算法,本发明通过在k2‑tree树进行二级压缩后,对子矩阵进行数据块大小的优先级排序,当检索数据时,根据优先级检索,这样排在前面的块均为主语和宾语同时存在,可以提高数据读取效率,该方法也可应用于电商领域的个性化排序,能够针对用户偏好将用户最想要的排在前面优先检索到。

技术研发人员:杨开元,孙知信,徐月华
受保护的技术使用者:常州安易软件有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1