首页> 中国专利> 一种基于主题词的自扩充主题爬虫实现方法

一种基于主题词的自扩充主题爬虫实现方法

摘要

本发明公开一种基于主题词的自扩充主题爬虫实现方法,用户根据需要设置初始URL列表、主题词库,作为爬虫程序开始的起点;主题爬虫主程序按优先级遍历爬取URL列表,提取网页内容;对网页内容进行特征提取和向量化处理,计算网页主题相关度,保存主题相关的网页内容,网页包含的跳转URL加入到待爬取URL列表中;根据用户设定的更新频率,将新增内容纳入语料库,进行主题词库自扩充与更新;主题词库发生更新后,重新爬取URL列表,更新主题相关度,继续爬取直到没有待爬取URL列表为止。并选取了优选实例的实验结果,说明基于主题词的自扩充主题爬虫设计方法具有可行性和有效性,随着主题词库的扩充,可以显著提高爬虫的爬取范围并保持较好的准确度。

著录项

  • 公开/公告号CN114911998A

    专利类型发明专利

  • 公开/公告日2022-08-16

    原文格式PDF

  • 申请/专利权人 河海大学;

    申请/专利号CN202210478088.2

  • 申请日2022-05-05

  • 分类号G06F16/951(2019.01);G06F16/955(2019.01);G06N3/08(2006.01);

  • 代理机构南京乐羽知行专利代理事务所(普通合伙) 32326;

  • 代理人李玉平

  • 地址 211100 江苏省南京市江宁开发区佛城西路8号

  • 入库时间 2023-06-19 16:23:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-02

    实质审查的生效 IPC(主分类):G06F16/951 专利申请号:2022104780882 申请日:20220505

    实质审查的生效

说明书

技术领域

本发明涉及一种基于主题词的自扩充主题爬虫实现方法,属于网络信息处理技术领域。

背景技术

随着互联网进入以云计算、大数据为基础的万物互联时代,移动终端的普及,每天爆炸式的信息量增长,传统的搜索引擎逐渐地无法满足用户日新月异的动态需求,数据资源的覆盖率、检索结果的准确率和相关度也越来越低。因此,以主题爬虫为核心的垂直搜索引擎应运而生,很快就在各个领域得到了飞快的发展和广泛的运营。

网络爬虫简单来说是一种自动抓取网页并下载网页数据的程序,最终目标就是从互联网中获取用户所需要的数据资源。网络爬虫主要分为两大类:通用网络爬虫和主题爬虫。通用网络爬虫就是一般的传统网络爬虫,它是以初始URL集合为起点,根据一定的爬取策略,如广度优先策略或深度优先策略进行网页爬取的过程。通用网络爬虫的初始URL地址集合通常是比较常用的门户网站,爬取过程中不经过筛选、尽可能全的收集全网网页。

主题爬虫是按照预先选取的主题,选取符合主题的初始URL地址集合,在爬取网页的过程会多一个筛选的环节,对待爬取的网页进行主题相关判断,剔除掉和主题无关的网页,只下载保存与主题相关的网页。主题爬虫的初始URL链接集合需要是与用户预定主题相关的网页,它在爬取的过程中只收集与用户选取主题相关的网页,不是抓取全网网页。

主题爬虫需要对爬取的网页进行主题相关性判断,筛选出相关度低的网页剔除,只保留主题相关度高的网页,主题相关度判别的算法大致可分为三种:基于文本内容的方法、基于网页超链接评价的方法和基于分类模型预测的方法。基于文本内容的方法主要是利用网页中包含的文本、URL字符串等文字内容信息,常用算法有:Best first search、Fish search和Shark search。基于网页超链接评价的方法基本思想来自文献计量学的英文分析理论,常用算法有:BackLink方法、Page Rank方法。基于分类模型预测的方法则是通过模型描述用户感兴趣的主题和预测网页的主题相关度。

