CN111190941A - 一种信息统计方法及装置 - Google Patents
一种信息统计方法及装置 Download PDFInfo
- Publication number
- CN111190941A CN111190941A CN201911392001.4A CN201911392001A CN111190941A CN 111190941 A CN111190941 A CN 111190941A CN 201911392001 A CN201911392001 A CN 201911392001A CN 111190941 A CN111190941 A CN 111190941A
- Authority
- CN
- China
- Prior art keywords
- information
- sub
- interval
- grouping
- determining
- 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.)
- Pending
Links
- 238000007619 statistical method Methods 0.000 title abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000004931 aggregating effect Effects 0.000 description 4
- 239000000843 powder Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- CDBYLPFSWZWCQE-UHFFFAOYSA-L Sodium Carbonate Chemical compound [Na+].[Na+].[O-]C([O-])=O CDBYLPFSWZWCQE-UHFFFAOYSA-L 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种信息统计方法及装置,上述方法包括:获得对象数量,并根据所述对象数量,确定对象分组区间;在每一信息表中,确定每一对象分组区间对应的子信息,其中,每一对象分组区间对应的子信息为:属于该对象分组区间中对象的对象信息的子信息,信息表用于记录对象信息包括的子信息;针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。应用本发明实施例提供的方案进行信息统计时,可以提高用户信息统计的效率。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种信息统计方法及装置。
背景技术
用户为了从网站或者APP(Application,应用程序)获得各种信息,通常会在网站或者APP上进行用户注册。而站在网站或者APP的角度,它们也希望了解已注册用户的信息,从而能够更好的为用户提供服务。为此需要对用户的用户信息进行统计。
用户的用户信息一般包括多种子信息,例如,上述子信息可以包括用户名称、用户等级、用户活跃度等。现有技术中,上述子信息一般分别存储在不同的信息表中。因此,在统计用户信息时,需要在不同的信息表中查询每一用户的用户信息中包括的各个子信息,然后将每一用户的来自不同信息表的各个子信息合并在一起得到每一用户的用户信息,实现用户信息统计。
然而,应用上述方式进行用户信息统计时,需要在各个不同的信息表中查询用户信息中包括的子信息,在需要统计用户信息的用户数量较多的情况下,需要在不同的信息表中查询的子信息也会较多,大量的查表操作会导致用户信息统计的效率较低。
发明内容
本发明实施例的目的在于提供一种信息统计方法及装置,以提高用户信息统计的效率。具体技术方案如下:
第一方面,本发明实施例提供了一种信息统计方法,所述方法包括:
获得对象数量,并根据所述对象数量,确定对象分组区间;
在每一信息表中,确定每一对象分组区间对应的子信息,其中,每一对象分组区间对应的子信息为:属于该对象分组区间中对象的对象信息的子信息,所述信息表用于记录对象信息包括的子信息;
针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。
本发明的一个实施例中,所述根据所述对象数量,确定对象分组区间,包括:
根据所述对象数量,确定对象分组数量,并获取对象标识的分布;
根据所述对象分组数量以及所述对象标识的分布,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
本发明的一个实施例中,上述根据所述对象分组数量以及所述对象标识的分布,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间,包括:
根据所述对象分组数量以及所述对象标识的分布,按照对象标识的排列顺序,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
本发明的一个实施例中,所述在每一信息表中,确定每一对象分组区间对应的子信息,包括:
按照以下方式在每一信息表中确定每一对象分组区间对应的子信息:
生成各个节点与按照对象标识的排列顺序排列的对象一一对应的双向链表,其中,每一节点中存储有:信息表中属于该节点对应的对象的对象信息的子信息;
针对每一对象分组区间,查找所述双向链表中与对象分组区间的端点对象相对应的节点,并将节点范围内的节点中存储的子信息确定为对象分组区间对应的子信息,其中,所述节点范围为:由所查找到的节点确定的范围。
本发明的一个实施例中,所述在每一信息表中,确定每一对象分组区间对应的子信息,包括:
以并行方式读取各个信息表,并在每一信息表中,确定每一对象分组区间对应的子信息。
本发明的一个实施例中,所述根据聚集后的子信息统计对象的对象信息,包括:
将聚集后的子信息中属于同一对象的对象信息的子信息按照预设的子信息标识顺序进行排序,并按照排序后的子信息统计对象的对象信息。
第二方面,本发明实施例提供了一种信息统计装置,所述装置包括:
区间获得模块,用于获得对象数量,并根据所述对象数量,确定对象分组区间;
子信息确定模块,用于在每一信息表中,确定每一对象分组区间对应的子信息,其中,每一对象分组区间对应的子信息为:属于该对象分组区间中对象的对象信息的子信息,所述信息表用于记录对象信息包括的子信息;
信息统计模块,用于针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。
本发明的一个实施例中,所述区间获得模块,包括:
对象数量获得子模块,用于获得对象数量;
分组数量确定子模块,用于根据所述对象数量,确定对象分组数量,并获取对象标识的分布;
区间确定子模块,用于根据所述对象分组数量以及所述对象标识的分布,确定所包含对象数量趋于一致的对象分组区间。
本发明的一个实施例中,上述区间确定子模块,具体用于:
根据所述对象分组数量以及所述对象标识的分布,按照对象标识的排列顺序,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
本发明的一个实施例中,
所述子信息确定模块,具体用于通过双向链表生成单元和子信息确定单元在每一信息表中确定每一对象分组区间对应的子信息:
所述双向链表生成单元,用于生成各个节点与按照对象标识的排列顺序排列的对象一一对应的双向链表,其中,每一节点中存储有:信息表中属于该节点对应的对象的对象信息的子信息;
所述子信息确定单元,用于针对每一对象分组区间,查找所述双向链表中与对象分组区间的端点对象相对应的节点,并将节点范围内的节点中存储的子信息确定为对象分组区间对应的子信息,其中,所述节点范围为:由所查找到的节点确定的范围。
本发明的一个实施例中,
所述子信息确定模块,具体用于以并行方式读取各个信息表,并在每一信息表中,确定每一对象分组区间对应的子信息。
本发明的一个实施例中,
所述信息统计模块,具体用于针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,将聚集后的子信息中属于同一对象的对象信息的子信息按照预设的子信息标识顺序进行排序,并按照排序后的子信息统计对象的对象信息。
第三方面,本发明实施例提供了一种终端设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法步骤。
应用本发明实施例提供的方案进行信息统计时,首先获得对象数量,并根据对象数量,确定对象分组区间;其次在每一信息表中,确定每一对象分组区间对应的子信息;最后针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。对对象分组区间对应的子信息进行聚集,是将对象分组区间所包含的各个对象的子信息放到一块,例如,放到一个文件中或者放在一块存储区域中。这种情况下,根据聚集的结果可以直接获得对象分组区间内各个对象的子信息,而不会像现有技术中,分别从各个信息表中获得对象的子信息,也就不会需要对每张信息表进行查询,因此,应用本发明实施例提供的方案能够显著提高获得各个子信息的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种信息统计方法的流程示意图;
图2为本发明实施例提供的第二种信息统计方法的流程示意图;
图3为本发明实施例提供的一种双向链表的示意图;
图4为本发明实施例提供的第一种信息统计装置的结构示意图;
图5为本发明实施例提供的第二种信息统计装置的结构示意图;
图6为本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在进行信息统计时,由于现有技术中存在统计效率较低的问题,为解决这一技术问题,本发明实施例提供了一种信息统计方法及装置。
本发明的一个实施例中,提供了一种信息统计方法,该方法包括:
获得对象数量,并根据对象数量,确定对象分组区间;
在每一信息表中,确定每一对象分组区间对应的子信息,其中,每一对象分组区间对应的子信息为:属于该对象分组区间中对象的对象信息的子信息,所述信息表用于记录对象信息包括的子信息;
针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。
由以上可见,应用本发明实施例提供的方案进行信息统计时,首先获得对象数量,并根据对象数量,确定对象分组区间;其次在每一信息表中,确定每一对象分组区间对应的子信息;最后针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。对对象分组区间对应的子信息进行聚集,是将对象分组区间所包含的各个对象的子信息放到一块,例如,放到一个文件中或者放在一块存储区域中。这种情况下,根据聚集的结果可以直接获得对象分组区间内各个对象的子信息,而不会像现有技术中,分别从各个信息表中获得对象的子信息,也就不会需要对每张信息表进行查询,因此,应用本发明实施例提供的方案能够显著提高获得各个子信息的效率。
参见图1,图1为本发明实施例提供的第一种信息统计方法的流程示意图,上述方法包括:
S101:获得对象数量,并根据对象数量,确定对象分组区间。
本实施例应用的场景可以为统计网站上所有注册的用户的用户信息、统计学校所有学生的学生信息、统计企业所有员工的员工信息等。
基于上述场景,上述对象可以为网站所有注册的用户,还可以为企业所有的员工,还可以为学校所有的学生。
基于上述场景,上述对象数量可以为网站所有注册的用户的数量,可以为企业所有员工的数量,还可以是学校所有学生的数量。
假设上述对象数量为网站所有注册的用户的数量时,上述对象数量可以从网站存储的用户数据库中获得。假设上述对象数量为企业所有员工的数量,上述对象数量可以从企业的人员资料库中获得。假设上述对象数量为学校所有学生的数量,上述对象数量可以从学校的学生资料库中获得。
上述对象分组区间是指针对对象划分的区间,每一对象分组区间内包含各个对象。例如:对象数量为10个,且每个对象的标识分别为:A、B、……、H、I、……、M、N,若要对这10个对象分成两组,第一个对象分组区间中包含的对象可以为对象标识为A~H的对象,第二个对象分组区间中包含的对象可以为对象标识为I~N的对象。
根据对象数量,确定对象分组区间的具体方式可以参见后续实施例,在此不再详述。
S102:在每一信息表中,确定每一对象分组区间对应的子信息。
由于每一信息表是用于记录各个对象信息的子信息的,那么每一信息表中也记录着各个子信息对应的对象。又由于对象分组区间包含的是各个对象,根据对象分组区间包含的各个对象的标识信息,可以确定对象分组区间包含的各个对象在每一信息表中的子信息,从而确定每一对象分组区间对应的子信息。
例如:假设有两张信息表,第一张信息表用于记录用户的姓名,第二张信息表用于记录用户的年龄,分别如下表1、表2所示。
表1
ID1 | ID2 | ID3 | ID4 | ID5 | ID6 | ID7 | ID8 | ID9 | ID10 |
小明 | 小红 | 小黄 | 小兰 | 小绿 | 小粉 | 小黑 | 小紫 | 小灰 | 小白 |
表2
ID1 | ID2 | ID3 | ID4 | ID5 | ID6 | ID7 | ID8 | ID9 | ID10 |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
其中,ID1、ID2……ID10为用户的标识,表1为用户姓名表,表2为用户年龄表。
假设对象分组区间分别为ID1~ID5、ID6~ID10,那么根据每一对象分组区间内各个对象的标识,从上述两张信息表中确定每一对象分组区间内各个对象对应的姓名及年龄。针对对象分组区间ID1~ID5,从表1中可以确定上述对象分组区间中每一对象对应的姓名如表3所示,以及从表2中可以确定上述对象分组区间中每一对象对应的年龄如表4所示。
表3
ID1 | ID2 | ID3 | ID4 | ID5 |
小明 | 小红 | 小黄 | 小兰 | 小绿 |
表4
ID1 | ID2 | ID3 | ID4 | ID5 |
5 | 6 | 7 | 8 | 9 |
针对对象分组区间ID6~ID10,从表1中可以确定上述对象分组区间中每一对象对应的姓名如表5所示,以及从表2中可以确定上述对象分组区间中每一对象对应的年龄如表6所示。
表5
ID6 | ID7 | ID8 | ID9 | ID10 |
小粉 | 小黑 | 小紫 | 小灰 | 小白 |
表6
ID6 | ID7 | ID8 | ID9 | ID10 |
10 | 11 | 12 | 13 | 14 |
本发明的一个实施例中,可以按照以下方式实现在每一信息表中,确定每一对象分组区间对应的子信息。
以并行方式读取各个信息表,并在每一信息表中,确定每一对象分组区间对应的子信息。
上述以并行方式读取各个信息表可以理解为:同时读取各个信息表,获得各个信息表的子信息。
例如:假设有三张信息表,第一张信息表包含的子信息有20项,读取上述第一张信息表的时间为10秒,第二张信息表包含的子信息有30项,读取上述第二张信息表的时间为20秒,第三张信息表包含的子信息有40项,读取上述第三张信息表的时间为30秒。以并行方式读取上述三张信息表,也就是同时读取上述三张信息表。获得各个信息表内的子信息消耗的时间只相当于读取其中包含的子信息项最多的信息表,也就是上述第三张信息表的的时间30秒。
这样,采用并行方式读取各个信息表,能够大大节省获得各个子信息消耗的时间。
在每一信息表中,确定每一对象分组区间对应的子信息的具体方式可以参见图2对应的实施例,在此暂不详述。
S103:针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。
由于在S102中是从每一信息表中确定的每一对象分组区间对应的子信息,每一信息表中包括各个对象对应的子信息,所以每一对象分组区间对应的子信息中有属于同一对象的子信息,从而根据对象对应的各个子信息,能统计对象的对象信息。
具体的,在对每一对象分组区间对应的子信息进行聚集时,可以将每个对象分组区间内属于同一对象的各个子信息进行聚集,还可以直接聚集各个对象分组区间对应的子信息。聚集后的结果可以形成一张表或者多张表,还可以聚集在预设的存储空间中。
以上述表3、表4、表5、表6为例,针对对象分组区间ID1~ID5,将上述对象分组区间中属于同一对象的各个子信息进行聚集,聚集后的结果形成一张表,可以如下表7所示。
表7
ID1 | ID2 | ID3 | ID4 | ID5 |
小明 | 小红 | 小黄 | 小兰 | 小绿 |
5 | 6 | 7 | 8 | 9 |
针对对象分组区间ID6~ID10,将上述对象分组区间中属于同一对象的各个子信息进行聚集,聚集后的结果形成一张表,可以如下表8所示。
表8
ID6 | ID7 | ID8 | ID9 | ID10 |
小粉 | 小黑 | 小紫 | 小灰 | 小白 |
10 | 11 | 12 | 13 | 14 |
在根据聚集后的子信息统计对象的对象信息时,可以将属于同一对象的子信息合并生成一条记录。例如,以上述表7、表8为例,属于用户ID1的子信息分别为:小明、5,合并生成一条记录为:ID1-小明-5;类似的,针对每一用户,合并生成的记录分别为:ID2-小红-6、ID3-小黄-7、ID4-小兰-8、ID5-小绿-9、ID6-小粉-10、ID7-小黑-11、ID8-小紫-12、ID9-小灰-13、ID10-小白-14。
本发明的一个实施例中,上述根据聚集后的子信息统计对象的对象信息时,还可以将聚集后的子信息中属于同一对象的对象信息的子信息按照预设的子信息标识顺序进行排序,并按照排序后的子信息统计对象的对象信息。
由于不同子信息的表示方式可能是相同的,所以,为了避免混淆不同的子信息,可以采用预设的子信息标识表示子信息,这样能够根据子信息标识来确定子信息。
上述子信息标识可以是预先设定的,例如:对象的对象信息的子信息包括年龄、性别、爱好这三项子信息,可以预设年龄子信息的标识为0,性别子信息的标识为1,爱好子信息的标识为2。
上述预设的子信息标识顺序可以按照子信息标识从小到大的顺序,也可以按照子信息标识从大到小的顺序。假设按照子信息标识从小到大的顺序,对象的对象信息的各个子信息顺序依次为:年龄、爱好、性别。
将按照预设的子信息标识顺序进行排序后的子信息合并在一起,作为对象的对象信息。
例如:以上述表7、表8为例,假设子信息为姓名的子信息标识为0,子信息为年龄的子信息标识1,由于属于用户ID1的子信息分别为:小明、5,按照预设的子信息标识顺序进行排序后的子信息合并生成一条记录为:ID1-小明(0)-5(1);类似的,针对每一用户,合并生成的记录分别为:ID2-小红(0)-6(1)、ID3-小黄(0)-7(1)、ID4-小兰(0)-8(1)、ID5-小绿(0)-9(1)、ID6-小粉(0)-10(1)、ID7-小黑(0)-11(1)、ID8-小紫(0)-12(1)、ID9-小灰(0)-13(1)、ID10-小白(0)-14(1)。
这样,根据各个子信息的标识信息能够确定各个子信息代表的含义,且对每一对象的对象信息的子信息按照预设的子信息标识顺序排序可以方便进行统计,提高统计的效率。
应用上述各个实施例提供的方案,对对象分组区间对应的子信息进行聚集,是将对象分组区间所包含的各个对象的子信息放到一块,例如,放到一个文件中或者放在一块存储区域中。这种情况下,根据聚集的结果可以直接获得对象分组区间内各个对象的子信息,而不会像现有技术中,分别从各个信息表中获得对象的子信息,也就不会需要对每张信息表进行查询,因此,应用本发明实施例提供的方案能够显著提高获得各个子信息的效率。
本发明的一个实施例中,根据对象数量,确定对象分组区间可以通过以下步骤A1、步骤A2实现。
步骤A1:根据对象数量,确定对象分组数量,并获取对象标识的分布。
在确定上述对象分组数量时,可以根据对象数量预估对象分组数量。例如:假设对象分组数量为100个,可以预估对象分组数量为5组、10组等,假设对象分组数量为101个,可以预估对象分组数量为5组、10组等。
还可以预先设定每一分组内包含的对象数量,根据对象数量以及预先设定的每一分组内包含的对象数量,确定对象分组数量。
例如:假设预先设定的每一分组内包含的对象数量为10,若对象数量为100个,那么对象分组数量可以确定为10组;若对象数量为101个,那么对象分组数量可以确定为10组或者11组。若对象数量为1000个,那么对象分组数量可以确定为100组;若对象数量为1001个,那么对象分组数量可以确定为100组或者101组。
上述对象标识为每一对象的标识信息。例如:假设对象为学校学生,对象标识可以为学生的学号。对象为企业员工的,对象标识可以为员工的工位号。对象为网站注册的用户,对象标识可以为网站用户的ID号。
上述对象标识的分布用于表示对象的分布。由于为对象分配标识的时候,可以是连续分配的,也可以是不连续分配的,因此,对象标识的分布可以是连续分布的、也可以是非连续分布的。例如:假设有10个学生,学生的学号为学生的标识信息,学生学号的分布可以为01、02、03、04、05、06、07、08、09、10,还可以为01、03、04、05、07、08、10、11、12、14、15。
具体的,获取对象标识的分布可以根据每一对象的对象标识获得。例如:按照对象标识从小到大的顺序或者从大到小的顺序,获得对象标识的分布。
步骤A2:根据对象分组数量以及对象标识的分布,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
由于对象数量可能无法完全整除对象分组数量,为了使各个对象分组区间内包含的对象数量尽可能一致,所以要使得各个对象分组区间内包含的对象数量之间的差值小于预设阈值。上述预设阈值可以为:1、2等。
例如:假设预设阈值为2,对象分组区间的数量为3,每个对象分组区间内包含对象数量均为3个,由于3-3=0小于2,那么上述3个对象分组区间内包含的对象数量满足要求。
假设有3个对象分组区间,其中,第一个对象分组区间内包含的对象数量为3个,第二个对象分组区间内包含的对象数量为3个,第三个对象分组区间内包含的对象数量为4个,由于第一个对象分组区间包含的对象数量3与第二个对象分组区间包含的对象数量3之间的差值为0,小于2;第一个对象分组区间包含的对象数量3与第三个对象分组区间包含的对象数量4之间的差值为1,小于2;第二个对象分组区间包含的对象数量3与第三个对象分组区间包含的对象数量4之间的差值为0,小于2;那么上述3个对象分组区间内包含的对象数量满足要求。
由于是根据对象分组数量以及对象数量确定每一对象分组区间包含的对象数量,在对象数量能够整除对象分组数量的情况下,每一对象分组区间包含的对象数量完全相同。例如:假设对象数量为1000个,对象分组数量为10组,1000能够整除10,每一对象分组区间包含的对象数量均为100。
在对象数量不能整除对象分组数量的情况下,每一对象分组区间包含的对象数量尽可能一致。例如:假设对象数量为1001个,对象分组数量为10组,由于1001不能整除10,那么假设预设阈值为2,那么可以按照以下分配方式确定每一对象分组区间的对象数量:第一个对象分组区间的对象分组数量为100、第二个对象分组区间的对象分组数量为100、第三个分组区间的对象分组数量为100、……、第九个对象分组区间的对象数量为100、第十个对象分组区间的对象数量为101。
确定上述对象分组数量后,在已经获得对象数量的情况下可以确定分配到每一对象分组区间内的对象数量。并根据上述对象标识的分布,可以确定每一对象分组区间内包含的各个对象。从而确定各个对象分组区间。
本发明的一个实施例中,可以按照以下方式确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
根据对象分组数量以及对象标识的分布,按照对象标识的排列顺序,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
上述对象标识的排列顺序可以为按照对象标识从小到大的顺序或者从大到小的顺序。
具体的,在确定对象分组区间时,首先确定每一对象分组区间包含的对象数量。然后根据所确定的对象数量,按照对象标识的排列顺序,依次确定每一对象分组区间内的各个对象。
例如:假设预设阈值为2,ID表示对象的标识,且对象标识的分布为:ID11、ID13、ID14、ID15、ID16、ID18、ID19、ID20、ID22、ID23、ID24、ID25。
当上述对象数量为12个,假设对象分组数量为4组时,由于12可以整除4,那么每一对象分组区间内对象数量可以为3个。按照对象标识的排列顺序,从ID1开始,每3个对象确定为一个对象分组区间,这样对象分组区间可以确定为[ID11,ID14]、[ID15,ID18]、[ID19,ID22]、[ID23,ID25]。
假设对象标识的分布为:ID11、ID13、ID14、ID15、ID16、ID18、ID19、ID20、ID22、ID23、ID24、ID25、ID26。
当上述对象数量为13个,对象分组数量为4组时,由于12不能整除4,要使每一对象分组区间包含的对象数量之间的差值小于预设阈值2,可以将其中3个对象分组区间内的对象数量确定为3个,剩余一个对象分组区间内的对象数量确定为4个。按照对象标识的排列顺序,从ID1开始,可以先确定包含对象数量为3个的对象分组区间,分别为[ID11,ID14]、[ID15、ID18]、[ID19,ID22],剩余的4个对象所确定的对象分组区间为:[ID23,ID26]。这样,对象分组区间可以为[ID11,ID14]、[ID15、ID18]、[ID19,ID22]、[ID23,ID26]。
由于根据对象分组数量以及对象标识的分布,确定每一对象分组区间包含的对象数量之间小于预设阈值,能够使得每一对象分组区间包含的对象数量尽可能一致,这样在对对象分组区间进行聚集时,能够提高聚集子信息的效率。
在上述实施例的基础上,本发明的另一个实施例中,参见图2,提供了第二种信息统计方法的流程示意图,在上述S102中可以按照以下方式在每一信息表中确定每一对象分组区间对应的子信息。
S102B1:生成各个节点与按照对象标识的排列顺序排列的对象一一对应的双向链表。
上述对象标识的排列顺序可以为按照对象标识从小到大的顺序,也可以按照对象标识为从大到小的顺序。
以对象标识的排列顺序为从小到大的顺序为例:假设有n个对象,ID表示对象标识,对象标识的排列顺序为IDa、IDb、……、IDn。当双向链表中各个节点与按照对象标识的排列顺序的对象一一对应时,可以形成如图3所示的双向链表。图3中各个矩形表示双向链表的节点,从左到右依次为第一个节点、第二个节点、……、第N个节点。各个矩形内的ID表示该节点对应的对象的对象标识。第一个节点与对象标识为IDa的对象对应,第二个节点与对象标识为IDb的对象对应,……,第N个节点与对象标识为IDn的对象对应。
上述双向链表是针对每一张信息表生成的。由于每一信息表中记录有各个子信息,以及各个子信息对应的对象。在确定双向链表中各个节点对应的对象后,并针对每一信息表,将各个对象属于该信息表的子信息存储在双向链表中对应的节点上。也就是,双向链表的各个节点上存储有各节点对应的对象的子信息。
S102B2:针对每一对象分组区间,查找双向链表中与对象分组区间的端点对象相对应的节点,并将节点范围内的节点中存储的子信息确定为对象分组区间对应的子信息。
上述对象分组区间的端点对象可以理解为:由于对象分组区间内包含的是对象,那么对象分组区间的两个端点也是对象。假设对象分组区间内包含对象1、对象2、对象3,那么对象分组区间为[对像1,对象3],对象分组区间[对像1,对象3]的端点对象为对象1和对象3。
上述节点范围为:所查找到的节点确定的范围。具体的,根据所查找到的节点确定节点范围可以有多种情况:假设所查找到的节点为节点1,节点3,那么节点范围可以是[节点1,节点3),还可以是(节点1,节点3],还可以是[节点1,节点3]。
基于上述节点范围的不同情况,节点范围内的节点存储的子信息也有多种情况:当节点范围为[节点1,节点3),那么该节点范围内存储的子信息为节点1和节点2存储的子信息。当节点范围为(节点1,节点3],那么该节点范围内存储的子信息为节点2和节点3存储的子信息。当节点范围为[节点1,节点3],那么该节点范围内存储的子信息为节点1、节点2、节点3存储的子信息。
由于双向链表中各个节点对应的是各个对象,且各个节点上存储的是各个子信息。那么根据各个对象分组区间的端点对象,可以在双向链表中确定对象分组区间的端点对象相对应的节点,从而可以确定对象分组区间的端点对象在双向链表中对应的节点范围内的节点存储的子信息。这样根据双向链表能够准确确定对象分组区间内的子信息。
与上述信息统计方法相对应的,本发明实施例还提供了一种信息统计装置。
参见图4,图4为本发明实施例提供的第一种信息统计装置的结构示意图,包括:
区间获得模块401,用于获得对象数量,并根据所述对象数量,确定对象分组区间。
子信息确定模块402,用于在每一信息表中,确定每一对象分组区间对应的子信息,其中,每一对象分组区间对应的子信息为:属于该对象分组区间中对象的对象信息的子信息,所述信息表用于记录对象信息包括的子信息。
信息统计模块403,用于针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。
由以上可见,应用本实施例提供的装置,对对象分组区间对应的子信息进行聚集,是将对象分组区间所包含的各个对象的子信息放到一块,例如,放到一个文件中或者放在一块存储区域中。这种情况下,根据聚集的结果可以直接获得对象分组区间内各个对象的子信息,而不会像现有技术中,分别从各个信息表中获得对象的子信息,也就不会需要对每张信息表进行查询,因此,应用本发明实施例提供的方案能够显著提高获得各个子信息的效率。
本发明的一个实施例中,上述区间获得模块401,包括:
对象数量获得子模块,用于获得对象数量;
分组数量确定子模块,用于根据所述对象数量,确定对象分组数量,并获取对象标识的分布;
区间确定子模块,用于根据所述对象分组数量以及所述对象标识的分布,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
由于根据对象分组数量以及对象标识的分布,确定每一对象分组区间包含的对象数量之间小于预设阈值,能够使得每一对象分组区间包含的对象数量尽可能一致,这样在对对象分组区间进行聚集时,能够提高聚集子信息的效率。
本发明的一个实施例中,上述区间确定子模块,具体用于:
根据所述对象分组数量以及所述对象标识的分布,按照对象标识的排列顺序,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
在上述实施例的基础上,本发明的另一个实施例中,参见图5,提供了第二种信息统计装置的结构示意图,上述子信息确定模块402中,具体用于通过双向链表生成单元和子信息确定单元。
在每一信息表中确定每一对象分组区间对应的子信息:
按照以下方式在每一信息表中确定每一对象分组区间对应的子信息:
双向链表生成单元402A,用于生成各个节点与按照对象标识的排列顺序排列的对象一一对应的双向链表,其中,每一节点中存储有:信息表中属于该节点对应的对象的对象信息的子信息。
子信息确定单元402B,用于针对每一对象分组区间,查找所述双向链表中与对象分组区间的端点对象相对应的节点,并将节点范围内的节点中存储的子信息确定为对象分组区间对应的子信息,其中,所述节点范围为:由所查找到的节点确定的范围。
应用本实施例,由于双向链表中各个节点对应的是各个对象,且各个节点上存储的是各个子信息。那么根据各个对象分组区间的端点对象,可以在双向链表中确定对象分组区间的端点对象相对应的节点,从而可以确定对象分组区间的端点对象在双向链表中对应的节点范围内的节点存储的子信息。这样能够准确确定对象分组区间内的子信息。
本发明的一个实施例中,上述子信息确定模块402,具体用于以并行方式读取各个信息表,并在每一信息表中,确定每一对象分组区间对应的子信息。
这样,以并行方式读取各个信息表,获得各个子信息消耗的时间只相当于读取其中包含的子信息项最多的信息表的时间。因此应用本实施例可以节省读取信息表的时间。
本发明的一个实施例中,上述信息统计模块403,具体用于针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,将聚集后的子信息中属于同一对象的对象信息的子信息按照预设的子信息标识顺序进行排序,并按照排序后的子信息统计对象的对象信息。
这样,确定各个子信息的标识信息能够确定各个子信息代表的含义,且对每一对象的对象信息的子信息按照预设的子信息标识顺序排序可以方便进行统计,提高统计的效率。
本发明实施例还提供了一种终端设备设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现本发明实施例提供的信息统计方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的信息统计方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的信息统计方法的步骤。
由以上可见,应用本发明实施例提供的方案进行信息统计时,首先获得对象数量,并根据对象数量,确定对象分组区间;其次在每一信息表中,确定每一对象分组区间对应的子信息;最后针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。对对象分组区间对应的子信息进行聚集,是将对象分组区间所包含的各个对象的子信息放到一块,例如,放到一个文件中或者放在一块存储区域中。这种情况下,根据聚集的结果可以直接获得对象分组区间内各个对象的子信息,而不会像现有技术中,分别从各个信息表中获得对象的子信息,也就不会需要对每张信息表进行查询,因此,应用本发明实施例提供的方案能够显著提高获得各个子信息的效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、终端设备、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种信息统计方法,其特征在于,所述方法包括:
获得对象数量,并根据所述对象数量,确定对象分组区间;
在每一信息表中,确定每一对象分组区间对应的子信息,其中,每一对象分组区间对应的子信息为:属于该对象分组区间中对象的对象信息的子信息,所述信息表用于记录对象信息包括的子信息;
针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述对象数量,确定对象分组区间,包括:
根据所述对象数量,确定对象分组数量,并获取对象标识的分布;
根据所述对象分组数量以及所述对象标识的分布,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述对象分组数量以及所述对象标识的分布,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间,包括:
根据所述对象分组数量以及所述对象标识的分布,按照对象标识的排列顺序,确定所包含的对象数量之间的差值小于预设阈值的对象分组区间。
4.根据权利要求3所述的方法,其特征在于,所述在每一信息表中,确定每一对象分组区间对应的子信息,包括:
按照以下方式在每一信息表中确定每一对象分组区间对应的子信息:
生成各个节点与按照对象标识的排列顺序排列的对象一一对应的双向链表,其中,每一节点中存储有:信息表中属于该节点对应的对象的对象信息的子信息;
针对每一对象分组区间,查找所述双向链表中与对象分组区间的端点对象相对应的节点,并将节点范围内的节点中存储的子信息确定为对象分组区间对应的子信息,其中,所述节点范围为:由所查找到的节点确定的范围。
5.根据权利要求1所述的方法,其特征在于,所述在每一信息表中,确定每一对象分组区间对应的子信息,包括:
以并行方式读取各个信息表,并在每一信息表中,确定每一对象分组区间对应的子信息。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据聚集后的子信息统计对象的对象信息,包括:
将聚集后的子信息中属于同一对象的对象信息的子信息按照预设的子信息标识顺序进行排序,并按照排序后的子信息统计对象的对象信息。
7.一种信息统计装置,其特征在于,所述装置包括:
区间获得模块,用于获得对象数量,并根据所述对象数量,确定对象分组区间;
子信息确定模块,用于在每一信息表中,确定每一对象分组区间对应的子信息,其中,每一对象分组区间对应的子信息为:属于该对象分组区间中对象的对象信息的子信息,所述信息表用于记录对象信息包括的子信息;
信息统计模块,用于针对每一对象分组区间,对该对象分组区间对应的子信息进行聚集,并根据聚集后的子信息统计对象的对象信息。
8.根据权利要求7所述的装置,其特征在于,所述区间获得模块,包括:
对象数量获得子模块,用于获得对象数量;
分组数量确定子模块,用于根据所述对象数量,确定对象分组数量,并获取对象标识的分布;
区间确定子模块,用于根据所述对象分组数量以及所述对象标识的分布,确定所包含的对象数量之间差值小于预设阈值的对象分组区间。
9.一种终端设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911392001.4A CN111190941A (zh) | 2019-12-30 | 2019-12-30 | 一种信息统计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911392001.4A CN111190941A (zh) | 2019-12-30 | 2019-12-30 | 一种信息统计方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111190941A true CN111190941A (zh) | 2020-05-22 |
Family
ID=70707911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911392001.4A Pending CN111190941A (zh) | 2019-12-30 | 2019-12-30 | 一种信息统计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190941A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170012902A1 (en) * | 2014-03-25 | 2017-01-12 | Huawei Technologies Co., Ltd. | Data Flow Statistics Collection Method, System, and Apparatus |
CN107103009A (zh) * | 2016-02-23 | 2017-08-29 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及装置 |
CN107862043A (zh) * | 2017-11-06 | 2018-03-30 | 上海联影医疗科技有限公司 | 检查信息的检索方法及装置 |
CN107918618A (zh) * | 2016-10-10 | 2018-04-17 | 腾讯科技(北京)有限公司 | 数据处理方法及装置 |
CN109857832A (zh) * | 2019-01-03 | 2019-06-07 | 中国银行股份有限公司 | 一种支付数据的预处理方法和装置 |
CN110264329A (zh) * | 2019-06-25 | 2019-09-20 | 中国工商银行股份有限公司 | 高频热点数据处理系统及方法 |
-
2019
- 2019-12-30 CN CN201911392001.4A patent/CN111190941A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170012902A1 (en) * | 2014-03-25 | 2017-01-12 | Huawei Technologies Co., Ltd. | Data Flow Statistics Collection Method, System, and Apparatus |
CN107103009A (zh) * | 2016-02-23 | 2017-08-29 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及装置 |
CN107918618A (zh) * | 2016-10-10 | 2018-04-17 | 腾讯科技(北京)有限公司 | 数据处理方法及装置 |
CN107862043A (zh) * | 2017-11-06 | 2018-03-30 | 上海联影医疗科技有限公司 | 检查信息的检索方法及装置 |
CN109857832A (zh) * | 2019-01-03 | 2019-06-07 | 中国银行股份有限公司 | 一种支付数据的预处理方法和装置 |
CN110264329A (zh) * | 2019-06-25 | 2019-09-20 | 中国工商银行股份有限公司 | 高频热点数据处理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526807B (zh) | 信息推荐方法及装置 | |
CN107222566B (zh) | 信息推送方法、装置及服务器 | |
CN107864192B (zh) | 信息推送方法、装置、服务器以及可读存储介质 | |
CN108510303A (zh) | 广告投放方法及装置 | |
CN105528407B (zh) | 一种获取l个具有最佳传播影响力用户的方法和装置 | |
CN110209551B (zh) | 一种异常设备的识别方法、装置、电子设备及存储介质 | |
JP2013522781A (ja) | ネットワーク内の友人の動的情報を管理するための方法、システムおよびサーバ | |
CN105550175A (zh) | 恶意账户识别方法及装置 | |
CN105045911A (zh) | 一种用于用户进行标记的标签生成方法及设备 | |
CN113779051A (zh) | 词库更新方法和装置、风险控制方法、装置和系统 | |
US9860690B2 (en) | Method, apparatus and product for determining presence-related roles | |
CN113515544B (zh) | 一种数据属性查询方法及数据属性查询装置 | |
CN111190941A (zh) | 一种信息统计方法及装置 | |
CN108021713A (zh) | 一种文档聚类的方法和装置 | |
CN116151872B (zh) | 产品特性分析方法和装置 | |
CN108170693B (zh) | 推送热词的方法及装置 | |
CN110287492A (zh) | 数据处理及主类别识别方法、装置、电子设备及存储介质 | |
CN114285896B (zh) | 信息推送方法、装置、设备、存储介质及程序产品 | |
CN112463814A (zh) | 一种数据查询方法及装置 | |
CN115639530A (zh) | 辐射源合批方法、装置及存储介质 | |
CN109068286A (zh) | 一种信息解析的方法、介质及设备 | |
CN108173936A (zh) | 新闻推荐方法和装置 | |
CN105868220B (zh) | 数据处理方法和装置 | |
CN110020166A (zh) | 一种数据分析方法及相关设备 | |
CN108173689B (zh) | 负载均衡数据的输出系统 |
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 |