基于当前网页列表进行推荐的方法和系统的制作方法

文档序号:6536219阅读:147来源:国知局
基于当前网页列表进行推荐的方法和系统的制作方法
【专利摘要】本发明涉及互联网应用【技术领域】,提出了一种基于当前网页列表进行推荐的方法和系统。采用Bloom?Filter算法对获取的URL进行识别,判断其是否已经存在于现有已采集的网页列表中,能够高效准确获取待采集的网址信息,并能够实时针对待采集和已采集的网页区分处理,充分利用资源,为精准内容推荐和广告投放服务。
【专利说明】基于当前网页列表进行推荐的方法和系统
【技术领域】
[0001]本发明涉及互联网应用【技术领域】,特别涉及一种基于当前网页列表进行推荐的方法和系统。
【背景技术】
[0002]在网络内容推荐/广告投放领域中,需要对Web信息进行采集,而Web信息中涉及对海量URL进行分析,为避免对重复的URL做采集,需要对已采集或者未采集的URL做区分,由于URL的数目巨大,区分工作需要耗费一定的空间和时间,现有技术已经可以对URL做有效的判重处理。当前利用的技术有以下几种:
[0003]1.链表或树的存储和判重方式:
[0004]使用链表或树存储URL,通过比较操作来判重URL。该方案的实现比较简单,利用查找和比较功能对URL做是否重复的判断。
[0005]2.HashTable的存储和判重方式:
[0006]选取合适的Hash函数,将URL明文通过Hash函数映射到位数组中的一个点上,从而可以快速判断某个URL是否已经被爬取过。
[0007]但是现有技术存在以下缺陷:
[0008]在链表或树的存储和判重方式中,链表和树的方式在URL数量不大时可以保持一定的时间和空间的效率。但随着URL数量的不断扩大,URL检索的时间和空间的效率都会降低,时间效率和空间效率分别为0(n),O(1gn),现在互联网有海量的网页,所以采用这种方式对于URL的存储和检索的时间和空间效率是无法满足实际生产需要的。
[0009]在HashTable的存储和判重方式中,HashTable的解决方案可以在时间效率上保持O (I),但是Hash会产生碰撞问题,而为了降低碰撞弓丨起的冲突率,则又需要对HashTabIe能容纳的元素数量进行限定,假设Hash函数是良好的,如果我们的bitrate长度为m个点,当需要将冲突率降低到例如1%时,则该HashTable就只能容纳m/100个元素,显然这就降低了空间效率。

【发明内容】