目前,主题相关性判断是主要面临两个问题:主题的描述和主题相关度的计算。主题描述是主题相关性判断的基础,主题描述的准确与否直接影响着爬取结果的质量高低。现在流行的主题描述方法主要有两种,一种是由专家确定某一领域的主题词库,另一种是对初始URL页面提取特征词作为主题词库。但是,这两种方法存在主题描述覆盖内容不全、主题词库无法扩展的问题,对主题描述的精确度和主题爬虫的抓取质量有着负面的影响。

通过以上研究分析发现,目前已经有很多关于主题爬虫研究,但是针对描述不完善、主题词数量少、在主题描述的基础上如何进一步进行主题相关判别仍有待进一步研究。

发明内容

发明目的:针对上述现有技术中主题爬虫领域存在的主体描述不完善导致主题爬虫准确率和覆盖率低的问题,提供一种基于主题词的自扩充主题爬虫实现方法,该方法可以自动根据已爬取的主题相关网页内容通过主题模型训练方式扩充主题词,以达到提高主题爬虫准确率和覆盖率的效果。

技术方案:一种基于主题词的自扩充主题爬虫实现方法,主要包括以下步骤:

1)用户根据需要设置初始URL列表,其形式为爬虫程序爬取起始网站链接地址的集合。用户根据需要设置初始主题词库,其形式为若干词语字符串。初始URL列表作为爬虫程序的起点,爬虫程序按列表的排列序号和爬取状态依次爬取。

2)根据初始URL列表,通过爬虫框架对网站进行网络请求,根据网页结构初步提取文本内容,初步提取文本内容包括:网页标题、摘要、标签元数据描述信息、标签内的正文文本内容、网页包含的跳转URL链接地址;其中,标题、摘要、元数据描述信息、正文文本内容作为特征工程内容。

3)进行主题相关性判断,通过主题相关度算法计算,得到每个网页的主题相关度,把主题相关度作为判断相关的网站下载和保存的依据,并将下载和保存过的网站在待爬取URL列表中设置为已爬取状态,更新主题相关度,将与主题不相关的网站忽略掉。

4)爬虫程序每隔一段时间或每爬取一定数量的网页,会提取新增网页的文本内容加入到训练语料库,用于主题词库更新。

5)若主题词库发生更新后,采用变化后的主题词库和主题词权重更新已爬取内容。重新计算已爬取网页的主题相关度,按照更新后的主题相关度对爬取URL列表重新排序,并将列表中网页状态重新设置为待爬取状态。然后继续按照列表的排列序号依次爬取列表中的待爬取URL,直到列表中没有待爬取状态的URL为止,一次爬虫结束。

所述1)中,初始URL列表指的是:用户可以输入若干爬虫初始网站地址,列表的每行记录由链接地址、主题相关度、排序序号和爬取状态构成。爬取状态分为待爬取和已爬取。

所述1)中,初始主题词库指的是:用户可以输入0到多个自定义的初始搜索主题词,作为初始主题词库,词库中的词语由词语字符串和主题权重值构成,初始的主题词权重值为(1/主题词数)。

所述1)中还包括设置主题相关阈值,所述主题相关阈值用作相关度判别,大于该阈值的认为与主题相关,否则不相关。

所述爬虫程序按列表的排序序号遍历URL列表,依次爬取状态为待爬取的URL网站。

所述主题相关度计算过程为:

301,对所述2)特征工程部分内容做分词处理、去停用词处理,分词采用第三方插件jieba库,去停用词库采用百度中文停用词库、nltk英文停用词库。

302,由用户选取的初始URL集合和后续爬虫过程中判断为主题相关的网页文档集合作为主题文档d

d

303,由公式(1)计算主题d

304,由公式(2)计算主题和网页的LDA相似度,取两个向量之间的夹角余弦:

305,将VSM相似度和LDA相似度二者线性组合,得到最终主题和网页的融合主题相

关度,其中属于0到1,表示两个相似度的调节因子:

