基于LDA扩展主题词库的主题爬虫研究

2018-05-03 06:07费晨杰刘柏嵩
计算机应用与软件 2018年4期
关键词:爬虫语料网页

费晨杰 刘柏嵩

(宁波大学信息科学与工程学院 浙江 宁波 315211)

0 引 言

主题爬虫是一种面向特定主题,按照一定规则自动爬取网页信息的网络爬虫[1]。相比于通用网络爬虫,主题爬虫目的在于抓取与特定主题内容相关的网页信息。通过计算网页与主题的相关程度来判断是否抓取该网页,并且维护一个待爬取URL队列,根据URL的与主题相关程度进行排序,以保证相关度高的页面优先被访问。

主题爬虫面临两个核心问题:主题的描述、主题相似度计算。主题的描述,指用户对所要爬取主题的描述,主题描述的好坏,往往决定了爬取结果的质量。主题描述太过宽泛,则主题爬虫过程难以收敛,所爬取的网页范围将过大。反之,如果主题描述得过于片面,则将遗漏很多有用信息[2]。通常主题描述的方法有两种,一种是专家确定关键词集,另一种是通过初始页面提取特征词集[3],当前学者在此基础上提出了新的方法。李东晖等[4]通过一种无监督的学习技术不断扩展主题描述,能让爬虫从一个简单的初始主题开始不断积累主题知识,最终能够以较高正确率爬取网页。吴岳廷等[5]将网页抽象为一组标签块节点,通过主题特征库扩展算法扩展静态特征项,生成扩展主题特征库,有效提高爬取精度。以上这些方法一定程度地提高了主题描述的覆盖率,但缺乏主题描述的颗粒度,往往定义或扩展的主题包含有与主题并不相关的词,对主题描述的精准性和主题爬虫的抓取质量都有负面影响。

另一个主题爬虫核心问题:主题相似度计算。根据既定的主题判断当前网页和该网页中URL保留与否的算法。有两处需要进行主题相似度计算,一是对当前爬取页面正文内容,二是对页面包含的相关URL。根据网页结构、内容,预测当前页面是否与主题相关,Guo等[6]提出基于SVM分类的主题爬虫技术,通过训练SVM分类器有效预测基于文字内容和部分链接信息的主题相关度。Du等[7]采用将向量空间模型和语义相似度模型相结合的方法,改进主题相似度计算并取得了很好的效果。由此可知,在主题描述尽可能完善的基础上,提高爬虫的主题相似计算是提高爬虫精准度的核心因素。

针对主题爬虫主题覆盖率不足和主题相似度计算准确度偏低,本文提出一种基于LDA[8](Latent Dirichlet Allocation)扩展更新主题词库的主题爬虫LETT-Crawler(Crawler based on LDA extended topic terms)。主要的贡献点:1) 将LDA主题模型运用于扩展主题描述,利用每次爬取结果作为训练语料,充分挖掘语料的潜在语义信息,定义覆盖率和颗粒度良好的主题。2) 将word2vec[9]词向量表示引入主题相似度计算,扩展了爬取范围同时也提升了语义相似度计算的准确度。

本文重点研究如何通过用户给定的初始关键词或种子URL,在主题描述不充分的情况下,通过主题爬虫自身主题相关资源收集的功能,不断扩充语料,利用LDA主题模型训练不断完善扩展更新主题描述以求全面、准确获取用户想要的内容。在此基础上引入语义相似度计算,充分利用网页中短文本,指导主题爬虫在提升准确度和扩大爬取范围的同时尽可能提高爬取的效率。

1 LDA主题模型

LDA主题模型是自然语言处理中主题挖掘的典型模型,可以从语料中抽取潜在主题,提供一个量化研究主题的方法,已经被广泛地应用到信息的主题发现中,如研究热点挖掘、研究主题演化、研究趋势预测等。

定义1(LDA主题表示模型)主题是由一组语义上相关的词及表示该词与主题相关的权重来表示。在LDA中表示为:

Z={(w1,p(w1|zj)),(w2,p(w2|zj)),…,(wn,p(wn|zj))}

