CN101414308A - 一种对海量热点页面筛选排序的算法 - Google Patents
一种对海量热点页面筛选排序的算法 Download PDFInfo
- Publication number
- CN101414308A CN101414308A CNA2008101978139A CN200810197813A CN101414308A CN 101414308 A CN101414308 A CN 101414308A CN A2008101978139 A CNA2008101978139 A CN A2008101978139A CN 200810197813 A CN200810197813 A CN 200810197813A CN 101414308 A CN101414308 A CN 101414308A
- Authority
- CN
- China
- Prior art keywords
- module
- node
- screening
- submodule
- algorithm
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种对海量热点页面(URL)筛选排序的算法,属于计算机数据处理领域。本算法总模块,包括排名模块(3),设置有统计采样模块(1)和筛选模块(2);该算法按照统计采样模块(1)、筛选模块(2)、排名模块(3)依次进行;所述的统计采样模块(1)包括统计子模块(1.1)和采样子模块(1.2);所述的筛选模块(2)包括依次进行的预估子模块(2.1)、首次筛选子模块(2.2)、再次筛选子模块(2.3)和调整筛选子模块(2.4)。运用此算法可以高效实现从现网的站点页面中按排名要求筛选出相应的热点站点页面,并在此基础上对选中的站点页面进行排序。
Description
技术领域
本发明属于计算机数据处理领域,尤其涉及一种对海量热点页面(URL)筛选排序的算法。运用此算法可以高效实现从现网的站点页面中按排名要求(如访问次数最多的前100名)筛选出相应的热点站点页面,并在此基础上对选中的站点页面进行排序。
背景技术
随着互联网应用的快速发展,对网站的相关指标进行统计分析,从而掌握各种业务的开展情况已成为运营商开展WAP(无线应用协议)业务的有用工具;然而实现从现网中的URL中过滤出访问次数最多的前100名之类的统计和排名,从目前来看,一般的实现方法是对网络中所有的站点页面的访问次数进行排名,然后取出排名最靠前的100名。
这种排名算法看起来直观、易于实现,并且在站点页面数量不是很大的情况下,可以保证排序的效率。但是,目前网络应用空前扩展,站点页面数量成指数倍增长,这种排名算法的效率已与网络技术的发展速度不相适应,已远远不能满足实际的需要。
发明内容
本发明的目的是针对目前的排名算法在处理站点页面数量较多的最值排名中效率不高的问题,提供一种对海量热点页面筛选排序的算法,即采用一些算法和技术,使在这种情况的排名可以在对URL访问次数过滤的基础上进行,排除排名对象数量多少对排名效率的影响,极大地提高了排名的效率和运行的稳定性。
本发明的目的是这样实现的:
本发明主要包括一种统计表组织结构、一种统计采样算法和一种筛选算法。
一、一种用于记录统计信息的统计表组织结构
统计表使用hash+rb_tree构造,即主表是hash,在每个bucket中使用一个rb_tree来组织统计节点,用于保存总的统计指标信息及各统计项的关键信息。
二、一种统计采样算法
主要是设定最低采样门限,根据站点页面查找(或创建)统计节点,当在统计表中有与该站点页面对应的统计节点时,统计表中的“1小时内累计点击总数”加1且与该站点页面对应的采集节点中的“节点创建以来的点击次数”加1;反之,若统计表中没有与该站点页面对应的统计节点,则在“记录表中统计节点的总数目”小于最低采样门限的情况下,直接在统计表中添加新的采集节点,否则启动节点采样过程,使采样节点的增长速度减缓,确保排序的效率和精度。
三、一种筛选算法
主要是设定最低筛选门限,当统计表内节点数目大于最低筛选门限时,筛选过程启动。筛选过程首先预估有效节点数目、预估点击次数、合理选择筛选因子,然后在对上述指标简单运算的基础上,合理确定筛选条件,开始筛选。若一次筛选完成后,尚未达到筛选要求,则在上一次筛选的基础上,基于上一次的经验,对筛选条件适当修正,从而不断缩小筛选目标。如此反复筛选,直到满足筛选要求。
本发明具有下列优点和积极效果:
1、本发明通过对统计表的组织结构和统计节点的组织结构的设计,可以简明、实用地记录URL的统计信息;
2、通过高效的采集及筛选算法的设计,在对站点页面访问次数过滤的基础上进行排名,即使在站点页面数量较多的情况下,也能实现高效、精确排名,极大地提高了排名的效率;
3、该思想的扩展也可应用于统计目标数量大而只要求对最前或最后N名排名的情况。
附图说明
图1是本算法的总体模块结构图;
图2是统计采样模块的工作流程图;
图3是预估子模块的工作流程图;
图4是首次筛选子模块的工作流程图;
图5是再次筛选模块的工作流程图;
图6是调整筛选子模块的工作流程图。
其中:
1—统计采样模块,
1.1—统计子模块,
1.1—采样子模块;
2—筛选模块,
2.1—预估子模块,
2.2—首次筛选子模块,
2.3—再次筛选子模块,
2.4—调整筛选子模块;
3—排名模块。
英译汉:
URL—Uniform Resource Locator,WWW上用来标识一信息页的语法形式,本文译为海量热点页面;
WAP—Wireless Application Protocol,无线应用协议。
具体的实施方式
以下结合附图和实施例详细说明:
一、统计表组织结构
前述,统计表使用hash+rb_tree构造,即主表是hash,在每个bucket中使用一个rb_tree来组织统计节点,用于保存总的统计指标信息及各统计项的关键信息。
在hash主表中维护如下数据:统计起始时间、统计结束时间、1小时内累计点击总数、记录表中统计节点的总数目;
rb_tree节点中维护如下数据:网站url、节点创建以来的点击次数、节点的预估点击次数、节点的创建时间。
参见表1,它描述了统计表的组织结构。
表1:统计表的组织结构
start_time | end_time | total_count | nodes_num | 节点1 | 节点2 | 节点3 | ...... | 节点n |
统计表中各字段的意义如下:
start_time 统计起始时间(以秒为单位);
end_time 统计结束时间;
total_count 1小时内累计点击总数;
nodes_num 记录表中统计节点的总数目。
参见表2,它描述了统计表中统计节点的组织结构。
表2:统计表中统计节点的组织结构
url | xtotal_count | xv_count | xstart_time |
统计节点中各字段的意义如下:
url 站点地址;
xtotal_count 节点创建以来的点击次数;
xv_count 节点的预估点击次数(根据节点点击速率,节点最大寿命计算);
xstart_time 记录节点的创建时间。
二、对海量热点页面筛选排序算法的总体模块结构
参见图1,对海量热点页面筛选排序算法的总体模块结构包括现有技术的排名模块3,设置有统计采样模块1和筛选模块2;该算法按照统计采样模块1、筛选模块2、排名模块3依次进行;
所述的统计采样模块1包括统计子模块1.1和采样子模块1.2;
所述的筛选模块2包括依次进行的预估子模块2.1、首次筛选子模块2.2、再次筛选子模块2.3和调整筛选子模块2.4。
具体地说:
①对海量热点页面统计、采样1
该算法首先对现网中所有的站点页面进行统计1.1,当统计的指标达到一定的限度后,启动采样流程1.2,以减小系统的处理压力,并确保统计的精确度。
②对采样后的页面进行筛选2
对于采样之后的页面,该算法确定筛选条件对这些页面进行预估筛选2.1,又进行首次筛选2.2,在筛选之后仍不能满足排名要求的情况下,重新确定筛选规则,进行再次筛选2.3,在不符合重新确定筛选规则的条件下,进行调整筛选2.4。
③对候选页面进行排名3
在筛选出符合排名要求的页面之后,启动排名流程,对页面进行排名。
三、模块的工作流程
1、统计采样模块1的工作流程
参见图2,统计采样模块1的工作流程包括下列步骤:
①模块开始初始化10
模块初始化全局变量XX,设定最低采样门限sample_enable_lowlimit和最低筛选门限filter_enable_lowlimit;
②判断当前是否存在于统计表中11
是则将统计表中的total_count加1,同时将统计表中与该站点页面对应的统计节点中的字段x_total_count加1 12;
否则跳转到步骤③,进入采样流程;
③判断节点数目nodes_num是否大于设定的最低采样门限sample_enable_lowlimit 13,
是则跳转到步骤④,构造采样模型,为采样做准备;
否则,在统计表中创建新的采集节点,并将统计表中的nodes_num字段加116。
④构造抽样模型
当nodes_num大于sample_enable_lowlimit,为提高统计的精度和效率,构造抽样模型;
构造抽样模型的过程通过如下三个步骤实现14:
z=(nodes_num-sample_enable_lowlimit)/2000;
sample_module=z*z+2;
xx++;
⑤站点页面采样
利用步骤④构建的采样模型,通过(xx mod sample_module)对站点页面采样15:
当(xx mod sample_module)==0时,在统计表中创建新的采集节点,并将统计表中的nodes_num字段加1 16;
否则,抛弃该站点页面,以减小统计负荷,提高统计效率和精度;
⑥判断统计表中统计节点的数目nodes_num是否大于最低筛选门限filter_enable_lowlimit 17;
若nodes_num大于filter_enable_lowlimit,则激活站点页面筛选流程,
否则,返回,进入下一个统计流程。
2、筛选模块2的工作流程
(1)预估子模块2.1的工作流程
参见图3,预估子模块2.1(为首次筛选子模块2.2做准备的)的工作流程包括下列步骤:
①模块开始初始化:
模块获取当前时间current_time并设定最小统计时间20;
②判断current_time是否大于统计结束时间end_time 21;
若current_time大于end_time,则先使current_time等于end_time,然后对该统计节点计算remain_time和deta_time;
否则,直接对该统计节点计算remain_time和deta_time,
remain_time和deta_time的计算方法22如下:
remain_time=(end_time-xstart_time)
deta_time=(current_time-xstart_time)
③判断步骤②计算的deta_time是否大于等于最小统计时间23;
若deta_time大于等于最小统计时间,则该节点为有效节点,同时计算该节点的xv_count=(xtotal_count/deta_time)*remain_time;
否则,该节点为无效节点,不参与该次预估;
④判断步骤③刚刚处理的节点是否是统计表中的最后一个节点24;
若是刚刚处理的节点是统计表中的最后一个节点,则汇总所有有效节点的xv_count值,得到总体的预估点击次数v_count,和有效节点数目v_nodes;
反之,则跳转到步骤②,开始下一次预估流程。
(2)首次筛选子模块2.2
参见图4,首次筛选子模块2.2的工作流程包括下列步骤:
①模块开始初始化
模块从预估流程得到总体的预估点击次数v_count和有效节点数目v_nodes 30;
②判断有效节点数目是否小于100(排名要求)31;
若有效节点数目小于100,则直接返回,不需对节点进行筛选;
否则,则跳转到步骤③,进入筛选流程;
③初始化筛选流程
筛选流程首先设定筛选因子factor,初始化v_share和v_share_nodes;然后通过v_rule=(v_count/vnodes)*factor、v_rule2=(v_count/100)设置初始的筛选指标(32、33);
④根据筛选条件,逐个筛选统计节点
对于统计表中的每一个统计节点:
首先判断xv_count是否小于v_rule(34)。
若xv_count小于v_rule,则该节点成为待筛选节点;
否则,该节点是候选节点;
然后判断上述节点中的xv_count>是否大于v_rule2 35;
若xv_count大于v_rule2,则先执行v_share+=xv_count、v_share_nodes++,然后跳转到步骤⑤;
反之,则直接跳转到步骤⑤;
⑤判断刚刚处理的节点是否是统计表中的最后一个节点36;
若刚刚处理的节点是统计表中的最后一个节点,则跳转到步骤⑥,结束此论筛选;
否则,则跳转到步骤④,对统计表中该节点之后的节点进行筛选;
⑥判断侯选节点的数目是否小于100 37;
反之,则结束筛选流程,对所有侯选节点排序。
步骤⑦,判断v_share是否大于0,重新确定筛选指标37;
如果v_share大于0,则按照规则重新确定筛选指标,对所有待筛选节点进行遍历筛选,以增补侯选节点310;
反之,则调小factor,重新确定筛选指标,对所有待筛选节点进行遍历筛选,以增补侯选节点(39)。
(3)再次筛选子模块2.3
参见图5,再次筛选子模块2.3的工作流程包括下列步骤:
①模块开始初始化
基于前述统计和筛选流程,模块得到总体的预估点击次数v_count(v_count=v_count-v_share),并在此基础上,重新设置新的筛选指标v_rule=(v_count/v_nodes)*factor、v_rule2=(v_count/100)51、52;
②遍历所有待筛选节点,增补侯选节点
模块根据步骤①确定的筛选规则,遍历所有待筛选节点,根据条件缩小待筛选节点数目,即:
若xv_count小于v_rule,则该节点成为待筛选节点;否则该节点是候选节点53;
若xv_count大于v_rule2,则v_share+=xv_count,v_share_nodes++54、55;
③判断当前处理节点是否是待筛选节点中的最后一个节点,
若当前节点是待筛选节点中的最后一个节点,则结束该筛选流程;
否则跳转到步骤②,对下一个节点进行筛选。
(4)调整筛选子模块2.4
参见图6,调整筛选子模块2.4的工作流程包括下列步骤:
①模块开始初始化
基于前述统计、采样和筛选流程,调小factor,并在此基础上,重新设置新的筛选指标v_rule=(v_count/v_nodes)*factor41、42;
②遍历所有待筛选节点,增补侯选节点
模块根据步骤①确定的筛选规则,遍历所有待筛选节点,根据条件缩小待筛选节点数目43,即:
若xv_count小于v_rule,该节点成为待筛选节点;
否则,该节点是侯选节点;
③判断当前处理节点是否是待筛选节点中的最后一个节点,
若当前节点是待筛选节点中的最后一个节点,则结束该筛选流程;
否则跳转到步骤②,对下一个节点进行筛选。
Claims (8)
1、一种用于记录统计信息的统计表组织结构,其特征在于:
统计表使用hash+rb_tree构造,即主表是hash,在每个bucket中使用一个rb_tree来组织统计节点,用于保存总的统计指标信息及各统计项的关键信息。
2、按权利要求1所述的统计表组织结构,其特征在于:
在hash主表中维护如下数据:统计起始时间、统计结束时间、1小时内累计点击总数、记录表中统计节点的总数目;
rb_tree节点中维护如下数据:网站url、节点创建以来的点击次数、节点的预估点击次数、节点的创建时间。
3、一种基于权利要求1所述的统计表组织结构的对海量热点页面筛选排序的算法总模块,包括排名模块(3),其特征在于:
设置有统计采样模块(1)和筛选模块(2);该算法按照统计采样模块(1)、筛选模块(2)、排名模块(3)依次进行;
所述的统计采样模块(1)包括统计子模块(1.1)和采样子模块(1.2);
所述的筛选模块(2)包括依次进行的预估子模块(2.1)、首次筛选子模块(2.2)、再次筛选子模块(2.3)和调整筛选子模块(2.4)。
4、按权利要求3所述的算法总模块,其特征在于:
统计采样模块(1)的工作流程如图2。
5、按权利要求3所述的算法总模块,其特征在于:
预估子模块(2.1)的工作流程如图3。
6、按权利要求3所述的算法总模块,其特征在于:
首次筛选子模块(2.2)的工作流程如图4。
7、按权利要求3所述的算法总模块,其特征在于:
再次筛选子模块(2.3)的工作流程如图5。
8、按权利要求3所述的算法总模块,其特征在于:
调整筛选子模块(2.4)的工作流程如图6。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101978139A CN101414308A (zh) | 2008-11-24 | 2008-11-24 | 一种对海量热点页面筛选排序的算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101978139A CN101414308A (zh) | 2008-11-24 | 2008-11-24 | 一种对海量热点页面筛选排序的算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101414308A true CN101414308A (zh) | 2009-04-22 |
Family
ID=40594842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101978139A Pending CN101414308A (zh) | 2008-11-24 | 2008-11-24 | 一种对海量热点页面筛选排序的算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101414308A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108093273A (zh) * | 2016-11-22 | 2018-05-29 | 北京国双科技有限公司 | 数据的排序方法、装置及系统 |
CN110111153A (zh) * | 2019-05-13 | 2019-08-09 | 极智(上海)企业管理咨询有限公司 | 一种投标广告投放方法、系统、介质和电子设备 |
-
2008
- 2008-11-24 CN CNA2008101978139A patent/CN101414308A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108093273A (zh) * | 2016-11-22 | 2018-05-29 | 北京国双科技有限公司 | 数据的排序方法、装置及系统 |
CN108093273B (zh) * | 2016-11-22 | 2020-10-02 | 北京国双科技有限公司 | 数据的排序方法、装置及系统 |
CN110111153A (zh) * | 2019-05-13 | 2019-08-09 | 极智(上海)企业管理咨询有限公司 | 一种投标广告投放方法、系统、介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5160556B2 (ja) | 分散型コンピュータネットワークに基づくログファイル分析方法およびシステム | |
CN101446940B (zh) | 为文档集自动生成摘要的方法及装置 | |
CN103164427B (zh) | 新闻聚合方法及装置 | |
CN102129479B (zh) | 一种基于概率潜在语义分析模型的万维网服务发现方法 | |
CN103139256B (zh) | 一种多租户网络舆情监控方法及系统 | |
CN103914491B (zh) | 对优质用户生成内容的数据挖掘方法和系统 | |
CN102567494B (zh) | 网站分类方法及装置 | |
CN104615627B (zh) | 一种基于微博平台的事件舆情信息提取方法及系统 | |
CN102799610A (zh) | 网络信息收藏方法及系统 | |
CN104965905A (zh) | 一种网页分类的方法和装置 | |
CN102088419A (zh) | 一种在社交网络中查找好友信息的方法和系统 | |
JP2009099124A (ja) | データ構築方法とシステム | |
CN106294588A (zh) | 快速搜索所要查询内容的方法及装置 | |
CN102169496A (zh) | 基于锚文本分析的领域术语自动生成方法 | |
CN102811207A (zh) | 网络信息推送方法及系统 | |
CN109885656B (zh) | 基于量化热度的微博转发预测方法及装置 | |
CN104572733A (zh) | 用户兴趣标签分类的方法及装置 | |
CN102063468A (zh) | 一种用于确定查询序列的查询类别的设备及其方法 | |
CN104778177A (zh) | 数据处理方法及装置 | |
CN103902596A (zh) | 高频页面内容聚类方法和系统 | |
CN105095228A (zh) | 一种社交消息的监测方法及装置 | |
CN104063479B (zh) | 一种基于社会网络的品牌网络热度计算方法 | |
CN101414308A (zh) | 一种对海量热点页面筛选排序的算法 | |
CN103838797A (zh) | 一种移动搜索引擎优化方法 | |
CN103823847A (zh) | 一种关键词的扩充方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090422 |