Sim(d

所述4)中,爬虫程序每隔一段时间或每爬取一定数量的网页后,开启第二线程更新扩充主题词库。在爬取过程中,爬虫程序会将判断为主题相关网页的文本内容作为训练语料库,按照随机设定比例划分语料库确定训练集,通过LDA模型训练语料库得出新的主题词库。比较新旧主题词库的差异,保留原有主题词,扩充主题词库。同时,通过TF-IDF对语料库重新进行计算,将词的TF-IDF值设置为主题词权重。

所述5)中,主题词库发生更新后,对爬取ULR列表进行更新,对已下载的网页重新进行主题相关度计算。若主题相关度小于设置阈值,且不包含用户自定义的初始主题词,则淘汰该URL。若主题相关度大于阈值,则更新爬取列表中该URL的主题相关度,状态重置为待爬取状态。依此遍历列表完成更新后,依据URL的主题相关度重新对爬取URL列表进行排序。完成爬取URL列表更新后,继续爬虫程序,依此按照URL列表序号爬取列表中状态为待爬取的URL,直到列表中没有待爬取状态URL为止。

有益效果:与现有技术相比,本发明提供的基于主题词的自扩充主题爬虫实现方法,针对主题描述不完善导致爬虫覆盖率和准确度不高的问题进行了解决。主要贡献工作有:(1)在用户给定的初始领域主题词库和主题网站基础上,将爬虫爬取的主题内容作为训练数据集,通过LDA主题模型挖掘潜在主题词,实现了主题词库的自动扩充,扩大了主题词库词量,增加了爬虫的爬取范围,大大提高了爬取的广泛性、增加了爬取的URL数量,提高了主题爬虫的覆盖率;(2)同时通过主题相关度算法,在扩充爬取范围的同时,尽量保持爬取网页与主题的高相关度,过滤掉爬取过程中与主题无关的URL,保证在增加爬虫爬取覆盖率的同时,避免准确率大幅度下降。

附图说明

图1为本发明实施例的LDA模型结构示意图;

图2为本发明实施例的主题困惑度实验结果图;

图3为本发明实施例的方法流程图;

图4为本发明实施例的主题词库自扩充具体实施流程图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

对于主题爬虫性能的评价,覆盖率和准确率是常用的判断指标。覆盖率可以量化爬虫程序的爬取覆盖范围的能力,可以表现出爬虫尽可能多的搜索网络能力。准确率则是爬取结果达到用户满意的网站数量比例,是爬虫程序对爬取网站进行主题相关性判别能力的评价指标。

本发明针对主题描述不完善导致爬虫覆盖率和准确度不高的问题,提出了一种基于主题词的自扩充主题爬虫实现方法,其主要贡献有:

(1)针对覆盖率不足问题,在爬取过程中,不断地将主题相关网站内容纳入主题模型训练预料中,随着爬虫程序的运行,动态的通过主题模型训练扩充主题词库以提高主题描述的质量,达到扩展爬虫范围、提高爬虫覆盖率的效果。

主题的描述,指用户对所要爬取主题的描述,主题描述的好坏,往往决定了爬取结果的质量。主题描述太过宽泛,则主题爬虫过程难以收敛,所爬取的网页范围将过大。反之,如果主题描述得过于片面,则将遗漏很多有用信息。通常主题描述的方法有两种,一种是专家确定关键词集,另一种是通过初始页面提取主题词集。在传统LDA主题模型基础上提出一种自扩充的LDA主题模型,该模型通过每隔一段时间或每爬取设定数量的网页,提取新增这些网页的文本内容或摘要加入到训练语料库,对主题词库更新。通过这种不断自我更新的方式,让爬虫从一个简单的初始主题开始不断积累主题知识,扩充主题词库,再根据扩充的主题词库去爬取网络中的相关网页。