(1)

式中:wi∈W,p(wi|zj)为主题为zj时选择词为wi的概率,zj为第j个主题。

如图1所示,LDA主题模型是一个有向图。M表示文档集总数,N表示任意文档长度,K表示主题数,其中,α的值表示各个主题在取样之前的权重分布,β的值表示各个主题对词的先验分布,θ表示文档主题的概率分布。

图1 LDA主题模型表示

LDA主题模型文档的生成过程可以看作模型的一种概率取样的过程,该模型描述了文档的生成过程,有以下步骤[10]:

1) 对文档集中的任一文档d,生成文档长度N,N~Poisson(ε),服从泊松分布。

2) 对文档集中的文档d,生成一个θ~Dirichlet(α) ,服从狄利克雷分布。

3) 考虑文档d中的第i个词wi的生成:

(1) 生成一个主题zj~Multinomial(θ),服从多项式分布。

(2) 对主题zj,生成一个离散变量φz~Dirichlet(β),服从狄利克雷分布。

(3) 生成使得P(wi|φz)概率最大的一个词。

2 基于word2vec主题相似度计算

主题相似度计算就是页面内容与主题相关性判定过程,页面经过分析后得到标题、页面内容描述和正文等页面信息,这些信息进行分词及特征词提取,运用TF-IDF算法得到词的权重分布,再利用相似度计算模型来求得页面与主题的相似度。本文提出一种基于word2vec词向量表示的改进相似度计算模型,对已爬取的页面进行主题相似度评价,与主题文档进行相似度计算。

2.1 word2vec词向量表示

借鉴Bengio等[11]提出的NNLM(Neural Network Lanuage Model)[12]以及Hinton_Linear模型,Mikolov等[9]提出了word2vec语言模型。word2vec可以快速有效地训练词向量。word2vec模型有两种,分别是CBOW(Continuous Bag-of-words)模型(图2),以及Skip-Gram(图3)模型。两个模型都包含三层:输入层、投影层和输出层。前者在已知词wt的上下文wt-2,wt-1,wt+1,wt+2的前提下预测当前词wt;而后者恰恰相反,是在已知词wt的基础上,预测其上下文wt-2,wt-1,wt+1,wt+2。

图2 CBOW模型 图3 Skip-Gram模型

当训练完成时,即可求出所有词的词向量w。Google开源word2vec官网给出的例子w(′king′)-w(′man′)+w(′woman′)≈w(′queen′),很好地说明了word2vec的词向量表示非常有利于表达词的语义特征。在中文文本中同样适用,经分词预处理后训练得到的模型可以进行类似计算。

例如,狗={0.234 2,-1.253 2,-2.821,…},猫={0.345,-3.222,-0.333 2,…},得到分布式的词向量表示。因此计算两个词w1、w2的相似度,直接进行在word2vec向量化表示之后用向量距离公式运算即可。

2.2 融合LDA和word2vec的主题相似度计算

主题文档和网页特征词文档之后,需要通过相似度计算来衡量两者的相关程度,传统的基于VSM(向量空间模型)通过两者共有词的词频来求得相似度值,往往会忽视近义词、同义词等词语语义上的因素。有学者提出的GVSM[13](广义向量空间模型),通过引入WordNet[14]、《知网》[15]等语义知识词典,一定程度上提高了语义上的相似度,但对于一些新词、地名等不包含在词典中的词语,需要人工添加才能计算词语相似度值,代价比较大。所以本文提出一种基于word2vec的改进相似度计算模型,运用word2vec在词向量表示方面的优秀特性,并能随着语料的扩展不断新增词汇完善。

由word2vec词向量化表示的良好语义特性,计算文档间的相似度,可以通过词语之间两两语义相似度来得到。相似度计算由LDA扩展后的主题词库与爬取时页面特征词文档之间的相似度,采用两者的余弦相似度,并融合word2vec的语义相关性,公式如下:

(2)