[0010](一)本发明所要解决的技术问题:
[0011]本方案使用Bloom Filter的方式,无论在空间还是时间效率上都要优于基本链表的方式。同时由于采用多个Hash函数,所以减少了碰撞,在空间利用率和碰撞概率上要优于HashTable的方式。
[0012](二)技术方案
[0013]为实现上述目的,本发明提出了一种基于当前网页列表进行推荐的方法和系统。采用Bloom Filter对获取的URL进行识别,判断其是否已经存在于现有的网页列表中,能够高效准确获取待采集的网址信息,并能够实时针对待采集和已采集的网页区分处理,充分利用资源,为精准内容推荐和广告投放服务。[0014]Bloom Filter具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员,它基于一种高空间利用率的随机存储结构,利用位数组来表示一个集合,并可以判断一个元素是否属于这个集合。这种检测只会对在集合内的数据错判,而不会对不是集合内的数据进行错判,这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况,可见Bloom Filter在判断一个元素是否属于某个集合时,有可能把不属于这个集合的元素误判为属于这个集合(False Positive),但是并不会把属于这个集合的元素误判为不属于这个几个。在URL去重的需求中,只要满足一定的比率,FalsePositive是可以接受的。这就为Bloom Filter的应用提供了良好的适用环境。
[0015]具体地,一方面,本发明提供一种基于当前网页列表进行推荐的方法,其特征在于,所述方法包括步骤:
[0016]S1:获取当前访问URL;
[0017]S2:判断该URL是否被采集过,此步骤中采用Bloom Filter算法识别获取的URL是否被采集过,是,转S3,否,转S4 ;
[0018]S3:查询URL相关数据,转S6 ;
[0019]S4:加入待采集队列,将该URL上报至未爬取网址队列等待爬虫工具采集;
[0020]S5:获取URL相关信息;
[0021]S6:内容推荐/投放广告。
[0022]优选地,步骤S2中,服务端收到步骤SI中上报的URL之后,采用Bloom Filter算法识别该网页是否曾经被采集过,当获取一个URL之后,分别计算出对应的k个比特位为O还是I,其中,k为算法使用的哈希函数的个数,如果k个对应位置上都是I则认为这个URL已经存在在现有的集合内,即,该网页已经被采集过,只要有一个对应位置上的值不是1,都认为该URL没有存在在现有的集合内,即,该网页没有被采集过。
[0023]优选地,步骤S3中将该URL发送到至上下文数据库,从上下文数据库中获取网站类别等信息。
[0024]优选地,步骤S5中爬虫工具从未采集网址队列中获取URL并爬取该网址对应的网页/网站的相关内容,提交给数据分析器进行内容分析,并给分析内容后的网页/网站打上相关的标签。
[0025]优选地,步骤S6中服务端根据该网站的类别和其他信息来选取合适的内容如媒体或广告进行推荐和投放。
[0026]另一方面,本发明提供一种基于用户标签的用户属性挖掘的系统,其特征在于,所述系统包括以下模块:
[0027]Ml:用于获取当前访问URL ;
[0028]M2:用于判断该URL是否被采集过,此模块中采用Bloom Filter算法识别获取的URL是否被采集过,是,转M3,否,转M4 ;
[0029]M3:用于查询URL相关数据,转M6 ;
[0030]M4:用于加入待采集队列,将该URL上报至未爬取网址队列等待爬虫工具采集;
[0031]M5:用于获取URL相关信息;
[0032]M6:用于内容推荐/投放广告。
[0033]优选地,在模块M2中,服务端收到步骤SI中上报的URL之后,采用Bloom Filter算法识别该网页是否曾经被采集过,当获取一个URL之后,分别计算出对应的k个比特位为O还是I,其中,k为算法使用的哈希函数的个数,如果k个对应位置上都是I则认为这个URL已经存在在现有的集合内,即,该网页已经被采集过,只要有一个对应位置上的值不是1,都认为该URL没有存在在现有的集合内,即,该网页没有被采集过。
[0034]优选地,在模块M3中将该URL发送到至上下文数据库,从上下文数据库中获取网站类别等信息。
[0035]优选地,在模块M5中爬虫工具从未采集网址队列中获取URL并爬取该网址对应的网页/网站的相关内容,提交给数据分析器进行内容分析,并给分析内容后的网页/网站打上相关的标签。
[0036]优选地,在模块M6中服务端根据该网站的类别和其他信息来选取合适的内容如媒体或广告进行推荐和投放。
[0037](三)技术效果
[0038]本发明用于获取网页列表,能够有效实现网页去重。
[0039]本发明使用Bloom Filter算法获取当前网页列表,能够高效准确获取待采集的网
址信息。
[0040]本发明可以实时处理待采集和已采集的网页,充分利用资源,为精准内容推荐和广告投放服务。
【专利附图】