(2)为了提高爬取准确率,引入基于VSM的主题相关度算法,在扩充主题词库与爬取范围的同时,根据主题相关度对网页爬取URL的优先级排序,优先先爬取高度相关的网页,以保持爬取网页有较好的主题相关度,保持主题爬虫的准确率。

传统的基于VSM的主题相关度算法中,默认假设特征项之间是独立的,即特征词之间是语义不相关的。但在现实中,对于同一事物的描述词在不同文本中是不同的,即同一个概念有很多词语可以表达,比如同义词、近义词等。而在传统的基于VSM的主题相关性判别模型中,若两个文本即使含有大量同义词但没有共同词,它们的主题相关度计算结果为0。另外,在传统的基于VSM的主题相关性判别模型中,文本在进行分词、去停用词后,仍然含有大量的对文本信息表示贡献度较低的词,导致文本的特征向量存在维度过高、矩阵稀疏等问题,增加了计算复杂度、降低了模型的准确度。为此,本发明融合VSM和LDA模型,计算网页的主题相关度。算法步骤如下:

对于主题文档d

由公式(1)计算主题d

由公式(2)计算主题d

将二者线性组合,得到最终主题d

Sim(d

本发明提出了基于VSM和LDA模型相结合的主题相关度算法,引进了LDA模型,从而在计算两段文本之间的距离时融合了语义层面的相似度,在相似度计算方法上进行了改进。

为更具体、完整的描述本发明,验证改进创新的效果,下面是本发明的一个爬虫实例,其中包括了采用本发明的方法实现的一个基于主题词的自扩充主题爬虫的工作处理全过程。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本发明保护的范围。

如图3所示,基于主题词的自扩充主题爬虫实现方法,包括:

1)用户根据需要设置初始URL列表,其形式为爬虫程序爬取起始网站链接地址的集合。用户根据需要设置初始主题词库,其形式为若干词语字符串。初始URL列表作为爬虫程序的起点,爬虫程序按初始URL列表的排列序号和爬取状态依次爬取。

2)根据初始爬取URL列表,通过常用爬虫框架Scrapy对网站进行网络请求,根据网页结构初步提取文本内容,初步提取文本内容包括:网页标题、摘要、标签元数据描述信息、标签内的正文文本内容、网页包含的跳转URL链接地址;其中,标题、摘要、元数据描述信息、正文文本内容作为特征工程内容。

3)进行主题相关性判断,通过基于VSM和LDA模型相结合的主题相关度算法计算网页的主题相关度与设置的阈值比较,大于阈值判断为主题相关网页,将网页中的超链接加入待爬取URL列表中,主题相关度与当前网页相同,并将网页的特征工程内容部分(标题、摘要、元数据描述信息、正文文本内容)作为LDA训练语料;若主题相关度小于阈值,则忽略。最后,将URL状态设置为已爬取状态。

4)爬虫程序每隔一段时间或每爬取设定数量的网页,会提取这些新增网页的特征工程部分(标题、摘要、元数据描述信息、正文文本内容)文本内容加入到LDA训练语料库中,用于主题词库更新。

5)若主题词库发生更新后,采用变化后的主题词库和主题词权重更新已爬取内容。重新计算已爬取网页的主题相关度,按照更新后的主题相关度对爬取URL列表重新排序,并将列表中网页状态重新设置为待爬取状态。然后继续按照列表的排列序号依次爬取列表中的待爬取URL,直到列表中没有待爬取状态的URL为止,一次爬虫结束。

图4为本发明中主题词库更新具体实施流程图,其过程如下所描述:

每抓取一段时间或设定数量的新增网页,判断是否达到用户设置的更新频率(如用户设置的每爬取100个新增URL或者每爬取半小时),若达到则执行后续所有步骤进行主题词库更新流程;若未达到则继续爬虫程序。

1)将新增的数据库中保存的主题相关的网页的特征工程部分文本内容进行数据预处理,包括采用jieba分词技术对网页内容进行分词,依据中文停用词库进行去停用词处理,然后将其加入原有LDA训练语料库中合并为新的语料库。

2)按照随机比例对更新后的语料库划分测试集和训练集,用LDA主题模型在训练集上训练得到新的主题文档。

3)通过比较新旧LDA主题模型生成的主题文档中概率分布最高的前K个top主题词,判断是否需要更新主题词库。若主题文档的top主题词已存在于现有主题词库中,则不需要更新主题词库;若不存在,则向主题词库中加入新的主题词,继续步骤4)、5)。

4)对语料库重新计算词的TF-IDF值,将TF-IDF值设置为主题词库中对应词的权重值。

5)更新主题词库后,回到步骤1)。另外每次更新主题词后,再次启动主题爬虫主线程会进入爬取URL列表更新流程。

LDA是一种文档主题生成模型,是由词、主题、文档组成的三层模型,常用来获得“文档-主题”概率分布以及“主题-词项”概率分布,也可用于文本分类。本文使用LDA模型中的“主题-词项”概率分布,选择分布概率较高的词项作为top主题词对已有主题进行扩展。

LDA模型结构详见附图1,模型结构中M为文档个数代表文档集,N代表某篇文档的词汇个数,K表示文档集的主题数。α和β分别为生成主题和生成词汇的Dirichlet先验概率分布。θ表示文档主题的概率分布,φ表示主题中词汇的概率分布。Z代表文档的主题分布,W代表某篇文档的词汇。其中α、β、M和K是预先设计好的,其余均为训练过程中得到的中间结果。设置好文档的语料库以后,模型首先会对每一篇文档的词汇进行统计,然后生成不同主题的概率分布θ,再针对不同主题生成词汇的概率分布φ。

TF-IDF算法具体如下:

TF-IDF是一种常用的词频统计方法,用以评价一个字词对于一个文件及或一个语料库的重要程度。TF(term frequency)即词频,指某一个词在某篇文档中出现的频率。IDF(inverse document frequency)即反文档频率,对于某一指定的词语,如果在所有文档中都高频出现,就失去了代表意义,若某个词在一篇文档中频繁出现,而在其他文章中很少出现的话,则认为此词具有很好的区分能力。TF-IDF可以过滤掉常见的词语,保留重要的词语。本发明以TF-IDF值作为权重值,TF-IDF计算方法如公式(4):

重复率也是判断爬虫程序性能好坏的指标之一,在爬取过程中,有可能重复爬取相同网站、或不同网站相同内容的情况,重复率越高则浪费的爬虫性能、存储资源就越多。下面是以百度、中国科学网、新浪新闻为初始URL,医学技术、智能制造、航天卫星为初始主题词,进行的一次爬虫实例,具体的实验结果如下:

表1主题爬虫去重结果

表2主题爬虫主题过滤结果

通过表1、表2结果分析可以看出,重复率基本保持在10%左右的一个水平,准确率也大概能保持在70%左右,这个效果较好。其中,认为URL地址相同或网页标题相同的即为重复网页,人工挑选的与主题实际相关的网页书和爬取的网页数比例为准确率。

本次实例中LDA模型设置参数为迭代次数1000,主题数设置为28,α=0.1,β=0.2。主题数确定采用主题困惑度作为衡量标准。主题困惑度可以理解为对于一篇文章d,所训练出来的模型对文档d属于哪个主题的不确定程度就是困惑度,本实例的不同主题数的主题困惑度实验结果详见附图2,可见主题数设置为28是困惑度最优。

如表3是首次LDA训练和1次LDA训练后top10概率主题词变化的对比表格:

表3 LDA训练结果对比

可以看出,经过LDA训练得到的主题词,得到扩充,且扩充的主题词也都与用户初始设定主题词比较相关,根据扩充主题词爬取的页面准确率也保持在70%较好的水平。基于此,可以认为基于主题词的自扩充主题爬虫设计方法具有可行性和有效性,并随着主题词库的扩充,可以一定程度上提高爬虫的爬取范围并保持较好的准确度。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号