Sim(d,t)为主题文档t与文档d之间的相似度值,p(wti|z)由LDA主题模型训练得到,为主题文档t中第i个词属于主题z的概率值,wdj为文档d中第j个词tf-idf值,Semij即主题文档t中第i个词与文档d中第j个词的词语语义相似度,由两个词的word2vec向量距离得到,计算如表1所示。

表1 文档间词语相似度计算

3 基于融合相似度计算的URL优先排序

考虑到URL链接与当前页面内容存在一定相关性,即如果当前页面与主题的相似度很高,那么所在页面的URL与主题相似度值也会相应较高。另一个可以利用的因素是锚文本,即描述URL的文本内容,例如带超链接的标题等网页链接文字,但其一般较为简短,分词提取特征词后往往只有2~3个关键词,给主题判断带很大难度。而本文采用的相似度计算可以做语义扩展,即通过融合word2vec向量表示的相似度计算能够有效获得短文本语义上的权重,相对于空间向量模型基于共现词频率有较大提升,有效利用锚文本作为URL优先排序的一个指标。本文采用的是以下公式对URL进行排序:

priority(h)=λ·Sim(fp,t)+(1-λ)·Sim(ah,t)

(3)

式中:priority(h)为未访问的超链接h的优先值,Sim(fp,t)为网页p(包含超链接h)全文的主题相似度,Sim(ah,t)为超链接h的锚文本的主题相似度,λ为调节全文与锚文本的权重值,Sim(a,b)即为前文中提及的融合LDA和word2vec的主题相似度计算,不仅运用在页面相似度计算中,同样改进了URL优先级排序。

通过剔除相似度小于设定阈值的页面, 提高所采集到的页面的准确率。阈值的设定一般根据实际需求,越高则爬取的准确度越高,相应的爬取范围会缩小,根据经验本文设定的阈值为0.2,即主题相似度低于20%的页面和URL被淘汰。

4 基于LDA扩展更新的主题爬虫框架

LETT-Crawler运用LDA主题模型完善主题爬虫的主题描述。同时通过运用word2vec词向量表示计算词语的语义相似度值,改进爬虫相似度计算模块,共同作用于爬取页面的主题判断和爬取URL队列的优先级排序,整体框架如图4所示。

图4 基于LDA扩展主题词库的主题爬虫框架

其基本思路是:每爬取一定数量的网页,将这些新增的网页提取正文或摘要作为LDA新的训练语料,并结合原有的语料库,经LDA训练得到新的主题文档,用于覆盖更新原有主题爬虫的主题文档。由于本身抓取的网页内容带有主题偏向性,所以语料库会整体呈现“偏”向某个主题的,训练得到的主题文档会比原先的主题在颗粒度和覆盖率上更优。

LDA主题词扩展更新的具体步骤为:

1) 每爬取一定数量的网页,执行以下所有步骤。

2) 将新增的网页正文或摘要预处理后与原有LDA训练语料进行融合。

3) 对增量更新后的语料经LDA训练得到新的主题文档。

4) 通过测试集,判断是否更新。若不更新,回到步骤1);若更新继续步骤5)和步骤6)。

5) 覆盖更新主题爬虫的主题模块,用户指定的关键词或初始页面提取的关键词保持不变。

6) 更新主题后的主题爬虫继续爬取工作。

该框架为一个线上和线下相结合的模型,在主题爬虫在线上爬取的同时,LDA在线下训练新的主题模型。相对于线上爬取,LDA主题模型的训练相对更耗时,将爬取一定数量的网页内容,提交到LDA模型训练,每次主题爬虫提交新增语料给LDA主题模型时,LDA开始对融合的语料进行训练。同时主题爬虫开始爬取下一轮的新增语料,当LDA训练完成后替换更新原有主题爬虫主题文档,即完成一次对主题爬虫主题词库的基于LDA的增量更新。对于word2vec,新增的语料同样可以用于训练模型,提供更完善的词向量表示。

5 实 验

验证经LDA主题模型训练得到的结果扩展后给主题爬虫在准确度和查全率上带来的提高,和引入word2vec相似度计算后带来的影响,评估LETT-Crawler的可行性和优越性,实验以真实数据为对象自建语料库。

