CN116955352B - 一种基于等比数列的标签管理方法和*** - Google Patents
一种基于等比数列的标签管理方法和*** Download PDFInfo
- Publication number
- CN116955352B CN116955352B CN202310584011.8A CN202310584011A CN116955352B CN 116955352 B CN116955352 B CN 116955352B CN 202310584011 A CN202310584011 A CN 202310584011A CN 116955352 B CN116955352 B CN 116955352B
- Authority
- CN
- China
- Prior art keywords
- index
- label
- resource
- previous
- tag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 69
- 238000004364 calculation method Methods 0.000 claims description 88
- 238000000034 method Methods 0.000 claims description 60
- 238000004458 analytical method Methods 0.000 claims description 27
- 230000001502 supplementing effect Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 7
- 238000004904 shortening Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 4
- 238000010845 search algorithm Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及标签管理领域,具体涉及一种基于等比数列的标签管理方法和***,包括:预设一个等比数列,将每个标签和该等比数列的项一一对应,将等比数列的项作为对应标签的标签索引值;当一个资源包括至少一个标签时,将该资源包括的所有标签对应的标签索引值求和,得到该资源的索引值和数,当一个资源没有包括任何标签时,则该资源的索引值和数为0;构建索引和数表,将不同资源对应的索引和数存入索引和数表;通过索引和数表进行标签管理。本发明可以有效缩减存储标签所需的空间,当标签数量大、标签组合多时,使用本发明进行标签管理,有效减少计算量,缩减标签检索时间,提高按标签检索资源的效率。
Description
技术领域
本发明涉及标签管理领域,更具体地,涉及一种基于等比数列的标签管理方法和***。
背景技术
采用标签对资源进行标记和检索是人们在进行资源管理一种通用的解决问题的思路,在大数据时代和智能化时代,标签体系表现出高维的明显特点,一数据集合相关的标签可能有成千上万个以上。对于数据记录条数多的数据库,当数据集的标签维度和数量大量增加以后,如果采用普通的检索方法,会遇到:1、搜索时间长,无法满足业务需要;2、因搜索条件深层嵌套过多,触及服务器堆栈限制而无法搜索等问题。因此,需要专用的标签管理算法,实现标签维度高、数量大的情况下,对资源进行打标签、按标签检索、取消标签等操作,特别是快速对资源进行按标签检索操作。
等比数列的数学特性包括:公比为大于1自然数的等比数列,对于数列中任意两个不完全相同的子列,两个子列各自元素之和必定不相等,这一特性使等比数列可以应用于设计标签管理算法。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种基于等比数列的标签管理方法和***,有效减少计算量,提升标签管理的效率。
本发明采取的技术方案是:
第一方面,提供一种基于等比数列的标签管理方法,包括:
预设一个等比数列,将每个标签和该等比数列的项一一对应,将等比数列的项作为对应标签的标签索引值;
当一个资源包括至少一个标签时,将该资源包括的所有标签对应的标签索引值求和,得到该资源的索引值和数,当一个资源没有包括任何标签时,则该资源的索引值和数为0;
构建索引和数表,将不同资源对应的索引和数存入索引和数表;
通过索引和数表进行标签管理。
由于等比数列具有对于数列中任意两个不完全相同的子列,两个子列各自元素之和必定不相等的特性,因此可以利用此特性,将等比数列应用于标签管理中。每个标签和等比数列的项一一对应,等比数列的项作为对应标签的标签索引值,将某一资源的所有标签对应的标签索引值求和,得到索引值和数,由于等比数列的特性,不会存在不同标签索引值组合求和得到的索引和数相同的情况,因此在进行标签存储时,仅需存储索引和数值即可得到该资源的所有标签组合,无需单独存储所有标签对应的标签索引值,有效缩减存储标签所需的空间。当一个资源对应的索引和数为0时,可以存入索引和数表,也可以不存以进一步节省空间和提高效率。当标签数量大、标签组合多时,使用本发明的方法进行标签管理,可以有效减少计算量,缩减标签检索时间,提高按标签检索资源的效率。
进一步的,所述标签管理包括标签注册,具体方法包括:
预先构建标签基本信息表,所述标签基本信息表至少包括标签ID和标签索引值;
基于标签基本信息表对每个标签进行注册;
假设等比数列的公比为K,则标签索引值取值为Kexp0,Kexp1,Kexp2,...,KexpN,...,对每个经注册的标签按照预设的顺序赋予标签索引值。
所述标签基本信息表中,每一条记录包括:标签ID,标签种类,标签值,标签索引值,其中标签ID为标签基本信息表中每一条记录的唯一标识,在表中每加进一条记录时自动递增;标签种类标识本标签属于标签体系中的哪一维;标签值按实际情况赋值;作为例子,专家数据库的标签体系可以包括“专家职称”、“专家研究领域”、“是否属核心专家库专家”等多种类型的标签(维);“专家研究领域”作为一类标签,标签值可以按专家的实际情况取“信息技术领域”、“建筑领域”、“医学领域”、“物理领域”,等具体的标签值;标签索引值依记录增长不重复取公比为K等比数列中的一项。标签信息表用于记录标签的信息,每个标签在注册时均需构建标签信息表,用于后续进行标签管理。
进一步的,所述标签管理包括标签分析,具体方法包括:
所述索引和数表包括资源对应的资源ID和索引和数;
根据索引和数表中资源ID所对应的索引和数,得到该资源包括的所有标签索引值,组成标签索引值序列。
在对某一资源的标签进行存储时,仅需存储其资源ID和索引和数,由于等比数列的特性,不会存在不同标签组合得到同一索引和数的情况,因此可以通过索引和数得到该资源对应的标签索引值序列。
更具体的,所述根据索引和数表中资源ID所对应的索引和数,得到该资源包括的所有标签索引值,具体包括:
假设索引和数为S;
在等比数列中找出最小的大于S的KexpN1值,则该资源包括标签索引值Kexp(N1-1);
在等比数列中找出最小的大于(S-Kexp(N1-1))的KexpN2值,则该资源包括标签索引值Kexp(N2-1);
在等比数列中找出最小的大于(S-Kexp(N1-1)-Kexp(N2-1))的KexpN3值,则该资源包括标签索引值Kexp(N3-1);
重复直至判断出该资源是否包括标签索引值1,得到该资源包括的所有标签索引值。
通过将索引和数与等比数列内的项进行对比,累计减去已经确认资源包括的标签索引值,最终可以得到该资源包括的所有标签索引值,最终得到该资源的标签索引值序列。通过标签分析方法可以有效得知某一资源所包括的所有标签索引值,从而得到该资源包括的所有标签组合。
进一步的,所述标签管理包括增加标签和/或取消标签;
所述增加标签的具体方法包括:
假设给某个资源增加标签x;
根据索引和数表找出该资源对应的索引和数;
根据标签分析方法判断该资源是否包括标签x,不包括则将索引和数与标签x的标签索引值进行计算,得到更新后的索引和数;
根据该资源的资源ID和更新后的索引和数更新索引和数表;
和/或,所述取消标签的具体方法包括:
假设给某个资源取消标签y;
根据索引和数表找出该资源对应的索引和数;
根据标签分析方法判断该资源是否包括标签y,包括则将索引和数与标签y的标签索引值进行计算,得到更新后的索引和数;
根据该资源的资源ID和更新后的索引和数更新索引和数表。
由于索引和数为该资源包括的所有标签对应的索引值之和,当需要给某一资源增加/取消某个标签时,仅需先确认该资源是否已经包括该标签,再将该资源原有的索引和数加上/减去该标签的标签索引值。
进一步的,所述标签管理包括标签比对,具体方法包括:
将需要比对的所有标签的标签索引值相加,得到目标索引和数;
对索引和数表中需要比对的资源的索引和数和目标索引和数分别使用标签分析方法进行分析,得到该资源的索引值序列和目标索引值序列;
比对目标索引值序列中的每一项是否都包括于索引值序列中;
如果出现目标索引值序列中的某一项不包括于索引值序列中,则结束比对,目标索引值序列对应的所有标签中,有该资源不包括的标签;
如果目标索引值序列中的每一项均包括于索引值序列中,则该资源包括目标索引值序列对应的所有标签。
将多种标签组成一个标签组合,当需要判断某一资源是否包括该标签组合时,可以使用标签比对方法。
进一步的,所述标签管理包括标签检索,具体方法包括:
在进行多种标签组合检索时,对索引和数表中的所有资源使用标签比对方法,其中包括所有标签的资源即为符合多种标签组合检索条件的资源。
假设多种标签组成一个标签组合,当需要对所有资源进行检索,找出包括该标签组合的资源时,可以使用标签检索方法。使用本发明的标签检索方法时,无论标签组合内的标签的数量多大,均只需扫描一次索引和数表,即可找出符合条件的所有资源,而且索引和数表的记录总数不会随着标签体系中标签总数的增多而迅速增大(通常情况下,不超过资源总数量),在进行高维标签检索时,可以有效避免多标签组合检索带来的大量关联运算问题,和所检索数据表的记录总条数增长过快问题,提升检索效率;而且由于避免多标签组合检索带来的大量关联运算问题,使本发明不会存在触发服务器堆栈极限导致无法搜索的问题,有效提升可靠性和鲁棒性。
进一步的,还包括:
将索引值、索引和数采用大于10的进制的字符串表示;
根据字符串制定大数加减算法表,所述大数加减算法表至少包括前一位进数为0的加法本位结果表、前一位进数为1的加法本位结果表、前一位进数为0的加法进数结果表、前一位进数为1的加法进数结果表、前一位借数为0的减法本位结果表、前一位借数为1的减法本位结果表、前一位借数为0的减法借数结果表、前一位借数为1的减法借数结果表;
使用大数加减算法表进行标签管理,所述标签管理包括:标签分析,和/或增加标签,和/或取消标签,和/或标签比对,和/或标签检索。
由于等比数列中各项的值增加很快,随着等比数列的项的增加,很快会超出int或long等类型变量的表数范围,在进行加减运算时需要十分复杂的程序,因此本发明将等比数列的项,也就是标签索引值,以及数列各项的和数,也就是索引和数,在程序中采用字符串表示,并且采用高进制,通常但不局限于将索引值、索引和数采用大于10的高进制表示,如16进制,32进制,64进制,256进制等;实现用相同长度的字符串可表示尽量大的数值,从而实现了“高存储空间利用率”地解决大数运算问题。
同时,本发明制定大数加减算法表,实现基于字符存储类型的大数加减算法,有效提升大数加减法的效率,也就是降低进行标签管理时所需的计算量,提升标签管理效率。
更具体的,所述通过索引和数表对标签进行管理,所述使用大数加减算法表对标签进行管理,具体包括:
假设数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)进行加法:
将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查大数加减算法表,获得加法本位结果和加法进位结果;
在计算a1+b1的结果时,前一位进数j0初始化为0,以a1作为被加数,b1作为加数,j0作为前一位进数,查前一位进数为0的加法本位结果表,获得本位计算结果r1,查前一位进数为0的加法进数结果表,获得进数计算结果j1;
当j1为0时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表,获得本位计算结果r2,查前一位进数为0的加法进数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表获得本位计算结果r2,查前一位进数为1的加法进数结果表,获得进数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表获得本位计算结果ri,查加法进数结果表,获得进数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表,获得本位计算结果ri,查加法进数结果表,获得进数计算结果ji;
重复至完成数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)的加法,获得结果R(...ri...r6,r5,r4,r3,r2,r1);
和/或,
假设被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)进行减法:
将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查看大数加减算法表,获得减法本位结果和减法借位结果;
在计算a1-b1的结果时,前一位借数j0初始化为0,以a1作为被减数,b1作为减数,j0作为前一位借数,查前一位借数为0的减法本位结果表,获得本位计算结果r1,查前一位借数为0的减法借数结果表,获得借数计算结果j1;
当j1为0时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为0的减法本位结果表,获得本位计算结果r2,查前一位借数为0的减法借数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为1的减法本位结果表获得本位计算结果r2,查前一位借数为1的减法借数结果表,获得借数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为0的减法本位结果表获得本位计算结果ri,查前一位借数为0的减法进数结果表,获得借数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为1的减法本位结果表,获得本位计算结果ri,查前一位借数为1的减法借数结果表,获得借数计算结果ji;
重复至完成被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)的减法,获得结果R(...ri...r6,r5,r4,r3,r2,r1)。
以上方法即为本发明的基于字符存储类型的大数加减算法,使用该算法进行大数加减,可以进一步提升标签管理效率。
第二方面,提供一种基于等比数列的标签管理***,包括:
标签构建模块,用于预设一个等比数列,将每个标签和该等比数列的项一一对应,将等比数列的项作为对应标签的标签索引值;
索引和数计算模块,用于当一个资源包括至少一个标签时,将该资源包括的所有标签对应的标签索引值求和,得到该资源的索引值和数,当一个资源没有包括任何标签时,则该资源的索引值和数为0;
索引和数表构建模块,用于构建索引和数表,将不同资源对应的索引和数存入索引和数表;
标签管理模块,用于通过索引和数表进行标签管理。
与现有技术相比,本发明的有益效果为:
(1)本发明在进行标签存储时,仅需存储索引和数值即可得到该资源的所有标签组合,无需单独存储所有标签对应的标签索引值,有效缩减存储资源所对应标签的记录条数,有效缩减存储标签所需的空间;
(2)使用本发明的标签检索方法时,无论标签组合内的标签的数量多大,均只需扫描一次索引和数表,即可找出符合条件的所有资源,而且索引和数表的记录总数不会随着标签体系中标签总数的增多而迅速增大(通常情况下,不超过资源总数量),在进行高维标签检索时,可以有效避免多标签组合检索带来的大量关联运算问题,和所检索数据表的记录总条数增长过快问题,提升检索效率;而且由于避免多标签组合检索带来的大量关联运算问题,使本发明不会存在触发服务器堆栈极限导致无法搜索的问题,有效提升可靠性和鲁棒性;
(3)本发明通过采用高进制,如32进制,64进制,256进制等,实现用相同长度的字符串可表示尽量大的数值,提高了存储空间的使用效率;
(4)本发明制定大数加减算法表,实现基于字符存储类型的大数加减算法,有效提升大数加减法的效率,也就是降低进行标签管理时所需的计算量,提升标签管理效率;
(5)使用本发明的标签管理方法时,不存在“在标签基本信息表增加一条记录时,对索引和数表中的每一条记录,即使对应的资源不包括新注册标签,也需要对每一条记录的索引和数值进行计算更新”的情况;不存在“在新增加一个管理的资源时,需要对索引和数表中原来存在的每一条记录的索引和数值进行计算更新”的情况,因此采用本发明的标签管理方法所管理的数据减少了维护工作量,更容易维护,提高了数据的可维护性。
附图说明
图1为本发明实施例1的方法流程图。
图2为本发明实施例1的64进制前一位进数为0的加法本位结果表示意图。
图3为本发明实施例1的64进制前一位进数为0的加法本位结果表局部放大示意图。
图4为本发明实施例1的64进制前一位进数为1的加法本位结果表示意图。
图5为本发明实施例1的64进制前一位进数为1的加法本位结果表局部放大示意图。
图6为本发明实施例1的64进制前一位进数为0的加法进数结果表示意图。
图7为本发明实施例1的64进制前一位进数为0的加法进数结果表局部放大示意图。
图8为本发明实施例1的64进制前一位进数为1的加法进数结果表示意图。
图9为本发明实施例1的64进制前一位进数为1的加法进数结果表局部放大示意图。
图10为本发明实施例1的64进制前一位借数为0的减法本位结果表示意图。
图11为本发明实施例1的64进制前一位借数为0的减法本位结果表局部放大示意图。
图12为本发明实施例1的64进制前一位借数为1的减法本位结果表示意图。
图13为本发明实施例1的64进制前一位借数为1的减法本位结果表局部放大示意图。
图14为本发明实施例1的64进制前一位借数为0的减法借数结果表示意图。
图15为本发明实施例1的64进制前一位借数为0的减法借数结果表局部放大示意图。
图16为本发明实施例1的64进制前一位借数为1的减法借数结果表示意图。
图17为本发明实施例1的64进制前一位借数为1的减法借数结果表局部放大示意图。
图18为本发明实施例1的算法搜索性能测试结果对比表。
图19为本发明实施例1的普通搜索算法触发服务器堆栈限制导致无法搜索的运行结果。
图20为本发明实施例1的本发明不存在触发服务器堆栈极限导致无法搜索问题的运行结果。
图21为本发明实施例2的***结构图。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
如图1所示,本实施例,提供一种基于等比数列的标签管理方法,包括:
S1、预设一个等比数列,将每个标签和该等比数列的项一一对应,将等比数列的项作为对应标签的标签索引值;
S2、当一个资源包括至少一个标签时,将该资源包括的所有标签对应的标签索引值求和,得到该资源的索引值和数,当一个资源没有包括任何标签时,则该资源的索引值和数为0;
S3、构建索引和数表,将不同资源对应的索引和数存入索引和数表,当一个资源对应的索引和数为0时,可以存入索引和数表,也可以不存以进一步节省空间和提高效率;
S4、通过索引和数表进行标签管理。
等比数列具有对于数列中任意两个不完全相同的子列,两个子列各自元素之和必定不相等的特性,其数学原理如下:
设有公比为K的等比数列的子列C(c1,c2,c3,c4,c5),公比为K等比数列的子列D(d1,d2,d3,d4,d5),两个子列不完全相同;
假设从右往左逐个比对,第一对不同的元素是c3和d3,且c3<d3,同时c5=d5,c4=d4;
设有公比为K等比数列的子列C1(1,K,Kexp2,Kexp3,...,c3),则子列C1的元素和大于或者等于子列C的子列C2(c1,c2,c3)的元素和;
当K=2时,根据公比为等比数列的性质,即使在d3最小,也就是d3=2*c3的情况下,也有子列C1的元素和等于d3-1,从而得出在各种情况下,子列C1的元素和都小于d3,因此各种情况下,子列C2的所有元素和都小于d3,进而小于d1+d2+d3;
当K>2时,根据等比数列的性质,由前n项和公式可知,(第n+1项KexpN)-(前n项和Sn)=(2*KexpN-K*exp(N+1)-1)/(1-K),由于K>2,所以Kexpn-Sn>0,因此即使在d3最小,也就是d3=K*c3的情况下,也有子列C1的元素和小于d3,从而得出在各种情况下,子列C1的元素和都小于d3,因此各种情况下,子列C2的所有元素和都小于d3,进而小于d1+d2+d3;
综上所述,易得子列C的所有元素和小于子列D的所有元素和,子列C和子列D各自的元素之和不相等。
本实施例利用此特性,将等比数列应用于标签管理中。每个标签和等比数列的项一一对应,等比数列的项作为对应标签的标签索引值,将某一资源的所有标签对应的标签索引值求和,得到索引值和数,由于等比数列的特性,不会存在不同标签索引值组合求和得到的索引和数相同的情况,因此在进行标签存储时,仅需存储索引和数值即可得到该资源的所有标签组合,无需单独存储所有标签对应的标签索引值,有效缩减存储资源所对应标签的记录条数,有效缩减存储标签所需的空间。当标签数量大、标签组合多时,使用本实施例的方法进行标签管理,可以有效减少计算量特别是按标签检索操作的计算量,提高标签管理的效率。
由于等比数列中各项的值增加很快,随着等比数列的项的增加,很快会超出int或long等类型变量的表数范围,在进行加减运算时需要十分复杂的程序,因此本实施例将等比数列的项,也就是标签索引值,以及数列各项的和数,也就是索引和数,在程序中采用字符串表示,并且采用高进制,如32进制,64进制,256进制等,实现用相同长度的字符串可表示尽量大的数值。
示例性的,假设采用64进制,定义每位64进制数可取的字符表,则从小到大共64个字符:0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~@;
根据字符串制定大数加减算法表,所述大数加减算法表至少包括前一位进数为0的加法本位结果表、前一位进数为1的加法本位结果表、前一位进数为0的加法进数结果表、前一位进数为1的加法进数结果表、前一位借数为0的减法本位结果表、前一位借数为1的减法本位结果表、前一位借数为0的减法借数结果表、前一位借数为1的减法借数结果表;
示例可参照图2的64进制前一位进数为0的加法本位结果表示意图、图3的64进制前一位进数为0的加法本位结果表局部放大示意图、图4的64进制前一位进数为1的加法本位结果表示意图、图5的64进制前一位进数为1的加法本位结果表局部放大示意图、图6的64进制前一位进数为0的加法进数结果表示意图、图7的64进制前一位进数为0的加法进数结果表局部放大示意图、图8的64进制前一位进数为1的加法进数结果表示意图、图9的64进制前一位进数为1的加法进数结果表局部放大示意图、图10的64进制前一位借数为0的减法本位结果表示意图、图11的64进制前一位借数为0的减法本位结果表局部放大示意图、图12的64进制前一位借数为1的减法本位结果表示意图、图13的64进制前一位借数为1的减法本位结果表局部放大示意图、图14的64进制前一位借数为0的减法借数结果表示意图、图15的64进制前一位借数为0的减法借数结果表局部放大示意图、图16的64进制前一位借数为1的减法借数结果表示意图、图17的64进制前一位借数为1的减法借数结果表局部放大示意图;
使用大数加减算法表进行标签管理,所述标签管理包括:标签分析,和/或增加标签,和/或取消标签,和/或标签比对,和/或标签检索。
对采用字符串表示的两个大数进行加法或减法运算,具体包括:
假设数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)进行加法:
A1、将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查大数加减算法表,获得加法本位结果和加法进位结果;
A2、在计算a1+b1的结果时,前一位进数j0初始化为0,以a1作为被加数,b1作为加数,j0作为前一位进数,查前一位进数为0的加法本位结果表,获得本位计算结果r1,查前一位进数为0的加法进数结果表,获得进数计算结果j1;
A3、当j1为0时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表,获得本位计算结果r2,查前一位进数为0的加法进数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表获得本位计算结果r2,查前一位进数为1的加法进数结果表,获得进数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表获得本位计算结果ri,查前一位进数为0的加法进数结果表,获得进数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表,获得本位计算结果ri,查前一位进数为1的加法进数结果表,获得进数计算结果ji;
A4、重复步骤A3至完成数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)的加法,获得结果R(...ri...r6,r5,r4,r3,r2,r1);
和/或,
假设被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)进行减法:
B1、将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查大数加减算法表,获得减法本位结果和减法借位结果;
B2、在计算a1-b1的结果时,前一位借数j0初始化为0,以a1作为被减数,b1作为减数,j0作为前一位借数,查前一位借数为0的减法本位结果表,获得本位计算结果r1,查前一位借数为0的减法借数结果表,获得借数计算结果j1;
B3、当j1为0时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为0的减法本位结果表,获得本位计算结果r2,查前一位借数为0的减法借数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为1的减法本位结果表获得本位计算结果r2,查前一位借数为1的减法借数结果表,获得借数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为0的减法本位结果表获得本位计算结果ri,查前一位借数为0的减法进数结果表,获得借数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为1的减法本位结果表,获得本位计算结果ri,查前一位借数为1的减法借数结果表,获得借数计算结果ji;
B4、重复步骤B3至完成被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)的减法,获得结果R(...ri...r6,r5,r4,r3,r2,r1)。
本实施例基于上述字符存储类型的大数加减算法进行标签管理。在算法初始化的时候,把大数加减算法涉及的八张表格载入进程,具体可采用存储在三维数组中等方法,用于提高采用查表法进行大数加减的计算速度。需要说明的是,为了便于理解,本实施例以10进制为例,实际使用时是采用和大数加减算法一致的进制(如32进制,64进制,128进制,256进制等),进行加减操作的时候,采用大数加减算法。
本实施例所述标签管理包括标签注册,具体方法包括:
S411、预先构建标签基本信息表,所述标签基本信息表至少包括标签ID和标签索引值;
S412、基于标签基本信息表对每个标签进行注册;
S413、假设等比数列的公比为K,则标签索引值取值为Kexp0,Kexp1,Kexp2,...,KexpN,...,对每个经注册的标签按照预设的顺序赋予标签索引值。
本实施例所述标签基本信息表包括:标签ID,标签种类,标签值,标签索引值,其中标签ID为自增标识;标签种类标识本标签属于标签体系中的哪一维;标签值按实际情况赋值;标签索引值依记录增长不重复取公比为K等比数列中的一项。
在具体实施过程中,每个标签值建立时,都应该在标签基本信息表中注册,每个标签值对应一条标签基本信息表记录,用于后续进行标签管理。
本实施例的标签管理包括标签分析,具体方法包括:
S421、所述索引和数表包括资源对应的资源ID和索引和数;
S422、根据索引和数表中资源ID所对应的索引和数,得到该资源包括的所有标签索引值,组成标签索引值序列。
在对某一资源的标签进行存储时,仅需存储其资源ID和索引和数,由于等比数列的特性,不会存在不同标签组合得到同一索引和数的情况,因此可以通过索引和数得到该资源对应的标签索引值序列,当需要获取某一资源的标签索引序列时,可以使用标签分析方法。
所述根据索引和数表中资源ID所对应的索引和数,得到该资源包括的所有标签索引值,具体包括:
假设索引和数为S;
在等比数列中找出最小的大于S的KexpN1值,则该资源包括标签索引值Kexp(N1-1);
在等比数列中找出最小的大于(S-Kexp(N1-1))的KexpN2值,则该资源包括标签索引值Kexp(N2-1);
在等比数列中找出最小的大于(S-Kexp(N1-1)-Kexp(N2-1))的KexpN3值,则该资源包括标签索引值Kexp(N3-1);
重复直至判断出该资源是否包括标签索引值1,得到该资源包括的所有标签索引值。
通过将索引和数与等比数列内的项进行对比,累计减去已经确认资源包括的标签索引值,最终可以得到该资源包括的所有标签索引值,最终得到该资源的标签索引值序列。通过标签分析方法可以有效得知某一资源所包括的所有标签索引值,从而得到该资源包括的所有标签组合。
示例性的,假设使用公比为3的等比数列(1,3,9,27,......),某一资源对应的索引和数为13,使用标签分析方法:判断出最小的大于13的标签索引值为27,则该资源包括标签索引值9;判断出最小的大于4的标签索引值为9,则该资源包括标签索引值3;判断出最小大于1的标签索引值为3,则该资源包括标签索引值1;最终得到该资源的标签索引值序列为(1,3,9)。
本实施例所述标签管理包括增加标签,具体方法包括:
S431、假设给某个资源增加标签x;
S432、根据索引和数表找出该资源对应的索引和数;
S433、根据标签分析方法判断该资源是否包括标签x,不包括则将索引和数与标签x的标签索引值进行计算,得到更新后的索引和数;
S434、根据该资源的资源ID和更新后的索引和数更新索引和数表;
本实施例所述标签管理包括取消标签,具体方法包括:
S441、假设给某个资源取消标签y;
S442、根据索引和数表找出该资源对应的索引和数;
S443、根据标签分析方法判断该资源是否包括标签y,包括则将索引和数与标签y的标签索引值进行计算,得到更新后的索引和数;
S444、根据该资源的资源ID和更新后的索引和数更新索引和数表。
由于索引和数为该资源包括的所有标签对应的索引值之和,当需要给某一资源增加/取消某个标签时,仅需先确认该资源是否已经包括该标签,再将该资源原有的索引和数加上/减去该标签的标签索引值。在具体实施过程中,将该资源原有的索引和数加上/减去该标签的标签索引值时需使用大数加减算法。
示例性的,假设资源ID1已包括标签索引值为“1”,“4”的两个标签,在索引和数表中,将会有记录(“记录ID101”,“资源ID1”,“5”);当需要对资源ID1增加标签索引值为“32”的标签时,先对资源ID1进行标签分析,发现资源ID1并未包括标签索引值为“32”的标签,则把记录的索引和数“5”加上新标签对应的标签索引值“32”,获得新的索引和数“37”,更新至记录中,使索引和数表更新为(“记录ID101”,“资源ID1”,“37”)。
示例性的,假设资源ID1已包括标签索引值为“1”,“4”,“32”的三个标签,在索引和数表中,将会有记录(“记录ID101”,“资源ID1”,“37”);当需要对资源ID1取消标签索引值为“32”的标签时,先对资源ID1进行标签分析,发现资源ID1包括标签索引值为“32”的标签,则把记录的索引和数“37”减去新标签对应的标签索引值“32”,获得新的索引和数“5”,更新至记录中,使索引和数表更新为(“记录ID101”,“资源ID1”,“5”)。需要特别说明的是,此示例中,相关标签索引值以及索引和数的具体数值是用十进制来解释说明,在实际应用中,可以采用其他进制来表示和计算,具体计算时根据具体机制的计算机制来替换十进制的加减法。
在另一种实施方式中,对公比为2expK的等比数列,其中K为自然数的情况下,可以使用大数或运算、大数与运算、大数异或运算来替代大数加减算法进行优化,在对算法进行初始化时,无需把大数加减算法涉及的八张表格载入进程,可以有效减少运算量。
示例性的,对公比为2expK的等比数列,其中K为自然数的情况下,可以使用大数或运算优化大数加法算法,使用大数与运算优化大数减法算法。假设资源ID1已包括标签索引值为“1”,“4”的两个标签,在索引和数表中,将会有记录(“记录ID101”,“资源ID1”,“5”);当需要对资源ID1增加标签索引值为“32”的标签时,把记录的索引和数“5”或上新标签对应的标签索引值“32”获得新的索引和数“37”,更新至记录中,使索引和数表更新为(“记录ID101”,“资源ID1”,“37”);当需要取消资源中的某个标签时,则将原记录中的索引和数与上所取消标签的标签索引值的非值,即可获得新的索引和数。使用大数或运算和大数与运算优化大数加减法算法时,无需使用标签分析判断索引和数是否包括需要增加或取消的标签,可以有效简化计算流程,进一步提高性能。需要特别说明的是,此示例中,为了方便表示和理解,相关标签索引值以及索引和数的具体数值是用十进制加上双引号来表示,相关数值实际是用字符串表示的。
本实施例所标签管理包括标签比对,具体方法包括:
S451、将需要比对的所有标签的标签索引值相加,得到目标索引和数;
S452、对索引和数表中需要比对的资源的索引和数和目标索引和数分别使用标签分析方法进行分析,得到该资源的索引值序列和目标索引值序列;
S453、比对目标索引值序列中的每一项是否都包括于索引值序列中;
S454、如果出现目标索引值序列中的某一项不包括于索引值序列中,则结束比对,该资源不包括所有标签;
S455、如果目标索引值序列中的每一项均包括于索引值序列中,则该资源包括所有标签。
将多种标签组成一个标签组合,当需要判断某一资源是否包括该标签组合时,可以使用标签比对方法。
在具体实施过程中,把索引和数E和目标索引和数F分别使用标签分析方法进行分析,得到该资源的索引值序列(e0,e1,e2,e3,...,ek1)和目标索引值序列(f0,f1,f2,f3,...,fk2);对于目标索引值序列(f1,f2,f3,...,fk2)的每一个项,检查是否存在序列(e1,e2,e3,...,ek1)中,如果发现有不存在的情况,则结束比对,返回否;重复直至比对完目标索引值序列中的每一个项,如果不出现返回否的情况,则返回真。如果返回真,则说明索引和数包括所有目标索引和数中每个作为检索条件的标签对应的标签索引值,也就是对应的资源具备作为检索条件的所有标签,否则对应的资源不具备作为检索条件的所有标签。
在另一种实施方式中,对公比为2expK的等比数列,其中K为自然数的情况下,可以使用异或运算进行优化。把索引值序列(e0,e1,e2,e3,...,ek1)和目标索引值序列(f0,f1,f2,f3,...,fk2)右对齐,得到E(ek1,...,ei,...,e3,e2,e1,e0)和F(fk2,...,fi,...,f3,f2,f1,f0)如果长度不一致,位数少的从左边开始补齐0,从右往左比对每一对ei和fi。示例性的,以基于64进制,标签索引值取公比为2等比数列各项值为例,分别转换为两个5位的二进制字符串,按位比较两个二进制字符串;具体可采用判断(fi对应的二进制字符串&63对应的二进制字符串)^(fi对应的二进制字符串&ei对应的二进制字符串)是否为“00000”的方法;如果为“00000”,则不存在ei的二进制字符串中某一位为0,而fi二进制字符串中相应的位为1的情况;如果发现ei二进制字符串中某一位为0,而fi二进制串中相应的位为1,则结束比对,返回否;重复直至比对索引值序列中的每一个项,如果不出现返回否的情况,则返回真。如果返回真,则说明索引和数包括所有目标索引和数中每个作为检索条件的标签对应的标签索引值,也就是对应的资源具备作为检索条件的所有标签,否则对应的资源不具备作为检索条件的所有标签。使用异或运算优化标签比对方法,可以有效简化计算流程,进一步提高性能。
本实施例所述标签管理包括标签检索,具体方法包括:
在进行多种标签组合检索时,对索引和数表中的所有资源使用标签比对方法,其中包括所有标签的资源即为符合多种标签组合检索条件的资源。
在具体实施过程中,对所有资源使用标签比对方法,返回真的资源则为符合检索条件的资源。
使用本实施例的标签检索方法时,无论标签组合内的标签的数量多大,均只需扫描一次索引和数表,即可找出符合条件的所有资源,而且索引和数表的记录总数不会随着标签体系中标签总数的增多而迅速增大(通常情况下,不超过资源总数量),在进行高维标签检索时,可以有效避免多标签组合检索带来的大量关联运算问题,和所检索数据表的记录总条数增长过快问题,提升检索效率;而且由于避免多标签组合检索带来的大量关联运算问题,使本发明不会存在触发服务器堆栈极限导致无法搜索的问题,有效提升可靠性和鲁棒性。
由图18、19、20可以看出本实施例的方法在算法性能方面的优势,其中图18为使用本实施例的方法进行多标签搜索所需时间与普通搜索算法进行多标签搜索所需时间结果对比表;图19为普通搜索算法触发服务器堆栈限制导致无法搜索的运行结果,图20为与图19相同场景下本实施例的算法不存在触发服务器堆栈极限导致无法搜索的问题。可以明显看出本实施例的方法在进行高维标签检索时所需时间更短,效率更高,并且不会存在触发服务器堆栈极限导致无法搜索的问题。
实施例2
如图21所示,本实施例提供一种基于等比数列的标签管理***,用于实现实施例1所提供的一种基于等比数列的标签管理方法,包括:
标签构建模块101,用于预设一个等比数列,将每个标签和该等比数列的项一一对应,将等比数列的项作为对应标签的标签索引值;
索引和数计算模块102,用于当一个资源包括至少一个标签时,将该资源包括的所有标签对应的标签索引值求和,得到该资源的索引值和数,当一个资源没有包括任何标签时,则该资源的索引值和数为0;
索引和数表构建模块103,用于构建索引和数表,将不同资源对应的索引和数存入索引和数表;
标签管理模块104,用于通过索引和数表进行标签管理。
所述标签管理模块104包括标签注册模块1041,用于预先构建标签基本信息表,所述标签基本信息表至少包括标签ID和标签索引值;基于标签基本信息表对每个标签进行注册;假设等比数列的公比为K,则标签索引值取值为Kexp0,Kexp1,Kexp2,...,KexpN,...,对每个经注册的标签按照预设的顺序赋予标签索引值。
所述标签管模块104包括标签分析模块1042,用于所述索引和数表包括资源对应的资源ID和索引和数;根据索引和数表中资源ID所对应的索引和数,得到该资源包括的所有标签索引值,组成标签索引值序列,具体包括:假设索引和数为S;在等比数列中找出最小的大于S的KexpN1值,则该资源包括标签索引值Kexp(N1-1);在等比数列中找出最小的大于(S-Kexp(N1-1))的KexpN2值,则该资源包括标签索引值Kexp(N2-1);在等比数列中找出最小的大于(S-Kexp(N1-1)-Kexp(N2-1))的KexpN3值,则该资源包括标签索引值Kexp(N3-1);重复直至判断出该资源是否包括标签索引值1,得到该资源包括的所有标签索引值。
所述标签管理模块104包括增加标签模块1043,用于假设给某个资源增加标签x;根据索引和数表找出该资源对应的索引和数;根据标签分析方法判断该资源是否包括标签x,不包括则将索引和数与标签x的标签索引值进行计算,得到更新后的索引和数;根据该资源的资源ID和更新后的索引和数更新索引和数表;
所述标签管理模块104包括取消标签模块1044,用于假设给某个资源取消标签y;根据索引和数表找出该资源对应的索引和数;根据标签分析方法判断该资源是否包括标签y,包括则将索引和数与标签y的标签索引值进行计算,得到更新后的索引和数;根据该资源的资源ID和更新后的索引和数更新索引和数表。
所标签管理模块104包括标签比对模块1045,用于将需要比对的所有标签的标签索引值相加,得到目标索引和数;对索引和数表中需要比对的资源的索引和数和目标索引和数分别使用标签分析方法进行分析,得到该资源的索引值序列和目标索引值序列;比对目标索引值序列中的每一项是否都包括于索引值序列中;如果出现目标索引值序列中的某一项不包括于索引值序列中,则结束比对,目标索引值序列所对应的标签中,有该资源不包括的标签;如果目标索引值序列中的每一项均包括于索引值序列中,则该资源包括目标索引值序列对应的所有标签。
所述标签管理模块104包括标签检索模块1046,用于在进行多种标签组合检索时,对索引和数表中的所有资源使用标签比对方法,其中包括所有标签的资源即为符合多种标签组合检索条件的资源。
还包括:字符串构建模块202,将索引值、索引和数采用字符串进行表示。
大数加减法模块203,用于根据字符串制定大数加减算法表,所述大数加减算法表至少包括前一位进数为0的加法本位结果表、前一位进数为1的加法本位结果表、前一位进数为0的加法进数结果表、前一位进数为1的加法进数结果表、前一位借数为0的减法本位结果表、前一位借数为1的减法本位结果表、前一位借数为0的减法借数结果表、前一位借数为1的减法借数结果表;
对采用字符串表示的两个大数进行加法或减法运算,具体包括:
假设数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)进行加法:
A1、将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查大数加减算法表,获得加法本位结果和加法进位结果;
A2、在计算a1+b1的结果时,前一位进数j0初始化为0,以a1作为被加数,b1作为加数,j0作为前一位进数,查前一位进数为0的加法本位结果表,获得本位计算结果r1,查前一位进数为0的加法进数结果表,获得进数计算结果j1;
A3、当j1为0时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表,获得本位计算结果r2,查前一位进数为0的加法进数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表获得本位计算结果r2,查前一位进数为1的加法进数结果表,获得进数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表获得本位计算结果ri,查前一位进数为0的加法进数结果表,获得进数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表,获得本位计算结果ri,查前一位进数为1的加法进数结果表,获得进数计算结果ji;
A4、重复步骤A3至完成数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)的加法,获得结果R(...ri...r6,r5,r4,r3,r2,r1);
和/或,
假设被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)进行减法:
B1、将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查大数加减算法表,获得减法本位结果和减法借位结果;
B2、在计算a1-b1的结果时,前一位借数j0初始化为0,以a1作为被减数,b1作为减数,j0作为前一位借数,查前一位借数为0的减法本位结果表,获得本位计算结果r1,查前一位借数为0的减法借数结果表,获得借数计算结果j1;
B3、当j1为0时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为0的减法本位结果表,获得本位计算结果r2,查前一位借数为0的减法借数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为1的减法本位结果表获得本位计算结果r2,查前一位借数为1的减法借数结果表,获得借数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为0的减法本位结果表获得本位计算结果ri,查前一位借数为0的减法进数结果表,获得借数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为1的减法本位结果表,获得本位计算结果ri,查前一位借数为1的减法借数结果表,获得借数计算结果ji;
B4、重复步骤B3至完成被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)的减法,获得结果R(...ri...r6,r5,r4,r3,r2,r1)。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于等比数列的标签管理方法,其特征在于,包括:
预设一个等比数列,将每个标签和该等比数列的项一一对应,将等比数列的项作为对应标签的标签索引值;
当一个资源包括至少一个标签时,将该资源包括的所有标签对应的标签索引值求和,得到该资源的索引值和数,当一个资源没有包括任何标签时,则该资源的索引值和数为0;
构建索引和数表,将不同资源对应的索引和数存入索引和数表;
通过索引和数表进行标签管理。
2.根据权利要求1所述的一种基于等比数列的标签管理方法,其特征在于,所述标签管理包括标签注册,具体方法包括:
预先构建标签基本信息表,所述标签基本信息表至少包括标签ID和标签索引值;
基于标签基本信息表对每个标签进行注册;
假设等比数列的公比为K,则标签索引值取值为Kexp0,Kexp1,Kexp2,...,KexpN,...,对每个经注册的标签按照预设的顺序赋予标签索引值。
3.根据权利要求2所述的一种基于等比数列的标签管理方法,其特征在于,所述标签管理包括标签分析,具体方法包括:
所述索引和数表包括资源对应的资源ID和索引和数;
根据索引和数表中资源ID所对应的索引和数,得到该资源包括的所有标签索引值,组成标签索引值序列。
4.根据权利要求3所述的一种基于等比数列的标签管理方法,其特征在于,所述根据索引和数表中资源ID所对应的索引和数,得到该资源包括的所有标签索引值,具体包括:
假设索引和数为S;
在等比数列中找出最小的大于S的KexpN1值,则该资源包括标签索引值Kexp(N1-1);
在等比数列中找出最小的大于(S-Kexp(N1-1))的KexpN2值,则该资源包括标签索引值Kexp(N2-1);
在等比数列中找出最小的大于(S-Kexp(N1-1)-Kexp(N2-1))的KexpN3值,则该资源包括标签索引值Kexp(N3-1);
重复直至判断出该资源是否包括标签索引值1,得到该资源包括的所有标签索引值。
5.根据权利要求4所述的一种基于等比数列的标签管理方法,其特征在于,所述标签管理包括增加标签和/或取消标签;
所述增加标签的具体方法包括:
假设给某个资源增加标签x;
根据索引和数表找出该资源对应的索引和数;
根据标签分析方法判断该资源是否包括标签x,不包括则将索引和数与标签x的标签索引值进行计算,得到更新后的索引和数;
根据该资源的资源ID和更新后的索引和数更新索引和数表;
和/或,所述取消标签的具体方法包括:
假设给某个资源取消标签y;
根据索引和数表找出该资源对应的索引和数;
根据标签分析方法判断该资源是否包括标签y,包括则将索引和数与标签y的标签索引值进行计算,得到更新后的索引和数;
根据该资源的资源ID和更新后的索引和数更新索引和数表。
6.根据权利要求4所述的一种基于等比数列的标签管理方法,其特征在于,所述标签管理包括标签比对,具体方法包括:
将需要比对的所有标签的标签索引值相加,得到目标索引和数;
对索引和数表中需要比对的资源的索引和数和目标索引和数分别使用标签分析方法进行分析,得到该资源的索引值序列和目标索引值序列;
比对目标索引值序列中的每一项是否都包括于索引值序列中;
如果出现目标索引值序列中的某一项不包括于索引值序列中,则结束比对,目标索引值序列对应的所有标签中,有该资源不包括的标签;
如果目标索引值序列中的每一项均包括于索引值序列中,则该资源包括目标索引值序列对应的所有标签。
7.根据权利要求6所述的一种基于等比数列的标签管理方法,其特征在于,所述标签管理包括标签检索,具体方法包括:
在进行多种标签组合检索时,对索引和数表中的所有资源使用标签比对方法,其中包括所有标签的资源即为符合多种标签组合检索条件的资源。
8.根据权利要求1-7任一项所述的一种基于等比数列的标签管理方法,其特征在于,还包括:
将索引值、索引和数采用大于10的进制的字符串表示;
根据字符串制定大数加减算法表,所述大数加减算法表至少包括前一位进数为0的加法本位结果表、前一位进数为1的加法本位结果表、前一位进数为0的加法进数结果表、前一位进数为1的加法进数结果表、前一位借数为0的减法本位结果表、前一位借数为1的减法本位结果表、前一位借数为0的减法借数结果表、前一位借数为1的减法借数结果表;
使用大数加减算法表进行标签管理,所述标签管理包括:标签分析,和/或增加标签,和/或取消标签,和/或标签比对,和/或标签检索。
9.根据权利要求8所述的一种基于等比数列的标签管理方法,其特征在于,所述通过索引和数表对标签进行管理,所述使用大数加减算法表对标签进行管理,具体包括:
假设数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)进行加法:
将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查大数加减算法表,获得加法本位结果和加法进位结果;
在计算a1+b1的结果时,前一位进数j0初始化为0,以a1作为被加数,b1作为加数,j0作为前一位进数,查前一位进数为0的加法本位结果表,获得本位计算结果r1,查前一位进数为0的加法进数结果表,获得进数计算结果j1;
当j1为0时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表,获得本位计算结果r2,查前一位进数为0的加法进数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表获得本位计算结果r2,查前一位进数为1的加法进数结果表,获得进数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为0的加法本位结果表获得本位计算结果ri,查前一位进数为0的加法进数结果表,获得进数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被加数、加数、前一位进数输入,查前一位进数为1的加法本位结果表,获得本位计算结果ri,查前一位进数为1的加法进数结果表,获得进数计算结果ji;
重复至完成数A(...ai...a6,a5,a4,a3,a2,a1)和数B(...bi...b6,b5,b3,b2,b1)的加法,获得结果R(...ri...r6,r5,r4,r3,r2,r1);
和/或,
假设被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)进行减法:
将两数右对齐,位数少的数在左边补0,使两数位数相等,从右到左逐位查大数加减算法表,获得减法本位结果和减法借位结果;
在计算a1-b1的结果时,前一位借数j0初始化为0,以a1作为被减数,b1作为减数,j0作为前一位借数,查前一位借数为0减法本位结果表,获得本位计算结果r1,查前一位借数为0减法借数结果表,获得借数计算结果j1;
当j1为0时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为0减法本位结果表,获得本位计算结果r2,查前一位借数为0减法借数结果表,获得进数计算结果j2;
当j1为1时,将a2,b2,j1作为被减数、减数、前一位借数输入,查前一位借数为1减法本位结果表获得本位计算结果r2,查前一位借数为1减法借数结果表,获得借数计算结果j2;
当j(i-1)为0时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为0减法本位结果表获得本位计算结果ri,查前一位借数为0减法进数结果表,获得借数计算结果ji;
当j(i-1)为1时,将ai,bi,j(i-1)作为被减数、减数、前一位借数输入,查前一位借数为1减法本位结果表,获得本位计算结果ri,查前一位借数为1减法借数结果表,获得借数计算结果ji;
重复至完成被减数A(...ai...a6,a5,a4,a3,a2,a1)和减数B(...bi...b6,b5,b3,b2,b1)的减法,获得结果R(...ri...r6,r5,r4,r3,r2,r1)。
10.一种基于等比数列的标签管理***,其特征在于,包括:
标签构建模块,用于预设一个等比数列,将每个标签和该等比数列的项一一对应,将等比数列的项作为对应标签的标签索引值;
索引和数计算模块,用于当一个资源包括至少一个标签时,将该资源包括的所有标签对应的标签索引值求和,得到该资源的索引值和数,当一个资源没有包括任何标签时,则该资源的索引值和数为0;
索引和数表构建模块,用于构建索引和数表,将不同资源对应的索引和数存入索引和数表;
标签管理模块,用于通过索引和数表进行标签管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310584011.8A CN116955352B (zh) | 2023-05-22 | 2023-05-22 | 一种基于等比数列的标签管理方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310584011.8A CN116955352B (zh) | 2023-05-22 | 2023-05-22 | 一种基于等比数列的标签管理方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116955352A CN116955352A (zh) | 2023-10-27 |
CN116955352B true CN116955352B (zh) | 2024-06-11 |
Family
ID=88451831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310584011.8A Active CN116955352B (zh) | 2023-05-22 | 2023-05-22 | 一种基于等比数列的标签管理方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955352B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010026575A (ko) * | 1999-09-07 | 2001-04-06 | 윤종용 | 직접 확산 - 코드분할 다중접속방식 시스템에서 초기동기 획득을 위한 탐색 장치 및 방법 |
CN103927387A (zh) * | 2014-04-30 | 2014-07-16 | 成都理想境界科技有限公司 | 图像检索***及其相关方法和装置 |
CN106685957A (zh) * | 2016-12-28 | 2017-05-17 | 深圳市中远达智能科技有限公司 | 一种标签数据的加密方法、解密方法、装置及*** |
CN108259341A (zh) * | 2017-12-06 | 2018-07-06 | 新华三技术有限公司 | 一种前缀标签分配方法和sdn控制器 |
CN108874826A (zh) * | 2017-05-12 | 2018-11-23 | 杭州海康威视数字技术股份有限公司 | 视频段排序方法和云存储*** |
CN110348623A (zh) * | 2019-07-03 | 2019-10-18 | 西安交通大学 | 基于设计结构矩阵的复杂产品开发时间预测及优化方法 |
CN111695053A (zh) * | 2020-06-12 | 2020-09-22 | 上海智臻智能网络科技股份有限公司 | 序列标注方法、数据处理设备、可读存储介质 |
CN113326264A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 数据处理方法、服务器及存储介质 |
CN114691860A (zh) * | 2020-12-25 | 2022-07-01 | 北京达佳互联信息技术有限公司 | 文本分类模型的训练方法、装置、电子设备及存储介质 |
CN116126864A (zh) * | 2023-01-18 | 2023-05-16 | 阿里云计算有限公司 | 索引构建方法、数据查询方法及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8594248B2 (en) * | 2009-11-05 | 2013-11-26 | Nec Laboratories America, Inc. | Reverse indexing methods and systems |
-
2023
- 2023-05-22 CN CN202310584011.8A patent/CN116955352B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010026575A (ko) * | 1999-09-07 | 2001-04-06 | 윤종용 | 직접 확산 - 코드분할 다중접속방식 시스템에서 초기동기 획득을 위한 탐색 장치 및 방법 |
CN103927387A (zh) * | 2014-04-30 | 2014-07-16 | 成都理想境界科技有限公司 | 图像检索***及其相关方法和装置 |
CN106685957A (zh) * | 2016-12-28 | 2017-05-17 | 深圳市中远达智能科技有限公司 | 一种标签数据的加密方法、解密方法、装置及*** |
CN108874826A (zh) * | 2017-05-12 | 2018-11-23 | 杭州海康威视数字技术股份有限公司 | 视频段排序方法和云存储*** |
CN108259341A (zh) * | 2017-12-06 | 2018-07-06 | 新华三技术有限公司 | 一种前缀标签分配方法和sdn控制器 |
CN110348623A (zh) * | 2019-07-03 | 2019-10-18 | 西安交通大学 | 基于设计结构矩阵的复杂产品开发时间预测及优化方法 |
CN111695053A (zh) * | 2020-06-12 | 2020-09-22 | 上海智臻智能网络科技股份有限公司 | 序列标注方法、数据处理设备、可读存储介质 |
CN114691860A (zh) * | 2020-12-25 | 2022-07-01 | 北京达佳互联信息技术有限公司 | 文本分类模型的训练方法、装置、电子设备及存储介质 |
CN113326264A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 数据处理方法、服务器及存储介质 |
CN116126864A (zh) * | 2023-01-18 | 2023-05-16 | 阿里云计算有限公司 | 索引构建方法、数据查询方法及相关设备 |
Non-Patent Citations (2)
Title |
---|
基于差分隐私改进的保护自由空间数据发布方法的研究与实现;方伟;《 CNKI优秀硕士学位论文全文库信息科技辑》;20210215;1-82 * |
用于脑运作分析的前向网络样本重组树生成算法研究;谢勤;《电子技术与软件工程》;20160307;258-264 * |
Also Published As
Publication number | Publication date |
---|---|
CN116955352A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4785833B2 (ja) | 永続的でユーザアクセス可能なビットマップ値を有するデータベース管理システム | |
EP2924594B1 (en) | Data encoding and corresponding data structure in a column-store database | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
CN101192237B (zh) | 查询多方面信息的方法和*** | |
US4933848A (en) | Method for enforcing referential constraints in a database management system | |
CN103514201B (zh) | 一种非关系型数据库的数据查询方法和装置 | |
US7613701B2 (en) | Matching of complex nested objects by multilevel hashing | |
US8103658B2 (en) | Index backbone join | |
US8112448B2 (en) | Table classification device, table classification method, and table classification program | |
US20070005619A1 (en) | Method and system for detecting tables to be modified | |
US6912540B2 (en) | Chaining database records that represent a single customer or multiple customers living in a household | |
KR20010083096A (ko) | 가치-사례-연결을 통한 컴퓨터에 의해 구현되는데이터베이스 | |
CN101122983A (zh) | 条件配置管理的方法 | |
CN107577787B (zh) | 关联数据信息入库的方法及*** | |
CN105224532A (zh) | 数据处理方法及装置 | |
CN102024046A (zh) | 数据重复性校验方法和装置及*** | |
CN101499065A (zh) | 基于fa的表项压缩方法及装置、表项匹配方法及装置 | |
JP6242540B1 (ja) | データ変換システム及びデータ変換方法 | |
CN116955352B (zh) | 一种基于等比数列的标签管理方法和*** | |
Černjeka et al. | NoSQL document store translation to data vault based EDW | |
US7409380B1 (en) | Facilitated reuse of K locations in a knowledge store | |
Hümmer et al. | A decathlon in multidimensional modeling: Open issues and some solutions | |
US20070239794A1 (en) | Method and system for updating logical information in databases | |
WO2019010277A2 (en) | HIGHLY ATOMIZED INTERVIEWABLE AND SEGMENTED DATA SYSTEMS (HASIDS) | |
US20150058351A1 (en) | Queries for thin database indexing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |