CN113407537B - 数据处理方法、装置及电子设备 - Google Patents
数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113407537B CN113407537B CN202110661779.1A CN202110661779A CN113407537B CN 113407537 B CN113407537 B CN 113407537B CN 202110661779 A CN202110661779 A CN 202110661779A CN 113407537 B CN113407537 B CN 113407537B
- Authority
- CN
- China
- Prior art keywords
- bsi
- bit
- attribute value
- condition
- attribute
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012216 screening Methods 0.000 claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000001914 filtration Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 description 46
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 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/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/2455—Query execution
-
- 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/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法、装置及电子设备,属于计算机技术领域。该方法包括:获取数据的筛选条件;获取与所述筛选条件相关联的至少两个位切片索引BSI对象;根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果;显示所述运算结果。
Description
技术领域
本申请属于数据处理技术领域,具体涉及一种数据处理方法、装置及电子设备。
背景技术
目前,对海量数据(亿级以上)的查找、去重,交差并补、异或计算有很多的应用场景。例如用户画像标签系统,需要存储标签的人群,以及标签之间的交差并补,以进行人群圈选;或者,一些大数据存储引擎,也需要考虑这方面的索引技术来对海量数据做查找去重。
其中,这些场景往往具有数据量大、对计算性能要求高的特点。但是,这些场景通常要求不能占用太大的存储空间。
而目前可以采用位图(Bitmap)存储,例如压缩位图(Roaring Bitmap)存储来解决上述场景的问题。即上述用户画像系统可以采用RoaringBitmap存储人群的画像标签,并做人群圈选;某些开源的大数据存储引擎的底层索引也采用RoaringBitmap存储技术。
但是,由于RoaringBitmap的存储特性,其只能表达简单的对象存在性信息,无法适应基于存储对象的更多属性信息来做条件过滤的场景。
发明内容
本申请实施例的目的是提供一种数据处理方法、装置及电子设备,能够解决现有技术无法适应基于存储对象的更多属性信息来做条件过滤的场景的问题。
第一方面,本申请实施例提供了一种数据处理方法,该方法包括:
获取数据的筛选条件;
获取与所述筛选条件相关联的至少两个位切片索引BSI对象;
根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果;
显示所述运算结果。
第二方面,本申请实施例提供了一种数据处理装置,所述装置包括:
条件获取模块,用于获取数据的筛选条件;
BSI对象获取模块,用于获取与所述筛选条件相关联的至少两个位切片索引BSI对象;
运算模块,用于根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果;
结果显示模块,用于显示所述运算结果。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,能够获取数据的筛选条件,并获取与该筛选条件相关联的至少两个位切片索引BSI对象,从而根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,以获得符合筛选条件的运算结果,从而显示该运算结果。由此可见,本申请的实施例,采用BSI对象存储数据,并可以根据筛选条件,对于该筛选条件相关联的至少两个位切片索引BSI对象的属性值进行算术运算处理,从而获得符合筛选条件的运算结果。即本申请的实施例,可以对BSI对象的属性值进行更多种类的运算,从而适应于更多种类的筛选,因此,本申请的实施例,可以适应基于存储对象的更多属性信息来做条件过滤的场景。
附图说明
图1是本申请实施例提供的一种数据处理方法的流程图;
图2是本申请实施例中对股票的偏好得分转换为BSI对象的过程示意图;
图3是本申请实施例中对基金的偏好得分转换为BSI对象的过程示意图;
图4是本申请实施例中计算bsi1.B1∩bsi2.B1的示意图;
图5是本申请实施例中bsi1.Bi、bsi2.Bi、Xi、X’i对比示意图;
图6是本申请实施例提供的数据处理装置的结构框图;
图7是本申请实施例提供的一种电子设备的结构框图;
图8是本申请实施例提供的另一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的数据处理方法进行详细地说明。
其中,为了便于对本申请实施例的理解,下面首先对位切片索引(Bit-slicedindexes,BSI),进行如下介绍。
假设有一张表T,有一个代表对象实例id的列,以及多个代表对象实例的不同字段属性值列,那么对于某一个数值属性列G,可以用一个BSI对象来表示,即BSI是定义为使用多个Bitmap组成的一个集合,用于存储T表id列和G列的关系和值数据。其中,BSI中的每个独立的位图Bitmap称为T表C列的位切片(bit-slice),Bitmap存储的数据是由BSI的编码策略决定的。
例如将T表的id列采用用户id来代称。参考表1,B1表示id是否存在的Not-Null的Bitmap,存在为1,不存在为0;B2表示属性值是否负数的符号位Bitmap,正数为0,负数为1;B3~Bn是采用二进制范围编码Bitmap用于代表列值,对于某个用户id,其列值进行映射后转换成二进制的第x位的值V,对应BSI对照中的B(x+2)的Bitmap中的对应id的值。
表1 BSI对象示例
其中,BSI位长:也称之为BSI bit depth,代表BSI对象Bitmap的数量,在表1中位长为n。
BSI属性值范围位长,即为BSI的Bitmap集合对象中用于存储属性值的Bitmap的数量,不包括符号位。在表1中BSI属性值范围位长为:n-2。
对于BSI属性值,假设BSI定义为存储T表id列和G列的关系和值数据,则BSI属性值即为G列值。
BSI base值:是一个在范围编码的技术中用于数值映射的基准值,原始属性值通过base值映射成一个映射值,达到压缩存储的效果。BSI的属性值范围位长等于BSI的最大属性值减去base值得到的十进制结果转换成的二进制数的位数,与最小属性值减去base值得到的十进制结果转换成二进制数的位数,二者中的最大位数。其中,例如在表1中可以由基于二进制范围编码的B3~Bn所代表的值和B2所代表的符号位还原为十进制数值,再加上base值即可以得到BSI属性值。其中,一个BSI对象的base值,可以是最大属性值与最小属性值之和的二分之一。可以理解的是,base值的确定方式并不局限于此。
由上述可知,基于二进制的范围编码位切片索引技术(Base-2 Range-EncodedBit-Slice Indexes),在Bitmap功能基础上,可以额外存储对象的属性值。
另外,目前对于BSI对象,可以对对象的属性值做指定的范围条件查询。例如,在画像标签系统中,有两个标签U1和U2,为便于理解假设U1和U2分别代表不同应用程序的用户标签,它们有一个属性J,代表用户月启动应用的次数,则可以通过BSI“查询月启动次数在[5,10]之间的用户”。
由上述可知,BSI存储算法是一种使用多组Bitmap来解决海量带属性值的对象数据的计算和存储算法,除了常见的对象交、差、并、异或等存在性关系计算能力外,还能够实现对对象的列属性值的范围查询功能。
本申请的实施例提供了一种数据处理方法,如图1所示,该方法可以包括以下步骤101至104:
步骤101:获取数据的筛选条件。
可选的,所述获取数据的筛选条件包括:
接收第一输入;
响应于所述第一输入,获取数据的筛选条件。
即用户可以直接输入数据的筛选条件。例如在数据的查询界面中显示用输入框,则用户可以在该输入框中输入筛选条件。
步骤102:获取与所述筛选条件相关联的至少两个位切片索引BSI对象。
其中,筛选条件指示所需获取的数据所处的BSI对象,即为与该筛选条件相关联的BSI对象。
步骤103:至少两个位切片索引BSI对象根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果。
其中,所述筛选条件可以用于指示针对至少两个位切片索引BSI对象的属性值,进行大于、大于等于、小于、小于等于、等于、不等于进行判断,以筛选符合条件的数据,或者对至少两个位切片索引BSI对象的属性值进行加、减计算得到新的属性值。
由此可知,本申请的实施例,可以对两个BSI对象的属性值,进行大于、大于等于、小于、小于等于、等于、不等于的判断过滤,也可以对两者属性值进行加、减计算得到新的属性值,从而可以满足诸如画像标签等场景中对BSI衍生的扩展过滤和计算的需求场景。
步骤104:显示所述运算结果。
由上述步骤101至104可知,在本申请实施例中,能够获取数据的筛选条件,并获取与该筛选条件相关联的至少两个位切片索引BSI对象,从而根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,以获得符合筛选条件的运算结果,从而显示该运算结果。由此可见,本申请的实施例,采用BSI对象存储数据,并可以根据筛选条件,对于该筛选条件相关联的至少两个位切片索引BSI对象的属性值进行算术运算处理,从而获得符合筛选条件的运算结果。即本申请的实施例,可以对BSI对象的属性值进行更多种类的运算,从而适应于更多种类的筛选,因此,本申请的实施例,可以适应基于存储对象的更多属性信息来做条件过滤的场景。
可选的,所述至少两个位切片索引BSI对象包括第一BSI对象和第二BSI对象,所述第一BSI对象和所述第二BSI对象的属性值表示不同目标对象的不同字段取值;
所述筛选条件包括如下条件中的至少一个:
第一条件,所述第一条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值相同的目标对象;
第二条件,所述第二条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值不同的目标对象;
第三条件,所述第三条件用于指示筛选在所述第一BSI对象中的属性值大于在所述第二BSI对象中的属性值的目标对象;
第四条件,所述第四条件用于指示筛选在所述第一BSI对象中的属性值大于或等于在所述第二BSI对象中的属性值的目标对象;
第五条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相加;
第六条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相减。
例如存在用户1至8对股票的偏好得分,以及对基金的偏好得分,则可以将用户1至8的偏好得分转换为一个BSI对象,将用户1至8对基金的偏好得分转换为另一个BSI对象。即可以采用第一BSI对象bsi1代表投资理财偏好为股票的用户的BSI对象,采用第二BSI对象bsi2代表投资理财偏好为基金的用户的BSI对象,其中,所述偏好得分是预先通过偏好模型获得的得分,得分从0~100。
其中,在将用户1至8对股票的偏好得分转换为bsi1,将用户1至8对基金的偏好得分转换为bsi2之前,需要计算BSI base值。例如可以计算bsi1的base值,记为base1,并将用户1至8对股票的偏好得分,按照该base1转换为bsi1;计算bsi2的base值,记为base2,并将用户1至8对股票的偏好得分,按照该base2转换为bsi2。但是,此种方式转换得到的bsi1和bsi2的位长可能会不相同。而在对BSI对象的属性值进行运算的过程中,需要BSI对象的位长相同,则按照上述方式转换得到bsi1和bsi2之后,还需要将bsi1和bsi2位长较小的按另一个位长较大的对齐。假设bsi1的位长较小,则重新创建一个BSI对象,对bsi1中的每个Bitmap按新的base值和位长进行转换,并将bsi1重新赋值为它。这样bsi1和bsi2就有一样的base值和位长。
或者,可以在初始构建bsi1和bsi2对象的时候就考虑基于同样的位长来创建。例如图2中所示的对股票的偏好得分,以及图3中所示的对基金的偏好得分中,最大值和最小值之和的二分之一为(80+3)/2=41.5,则bsi1和bsi2对象初始构建过程可以采用相同的base值:41。
另外,确定出base值之后,则可以按照图2和图3的流程转换得到bsi1和bsi2。即将每一个得分分别减去base值(即41),然后将得到的差转换为二进制数,从而将得到的二进制数映射为BSI对象的B3至B8位。其中,B3为低位,B8为高位。
此外,得到bsi1和bsi2之后,则可以根据筛选条件对bsi1和bsi2中的属性值进行算术运算,从而得到符合筛选条件的结果。例如可以筛选出bsi1和bsi2中对股票的偏好得分和对基金的偏好得分相同的用户;或者,筛选出bsi1和bsi2中对股票的偏好得分和对基金的偏好得分不同的用户;或者,筛选出bsi1和bsi2中对股票的偏好得分大于对基金的偏好得分的用户;或者,筛选出bsi1和bsi2中对股票的偏好得分大于或等于对基金的偏好得分的用户,或者,可以计算同一个用户对股票偏好得分和对基金偏好得分的和或差。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第一条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
获取在所述第一BSI对象和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值相同的目标对象,得到第i个第二目标集合;
将所述第一目标集合、第2至第n个第二目标集合的交集中包括的目标对象,确定为符合所述第一条件的目标对象;
其中,n表示所述第一BSI对象的位长。
可选的,所述获取在所述第一BSI对象和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合,包括:
根据第一预设公式bsi1.B1∩bsi2.B1=Z,计算第一参数Z,其中,bsi1.B1表示所述第一BSI对象的第一位,bsi2.B1表示所述第二BSI对象的第一位;
将所述第一参数Z中取值为1的位置对应的目标对象保存至第一目标集合中。
可选的,所述获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值相同的目标对象,得到第i个第二目标集合,包括:
根据第二预设公式bsi1.Bi⊙bsi2.Bi=Hi,计算第i个第二参数Hi,其中,bsi1.Bi表示所述第一BSI对象的第i位,bsi2.Bi表示所述第二BSI对象的第i位;
将第i个第二参数Hi中取值为1的位置对应的目标对象,保存至第i个第二目标集合中。
可选的,获取所述第一目标集合、第2至第n个第二目标集合的交集的过程包括:
对所述第一参数,以及第2至n个所述第二参数进行逻辑与运算,得到第三参数;
将所述第三参数中取值为1的位置对应的目标对象,确定为所述第一目标集合、第2至第n个第二目标集合的交集。
由上述可知,在本申请的实施例中,在筛选属性值相同的目标对象时,需要对第一BSI对象和第二BSI对象从B2~Bn的Bitmap进行同或运算,得到代表属性值相同的用户的Bitmap1,然后再用交集用户(即第一BSI对象和第二BSI对象的B1的交集)与Bitmap1再进行交集即可。即筛选第一BSI对象和第二BSI对象中属性值相同的目标对象的计算公式为:bsi1.B1∩bsi2.B1∩(bsi1.B2⊙bsi2.B2)∩(bsi1.B3⊙bsi2.B3)∩...∩(bsi1.Bn⊙bsi2.Bn),⊙表示同或运算。
例如筛选出图2中所示的bsi1和图3中所示的bsi2中属性值相同的用户时,可以首先如图4所示计算bsi1.B1∩bsi2.B1,得到存在对股票的偏好得分和对基金的偏好得分的用户(即对股票的偏好得分和对基金的偏好得分均不为0的用户),记为第一用户;然后,计算(bsi1.B2⊙bsi2.B2)∩(bsi1.B3⊙bsi2.B3)∩...∩(bsi1.B8⊙bsi2.B8),得到对股票的偏好得分和对基金的偏好得分相同的用户,记为第二用户。其中,由于第二用户中包括对股票的偏好得分和对基金的偏好得分都为0的用户,因此,还需要计算第一用户和第二用户的交集。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第二条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
获取在所述第一BSI对象中和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值不同的目标对象,得到第i个第三目标集合;
获取第2至第n个第三目标集合的并集;
将第2至第n个第三目标集合的并集与所述第一目标集合的交集包括的目标对象,确定为符合所述第二条件的目标对象;
其中,n表示所述第一BSI对象的位长。
可选的,所述获取在所述第一BSI对象和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合,包括:
根据第一预设公式bsi1.B1∩bsi2.B1=Z,计算第一参数Z,其中,bsi1.B1表示所述第一BSI对象的第一位,bsi2.B1表示所述第二BSI对象的第一位;
将所述第一参数Z中取值为1的位置对应的目标对象保存至第一目标集合中。
可选的,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值不同的目标对象,得到第i个第三目标集合,包括:
根据第三预设公式bsi1.Bi xor bsi2.Bi=Li,计算第i个第四参数Li,其中,bsi1.Bi表示所述第一BSI对象的第i位,bsi2.Bi表示所述第二BSI对象的第i位;
将第i个第四参数Li中取值为1的位置对应的目标对象,保存至第i个第三目标集合中。
可选的,获取第2至第n个第三目标集合的并集的过程,包括:
对第2至n个所述第四参数进行逻辑或运算,得到第五参数;
将所述第五参数中取值为1的位置对应的目标对象,确定为第2至第n个第三目标集合的并集。
可选的,获取第2至第n个第三目标集合的并集与所述第一目标集合的交集的过程,包括:
对所述第一参数和所述第五参数进行逻辑与运算,得到第六参数;
将所述第六参数中取值为1的位置对应的目标对象,确定为第2至第n个第三目标集合的并集与所述第一目标集合的交集。
由上述可知,在本申请的实施例中,在筛选属性值不同的目标对象时,需要对第一BSI对象和第二BSI对象从B2~Bn的Bitmap进行异或运算,得到代表属性值不同的用户的Bitmap2,然后再用交集用户(即第一BSI对象和第二BSI对象的B1的交集)与Bitmap2再进行交集即可。即筛选第一BSI对象和第二BSI对象中属性值不同的目标对象的计算公式为:(bsi1.B1∩bsi2.B1)∩((bsi1.B2 xor bsi2.B2)∪(bsi1.B3 xor bsi2.B3)∪...∪(bsi1.Bn xor bsi2.Bn)),xor表示异或运算。
例如筛选出图2中所示的bsi1和图3中所示的bsi2中属性值不同的用户时,可以首先如图4所示计算bsi1.B1∩bsi2.B1的交集,得到存在对股票的偏好得分和对基金的偏好得分的用户(即对股票的偏好得分和对基金的偏好得分均不为0的用户),记为第一用户;然后,计算((bsi1.B2 xor bsi2.B2)∪(bsi1.B3 xor bsi2.B3)∪...∪(bsi1.B8 xorbsi2.B8)),得到对股票的偏好得分和对基金的偏好得分不同的用户,记为第三用户。其中,由于第三用户中包括只存在对股票的偏好得分的用户,以及只存在对基金的偏好得分的用户,因此,还需要计算第一用户和第三用户的交集。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第三条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
在i取3至n中的每一个整数时,执行如下过程:
根据第四预设公式Bi-Ci=Ei,计算第i个第一集合Di,并将第i个第一集合转换为二进制表示形式,得到i个第七参数Xi,其中,Bi表示所述第一BSI对象的第i位中取值为1的位置对应的目标对象组成的集合,Ci表示第二BSI对象的第i位中取值为1的位置对应的目标对象组成的集合;
根据第五预设公式Ci-Bi=Di,计算第i个第二集合Ei,并将第i个第二集合转换为二进制表示形式,得到第i个第八参数X’i;
根据第六预设公式Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),计算第i个第九参数Yi,其中,Yn=bsi1.Bn⊙bsi2.Bn,bsi1.Bi表示所述第一BSI对象的第i位,bsi2.Bi表示所述第二BSI对象的第i位;
根据第七预设公式Rgt1i=Rgt1(i+1)∪(Xi∩Y(i+1))以及Rgt1n=Xn,计算第十参数Rgt13;
根据第八预设公式F1-G=S1,计算第三集合S1,并将所述第三集合转换为二进制表示形式,得到第十一参数P1,其中,F1为Rgt13表示的集合,G为bsi1.B2表示的集合;
根据第九预设公式Rlt1i=Rlt1(i+1)∪(X’i∩Y(i+1))以及Rlt1n=X’n,计算第十二参数Rlt13;
根据第十预设公式C2–B2=D2,计算第2个第五集合D2,并将第2个第五集合转换为二进制表示形式,得到2个第七参数X’2,其中,B2表示所述第一BSI对象的第2位中取值为1的位置对应的目标对象组成的集合B2,C2表示所述第二BSI对象的第2位中取值为1的位置对应的目标对象组成的集合;
根据第十一预设公式R1=(bsi1.B1∩bsi2.B1)∩(P1∪(Rlt13∩bsi1.B2∩bsi2.B2)∪X’2),计算第十三参数R1,并将所述第十三参数中取值为1的位置对应的目标对象,确定为符合所述第三条件的目标对象;
其中,n表示所述第一BSI对象的位长。
由此可知,用于确定在第一BSI对象中的属性值大于在第二BSI对象中的属性值的目标对象的计算公式如下所示:
Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),其中,Yn=bsi1.Bn⊙bsi2.Bn;
Rgt1i=Rgt1(i+1)∪(Xi∩Y(i+1)),其中,Rgt1n=Xn;
Rlt1i=Rlt1(i+1)∪(X’i∩Y(i+1)),其中,Rlt1n=X’n;
R1=(bsi1.B1∩bsi2.B1)∩(P1∪(Rlt13∩bsi1.B2∩bsi2.B2)∪X’2);
其中,Xi为bsi1.Bi表示的集合减去bsi2.Bi表示的集合的差集转换后的二进制数,X’i为bsi2.Bi表示的集合减去bsi1.Bi表示的集合的差集转换后的二进制数,P1为Rgt13表示的集合减去bsi1.B2表示的集合的差集转换后的二进制数,X’2为bsi2.B2表示的集合减去bsi1.B1表示的集合的差集转换后的二进制数,i为3至n的整数。
假设bsi1和bsi2中的属性值均为正数,对于B3~Bn的任意一个Bi,3<=i<=n,bsi1.Bi的第i位二进制值大于bsi2.Bi的第i位的二进制值的目标对象为:bsi1.Bi表示的集合减去bsi2.Bi表示的集合的差转换后的二进制数,记为Xi。
同时,对循环各位计算过程而言,高位二进制值满足大于条件的情况下,可以跳过低位二进制比较结果;但若高位二进制值相同,则需要比较剩余的低位的二进制值。因此,bsi1中的属性值大于在bsi2中的属性值的目标对象的结果包括两部分:高位已经满足条件的结果,以及高位属性值相同但该行属性值符合大于的部分,两部分交集即为截止遍历至该行的符合条件的结果。
因此,需要同时记录下bsi1和bsi2在遍历至第i位时,二进制值相同的用户Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),其中Yn为bsi1.Bn⊙bsi2.Bn。因而,对于第i位符合条件的结果为:Xi∩Y(i+1),即Xi∩Y(i+1)表示第n至i+1位相同,且第i位上bsi1大于bsi2的目标对象。
因此,i从n-1循环递减到3,根据公式Rgt1i=Rgt1(i+1)∪(Xi∩Y(i+1))以及Rgt1n=Xn,得到的Rgt13即表示bsi1中的属性值大于在bsi2中的属性值的目标对象。
此处需要说明的是,上述以bsi1和bsi2中的属性值均为正数的情况,介绍了筛选bsi1中的属性值大于在bsi2中的属性值的目标对象的过程。而如果将属性值为负数的情况也考虑进来,bsi1的属性值大于bsi2的属性值的各种情况,具体可如下表2所示。
表2 bsi1的属性值大于bsi2的属性值的情况
其中,表2中的P1表示bsi1为正数且bsi1的属性值大于bsi2的用户。
假设R1表示bsi1的属性值大于bsi2的属性值的用户,则考虑属性值正负情况下,R1应该是上述表2中所示的各种情况的并集与(bsi1.B1∩bsi2.B1)的交集,即R1=(bsi1.B1∩bsi2.B1)∩(P1∪(Rlt∩bsi1.B2∩bsi2.B2)∪X’2)。
示例性的,以图2所示的bsi1和图3所示的bsi2为例,筛选对股票的偏好得分大于对基金的偏好得分的用户的计算过程如下所述:
首先,在i取值为3至8时,分别计算bsi2.Bi表示的集合减去bsi1.Bi表示的集合的差集,并转换为二进制数,记为Xi;计算bsi1.Bi表示的集合减去bsi2.Bi表示的集合的差集,并转换为二进制数,记为X’i;其中,bsi1.Bi、bsi2.Bi、Xi、X’i对比示意图如图5所示。
其次,根据公式Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),可以得到Y3至Y8的结果,如表3所示;
表3 Y3至Y8的结果
再次,根据公式Rgt1i=Rgt1(i+1)∪(Xi∩Y(i+1))以及Rgt1n=Xn,可以计算得到Rgt18至Rgt13,如表4所示;
表4 Rgt18至Rgt13的结果
用户1 | 用户2 | 用户3 | 用户4 | 用户5 | 用户6 | 用户7 | 用户8 | |
Rgt13 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
Rgt14 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
Rgt15 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
Rgt16 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
Rgt17 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
Rgt18 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
再次,计算Rgt13表示的集合减去bsi1.B2表示的集合得到的差转换为二进制数,记为P1=00001100;
再次,根据Rlt1i=Rlt1(i+1)∪(X’i∩Y(i+1))以及Rlt1n=X’n,可以计算得到Rlt18至Rlt13,如表5所示;
表5 Rlt18至Rlt13的结果
用户1 | 用户2 | 用户3 | 用户4 | 用户5 | 用户6 | 用户7 | 用户8 | |
Rlt13 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
Rlt14 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
Rlt15 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
Rlt16 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
Rlt17 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Rlt18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
再次,计算Rlt13∩bsi1.B2∩bsi2.B2的结果,如下表6所示;
表6 Rlt13∩bsi1.B2∩bsi2.B2的结果
再次,根据公式R1=(bsi1.B1∩bsi2.B1)∩(P1∪(Rlt13∩bsi1.B2∩bsi2.B2)∪X2),计算R1的结果,如表7所示。
表7 R1的结果
即用户4和用户6为同时有股票和基金标签且股票偏好得分大于基金偏好得分的用户。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第四条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
在i取3至n中的每一个整数时,执行如下过程:
根据第四预设公式Bi-Ci=Ei,计算第i个第一集合Di,并将第i个第一集合转换为二进制表示形式,得到i个第七参数Xi,其中,Bi表示所述第一BSI对象的第i位中取值为1的位置对应的目标对象组成的集合,Ci表示第二BSI对象的第i位中取值为1的位置对应的目标对象组成的集合;
根据第五预设公式Ci-Bi=Di,计算第i个第二集合Ei,并将第i个第二集合转换为二进制表示形式,得到第i个第八参数X’i;
根据第十二预设公式Xi∪(bsi2.Bi⊙bsi1.Bi)=Wi,得到第i个第十四参数Wi,其中,bsi1.Bi表示所述第一BSI对象的第i位,bsi2.Bi表示所述第二BSI对象的第i位;
根据第十三预设公式X’i∪(bsi2.Bi⊙bsi1.Bi)=W’i,得到第i个第十五参数W’i;
根据第六预设公式Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),计算第i个第九参数Yi,其中,Yn=bsi1.Bn⊙bsi2.Bn;
根据第十四预设公式Rgt2i=Rgt2(i+1)∪(Wi∩Y(i+1))以及Rgt2n=Wn,计算第十六参数Rgt23;
根据第十五预设公式F2-G2=S2,计算第四集合S2,并将所述第四集合转换为二进制表示形式,得到第十七参数P2,其中,F2为Rgt23表示的集合,G为bsi1.B2表示的集合;
根据第十六预设公式Rlt2i=Rlt2(i+1)∪(W’i∩Y(i+1))以及Rlt2n=W’n,计算第十八参数Rlt23;
根据第十预设公式C2–B2=D2,计算第2个第五集合D2,并将第2个第五集合转换为二进制表示形式,得到2个第七参数X’2,其中,B2表示所述第一BSI对象的第2位中取值为1的位置对应的目标对象组成的集合B2,C2表示所述第二BSI对象的第2位中取值为1的位置对应的目标对象组成的集合;
根据第十七预设公式R2=(bsi1.B1∩bsi2.B1)∩(P2∪(Rlt23∩bsi1.B2∩bsi2.B2)∪X’2),计算第十九参数R2,并将所述第十九参数中取值为1的位置对应的目标对象,确定为符合所述第四条件的目标对象;
其中,n表示所述第一BSI对象的位长。
由此可知,用于确定在第一BSI对象中的属性值大于或等于在第二BSI对象中的属性值的目标对象的计算公式如下所示:
Xi∪(bsi2.Bi⊙bsi1.Bi)=Wi;
X’i∪(bsi2.Bi⊙bsi1.Bi)=W’i;
Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),其中,Yn=bsi1.Bn⊙bsi2.Bn;
Rgt2i=Rgt2(i+1)∪(Wi∩Y(i+1)),其中,Rgt2n=Wn;
Rlt2i=Rlt2(i+1)∪(W’i∩Y(i+1)),其中,Rlt2n=W’n;
R2=(bsi1.B1∩bsi2.B1)∩(P2∪(Rlt23∩bsi1.B2∩bsi2.B2)∪X’2);
其中,Xi为bsi1.Bi表示的集合减去bsi2.Bi表示的集合的差集转换后的二进制数,X’i为bsi2.Bi表示的集合减去bsi1.Bi表示的集合的差集转换后的二进制数,P2为Rgt23表示的集合减去bsi1.B2表示的集合的差集转换后的二进制数,X’2为bsi1.B2表示的集合减去bsi2.B2表示的集合的差集转换后的二进制数,i为3至n的整数。
另外,通过对比此处“用于确定在第一BSI对象中的属性值大于或等于在第二BSI对象中的属性值的目标对象的计算公式”,与前述“用于确定在第一BSI对象中的属性值大于在第二BSI对象中的属性值的目标对象的计算公式”,可知:二者的计算过程相似,不同之处在于在“用于确定在第一BSI对象中的属性值大于或等于在第二BSI对象中的属性值的目标对象的计算公式”中,计算出Xi和X’i之后,还需要分别计算与bsi2.Bi⊙bsi1.Bi的交集,得到Wi和W’i,然后再代入到其他公式中进行计算。其中,Wi表示bsi1和bsi2均为正数时,bsi1的第i位二进制值大于或等于bsi2的第i位二进制值的目标对象。
由上述可知,本申请的实施例,可以通过对第一BSI对象和第二BSI对象中的各个二进制值进行运算,以筛选出在第一BSI对象中的属性值大于在第二BSI对象中的属性值的目标对象,或者在第一BSI对象中的属性值大于或等于在第二BSI对象中的属性值的目标对象。
同理,也可以通过对第一BSI对象和第二BSI对象中的各个二进制值进行运算,以筛选出在第一BSI对象中的属性值小于在第二BSI对象中的属性值的目标对象,或者在第一BSI对象中的属性值小于或等于在第二BSI对象中的属性值的目标对象。具体计算公式列举如下:
第一方面,用于确定在第一BSI对象中的属性值小于在第二BSI对象中的属性值的目标对象的计算公式如下所示:
Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),其中,Yn=bsi1.Bn⊙bsi2.Bn;
Rgt3i=Rgt3(i+1)∪(X’i∩Y(i+1)),其中,Rgt3n=X’n;
Rlt3i=Rlt3(i+1)∪(Xi∩Y(i+1)),其中,Rlt3n=Xn;
R3=(bsi1.B1∩bsi2.B1)∩(P3∪(Rlt33∩bsi1.B2∩bsi2.B2));
其中,Xi为bsi1.Bi表示的集合减去bsi2.Bi表示的集合的差集转换后的二进制数,X’i为bsi2.Bi表示的集合减去bsi1.Bi表示的集合的差集转换后的二进制数,P1为Rgt13表示的集合减去bsi1.B2表示的集合的差集转换后的二进制数,i为3至n的整数。
第二方面,用于确定在第一BSI对象中的属性值小于或等于在第二BSI对象中的属性值的目标对象的计算公式如下所示:
Xi∪(bsi2.Bi⊙bsi1.Bi)=Wi;
X’i∪(bsi2.Bi⊙bsi1.Bi)=W’i;
Yi=(bsi1.Bi⊙bsi2.Bi)∩Y(i+1),其中,Yn=bsi1.Bn⊙bsi2.Bn;
Rgt4i=Rgt4(i+1)∪(W’i∩Y(i+1)),其中,Rgt4n=W’n;
Rlt4i=Rlt4(i+1)∪(Wi∩Y(i+1)),其中,Rlt4n=Wn;
R4=(bsi1.B1∩bsi2.B1)∩(P4∪(Rlt23∩bsi1.B2∩bsi2.B2));
其中,Xi为bsi1.Bi表示的集合减去bsi2.Bi表示的集合的差集转换后的二进制数,X’i为bsi2.Bi表示的集合减去bsi1.Bi表示的集合的差集转换后的二进制数,P4为Rgt43表示的集合减去bsi1.B2表示的集合的差集转换后的二进制数,i为3至n的整数。
由上述可知,在本申请的实施例中,在对至少两个位切片索引BSI对象的属性值进行比较时,可以采用二进制数的逻辑运算,实现对同一目标对象在不同BSI对象中的属性值的各个二进制位的比较。这样,直接基于BSI对象的属性值的二进制形式进行运算,即可获得符合筛选条件的运算结果,运算过程更加简单。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第五条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
确定第一比特图,其中,所述第一比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相加后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第三比特图的第3位;
在i取4至n中的每一个整数时,将所述第二比特图的第i位与所述第一比特图的第i-1位进行异或,得第三比特图的第i位;
确定所述第一属性值和所述第二属性值之和的第一符号;
根据所述第一符号和所述第三比特图,确定所述第一属性值和所述第二属性值之和。
其中,在计算第一BSI对象和第二BSI对象中属于第k个目标对象的属性值之和时,需要第k个目标对象在第一BSI对象中的第一属性值,与第k个目标对象在第二BSI对象中的第二属性值的正负情况分别进行处理,具体可如下情况一至三所述。
情况一:第一属性值和第二属性值均为正数或负数时,二者相加。
即在第一属性值和第二属性值均为正数或负数的情况下,将所述第一BSI对象和所述第二BSI对象中属于第k个目标对象的属性值相加的过程具体可以可如下所述:
根据第十八预设公式和第十九预设公式:计算bsi3.k.B2至bsi3.k.B(n+1),并将bsi3.k.B2与bsi3.k.B(n+1)至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
其中,所述第一属性值为所述第一BSI对象中属于第k个所述目标对象的属性值,所述第二属性值为所述第二BSI对象中属于第k个所述目标对象的属性值;
第十八预设公式为:
第十九预设公式为:
bsi1.k.Bi表示所述第一属性值的第i位,bsi2.k.Bi表示所述第二属性值的第i位。
其中,Q13~Q1n表示上述第一比特图,i取3至n中每一个整数时,bsi1.k.Bi xorbsi2.k.Bi的结果表示第二比特图,bsi3.k.B3至bsi3.k.B(n+1)表示上述第三比特图,bsi3.k.B2表示所述第一属性值和所述第二属性值之和的第一符号。
由上述可知,在本申请实施例中,对于B3~Bn任意的一个Bi,3<=i<=n,与二进制加法的法则相同:0+0得0,0+1得1,1+1得(1,0),其中1+1的结果(1,0)代表需要向前一位进1。具体到bsi1.k(即bsi1中的第k个目标对象)和bsi2.k(即bsi1中的第k个目标对象)的Bi相加的结果bsi3.k,就会产生两个Bitmap,假设把计算后代表需要往前进一到i+1位的Bitmap结果称为Q1i,它会被用于计算bsi3.k.B(i+1)。那么有以下计算公式:
Q1i=(bsi1.k.Bi∩bsi2.k.Bi)∪(bsi1.k.Bi xor bsi2.k.Bi∩Q1(i-1));
bsi3.k.Bi=bsi1.k.Bi xor bsi2.k.Bi xor Q1(i-1)。
即Q1i表示bsi1.k.Bi、bsi2.k.Bi及上一轮进阶过来计算的Q1(i-1)相加后大于1的位(亦即Q1i为1表示第i位需要向前进1,Q1i为0表示第i位不需要向前进1),其中,Q13=bsi1.B3∩bsi2.B3。
bsi3.k.Bi表示bsi1.k.Bi、bsi2.k.Bi及上一轮进阶过来计算的Q1(i-1)二进制值相加后留在该位的值,且bsi3.k.B3=bsi1.k.B3 xor bsi2.k.B3,bsi3.k.B(n+1)=Q1n。具体由这几种情况组成:0+0+0得0;0+0+1得1;0+1+1得(1,0),留在该位的值为0;1+1+1=>(1,1),留在该位的值为1。
另外,在第一属性值和第二属性值均为正数或者负数时,bsi1.k.B2与bsi2.k.B2相同,因此,bsi3.k.B2=bsi1.k.B2或bsi2.k.B2,即第一属性值和第二属性值相加的结果的符号位的二进制值与第一属性值或者第二属性值的符号位的二进制值相同。
此外,第一属性值和第二属性值均为正数或负数,表示第一属性值和第二属性值均存在,因此,bsi3.k.B1=bsi1.k.B1∩bsi2.k.B1。
示例性的,以图2所示的bsi1和图3所示的bsi2为例,计算用户6对股票的偏好得分与对基金的偏好得分之和的过程如表8所示。
表8计算用户6对股票的偏好得分与对基金的偏好得分之和的过程
其中,bsi3.k.B2=0,即为用户6对股票偏好得分与对基金偏好得分之和为正数。因此,最终得到bsi3.k的二进制为0110101,转换成十进制数为53,如果根据base值进行还原,则可以得到其真实的相加后的属性值为:53+41*2=135,其中bsi3的base值为41*2=82,这个结果符合用户6原始的属性值相加结果,即80+55=135。
情况二:第一属性值为正数,第二属性值为负数时,二者相加。
即在第一属性值为正数且第二属性值为负数的情况下,将所述第一BSI对象和所述第二BSI对象中属于第k个目标对象的属性值相加的过程具体可以可如下所述:
根据第二十预设公式Q2i=N1i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q2(i-1)),计算Q24至Q2n,其中,i∈[4,n]且为整数,N1i为bsi2.k.Bi所表示的集合与bsi1.k.Bi所表示的集合之差转换后的二进制数,Q23为bsi2.k.B3所表示的集合与bsi1.k.B3所表示的集合之差转换后的二进制数;
在Q2n=0的情况下,根据第二十一预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
在Q2n=1的情况下,根据第二十二预设公式和第二十三预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
其中,第二十一预设公式为:
第二十二预设公式为:Q3i=N2i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q3(i-1)),其中,i∈[4,n]且为整数,N2i为bsi1.k.Bi所表示的集合与bsi2.k.Bi所表示的集合之差转换后的二进制数,Q33为bsi1.k.B3所表示的集合与bsi2.k.B3所表示的集合之差转换后的二进制数;
第二十三预设公式为:
所述第一属性值为所述第一BSI对象中属于第k个所述目标对象的属性值,所述第二属性值为所述第二BSI对象中属于第k个所述目标对象的属性值;
bsi1.k.Bi表示所述第一属性值的第i位,bsi2.k.Bi表示所述第二属性值的第i位。
其中,Q23~Q2n表示上述第一比特图,i取3至n中每一个整数时,bsi1.k.Bi xorbsi2.k.Bi的结果表示第二比特图,bsi3.k.B3至bsi3.k.Bn表示上述第三比特图,bsi3.k.B2表示所述第一属性值和所述第二属性值之和的第一符号。
假如上述第一属性值为39,第二属性值为-14,则计算二者之和的过程可如表9所示。
表9计算39与-14之和的过程
/>
由表9可知,Q28=0,则根据上述第二十一预设公式,计算bsi3.k.B2至bsi3.k.B8,并将bsi3.k.B2与bsi3.k.B8至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和,即0011001,转换十进制数即为25,其中符号位为0,故结果为+25。
情况三:第一属性值为负数,第二属性值为正数时,二者相加。
即在第一属性值为负数且第二属性值为正数的情况下,将所述第一BSI对象和所述第二BSI对象中属于第k个目标对象的属性值相加的过程具体可以可如下所述:
根据第二十二预设公式Q3i=N2i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q3(i-1)),计算Q34至Q3n,其中,i∈[4,n]且为整数,N2i为bsi1.k.Bi所表示的集合与bsi2.k.Bi所表示的集合之差转换后的二进制数,Q33为bsi1.k.B3所表示的集合与bsi2.k.B3所表示的集合之差转换后的二进制数;
在Q3n=0的情况下,根据第二十四预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
在Q3n=1的情况下,根据第二十预设公式和第二十五预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
其中,所述第二十四预设公式为:
所述第二十预设公式为:Q2i=N1i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q2(i-1)),其中,i∈[4,n]且为整数,N1i为bsi2.k.Bi所表示的集合与bsi1.k.Bi所表示的集合之差转换后的二进制数,Q23为bsi2.k.B3所表示的集合与bsil.k.B3所表示的集合之差转换后的二进制数;
所述第二十五预设公式为:
所述第一属性值为所述第一BSI对象中属于第k个所述目标对象的属性值,所述第二属性值为所述第二BSI对象中属于第k个所述目标对象的属性值;
bsi1.k.Bi表示所述第一属性值的第i位,bsi2。k.Bi表示所述第二属性值的第i位。
其中,Q33~Q3n表示上述第一比特图,i取3至n中每一个整数时,bsi1.k.Bi xorbsi2.k.Bi的结果表示第二比特图,bsi3.k.B3至bsi3.k.Bn表示上述第三比特图,bsi3.k.B2表示所述第一属性值和所述第二属性值之和的第一符号。
示例性的,以图2所示的bsil和图3所示的bsi2为例,计算用户2对股票的偏好得分与对基金的偏好得分之和(即bsi1中的属性值-31和bsi2中的属性值11之和)的过程如表10所示。
表10计算用户2对股票的偏好得分与对基金的偏好得分之和的过程
由表10可知,Q38=1,则根据上述第二十预设公式和第二十五预设公式,计算bsi3.k.B2至bsi3.k.B8,并将bsi3.k.B2与bsi3.k.B8至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和,即1001100,转换十进制数即为12,其中符号位为1,故结果为-12。如果还原回原始的属性值结果,则结果为:-12+2*base=70,符合原始属性值10+60=70的结果。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第六条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
确定第四比特图,其中,所述第四比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相减后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第五比特图的第3位;
在取4至n中的每一个整数时,将所述第二比特图的第i位与所述第四比特图的第i-1位进行异或,得第五比特图的第i位;
确定所述第一属性值与所述第二属性值相减的第二符号;
根据所述第二符号和所述第五比特图,确定所述第一属性值和所述第二属性值之差。
其中,在计算第一BSI对象和第二BSI对象中属于第k个目标对象的属性值之和时,也需要第k个目标对象在第一BSI对象中的第一属性值,与第k个目标对象在第二BSI对象中的第二属性值的正负情况分别进行处理,具体可如下情况四至六所述。
情况四:第一属性值和第二属性值均为正数时,第一属性值减去第二属性值。
即在第一属性值和第二属性值均为正数的情况下,将所述第一BSI对象和所述第二BSI对象中属于第k个目标对象的属性值相减的过程具体可如下所述:
根据第二十预设公式Q2i=N1i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q2(i-1)),计算Q24至Q2n,其中,i∈[4,n]且为整数,N1i为bsi2.k.Bi所表示的集合与bsi1.k.Bi所表示的集合之差转换后的二进制数,Q23为bsi2.k.B3所表示的集合与bsi1.k.B3所表示的集合之差转换后的二进制数;
在Q2n=0的情况下,根据第二十一预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
在Q2n=1的情况下,根据第二十二预设公式和第二十三预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
其中,第二十一预设公式为:
第二十二预设公式为:Q3i=N2i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q3(i-1)),其中,i∈[4,n]且为整数,N2i为bsi1.k.Bi所表示的集合与bsi2.k.Bi所表示的集合之差转换后的二进制数,Q33为bsi1.k.B3所表示的集合与bsi2.k.B3所表示的集合之差转换后的二进制数;
第二十三预设公式为:
所述第一属性值为所述第一BSI对象中属于第k个所述目标对象的属性值,所述第二属性值为所述第二BSI对象中属于第k个所述目标对象的属性值;
bsi1.k.Bi表示所述第一属性值的第i位,bsi2.k.Bi表示所述第二属性值的第i位。
其中,Q23~Q2n表示上述第四比特图,i取3至n中每一个整数时,bsi1.k.Bi xorbsi2.k.Bi的结果表示第二比特图,bsi3.k.B3至bsi3.k.Bn表示上述第五比特图,bsi3.k.B2表示所述第一属性值和所述第二属性值相减的第二符号。
对于两个正数的属性值减法,同加法类似,对于B3~Bn任意的一个Bi,3<=i<=n,与二进制减法规则相同:0-0得0,1-1得0,1-0的1,0-1的(-1,1),其中0-1的结果(-1,1)代表有额外信息需要向前传给前一位来操作。但如果bsi2的属性值大于bsi1的情况下,每位相减结果向前传递的方式就不满足二进制的减法,这种情况下计算机是采用负数补码的方式来解决。
这里先考虑bsi1的属性值大于bsi2的属性值的情况下进行相减。具体到bsi1和bsi2的Bi相减的结果bsi3,就会产生两个Bitmap,假设把计算后代表需要往前借一到i+1行的Bitmap结果称为Q2i,它会被用于计算bsi3.k.B(i+1)。那么有以下计算公式:
Q2i=N1i∪(bsil.k.Bi⊙bsi2.k.Bi∩Q2(i-1)),N1i为bsi2.k.Bi所表示的集合与bsi1.k.Bi所表示的集合之差转换后的二进制数,Q23为bsi2.k.B3所表示的集合与bsi1.k.B3所表示的集合之差转换后的二进制数;
bsi3.k.Bi=bsi1.k.Bi xor bsi2.k.Bi xor Q2(i-1);
其中,N1i表示bsi2.k.Bi属性值大于bsi1.k.Bi,bsi1.k.Bi⊙bsi2.k.Bi∩Q2(i-1)代表bsil.k.Bi和bsi2.k.Bi属性值相同但第i-1行有负数的情况。bsi3.k.Bi代表二进制值相减后留在该位的值,具体有这几种情况组成:0-0-0得0;1-0-0得1;0-1-1得(-1,0),该行只保留该行结果0;0-1-0得(-1,1);1-1-0得0;1-1-1得(-1,1)。当循环到最后一行n时,Q2n同时作为符号位赋值给bsi3.k.B2,bsi3.B1=bsi1.B1∩bsi2.B1。
此处需要说明的是,两个正数相减,相当于一个正数和一个负数相加,因此,第一属性值和第二属性值均为正数,且二者相减的计算公式,与前述第一属性值为正数、第二属性值为负数,且二者相加的计算公式相同。具体计算过程的示例请参见前述情况二所述。
情况五:第一属性值和第二属性值均为负数时,第一属性值减去第二属性值。
即在第一属性值和第二属性值均为负数的情况下,将所述第一BSI对象和所述第二BSI对象中属于第k个目标对象的属性值相减的过程具体可如下所述:
根据第二十二预设公式Q3i=N2i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q3(i-1)),计算Q34至Q3n,其中,i∈[4,n]且为整数,N2i为bsil.k.Bi所表示的集合与bsi2.k.Bi所表示的集合之差转换后的二进制数,Q33为bsil.k.B3所表示的集合与bsi2.k.B3所表示的集合之差转换后的二进制数;
在Q3n=0的情况下,根据第二十四预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
在Q3n=1的情况下,根据第二十预设公式和第二十五预设公式,计算bsi3.k.B2至bsi3.k.Bn,并将bsi3.k.B2与bsi3.k.Bn至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
其中,所述第二十四预设公式为:
所述第二十预设公式为:Q2i=N1i∪(bsi1.k.Bi⊙bsi2.k.Bi∩Q2(i-1)),其中,i∈[4,n]且为整数,N1i为bsi2.k.Bi所表示的集合与bsil.k.Bi所表示的集合之差转换后的二进制数,Q23为bsi2.k.B3所表示的集合与bsi1.k.B3所表示的集合之差转换后的二进制数;
所述第二十五预设公式为:
所述第一属性值为所述第一BSI对象中属于第k个所述目标对象的属性值,所述第二属性值为所述第二BSI对象中属于第k个所述目标对象的属性值;
bsi1.k.Bi表示所述第一属性值的第i位,bsi2.k.Bi表示所述第二属性值的第i位。
其中,Q33~Q3n表示上述第四比特图,i取3至n中每一个整数时,bsi1.k.Bi xorbsi2.k.Bi的结果表示第二比特图,bsi3.k.B3至bsi3.k.Bn表示上述第五比特图,bsi3.k.B2表示所述第一属性值和所述第二属性值相减的第二符号。
此处需要说明的是,两个负数相减,相当于一个负数和一个正数相加,因此,第一属性值和第二属性值均为负数,且二者相减的计算公式,与前述第一属性值为负数、第二属性值为正数,且二者相加的计算公式相同。具体计算过程的示例请参见前述情况三所述。
情况六:第一属性值为正数且第二属性值为负数时,或者第一属性值为负数且第二属性值为正数时,第一属性值减去第二属性值。
即在第一属性值为正数且第二属性值为负数的情况下,或者在第一属性值为负数且第二属性值为正数的情况下,将所述第一BSI对象和所述第二BSI对象中属于第k个目标对象的属性值相减的过程具体可如下所述:
根据第十八预设公式和第二十六预设公式:计算bsi3.k.B2至bsi3.k.B(n+1),并将bsi3.k.B2与bsi3.k.B(n+1)至bsi3.k.B3组成的二进制数,确定为所述第一属性值和所述第二属性值之和;
其中,所述第一属性值为所述第一BSI对象中属于第k个所述目标对象的属性值,所述第二属性值为所述第二BSI对象中属于第k个所述目标对象的属性值;
所述第十八预设公式为:
所述第二十六预设公式为:
bsi1.k.Bi表示所述第一属性值的第i位,bsi2.k.Bi表示所述第二属性值的第i位。
其中,Q13~Q1n表示上述第四比特图,i取3至n中每一个整数时,bsi1.k.Bi xorbsi2.k.Bi的结果表示第二比特图,bsi3.k.B3至bsi3.k.B(n+1)表示上述第五比特图,bsi3.k.B2表示所述第一属性值和所述第二属性值相减的第二符号。
此处需要说明的是,一个正数减去一个负数,相当于两个正数相加;一个负数减去一个正数,相当于两个负数相加,因此此处情况六中计算公式与前述情况一中计算公式基本相同,不同之处仅在于bsi3.k.B2=bsi1.k.B2,因而情况六中的计算结果的符号总是与被减数的符号相同。且具体计算过程的示例请参见前述情况一所述。
此外,需要说明的是,上述第一属性值和第二属性值包括第2至n位,其中,第2位属于符号位,第3至n位表示绝对值,并且第3位属于低位,第n位属于高位,即第2位以及第n至3位组成完整的二进制数。
由上述可知,在本申请的实施例中,在对至少两个位切片索引BSI对象的属性值进行算术运算时,采用二进制数的逻辑运算,实现对同一目标对象在不同BSI对象中的属性值的相加或相减。这样,直接基于BSI对象的属性值的二进制形式进行运算,即可获得符合筛选条件的运算结果,运算过程更加简单。
此外,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果之后,还可以为运算结果建立新的BSI对象。并且,还可以将参加运算的BSI对象按照运算结果的BSI对象的位长进行转换。
综上所述,本申请的实施例,能够实现对BSI对象的属性值的对比,例如支持两个BSI对象属性值的大于、大于等于、小于、小于等于、等于、不等于判断过滤;并且,能够实现对BSI对象的属性值的加、减运算,以得到新的属性值。因此,本申请的实施例,可以套用至BSI对象存储同时有属性值对比计算的需求场景中。
第一方面,对于画像标签系统,尤其是人群圈选查询功能,通过对BSI对象的属性值对比计算方法,可以在圈选过程中根据两个标签的属性值进行对比过滤得到目标圈选结果。其中,属性是一个用long类型表达的数值,可以是某种固定属性、也可以是一些行为数量统计、异或是算法模型评分等等,根据不同标签和属性值代表的含义,会有很多使用场景。
或者,前述筛选对股票的偏好得分和对基金的偏好得分均不为零,且对股票的偏好得分大于对基金的偏好得分的用户的场景,可以通过构建的股票和基金用户的BSI对象,并采用前述内容所述的步骤获得相应结果,避免系统额外去提前构建一个C标签代表这批用户,这样可以大大提高灵活性来满足需求,也减轻了标签构建和存储压力。
其中,若需要筛选对股票的偏好得分和对基金的偏好得分均不为零,且对股票的偏好得分大于对基金的偏好得分的用户,还可以采用如下所述的方法实现:
首先,构建两张表TA和TB分别代表偏好为股票和基金的用户,表里存在两列,一列是id,一列是score分别代表用户id和偏好得分,则可以通过sql查询语句来筛选出“对股票的偏好得分和对基金的偏好得分均不为零,且对股票的偏好得分大于对基金的偏好得分的用户”。
此种方式的弊端在于:两张表格的关联(join)效率比较差。因此,一般也会考虑将这部分计算通过离线任务来实现,但得到的结果需要再存储为另一个标签来方便后续使用。因此,每遇到类似场景,就需要开发生成新标签,从而造成较大的预计算和标签系统的存储压力。
而采用BSI对象的属性值对比计算方法,整个计算过程都是基于RoaringBitmap的交并补计算,整体计算性能较好,远好于join等实现方式。
第二方面,对于漏斗分析场景,BSI对象的属性值对比计算方法也能发挥一定作用。例如基于地理位置的基于位置的服务(Location Based Services,LBS)圈选场景,可以根据BSI属性值对比过滤实现一种满足轨迹时间顺序条件的LBS路径圈人方法,可用于对车辆的轨迹分析等需求。
例如需要圈选从T1时间到T2这段时间,依次有序经过a、b、c、d点位的车辆/用户。可以采用如下所述的方法一或者方法二。
方法一:
通过LBS查询在T1至T2时间段分别经过a、b、c、d区域的车辆去重记录,得到过车记录结果集Ra、Rb、Rc、Rd;同时循环遍历Ra和Rb中的记录,过滤并只保留车辆id同时都存在且a的过车时间小于b的过车时间的记录,设定为Rab;然后同理再同时循环遍历Rab和Rc得到Rabc,再同时循环遍历Rabc和Rd得到Rabcd即为最终结果。此过程主要需要大量的遍历和判断,故整体计算性能表现不佳。
方法二:
采用实时流计算的复杂事件处理(CEP)能力,例如采用源流处理框架(flink)的复杂事件处理结构化查询语言(cep sql)。但此方法的缺点是:由于实时流计算CEP方案是基于时间窗口进行统计的,当目标事件间时间跨度较大时会比较大的影响性能和增加资源的开;并且,由于实时计算需要提前布置任务,因此无法很好地满足灵活多变的分析需求。例如前述a、b、c、d的点位如果变化,已有的布置任务就不能很好满足。
而采用BSI对象的属性值对比计算方法,能够同时兼顾灵活性和性能,具体实施步骤如下步骤H1至H:
步骤H1:通过LBS查询在T1至T2时间段分别经过a、b、c、d区域的车辆去重记录,并用BSI来构建各点位去重目标id结果,BSI的属性值为经过点位的时间信息,时间信息假设采用ddhhmm(即天小时分钟)格式Long类型数据来表示,精确到分钟粒度,分别得到bsi1、bsi2、bsi3、bsi4,它们有相同位长的时间属性。
步骤H2:对各点位BSI对象的第1行Bitmap进行依次交集,即(bsi1.B1∩bsi2.B1∩bsi3.B1∩bsi3.B1),得到交集的Bitmap命名为B1。
步骤H3:对b、c、d点位套用“前述筛选属性值大于的方法”,分别求bis2属性值大于bsi1的结果Rb,求得bsi3属性值大于bsi2的结果Rc,求得bsi4属性值大于bsi3的结果Rd。
上面各循环全部结束后,再执行R=Rb∩Rc∩Rd∩B1,得到的R即为:同时经过A、B、C、D点位,且过车时间Ta<Tb<Tc<Td的车辆结果集合。
此方案的计算过程避免了一行一行过车记录展开遍历,而是转化为几组整体的RoaringBitmap的并集计算,尤其是对过车时间的对比过滤通过BSI属性值对比的方式也转化为几组RoaringBitmap的交并补操作,使计算的性能可以得到较大的提升。
此外,还需要说明的是,BSI对象属性值对比计算,除了应用到画像系统,也可以基于此特性,应用到一些有类似索引和计算场景的系统,用作特定的数据存储和索引。
需要说明的是,本申请实施例提供的数据处理方法,执行主体可以为数据处理装置,或者该数据处理装置中的用于执行数据处理方法的控制模块。本申请实施例中以数据处理装置执行数据处理方法为例,说明本申请实施例提供的数据处理装置。
如图6所示,本申请的实施例还提供了一种数据处理装置,该装置包括:
条件获取模块601,用于获取数据的筛选条件;
BSI对象获取模块602,用于获取与所述筛选条件相关联的至少两个位切片索引BSI对象;
运算模块603,用于根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果;
结果显示模块604,用于显示所述运算结果。
可选的,所述至少两个位切片索引BSI对象包括第一BSI对象和第二BSI对象,所述第一BSI对象和所述第二BSI对象的属性值表示不同目标对象的不同字段取值;
所述筛选条件包括如下条件中的至少一个:
第一条件,所述第一条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值相同的目标对象;
第二条件,所述第二条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值不同的目标对象;
第三条件,所述第三条件用于指示筛选在所述第一BSI对象中的属性值大于在所述第二BSI对象中的属性值的目标对象;
第四条件,所述第四条件用于指示筛选在所述第一BSI对象中的属性值大于或等于在所述第二BSI对象中的属性值的目标对象;
第五条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相加;
第六条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相减。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第一条件的情况下,所述运算模块603具体用于:
获取在所述第一BSI对象和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值相同的目标对象,得到第i个第二目标集合;
将所述第一目标集合、第2至第n个第二目标集合的交集中包括的目标对象,确定为符合所述第一条件的目标对象;
其中,n表示所述第一BSI对象的位长。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第二条件的情况下,所述运算模块603具体用于:
获取在所述第一BSI对象中和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值不同的目标对象,得到第i个第三目标集合;
获取第2至第n个第三目标集合的并集;
将第2至第n个第三目标集合的并集与所述第一目标集合的交集包括的目标对象,确定为符合所述第二条件的目标对象;
其中,n表示所述第一BSI对象的位长。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第五条件的情况下,所述运算模块603具体用于:
确定第一比特图,其中,所述第一比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相加后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第三比特图的第3位;
在i取4至n中的每一个整数时,将所述第二比特图的第i位与所述第一比特图的第i-1位进行异或,得第三比特图的第i位;
确定所述第一属性值和所述第二属性值之和的第一符号;
根据所述第一符号和所述第三比特图,确定所述第一属性值和所述第二属性值之和。
可选的,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第六条件的情况下,所述运算模块603具体用于:
确定第四比特图,其中,所述第四比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相减后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第五比特图的第3位;
在取4至n中的每一个整数时,将所述第二比特图的第i位与所述第四比特图的第i-1位进行异或,得第五比特图的第i位;
确定所述第一属性值与所述第二属性值相减的第二符号;
根据所述第二符号和所述第五比特图,确定所述第一属性值和所述第二属性值之差。
由上述可知,本申请实施例中的数据处理装置,能够获取数据的筛选条件,并获取与该筛选条件相关联的至少两个位切片索引BSI对象,从而根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,以获得符合筛选条件的运算结果,从而显示该运算结果。由此可见,本申请实施例中的数据处理装置,采用BSI对象存储数据,并可以根据筛选条件,对于该筛选条件相关联的至少两个位切片索引BSI对象的属性值进行算术运算处理,从而获得符合筛选条件的运算结果。即本申请实施例中的数据处理装置,可以对BSI对象的属性值进行更多种类的运算,从而适应于更多种类的筛选,因此,本申请实施例中的数据处理装置,可以适应基于存储对象的更多属性信息来做条件过滤的场景。
本申请实施例中的数据处理装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的数据处理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的数据处理装置能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图7所示,本申请实施例还提供一种电子设备700,包括处理器701,存储器702,存储在存储器702上并可在所述处理器701上运行的程序或指令,该程序或指令被处理器701执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图8为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备800包括但不限于:射频单元801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809、以及处理器810等部件。
本领域技术人员可以理解,电子设备800还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图8中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器810用于获取数据的筛选条件;获取与所述筛选条件相关联的至少两个位切片索引BSI对象;根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果;
显示单元806,用于显示所述运算结果。
由上述可知,本申请实施例中的电子设备,能够获取数据的筛选条件,并获取与该筛选条件相关联的至少两个位切片索引BSI对象,从而根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,以获得符合筛选条件的运算结果,从而显示该运算结果。由此可见,本申请实施例中的电子设备,采用BSI对象存储数据,并可以根据筛选条件,对于该筛选条件相关联的至少两个位切片索引BSI对象的属性值进行算术运算处理,从而获得符合筛选条件的运算结果。即本申请实施例中的电子设备,可以对BSI对象的属性值进行更多种类的运算,从而适应于更多种类的筛选,因此,本申请实施例中的数据处理装置,可以适应基于存储对象的更多属性信息来做条件过滤的场景。
应理解的是,本申请实施例中,输入单元804可以包括图形处理器(GraphicsProcessing Unit,GPU)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元806可包括显示面板8061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板8061。用户输入单元807包括触控面板8071以及其他输入设备8072。触控面板8071,也称为触摸屏。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器809可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器810可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器810中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (13)
1.一种数据处理方法,其特征在于,所述方法包括:
获取数据的筛选条件;
获取与所述筛选条件相关联的至少两个位切片索引BSI对象;所述BSI为用于存储对象实例列和属性值列的关系和值数据,所述属性值列包括不同字段属性;
根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果;
显示所述运算结果;
其中,所述至少两个位切片索引BSI对象包括第一BSI对象和第二BSI对象,所述第一BSI对象和所述第二BSI对象的属性值表示不同目标对象的不同字段取值;
所述筛选条件包括如下条件中的至少一个:
第三条件,所述第三条件用于指示筛选在所述第一BSI对象中的属性值大于在所述第二BSI对象中的属性值的目标对象;
第四条件,所述第四条件用于指示筛选在所述第一BSI对象中的属性值大于或等于在所述第二BSI对象中的属性值的目标对象;
第五条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相加;
第六条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相减。
2.根据权利要求1所述的数据处理方法,其特征在于,所述筛选条件还包括如下条件中的至少一个:
第一条件,所述第一条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值相同的目标对象;
第二条件,所述第二条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值不同的目标对象。
3.根据权利要求2所述的数据处理方法,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第一条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
获取在所述第一BSI对象和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值相同的目标对象,得到第i个第二目标集合;
将所述第一目标集合、第2至第n个第二目标集合的交集中包括的目标对象,确定为符合所述第一条件的目标对象;
其中,n表示所述第一BSI对象的位长。
4.根据权利要求2所述的数据处理方法,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第二条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
获取在所述第一BSI对象中和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值不同的目标对象,得到第i个第三目标集合;
获取第2至第n个第三目标集合的并集;
将第2至第n个第三目标集合的并集与所述第一目标集合的交集包括的目标对象,确定为符合所述第二条件的目标对象;
其中,n表示所述第一BSI对象的位长。
5.根据权利要求2所述的数据处理方法,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第五条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
确定第一比特图,其中,所述第一比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相加后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第三比特图的第3位;
在i取4至n中的每一个整数时,将所述第二比特图的第i位与所述第一比特图的第i-1位进行异或,得第三比特图的第i位;
确定所述第一属性值和所述第二属性值之和的第一符号;
根据所述第一符号和所述第三比特图,确定所述第一属性值和所述第二属性值之和。
6.根据权利要求2所述的数据处理方法,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第六条件的情况下,所述对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果,包括:
确定第四比特图,其中,所述第四比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相减后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第五比特图的第3位;
在取4至n中的每一个整数时,将所述第二比特图的第i位与所述第四比特图的第i-1位进行异或,得第五比特图的第i位;
确定所述第一属性值与所述第二属性值相减的第二符号;
根据所述第二符号和所述第五比特图,确定所述第一属性值和所述第二属性值之差。
7.一种数据处理装置,其特征在于,所述装置包括:
条件获取模块,用于获取数据的筛选条件;
BSI对象获取模块,用于获取与所述筛选条件相关联的至少两个位切片索引BSI对象;所述BSI为用于存储对象实例列和属性值列的关系和值数据,所述属性值列包括不同字段属性;
运算模块,用于根据所述筛选条件,对所述至少两个位切片索引BSI对象的属性值进行算术运算,获得符合所述筛选条件的运算结果;
结果显示模块,用于显示所述运算结果;
其中,所述至少两个位切片索引BSI对象包括第一BSI对象和第二BSI对象,所述第一BSI对象和所述第二BSI对象的属性值表示不同目标对象的不同字段取值;
所述筛选条件包括如下条件中的至少一个:
第三条件,所述第三条件用于指示筛选在所述第一BSI对象中的属性值大于在所述第二BSI对象中的属性值的目标对象;
第四条件,所述第四条件用于指示筛选在所述第一BSI对象中的属性值大于或等于在所述第二BSI对象中的属性值的目标对象;
第五条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相加;
第六条件,所述第五条件用于指示将所述第一BSI对象和所述第二BSI对象中属于同一目标对象的属性值相减。
8.根据权利要求7所述的数据处理装置,其特征在于,所述筛选条件还包括如下条件中的至少一个:
第一条件,所述第一条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值相同的目标对象;
第二条件,所述第二条件用于指示筛选在所述第一BSI对象和所述第二BSI对象中属性值不同的目标对象。
9.根据权利要求8所述的数据处理装置,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第一条件的情况下,所述运算模块具体用于:
获取在所述第一BSI对象和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值相同的目标对象,得到第i个第二目标集合;
将所述第一目标集合、第2至第n个第二目标集合的交集中包括的目标对象,确定为符合所述第一条件的目标对象;
其中,n表示所述第一BSI对象的位长。
10.根据权利要求8所述的数据处理装置,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第二条件的情况下,所述运算模块具体用于:
获取在所述第一BSI对象中和所述第二BSI对象中属性值均不为零的目标对象,得到第一目标集合;
在i取2至n中的每一个整数时,获取在所述第一BSI对象和所述第二BSI对象中第i位二进制值不同的目标对象,得到第i个第三目标集合;
获取第2至第n个第三目标集合的并集;
将第2至第n个第三目标集合的并集与所述第一目标集合的交集包括的目标对象,确定为符合所述第二条件的目标对象;
其中,n表示所述第一BSI对象的位长。
11.根据权利要求8所述的数据处理装置,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第五条件的情况下,所述运算模块具体用于:
确定第一比特图,其中,所述第一比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相加后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第三比特图的第3位;
在i取4至n中的每一个整数时,将所述第二比特图的第i位与所述第一比特图的第i-1位进行异或,得第三比特图的第i位;
确定所述第一属性值和所述第二属性值之和的第一符号;
根据所述第一符号和所述第三比特图,确定所述第一属性值和所述第二属性值之和。
12.根据权利要求8所述的数据处理装置,其特征在于,所述第一BSI对象和所述第二BSI对象的属性值的位长相同;
在所述筛选条件包括所述第六条件的情况下,所述运算模块具体用于:
确定第四比特图,其中,所述第四比特图用于表示第一属性值和第二属性值的第3至n位上的二进制值对应相减后是否需要进位或借位;
将所述第一属性值和所述第二属性值的第3至n位上的二进制值对应异或,得到第二比特图,并将所述第二比特图的第3位作为第五比特图的第3位;
在取4至n中的每一个整数时,将所述第二比特图的第i位与所述第四比特图的第i-1位进行异或,得第五比特图的第i位;
确定所述第一属性值与所述第二属性值相减的第二符号;
根据所述第二符号和所述第五比特图,确定所述第一属性值和所述第二属性值之差。
13.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-6任一项所述的数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661779.1A CN113407537B (zh) | 2021-06-15 | 2021-06-15 | 数据处理方法、装置及电子设备 |
PCT/CN2022/098297 WO2022262663A1 (zh) | 2021-06-15 | 2022-06-13 | 数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661779.1A CN113407537B (zh) | 2021-06-15 | 2021-06-15 | 数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113407537A CN113407537A (zh) | 2021-09-17 |
CN113407537B true CN113407537B (zh) | 2024-02-06 |
Family
ID=77684100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110661779.1A Active CN113407537B (zh) | 2021-06-15 | 2021-06-15 | 数据处理方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113407537B (zh) |
WO (1) | WO2022262663A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407537B (zh) * | 2021-06-15 | 2024-02-06 | 维沃移动通信有限公司 | 数据处理方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295316A (zh) * | 2008-05-29 | 2008-10-29 | 北京握奇数据系统有限公司 | 位图索引方法以及智能卡 |
CN108733681A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 信息处理方法及装置 |
CN109255640A (zh) * | 2017-07-13 | 2019-01-22 | 阿里健康信息技术有限公司 | 一种确定用户分组的方法、装置及系统 |
CN111858617A (zh) * | 2020-08-06 | 2020-10-30 | 贝壳技术有限公司 | 用户查找方法和装置、计算机可读存储介质、电子设备 |
CN112182021A (zh) * | 2020-11-03 | 2021-01-05 | 浙江大搜车软件技术有限公司 | 一种用户数据查询方法、装置和系统 |
CN112732722A (zh) * | 2021-01-19 | 2021-04-30 | 深圳市欢太科技有限公司 | 数据处理方法、数据处理装置、存储介质与电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8676834B2 (en) * | 2011-02-16 | 2014-03-18 | International Business Machines Corporation | Set-level comparisons in dynamically formed groups |
CN111737264A (zh) * | 2020-07-20 | 2020-10-02 | 智者四海(北京)技术有限公司 | 信息处理方法及系统 |
CN113407537B (zh) * | 2021-06-15 | 2024-02-06 | 维沃移动通信有限公司 | 数据处理方法、装置及电子设备 |
-
2021
- 2021-06-15 CN CN202110661779.1A patent/CN113407537B/zh active Active
-
2022
- 2022-06-13 WO PCT/CN2022/098297 patent/WO2022262663A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295316A (zh) * | 2008-05-29 | 2008-10-29 | 北京握奇数据系统有限公司 | 位图索引方法以及智能卡 |
CN108733681A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 信息处理方法及装置 |
CN109255640A (zh) * | 2017-07-13 | 2019-01-22 | 阿里健康信息技术有限公司 | 一种确定用户分组的方法、装置及系统 |
CN111858617A (zh) * | 2020-08-06 | 2020-10-30 | 贝壳技术有限公司 | 用户查找方法和装置、计算机可读存储介质、电子设备 |
CN112182021A (zh) * | 2020-11-03 | 2021-01-05 | 浙江大搜车软件技术有限公司 | 一种用户数据查询方法、装置和系统 |
CN112732722A (zh) * | 2021-01-19 | 2021-04-30 | 深圳市欢太科技有限公司 | 数据处理方法、数据处理装置、存储介质与电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113407537A (zh) | 2021-09-17 |
WO2022262663A1 (zh) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263043A (zh) | 数据存储方法、数据查询方法、装置及存储介质 | |
CN111078689B (zh) | 一种非连续型预排序遍历树算法的数据处理方法及系统 | |
US20210166058A1 (en) | Image generation method and computing device | |
CN109086126B (zh) | 任务调度处理方法、装置、服务器、客户端及电子设备 | |
US9721362B2 (en) | Auto-completion of partial line pattern | |
CN113407537B (zh) | 数据处理方法、装置及电子设备 | |
CN107391540A (zh) | 一种小程序展示方法、装置及分类器 | |
CN114821140A (zh) | 基于曼哈顿距离的图像聚类方法、终端设备及存储介质 | |
CN110619349A (zh) | 植物图像分类方法及装置 | |
CN107341221B (zh) | 索引结构的建立、关联检索方法、装置、设备及存储介质 | |
CN116883563B (zh) | 标注点渲染方法、装置、计算机设备、存储介质 | |
CN117390011A (zh) | 报表数据处理方法、装置、计算机设备和存储介质 | |
CN115409070A (zh) | 离散数据序列临界点的确定方法、装置以及设备 | |
CN115862653A (zh) | 音频去噪方法、装置、计算机设备和存储介质 | |
WO2021139178A1 (zh) | 图像合成方法及相关设备 | |
CN114385878A (zh) | 政务数据的可视化展示方法、装置及终端设备 | |
Cyganek | Change detection in multidimensional data streams with efficient tensor subspace model | |
CN109614854B (zh) | 视频数据处理方法及装置、计算机装置及可读存储介质 | |
CN113704374A (zh) | 空间飞行器轨迹拟合方法、装置及终端 | |
CN109712221B (zh) | 三维可视化渲染方法及装置 | |
WO2017095421A1 (en) | Automatic selection of neighbor lists to be incrementally updated | |
CN118069044A (zh) | 芯片数据存储方法、装置、设备、介质和产品 | |
CN118397298B (zh) | 基于混合池化的自注意力空间金字塔池化方法及相关组件 | |
CN113656876B (zh) | 自动化柜体模型生成方法、装置、介质及电子设备 | |
Wulamu et al. | Processing skyline groups on data streams |
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 |