5.1 实验设置

通过自编Java通用爬虫爬取新闻作为LDA训练语料,主要来自科学网、中国科技网、中国新闻网等,最终将抓取的六万篇新闻正文作为LDA训练集。

利用中文分词器对训练集实现中文分词、去停留词等自然语言规范化过程,获得实验用语料库,基于开源包JGibbLDA实现LDA主题模型的训练。在语料上进行对word2vec模型训练,得到语料库所有词的word2vec向量化表示,为词语的相似度计算提供准备;在语料上计算TF-IDF特征词权重并保存,若爬行时出现已有特征词,词频信息可直接查询获得,减小爬行时计算TF-IDF值的时间开销。

对LDA主题模型参数设置:训练过程采用Gibbs采样,设置迭代次数1 000次,参数设置为经验值:主题数K=120,α=0.1,β=0.2。主题数确定如图,采用F值[]作为衡量主题训练的效果,F值是一种组合查准率和召回率的综合指标。由图5选定最优主题数为120。

图5 训练LDA不同主题数的聚类效果

设定LDA更新频率,当爬取累计2 000篇相关文献时,LDA进行重新训练,得到与当前主题最相近的主题文档,用测试集进行判断新主题文档的F值是否优于原主题文档,再确定是否用于更新主题关键词库。

测试集2 365篇文档,各主题相关文章数,生物医学422篇,智能技术376篇,航天航空330篇。用于测试更新后的主题。

5.2 实验结果与分析

LDA训练结果(见表2):由于时间和资源有限,选取3个较为区分度较高的主题作为实验素材,考察实验效果,分别定义为:生物医学、智能技术、航天航空。训练结果如表2所示,设定用户初始给定关键词分别为生物医学、智能技术、航天航空。

表2 首次LDA训练结果

实验进行了5轮更新,得到更新后的主题文档,通过统计对比了前后主题文档中出现相同的词,词的主题概率平均提高了3.4%。图6展示的是生物医学主题前10个词经5轮更新后的词概率变化,由于新增的语料中这些词出现频率增高,训练得到的概率相应增加,对主题的描述更加完善。同样对语料中出现较少的词,词概率也会降低。整体来说,主题词概率是随着新增主题相关语料而提升的。

图6 生物医学主题文档词概率变化图

表3、表4结果表明由LDA训练得到的主题文档,经过5轮更新后,在收获率和精准度上优于未扩展关键词和页面提取主题词的方法。在此基础上,通过对关键词和页面主题词进行LDA主题词库扩充,实验结果表明扩充之后,效果均好于原先的单一主题词确定方案,证明了LDA扩展词库的可行性和有效性,并随着主题更新的次数不断增加,会有一定提升。

表3 查全率和查准率对比表 %

表4 F值对比表 %

图7结果表明,相比于传统VSM对文本进行相似度计算,基于word2vec的相似度算法通过词语语义提高了文档间的相似度值,在获取率和精准度表现上也明显较好。

图7 与VSM查准率对比图

RP表示判定相关页数,AC表示实际抓取页面数,P是准确率,R是召回率,F是综合指标。爬取路径范围内共有主题相关网页数共约1 600。RP、AC、R用于衡量爬虫的覆盖范围;P考察抓取网页的准确度。由表5可知,在真实爬取环境中,本文提出的LETT-Crawler相对于KAG-Crawler[4]和ETFLCrawler[5]在覆盖率和准确度方面均有不小的提升,较为成功地运用LDA主题模型和word2vec提升主题爬虫性能,验证了本文提出的改进方法和扩展更新的有效性。

表5 与其他扩展主题爬虫对比

6 结 语

通过本论文的研究,充分说明提出的基于LDA扩展更新主题词库的可行性。通过主题爬虫自生不断在收集主题相关预料的基础上,不断完善主题描述。并在主题相似度运用基于word2vec的算法同样显示了其良好表现,将以上两个技术运用在主题爬虫中,得到了很好的效果。结合到具体应用,将大大提高在从海量资源中获取特定主题信息的质量和效率。由于引入了语义计算,需要对两篇文章中词语两两计算语义相似度,带来了不小的时间复杂度,下一步主要针对在算法的时间消耗上做一些改进。

