CN108628871A - 一种基于链接特征的链接去重方法 - Google Patents
一种基于链接特征的链接去重方法 Download PDFInfo
- Publication number
- CN108628871A CN108628871A CN201710158156.6A CN201710158156A CN108628871A CN 108628871 A CN108628871 A CN 108628871A CN 201710158156 A CN201710158156 A CN 201710158156A CN 108628871 A CN108628871 A CN 108628871A
- Authority
- CN
- China
- Prior art keywords
- url
- bloom filter
- bloom
- sub
- link
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于链接特征的链接去重方法,包括如下步骤:S1、根据URL的格式特征,将URL的域名部分,目录部分以及文件名部分拆分重组,重组成三种URL形式;S2、建立一个布隆过滤器集,包含三个子布隆过滤器;S3、使用这三个子布隆过滤器分别对步骤S 1生成的三种形式的URL进行查重操作;S4、分别判断三个子布隆过滤器的置1位占比是否超过50%;S5、新建一个布隆过滤器,将URL经过多次哈希后存入该布隆过滤器,并将相应的置1位数量进行更改,转到S7;S6、将URL经过多次哈希后存入布隆过滤器,并将相应的置1位数量进行更改;S7、重复步骤S1‑ S6,直至查重结束。能够显著降低布隆过滤器的误判率。
Description
技术领域
本发明涉及集合去重技术领域,尤其涉及一种基于链接特征的链接去重方法。
背景技术
网页链接去重的准确性在很大程度上决定着整个网络爬虫系统的性能。人们在网页链接去重方面做了大量的研究,提出了许多各种各样的方法。例如基于哈希表、MD5压缩映射存储、数据库、布隆过滤器等的链接去重方法。但这些去重方法普遍存在内存消耗过大且查询时间较长的缺点,并不能很好满足网络爬虫链接去重的需求。像基于哈希表的链接去重方法,在集合规模很大时,所消耗的内存资源也会变得十分巨大。基于MD5压缩映射存储的链接去重方法,将所有的链接都映射为16或32位字符串,虽然相比于基于哈希表的链接去重方法能够有效的降低内存占用率,但是由于其进行MD5压缩映射的过程十分耗时,并且当链接规模很大时其内存消耗同样十分巨大,同样不能适用于高性能网络爬虫的链接去重。另外,MD5压缩映射具有碰撞性,使用这种方法进行链接去重会存在一定的误判率。使用数据库的链接去重方法虽然能够解决其他几种方法内存消耗巨大的问题,但是带来了查询性能的降低的损失。在数据规模很大时,数据库查询的时间消耗将会十分巨大。使用布隆过滤器进行链接去重能够有效降低内存消耗,并且降低查询的时间消耗。但是布隆过滤器具有误识别的缺点,并且随着集合规模的不断增大,误判率将会呈指数级的增长。
关于链接去重方法的专利文件较多,各有其优缺点。如申请号201610277708.0的专利文件中公开的《基于分布式数据库的网页URL去重方法》能够避免内存溢出以及误判的问题,但需要使用磁盘存储数据库表信息进行去重,因此需要较大的IO交互时延,在集合规模很大的情况下的性能难以保证。再如申请号为201510185467.2的专利文件中公开的《基于动态可分裂Bloom Filter的网络爬虫URL去重方法》,对经典布隆过滤器进行动态扩展,但其动态扩展的操作需要将已存储的位信息重新部署到新扩展的子布隆过滤器上,扩展操作过于耗时。
发明内容
本发明的目的在于提供一种具有更低误判率并且能够适用于集合数量动态变化情形下的集合去重方法。
为解决上述技术问题,本发明提供了1、一种基于链接特征的链接去重方法,其特征在于,包括如下步骤:
S1、根据URL的格式特征,将URL的域名部分,目录部分以及文件名部分拆分重组,重组成三种URL形式。其中,第一种形式为原始URL,第二种形式为域名后接文件名,第三种形式为目录名后接文件名;
S2、建立一个布隆过滤器集,包含三个子布隆过滤器;
S3、使用这三个子布隆过滤器分别对步骤S 1生成的三种形式的URL进行查重操作,当三个子布隆过滤器的查重结果都显示URL已存在时,认为这条URL已经存在,转到步骤S7,否则转到步骤S4;
S4、分别判断三个子布隆过滤器的置1位占比是否超过50%,如果超过50%,转到S5,否则转到S6;
S5、新建一个布隆过滤器,将URL经过多次哈希后存入该布隆过滤器,并将相应的置1位数量进行更改,转到S7;
S6、将URL经过多次哈希后存入布隆过滤器,并将相应的置1位数量进行更改;
S7、 重复步骤S1- S6,直至查重结束。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
URL的语法构成如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀参数=值#标志。通过分析URL的特征,将URL分为三部分,将(协议://用户名:密码@子域名.域名.顶级域名:端口号)标记为第一部分,用符号A表示,将(目录)标记为第二部分,用符号B表示,将(文件名.文件后缀参数=值#标志)标记为第三部分,用符号C表示。于是,每一个URL都可以用类似于A/B/C的形式进行表示。由于本发明针对URL进行去重,因此利用URL本身具有的这些特征,进行相应的变化,再结合布隆过滤器进行去重,能够显著降低布隆过滤器的误判率。
本发明根据URL的结构特征,将URL进行重组合,再通过布隆过滤器进行组合去重操作,能够显著降低布隆过滤器的误判率。由于布隆过滤器具有随着集合规模的增长,误判率呈指数增长的缺点,本发明在经典布隆过滤器的基础上,进行动态扩展。随着查重集合规模的不断变大,布隆过滤器的容量也会相应的进行扩充,使得误判率维持稳定。
使用6到38万链接规模的网页链接分别对基于经典布隆过滤器的链接去重方法以及本专利提出的方法进行实验,计算其误判率的结果如附图3所示,由实验结果可以看出本专利提出的方法相比于其他链接去重方法能够显著降低误判率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是基于链接特征的链接去重方法结构图。
图2是基于链接特征的链接去重方法流程图。
图3是使用本方法和使用经典布隆过滤器对不同规模链接去重的实验结果对比图。其中基于经典布隆过滤器的链接去重方法简写为SBF,本专利提出的方法简写为SFDBF。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
如图1-图3所示,本实施例所述的、一种基于链接特征的链接去重方法,其特征在于,包括如下步骤:
S1、根据URL的格式特征,将URL的域名部分,目录部分以及文件名部分拆分重组,重组成三种URL形式。其中,第一种形式为原始URL,第二种形式为域名后接文件名,第三种形式为目录名后接文件名;
S2、建立一个布隆过滤器集,包含三个子布隆过滤器;
S3、使用这三个子布隆过滤器分别对步骤S 1生成的三种形式的URL进行查重操作,当三个子布隆过滤器的查重结果都显示URL已存在时,认为这条URL已经存在,转到步骤S7,否则转到步骤S4;
S4、分别判断三个子布隆过滤器的置1位占比是否超过50%,如果超过50%,转到S5,否则转到S6;
S5、新建一个布隆过滤器,将URL经过多次哈希后存入该布隆过滤器,并将相应的置1位数量进行更改,转到S7;
S6、将URL经过多次哈希后存入布隆过滤器,并将相应的置1位数量进行更改;
S7、 重复步骤S1- S6,直至查重结束。
更为具体的:
1)假设布隆过滤器使用的哈希函数能够等概率的将元素均匀分散到位图中的每一位上,设定位图大小为变量m,那么在元素插入时,位图中某一位没有被置1的概率为:
(1)
2)如果假定通过k次哈希确定一个元素,那么k次哈希操作后位图中的某一位没有被置1的概率为:
(2)
3)当我们插入n个元素后,某一位仍然没有被置1的概率为:
(3)
4)当查询某一个元素时,如果该元素经多次哈希映射后,位图中所有位均已置1,则说明该元素已经存在。但是如果其他元素对相应位操作,使得该位被置1,同样会得到查询的所有位都已置1的结果,这种情况下,布隆过滤器会错误判断某一本不在元素集合中的元素存在于集合中。推导得出误判的概率如下:
(4)
5)分析上面的公式,将其形式转换如下:
(5)
6)由于 在位图大小m取值很大时趋近与0,所以上述公式在m很大时将趋向于如下值:
(6)
7)现在,假设上式是误判率关于k的一个函数,即:
(7)
8)利用导数求极值,求得在 时,取得最小值,即此时误判率最低。
9)使用三个布隆过滤器组成一个布隆过滤器集,假设URL为D,其形式为A/B/C,每次进行URL查重时,若D只有A或者A/B的形式,则将D按长度等分为三部分组成A/B/C的形式,将D进行如下操作:
首先使用第一个布隆过滤器对D进行一次查重操作,其次,将D重组为A/C的形式,使用第二个布隆过滤器进行查重,最后,将D重组为B/C的形式,使用第三个布隆过滤器进行查重,只有当三次查重都判定该URL存在时,才认为该URL存在于集合中。将URL根据特征拆分为不同的部分再重新组合,进行判重,结合上一节推导出的误判率公式,得出基于链接特征的链接去重方法的误判率公式如下:
(8)
当m,n,k相同时,由于式(6)的结果肯定小于1,因此肯定小于,即本章提出的链接去重方法误判率将极大的小于基于经典布隆过滤器的链接去重方法的误判率。由于本方法使用三个布隆过滤器,为保持初始化总位图大小相同,每一个布隆过滤器的初始化位图大小设置为m/3,k以及n的大小保持不变,推导得每一个布隆过滤器的误判率如下:
(9)
因此本章提出的布隆过滤器总误判率为。比较和,假设a=n*k/m,当满足时,有。因此使用本方法在n/m在某一区间时,其理论误判率将低于经典布隆过滤器。
为了满足n/m维持在一定的区间,同时,解决经典布隆过滤器在集合规模增长的情况下,误判率急剧升高的问题,本方法在经典布隆过滤器的基础上进行动态扩展。设定一个阈值a,当布隆过滤器集中任意一个布隆过滤器位图中的置1位占总位数的比例超过阈值a时,即对该布隆过滤器进行动态扩展操作。扩展方式如下:当某一布隆过滤器需要进行扩展操作时,再新建一个初始大小和原布隆过滤器一样的布隆过滤器与原布隆过滤器组成一个小集合,以后的插入操作都在新建的布隆过滤器上进行,当进行查找时,按照建立的顺序分别在集合中的各个布隆过滤器中进行查重,只要有一个布隆过滤器的查询结果认为存在,即认为其存在,并停止查找操作。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (1)
1.一种基于链接特征的链接去重方法,其特征在于,包括如下步骤:
S1、根据URL的格式特征,将URL的域名部分,目录部分以及文件名部分拆分重组,重组成三种URL形式,其中,第一种形式为原始URL,第二种形式为域名后接文件名,第三种形式为目录名后接文件名;
S2、建立一个布隆过滤器集,包含三个子布隆过滤器;
S3、使用这三个子布隆过滤器分别对步骤S 1生成的三种形式的URL进行查重操作,当三个子布隆过滤器的查重结果都显示URL已存在时,认为这条URL已经存在,转到步骤S7,否则转到步骤S4;
S4、分别判断三个子布隆过滤器的置1位占比是否超过50%,如果超过50%,转到S5,否则转到S6;
S5、新建一个布隆过滤器,将URL经过多次哈希后存入该布隆过滤器,并将相应的置1位数量进行更改,转到S7;
S6、将URL经过多次哈希后存入布隆过滤器,并将相应的置1位数量进行更改;
S7、 重复步骤S1- S6,直至查重结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710158156.6A CN108628871A (zh) | 2017-03-16 | 2017-03-16 | 一种基于链接特征的链接去重方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710158156.6A CN108628871A (zh) | 2017-03-16 | 2017-03-16 | 一种基于链接特征的链接去重方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108628871A true CN108628871A (zh) | 2018-10-09 |
Family
ID=63686633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710158156.6A Pending CN108628871A (zh) | 2017-03-16 | 2017-03-16 | 一种基于链接特征的链接去重方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108628871A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399546A (zh) * | 2019-07-23 | 2019-11-01 | 中南民族大学 | 基于网络爬虫的链接去重方法、装置、设备及存储介质 |
CN110413861A (zh) * | 2019-07-23 | 2019-11-05 | 中南民族大学 | 基于网络爬虫的链接提取方法、装置、设备及存储介质 |
CN115186155A (zh) * | 2022-09-13 | 2022-10-14 | 南京百家云科技有限公司 | 一种数据过滤方法、装置、电子设备及存储介质 |
CN115454983A (zh) * | 2022-09-13 | 2022-12-09 | 浪潮卓数大数据产业发展有限公司 | 一种基于布隆过滤器的海量Hbase数据去重方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136279A1 (en) * | 2005-11-29 | 2007-06-14 | Yahoo! Inc. | URL shortening and authentication with reverse hash lookup |
CN102110132A (zh) * | 2010-12-08 | 2011-06-29 | 北京星网锐捷网络技术有限公司 | 统一资源定位符匹配查找方法、装置和网络侧设备 |
CN104809182A (zh) * | 2015-04-17 | 2015-07-29 | 东南大学 | 基于动态可分裂Bloom Filter的网络爬虫URL去重方法 |
CN105956068A (zh) * | 2016-04-27 | 2016-09-21 | 湖南蚁坊软件有限公司 | 基于分布式数据库的网页url去重方法 |
-
2017
- 2017-03-16 CN CN201710158156.6A patent/CN108628871A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136279A1 (en) * | 2005-11-29 | 2007-06-14 | Yahoo! Inc. | URL shortening and authentication with reverse hash lookup |
CN102110132A (zh) * | 2010-12-08 | 2011-06-29 | 北京星网锐捷网络技术有限公司 | 统一资源定位符匹配查找方法、装置和网络侧设备 |
CN104809182A (zh) * | 2015-04-17 | 2015-07-29 | 东南大学 | 基于动态可分裂Bloom Filter的网络爬虫URL去重方法 |
CN105956068A (zh) * | 2016-04-27 | 2016-09-21 | 湖南蚁坊软件有限公司 | 基于分布式数据库的网页url去重方法 |
Non-Patent Citations (1)
Title |
---|
韦振峰: "一种可扩展计数布鲁姆过滤器的设计与实现", 《硕士学位论文》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399546A (zh) * | 2019-07-23 | 2019-11-01 | 中南民族大学 | 基于网络爬虫的链接去重方法、装置、设备及存储介质 |
CN110413861A (zh) * | 2019-07-23 | 2019-11-05 | 中南民族大学 | 基于网络爬虫的链接提取方法、装置、设备及存储介质 |
CN110413861B (zh) * | 2019-07-23 | 2021-10-22 | 中南民族大学 | 基于网络爬虫的链接提取方法、装置、设备及存储介质 |
CN110399546B (zh) * | 2019-07-23 | 2022-02-08 | 中南民族大学 | 基于网络爬虫的链接去重方法、装置、设备及存储介质 |
CN115186155A (zh) * | 2022-09-13 | 2022-10-14 | 南京百家云科技有限公司 | 一种数据过滤方法、装置、电子设备及存储介质 |
CN115454983A (zh) * | 2022-09-13 | 2022-12-09 | 浪潮卓数大数据产业发展有限公司 | 一种基于布隆过滤器的海量Hbase数据去重方法 |
CN115454983B (zh) * | 2022-09-13 | 2023-07-14 | 浪潮卓数大数据产业发展有限公司 | 一种基于布隆过滤器的海量Hbase数据去重方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808284B (zh) | 一种增量升级方法及应用其的服务器 | |
JP4249726B2 (ja) | データベース群にインデックスを付けるため、およびデータベース群を探索するための方法およびシステム | |
CN108628871A (zh) | 一种基于链接特征的链接去重方法 | |
US7509477B2 (en) | Aggregating data from difference sources | |
US8086573B2 (en) | System and method for identifying computer users having files with common attributes | |
JP2005302038A (ja) | Bツリー中の連続キーの名前を変更する方法およびシステム | |
JP5092165B2 (ja) | データ構築方法とシステム | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
US20070124318A1 (en) | System and method for schemaless data mapping with nested tables | |
CN103838837B (zh) | 基于语义模板的遥感元数据集成方法 | |
CN101452463A (zh) | 定向抓取页面资源的方法和装置 | |
CN103064906B (zh) | 文件管理方法及装置 | |
WO2001031512A3 (en) | Fast indexing of web objects | |
RU2005116528A (ru) | Создание и управление связанными с контентом объектами | |
CN101299217A (zh) | 一种地图信息处理的方法、装置和系统 | |
CN107944041A (zh) | 一种hdfs的存储结构优化方法 | |
CN102841886A (zh) | 拆分文档的方法和装置 | |
CN101221582A (zh) | 一种嵌入式系统数据库的实现方法 | |
CN109726295A (zh) | 品牌知识图谱显示方法、装置、图服务器及存储介质 | |
CN103714121B (zh) | 一种索引记录的管理方法及装置 | |
WO2008038416A1 (fr) | Dispositif de recherche de document et procédé de recherche de document | |
CN105653674A (zh) | 智能终端的文件管理方法及系统 | |
CN104750609A (zh) | 确定界面布局兼容度的方法及装置 | |
CN102609510B (zh) | 一种中文姓名数据处理方法和装置 | |
JP5783010B2 (ja) | インデックス管理プログラム、インデックス管理装置及び検索システム |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181009 |