一种基于维特比算法的网页分类排序动态爬虫方法
技术领域
本发明涉及一种基于维特比算法的网页分类排序动态爬虫方法,属于网络数据挖掘技术领域。
背景技术
随着互联网的飞速发展,网络信息资源急剧膨胀。经CNNIC(中国互联网络信息中心)统计,截止2016年12月,中国网站数为482万个,网页数为2360亿个。此时,高效快速地查询到所需信息是网络用户面临的重要问题。由于网络信息资源繁多,爬虫噪音,传统的通用爬虫根本无法满足用户的需求。因此,面向主题的搜索引擎成为新一轮的研究方向。主题爬虫通过设定特定主题,有针对性的遍历爬取,极大地减少了爬取网页数量,提高了搜索效率。主题爬虫的关键问题在于如何精确判断网页类型,尽可能多的过滤掉无关网页,筛选出用户所需的主题网站。通过基于维特比算法的网页分类排序动态爬虫策略可以大大提高主题爬虫的精度和效率。
发明内容
本发明提供了一种基于维特比算法的网页分类排序动态爬虫方法,以用于尽可能多的过滤掉无关网页,筛选出用户所需的主题网站,以及解决了现有的爬虫方法精度低、爬虫效率不高的问题。
本发明的技术方案是:一种基于维特比算法的网页分类排序动态爬虫方法,所述方法的具体步骤为:
Step1、得到链接关系网络;首先获取任意与主题相关网页作为种子URL,通过爬取种子网页的超链接,获取出链子代链接,得到父代链接与子代链接的关系图;
Step2、计算网页链接价值LV;
Step2.1、计算网页链接价值LV,LV计算公式为:
其中,LN为网页当前入链数;入链数是一个动态的值,通过爬虫的不断深入,部分网页的入链数会随着增加,逐渐接近真实网络环境中网页的入链数,此步为网络结构的学习过程,随后获得网页的入链数,通过反余切函数对入链数进行归一化处理,得到网页链接价值LV;
Step3、通过TF-IDF算法计算网页内容价值CV;网页内容价值CV反映的是网页内容与主题的相关程度;
Step3.1、统计网页文本词频TF,其中wi为某词在网页中出现的次数,ws为网页中词的总数;
Step3.2、计算拟文档频率IDF,其中D为文档总数,DW为某词出现的文档数;由于DW可能为0但是分母不能为0因此一般情况下用DW+1;
Step3.3、计算网页内容价值CV,计算网页内容价值CV反应的是网页内容与主题的相关程度,网页内容价值CV通过TF-IDF算法计算;网页内容价值CV计算公式如下:G=TF×IDF;Key={G1,G2,…,GN},0<N<t;
其中,G为某个词的TF-IDF值,Key是存放的是关键词的G集合,t为Key中关键词的个数;CV为网页内容价值,b为Key集合中主题词的数量,N为Key集合数量;
Step4、计算父代链接与子代链接的静态综合评价值为:
其中,f是父代链接与子代链接的静态综合评价值;LV为网页链接价值;CV为网页内容价值;与分别为网页链接价值和网页内容价值的权值,取
Step5、计算下一层爬虫的父代链接;
将维特比算法思想应用在网络爬虫过程中,将网页综合评价较低的网页淘汰,保留评价值较高的网页,则可以得到爬虫最短路径。
互联网中,父子链接关系网络是携带信息的。例如,一个子代网页被一个很重要的父代网页链接,另一个子代网页被一个一般父代网页链接,则可以定义前者网页比后者网页大概率重要。所以,在维特比过程中若要评价子代网页的重要性,需要参考父代链接信息,因此在维特比过程中网页之间比较的就是动态综合评价值。本文引入了转移转移权值w。将转移权值与子代静态综合评价值相乘可以得到子代带有父代链接信息的动态综合评价值。
所述步骤Step5的具体步骤为:
Step5.1、通过公式计算出父代链接的转移权值矩阵W;W=(w0,w1,w2...wi);
其中种子URL的转移权值矩阵W为(1),wi为某节点中第i个父代链接的权值,fi为第i个父代链接的静态综合评价值;
Step5.2、根据步骤Step1中得到的父代链接与子代链接的关系图,得到每层的父代链接与子代链接的关系矩阵M:
Step5.3、通过公式计算出子代链接的转移权值矩阵Q; 其中种子URL的转移权值矩阵Q为(1),Qj为某节点中第j个子代链接的权值,fj为第j个子代链接的静态综合评价值;
Step5.4、计算子代链接的动态综合评价值矩阵:F=W×M×Q;
其中,M为父代链接与子代链接的关系矩阵,mij,i∈m,j∈n的取值为0或1,0代表非从属关系,1指代父子链接关系;Q为由子代链接静态综合评价值组成的静态评价矩阵,Q中对角线上Qj为子代链接静态综合评价值,F为子代链接的动态综合评价值矩阵;
Step5.5、通过维特比算法,根据子代链接中动态综合评价值矩阵,筛选出5个动态综合评价值高的链接作为下一层爬虫的父代链接。
Step6、重复Step1-Step5,直到爬虫过程中没有新的网页加入,爬虫结束;
将爬虫过程中所有爬过的网页的静态综合评价值进行对比,包括所有父代链接与子代链接的静态综合评价值,选取静态综合评价值较高的5个网页。
爬虫终止条件为当爬虫过程中没有新的网页加入时则停止;若在逐层爬虫的过程中没有新的网页加入则代表接下来的爬虫只是按照已有网络结构循环爬取,不会有新的网络结构出现,则需要停止爬虫。将所有爬过的网页的静态综合评价值进行对比,选取评价值较高的5个网页。
所述维特比算法为若每个状态取概率最大路径则最后得到最优路径,公式体现为:d(s,xN)=mind(s,x1)+d(x1,x2)+…+d(xN-1,xN):其中S为起始点,xN为第N个节点,d表示距离。
本发明的有益效果是:
1、获取主题某一网站作为种子URL再进行爬取。从给定主题下的某一网站作为种子URL可以更加准确获取主题重要网站;
2、通过计算网页的两个属性:LV(网页链接价值)和CV(网页内容价值)获取相关性较高、网页中最权威的网页;
3、通过父代链接的权值传递下来与子代链接静态综合评价值结合动态计算有效综合评价值,主题爬虫问题转化为最短路径搜索问题,大大增加了搜索结果的效率和准确度;
4、本发明方法可以使用户在给定主题的条件下,通过基于维特比算法的动态网络爬虫,可以高效、准确获取特定主题下的重要网站。
附图说明
图1为本发明的系统流程图。
图2为本发明网页间的链接结构流图。
图3为本发明在图2的基础上维特比过程流图。图中x1,x2,x3,xN为维特比过程的N个节点,从每个节点中获取指定数量的大概率状态,就可以获得最大概率路径,从而高效获取主题网站。
在真实网络环境中存在某主题流行网站,频繁被链接。通常情况下,在特定主题领域内,越被频繁链接,越能体现出重要性。表1为实现仿真真实网络环境中这一现象,人工设定 5个网页(下文称为候选网站):www1330,www732,www4434,www1643,www3957被链接频率(下文称为播撒频率)
图4为本发明表1中Test1单次实验与PageRank算法查全率排序对比图,横坐标为维特比过程中的爬虫层数,纵坐标为查全率;
图5为本发明Test1实验50次后所筛选的特定主题的重要网站以及出现次数,横坐标为筛选出来的重要主题网站,纵坐标为该重要出题网站在实验中出现次数。
图6为本发明表1中Test2单次实验与PageRank算法查全率排序对比图,横坐标为维特比过程中的爬虫层数,纵坐标为查全率;
图7为本发明Test2实验50次后所筛选的特定主题的重要网站以及出现次数,横坐标为筛选出来的重要主题网站,纵坐标为该重要出题网站在实验中出现次数。
图8为本发明表1中Test3单次实验与PageRank算法查全率排序对比图,横坐标为维特比过程中的爬虫层数,纵坐标为查全率;
图9为本发明Test3实验50次后所筛选的特定主题的重要网站以及出现次数,横坐标为筛选出来的重要主题网站,纵坐标为该重要出题网站在实验中出现次数。
具体实施方式
实施例1:如图1-9所示,一种基于维特比算法的网页分类排序动态爬虫方法,所述方法的具体步骤为:
Step1、得到链接关系网络;首先获取任意与主题相关网页作为种子URL,通过爬取种子网页的超链接,获取出链子代链接,得到父代链接与子代链接的关系图,链接结构流图如图2所示;
Step2、计算网页链接价值LV;
Step2.1、计算网页链接价值LV,LV计算公式为:
其中,LN为网页当前入链数;入链数是一个动态的值,通过爬虫的不断深入,部分网页的入链数会随着增加,逐渐接近真实网络环境中网页的入链数,此步为网络结构的学习过程,随后获得网页的入链数,通过反余切函数对入链数进行归一化处理,得到网页链接价值LV;
Step3、通过TF-IDF算法计算网页内容价值CV;网页内容价值CV反映的是网页内容与主题的相关程度;
Step3.1、统计网页文本词频TF,其中wi为某词在网页中出现的次数,ws为网页中词的总数;
Step3.2、计算拟文档频率IDF,其中D为文档总数,DW为某词出现的文档数;由于DW可能为0但是分母不能为0因此一般情况下用DW+1;
Step3.3、计算网页内容价值CV,计算网页内容价值CV反应的是网页内容与主题的相关程度,网页内容价值CV通过TF-IDF算法计算;网页内容价值CV计算公式如下:G=TF×IDF;Key={G1,G2,…,GN},0<N<t;
其中,G为某个词的TF-IDF值,Key是存放的是关键词的G集合,t为Key中关键词的个数;CV为网页内容价值,b为Key集合中主题词的数量,N为Key集合数量;
Step4、计算父代链接与子代链接的静态综合评价值为:
其中,f是父代链接与子代链接的静态综合评价值;LV为网页链接价值;CV为网页内容价值;与分别为网页链接价值和网页内容价值的权值,取
Step5、计算下一层爬虫的父代链接;
将维特比算法思想应用在网络爬虫过程中,将网页综合评价较低的网页淘汰,保留评价值较高的网页,则可以得到爬虫最短路径。其中维特比过程流图如图3所示;
互联网中,父子链接关系网络是携带信息的。例如,一个子代网页被一个很重要的父代网页链接,另一个子代网页被一个一般父代网页链接,则可以定义前者网页比后者网页大概率重要。所以,在维特比过程中若要评价子代网页的重要性,需要参考父代链接信息,因此在维特比过程中网页之间比较的就是动态综合评价值。本文引入了转移转移权值w。将转移权值与子代静态综合评价值相乘可以得到子代带有父代链接信息的动态综合评价值。
所述步骤Step5的具体步骤为:
Step5.1、通过公式计算出父代链接的转移权值矩阵W;W=(w0,w1,w2...wi);
其中种子URL的转移权值矩阵W为(1),wi为某节点中第i个父代链接的权值,fi为第i个父代链接的静态综合评价值;
Step5.2、根据步骤Step1中得到的父代链接与子代链接的关系图,得到每层的父代链接与子代链接的关系矩阵M:
Step5.3、通过公式计算出子代链接的转移权值矩阵Q; 其中种子URL的转移权值矩阵Q为(1),Qj为某节点中第j个子代链接的权值,fj为第j个子代链接的静态综合评价值;
Step5.4、计算子代链接的动态综合评价值矩阵:F=W×M×Q;
其中,M为父代链接与子代链接的关系矩阵,mij,i∈m,j∈n的取值为0或1,0代表非从属关系,1指代父子链接关系;Q为由子代链接静态综合评价值组成的静态评价矩阵,Q中对角线上Qj为子代链接静态综合评价值,F为子代链接的动态综合评价值矩阵;
Step5.5、通过维特比算法,根据子代链接中动态综合评价值矩阵,筛选出5个动态综合评价值高的链接作为下一层爬虫的父代链接。
Step6、重复Step1-Step5,直到爬虫过程中没有新的网页加入,爬虫结束;
将爬虫过程中所有爬过的网页的静态综合评价值进行对比,包括所有父代链接与子代链接的静态综合评价值,选取静态综合评价值较高的5个网页。
爬虫终止条件为当爬虫过程中没有新的网页加入时则停止;若在逐层爬虫的过程中没有新的网页加入则代表接下来的爬虫只是按照已有网络结构循环爬取,不会有新的网络结构出现,则需要停止爬虫。将所有爬过的网页的静态综合评价值进行对比,选取评价值较高的5个网页。
所述维特比算法为若每个状态取概率最大路径则最后得到最优路径,公式体现为:d(s,xN)=mind(s,x1)+d(x1,x2)+…+d(xN-1,xN):其中S为起始点,xN为第N个节点,d表示距离。
若在逐层爬虫的过程中没有新的网页加入则代表接下来的爬虫只是按照已有网络结构循环爬取,不会有新的网络结构出现,则需要停止爬虫。将所有爬过的网页的静态综合评价值进行对比,选取评价值较高的5个网页。
经过单次实验,改变指定网站的不同的播撒频率,如表1为5个网页的播撒频率;如表1中Test1,Test2,Test3,可以得到图4、图6、图8这样的对比图。在某一播撒频率下,循环实验50次可以得到特定主题下所筛选出的重要的主题网站。不同的播撒频率会影响重要主题网站的搜索。
表1
仿真结果分析:
从图4、图6、图7可以看出,随着候选网站的播撒频率的提高,动态爬虫系统的学习速率越大,所得结果的查全率越高。
图4、图6、图8还可以看出,当任意特定候选网站的播撒频率较小时,在系统的多次学习后,可以得到候选网站外新的目标网站。这说明系统综合分析网站的链接数和网页内容与主题的相关度,得到新的网站的综合评价值大于部分候选网站,避免网站评价只受链接数量的影响,得到更加公平,更综合的网站。
从图5、图7、图9可以看出,经过大数量的试验,系统得到的目标网站越接近候选网站,直到候选网站全部选出。表2为Test1、Test2、Test3三种试验爬取50次与PageRank、全局静态计算所消耗时间对比;
表2
Test1 |
Test2 |
Test3 |
PageRank |
全局静态 |
5s |
4s |
3.7s |
9min26s |
1min19s |
从表2可以看出,Test1、Test2、Test3三种试验中,随着候选网站播撒频率的提高,系统单次试验耗费的时间越短。这是因为播撒频率越大,候选网站在互联网中的分布密度增加,促进主题网站链接环的形成,根据图4判断条件,减少学习节点,加速系统单次试验的完成。三种试验所消耗的时间远少于PageRank与全局静态计算所消耗的时间。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。