[1] Nisha N,Rajeswari K.Study of Different Focused Web Crawler to Search Domain Specific Inasformation[J].International Journal of Computer Applications,2016,136(11):1-4.

[2] 肖馥莉.基于垂直搜索引擎的主题爬虫技术[J].电子技术与软件工程,2016(19):19-19.

[3] 于娟,刘强.主题网络爬虫研究综述[J].计算机工程与科学,2015,37(2):231-237.

[4] 李东晖,廖晓兰,范辅桥,等.一种主题知识自增长的聚焦网络爬虫[J].计算机应用与软件,2014,31(5):29-33,88.

[5] 吴岳廷,李石君.基于扩展主题特征库的领域主题爬虫[J].计算机工程与设计,2015(5):1342-1347.

[6] Guo S,Bian W,Liu Y,et al.Research on the application of SVM-based focused crawler for space intelligence collection[J].Electronic Design Engineering,2016,24(17):28-30.

[7] Du Y,Liu W,Lv X,et al.An improved focused crawler based on Semantic Similarity Vector Space Model[J].Applied Soft Computing,2015,36(C):392-407.

[8] Blei D M,Ng A Y,Jordan M I.Latent dirichlet allocation[J].Journal of Machine Learning Research,2003,3:993-1022.

[9] Mikolov T,Chen K,Corrado G,et al.Efficient Estimation of Word Representations in Vector Space[J].eprint arXiv:1301.3781,2013.

[10] 张明慧,王红玲,周国栋.基于LDA主题特征的自动文摘方法[J].计算机应用与软件,2011,28(10):20-22.

[11] Bengio Y,Schwenk H,Senécal J,et al.Neural Probabilistic Language Models[J].Journal of Machine Learning Research,2006,3(6):1137-1155.

[12] Mnih A,Hinton G.Three new graphical models for statistical language modelling[C]//Machine Learning,Proceedings of the Twenty-Fourth International Conference.DBLP,2007:641-648.

[13] 郑小波,郑诚,尹莉莉.基于GVSM的文本相似度算法研究[J].微型机与应用,2011,30(3):9-11.

[14] Fellbaum C.WordNet[J].Theory & Applications of Ontology Computer Applications,2015:231-243.

[15] 刘群,李素建.基于《 知网》的词汇语义相似度计算[J].中文计算语言学,2002.

[16] Ratna A,Divya D,Sawhney A.Focused Crawler based on Efficient Page Rank Algorithm[J].International Journal of Computer Applications,2015,116(7):37-40.

[17] Lu H,Zhan D,Zhou L,et al.An Improved Focused Crawler:Using Web Page Classification and Link Priority Evaluation[J].Mathematical Problems in Engineering,2016,2016(3):1-10.

[18] Dixit R,Gupta S,Singh Rathore R,et al.A Novel Approach to Priority based Focused Crawler[J].International Journal of Computer Applications,2015,116(19):22-25.

[19] Khan A,Sharma D K.Self-Adaptive Ontology based Focused Crawler for Social Bookmarking Sites[J].International Journal of Information Retrieval Research,2017,7(2):51-67.

[20] Sharma D K,Khan M A.SAFSB:A self-adaptive focused crawler[C]//International Conference on Next Generation Computing Technologies.2015:719-724.

[21] Bai S,Hussain S,Khoja S.A framework for focused linked data crawler using context graphs[C]//International Conference on Information and Communication Technologies.IEEE,2016:1-6.

猜你喜欢
爬虫语料网页
利用网络爬虫技术验证房地产灰犀牛之说
面向低资源神经机器翻译的回译方法
基于Python的网络爬虫和反爬虫技术研究
基于HTML5与CSS3的网页设计技术研究
目前互联网中的网络爬虫的原理和影响
濒危语言与汉语平行语料库动态构建技术研究
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
大数据背景下校园舆情的爬虫应用研究
搜索引擎怎样对网页排序