【附图说明】
[0041]图1是本发明中基于当前网页列表进行推荐的方法流程示意图;
[0042]图2是本发明中基于当前网页列表进行推荐的系统结构示意图。
【具体实施方式】
[0043]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]为解决现有技术的上述缺陷,本发明提供了一种基于当前网页列表进行推荐的方法和系统,通过采用Bloom Filter算法对当前获取网页URL的执行识别分类,以便分别针对属于不同集合的URL进行不同的处理,从而获得更高的时间效率和更好的空间效率。
[0045]Bloom Filter是一种二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员,这种检测只会对在集合内的数据错判,而不会对不是集合内的数据进行错判,这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况。如需要判断一个元素是不是在一个集合中,我们通常做法是把所有元素保存下来,然后通过比较知道它是不是在集合内,链表、树都是基于这种思路,当集合内元素个数的变大,我们需要的空间和时间都线性变大,检索速度也越来越慢。Bloom Filter采用的是哈希函数的方法,将一个元素映射到一个m长度的阵列上的一个点,当这个点是I时,那么这个元素在集合内,反之则不在集合内。为了解决普通的Hash算法中的碰撞冲突问题,Bloom Filter算法中使用k个哈希函数对应k个点,如果所有点都是I的话,那么元素在集合内,如果有O的话,元素则不在集合内。Bloom filter的优点就是它的插入和查询时间都是常数,另外它查询元素却不保存元素本身,具有良好的安全性。它的缺点也是显而易见的,当插入的元素越多,错判“在集合内”(False Positive)的概率就越大了。但由于在URL去重的需求中,只要满足一定的比率,False Positive是可以接受的。这就为Bloom Filter的应用提供了良好的适用环境。
[0046]基于此,在本发明的一个实施例中,如图1所示,基于当前网页列表进行推荐的方法主要包括步骤:
[0047]SI:获取当前访问URL。
[0048]当用户访问网页时,浏览器上报网页URL给服务端,可以通过安装插件或访问日志等方式获取当前网页的URL,此步骤可使用现有的获取URL技术。
[0049]S2:判断该URL是否被采集过。若是,转步骤S3 ;否则转步骤S4。
[0050]服务端收到步骤SI中上报的URL之后,采用Bloom Filter算法识别该网页是否曾经被米集过。
[0051]具体而言,当获取一个URL之后,进行判断,假定使用k个哈希函数,分别计算出对应的k个比特位为O还是1,如果k个对应位置上都是I则认为这个URL已经存在在现有的集合内,即,该网页已经被采集过。只要有一个对应位置上的值不是1,都认为该URL没有存在在现有的集合内,即,该网页没有被采集过。随着元素的插入,Bloom Filter中修改的值变多,发生碰撞冲突的可能性就越大,当新来一个元素时,满足其在集合内的条件,即所有对应位都是1,这样就可能有两种情况,一是这个元素就在集合内,没有发生误判;还有一种情况就是发生误判,出现了哈希碰撞,这个元素本不在集合内。此时,出现误判的几率也随之变大。但是相较于现有的使用单一 Hash函数的算法而言,能够大大降低碰撞冲突来带的误判问题并能够有效提高空间效率。而且在URL去重的需求中,只要满足一定的比率,这种误判率是可以接受的。
[0052]S3:查询URL相关数据。将该URL发送到至上下文数据库,从上下文数据库中获取网站类别等信息,转步骤S6。
[0053]S4:加入待采集队列。将该URL上报至未爬取网址队列等待爬虫工具采集。
[0054]S5:获取URL相关信息。爬虫工具从未采集网址队列中获取URL并爬取该网址对应的网页/网站的相关内容,提交给数据分析器进行内容分析,并给分析内容后的网页/网站打上相关的标签,如,划分网站类型为购物网站、咨询网站、新闻网站等不同的网站类型。
[0055]S6:内容推荐/投放广告。服务端根据该网站的类别和其他信息来选取合适的内容如媒体或广告进行推荐和投放。
[0056]本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:R0M/RAM、磁碟、光盘、存储卡等。因此,本领域相关技术人员应能理解,与本发明的方法相对应的,本发明还同时包括一种基于当前网页列表进行推荐的系统,如图2所示,与上述方法步骤一一对应地,该系统包括:
[0057]获取模块,用于获取当前访问URL。
[0058]当用户访问网页时,该获取模块驱动浏览器上报网页URL给服务端,可以通过安装插件或访问日志等方式获取当前网页的URL,此时可使用现有的获取URL技术。
[0059]判断模块,用于判断该URL是否被采集过。若是,则由查询模块处理该URL ;否则,转由采集模块处理该URL。
[0060]服务端收到子模块Ml中获取的URL之后,采用Bloom Filter算法识别该网页是否曾经被采集过。
[0061]具体而言,当获取一个URL之后,进行判断,假定使用k个哈希函数,分别计算出对应的k个比特位为O还是1,如果k个对应位置上都是I则认为这个URL已经存在在现有的集合内,即,该网页已经被采集过。只要有一个对应位置上的值不是1,都认为该URL没有存在在现有的集合内,即,该网页没有被采集过。随着元素的插入,Bloom Filter中修改的值变多,发生碰撞冲突的可能性就越大,当新来一个元素时,满足其在集合内的条件,即所有对应位都是1,这样就可能有两种情况,一是这个元素就在集合内,没有发生误判;还有一种情况就是发生误判,出现了哈希碰撞,这个元素本不在集合内。此时,出现误判的几率也随之变大。但是相较于现有的使用单一 Hash函数的算法而言,能够大大降低碰撞冲突来带的误判问题并能够有效提高空间效率。而且在URL去重的需求中,只要满足一定的比率,这种误判率是可以接受的。
[0062]查询模块,用于查询URL相关数据。将该URL发送到至上下文数据库,从上下文数据库中获取网站类别等信息,转由推荐模块处理。
[0063]队列模块,用于加入待采集队列。将该URL上报至未爬取网址队列等待爬虫工具米集。
[0064]采集模块,用于获取URL相关信息。爬虫工具从未采集网址队列中获取URL并爬取该网址对应的网页/网站的相关内容,提交给数据分析器进行内容分析,并给分析内容后的网页/网站打上相关的标签,如,划分网站类型为购物网站、咨询网站、新闻网站等不同的网站类型。
[0065]推荐模块,用于进行内容推荐/投放广告。服务端根据该网站的类别和其他信息来选取合适的内容如媒体或广告进行推荐和投放。
[0066]利用本发明提出的获取网页列表的方法和系统,可以有效的对热点网页做采集,提高采集效率。
[0067]虽然以上结合优选实施例对本发明进行了描述,但本领域的技术人员应该理解,本发明所述的方法和系统并不限于【具体实施方式】中所述的实施例,在不背离由所附权利要求书限定的本发明精神和范围的情况下,可对本发明作出各种修改、增加、以及替换。
【权利要求】
1.一种基于当前网页列表进行推荐的方法,其特征在于,所述方法包括步骤: S1:获取当前访问URL ; S2:采用Bloom Filter算法判断所述URL对应的网页是否被采集过,若是,转步骤S3,否则,转步骤S4; S3:查询所述URL的相关数据后转至步骤S6 ; S4:将所述URL加入待采集队列,将其上报至未爬取网址队列等待爬虫工具采集; S5:利用所述爬虫工具获取所述URL的相关数据; S6:根据所述URL的相关数据进行内容推荐或投放。
2.如权利要求1所述的方法,其特征在于,在步骤S2中,所述采用BloomFilter算法判断所述URL对应的网页是否曾经被采集过具体为: 当获取一个URL之后,分别计算出对应的k个比特位为O还是1,其中,k为算法使用的哈希函数的个数,如果k个对应位置上都是I则认为这个URL已经存在在现有的集合内,即,对应网页已经被采集过;只要有一个对应位置上的值不是1,都认为该URL没有存在在现有的集合内,即,对应网页没有被采集过。
3.如权利要求1所述的方法,其特征在于,在步骤S3中,将该URL发送到至上下文数据库,从上下文数据库中获取网站类别信息。
4.如权利要求1所述的方法,其特征在于,在步骤S5中,爬虫工具从未采集网址队列中获取URL并爬取其对应网页/网站的相关内容,提交给数据分析器进行内容分析,并给分析内容后的网页/网站打上相关的标签。
5.如权利要求1所述的方法,其特征在于,在步骤S6中,服务端根据该网站类别和其他信息来选取合适的内容进行推荐和投放。
6.一种基于当前网页列表进行推荐的系统,其特征在于,所述系统包括: 获取模块,用于获取当前访问URL ; 判断模块,用于采用Bloom Filter算法判断所述URL对应的网页是否被采集过,若是,则由查询模块处理该URL ;否则,转由队列模块处理该URL ; 查询模块,用于所述URL的相关数据后转由推荐模块处理; 队列模块,将所述URL加入待采集队列,将其上报至未爬取网址队列等待爬虫工具采集; 采集模块,用于利用所述爬虫工具获取所述URL的相关数据; 推荐模块,用于根据所述URL的相关数据进行内容推荐或投放。
7.如权利要求6所述的系统,其特征在于,在所述判断模块中,所述采用BloomFilter算法判断所述URL对应的网页是否曾经被采集过具体为: 当获取一个URL之后,分别计算出对应的k个比特位为O还是1,其中,k为算法使用的哈希函数的个数,如果k个对应位置上都是I则认为这个URL已经存在在现有的集合内,即,对应网页已经被采集过;只要有一个对应位置上的值不是1,都认为该URL没有存在在现有的集合内,即,对应网页没有被采集过。
8.如权利要求6所述的系统,其特征在于,在所述查询模块中,将该URL发送到至上下文数据库,从上下文数据库中获取网站类别信息。
9.如权利要求6所述的系统,其特征在于,在所述采集模块中,爬虫工具从未采集网址队列中获取URL并爬取其对应网页/网站的相关内容,提交给数据分析器进行内容分析,并给分析内容后的网页/网站打上相关的标签。
10.如权利要求6所述的系统,其特征在于,在所述推荐模块中,服务端根据网站类别和其他信息 来选取合适的内容进行推荐和投放。
【文档编号】G06F17/30GK103778217SQ201410024821
【公开日】2014年5月7日 申请日期:2014年1月20日 优先权日:2014年1月20日
【发明者】崔晶晶, 林佳婕, 吴鹏, 马占国, 李春华, 刘立娜 申请人:北京集奥聚合科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1