摘 要: 分析了搜索引擎原理及分类,阐述了垂直搜索引擎原理及功能模块设计,以提高垂直搜索引擎对特定领域信息检索的深度和完整度。
关键词: 垂直搜索引擎; 主题网络爬虫; 大数据;
在信息高度发达的今天,互联网上的信息量以几何级增长,人们如何从海量的数据中快速准确地找到自己所需要的信息成为一个难点。通用搜索引擎虽能覆盖所有的资源,但其本质是检索词匹配,容易忽略用户搜索的真实意图。为了弥补通用搜索引擎的不足,实现对特定主题信息的检索,又出现了垂直搜索引擎,它检出的结果更准确,挖掘信息的层次更深,无效信息更少,更能适应垂直领域的服务。
1、 搜索引擎原理及分类
1.1、 搜索引擎原理
搜索引擎的工作原理可分为三步,先从互联网上发现并抓取网页信息,接着对信息进行提取并建立索引库,最后一步是在索引库中检索并将结果排序后返回给用户。搜索引擎的工作流程如图1所示。
图1 搜索引擎工作流程
抓取模块主要是由网络爬虫组成,它按照一定的策略在互联网上抓取站点页面,并记录下抓取到的每一个页面的URL地址,将网页内容下载并保存到系统存储库里面。它的搜集过程并不是在用户提交关键词后进行的及时搜索,而是预先将网页搜集保存下来以备处理。索引模块则是将抓取的数据进行分词、计算权重后排序存储到索引数据库中。检索模块则是在接到搜索请求后从索引数据库中检索出符合用户检索词的信息,按用户查询相关性排序后展现给用户。
1.2 、搜索引擎分类
搜索引擎根据工作原理可分为全文搜索引擎、目录搜索引擎和元搜索引擎三类[1]。
全文搜索引擎是利用全文检索技术提取各个网站页面的文字内容,对其加工后存储到自己的索引数据库中。用户搜索时,全文搜索引擎根据用户的检索词在自己的数据库中进行匹配,将匹配一致的记录按一定的排列顺序返回给用户。Baidu、Google就是此类搜索引擎的代表。
目录搜索引擎是以人工方式或半自动方式搜集网站信息,由人工形成信息摘要并按照页面资源类别的不同将其进行分类。用户只需要在目录类别说明中查找内容,整个搜索过成一目了然。雅虎、新浪、搜狐、网易搜索都属于这一类。
元搜索引擎也称为多元搜索引擎、索引搜索引擎,它是一种调用其他独立搜索引擎的引擎。它在接受用户查询请求时,同时在其他多个搜索引擎上进行搜索,并按自定义的算法整合各个搜索引擎返回的检索信息,把优化后的结果返回给用户。着名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等[2]。
2 、垂直搜索引擎原理及功能模块设计
2.1、 垂直搜索引擎原理
垂直搜索引擎是面向特定领域为特定用户服务的一种搜索引擎,是对专业领域信息的深层次挖掘,它将信息过滤、筛选、梳理后集成在一起,为用户提供了面向专业知识的检索[3]。与普通搜索引擎相比,垂直搜索引擎检索出的结果更专业,更细致,挖掘信息的层次更深。
垂直搜索引擎与全文搜索引擎工作原理类似,区别在于抓取模块中的爬虫程序与主题词库。垂直搜索引擎的主题爬虫是对通用网络爬虫的扩展,按照特定主题进行网页抓取,并计算主题相关度。主题爬虫是垂直搜索引擎的核心技术之一,它并不期望高的覆盖率,只抓取与特定主题相关度高的页面,为特定用户的查询提供数据基础[4]。
2.2 、采集模块设计
信息采集模块的功能主要是从互联网中抓取与主题内容相关的信息数据,是整个垂直搜索引擎中最为关键的模块之一,它采集到的数据将直接决定了用户检索信息的准确度,而数据的采集主要依赖主题爬虫来实现。相对于普通网络爬虫的结构,主题网络爬虫的结构中添加了主题模块、页面相关度评价模块和超链接评价模块。主题网络爬虫结构如下图2所示。
主题模块是用来限定主题网络爬虫抓取网页的范围,对于其他与主题无关的页面,直接丢弃或者不爬行。页面相关度评价模块直接决定主题爬虫抓取信息的质量和准确率,是主题网络爬虫与通用爬虫不同之处。相关度评价之前,要根据以前的经验及数据设定一个阈值,计算网页相关度之后将结果与其比较,如果计算结果小于所设定的阈值,表示此网页与主题无关,直接丢弃;如果计算结果大于阈值,则表示与主题相关,则将其过滤后保存下来。超链接相关度评价模块的功能是为主题相关页面中的链接分配优先级,主题相关页面的相似度大小决定优先级的先后,相似度结果越大的网页表明该网页的内容与主题越接近[5]。
图2 主题网络爬虫结构
主题爬虫首先根据初始种子链接进行网页抓取,然后根据主题模块进行页面相关度判断,若该页面信息与主题相关,则将该页面内容存储到网页库中;若页面内容与主题无关,则将其舍弃。将所有抓取网页的链接进行提取,进行超链接相关度评价后存入URL库,以备主题爬虫将来对所抓取的链接去重。
2.3、 索引模块设计
索引模块的功能是将采集的数据有序处理后,构建倒排索引库,为将来的检索提供数据基础。索引模块主要由数据预处理、构建倒排索引库以及索引库更新三部分组成。
数据预处理是对采集的数据进行过滤和清洗,处理掉无关数据和重复数据。倒排索引库是索引模块的核心,而索引结构与搜索引擎的查询速度密切相关。采用倒排索引结构可以在较短时间内定位到搜索结果的具体位置。系统模块首先从预处理好的数据中将搜索服务中检索需要用到的字段从数据库中提取出来,接着对数据信息进行分词处理,计算提取的关键词的权重,然后根据得到的关键词构建索引并对其内容进行排序。最后通过文档编号差值的方式对数据压缩,将已经压缩的索引入库[6]。倒排索引工作流程如图3所示。
图3 倒排索引工作流程
网络上的数据每日都在增加,主题网络爬虫也在网络上不停爬去相关页面,索引库的内容也随着增加。为了不影响搜索引擎的检索速度,必须有一个合理的索引更新策略。笔者对索引库的更新采用混合策略,将不同的索引更新策略混合,以形成更高的效率。混合策略一般会将单词根据其不同性质进行分类,不同类别的单词,对其索引采取不同的索引更新策略[7]。这样能节省系统开销,对搜索引擎检索速度的影响也不大。
2.4、 检索模块设计
用户检索模块包含两个功能:搜索建议与搜索。搜索建议功能是用户在检索框内输入自己认为的检索词后,搜索引擎将该词在索引数据库中进行模糊匹配,把类似或相关度很高的词在检索框中进行提示,以方便用户比较后选择,以提高检索的准确性。
搜索功能是垂直搜索引擎来的核心。用户在搜索框内输入检索词后,若采用搜索建议提供的词,则系统直接在索引数据库中按建议词进行检索并输出结果;若用户不选择建议词,系统则根据用户的检索词在索引数据库中检索并返回结果[8]。检索模块工作流程如下4图所示。
图4 检索模块工作流程
3、 结束语
随着互联网上的信息爆炸式地增长,人们已经进入了大数据时代。无论是在工作还是生活中,人们对互联网的依赖越来越深,对垂直搜索引擎的要求也越来越专业,期望通过垂直搜索引擎检索得到范围更小、层次更深、粒度更细的资源。在垂直搜索领域里面还有很多值得提高的地方,比如隧道技术,可以过滤掉无关网页连接两个主题,主题相关度算法也需要更加完善才能提高垂直搜索引擎检索的完整性,这都需要在后续的工作中进一步研究。
参考文献
[1]袁津生.搜索引擎原理与实践[M].北京:北京邮电大学出版社,2008:6~7.
[2]李鸿飞.网络信息检索工具的现状分析与发展方向研究---以搜索引擎和网络资源目录为例[J].中国科技信息,2012,(8).
[3]丁月.基于网络爬虫的垂直搜索引擎设计与实现[D].贵阳:贵州大学,2019.
[4]张亚凤.垂直搜索引擎中关键技术的研究[D].长春:长春工业大学,2016.
[5]罗路天.垂直搜索引擎中主题网络爬虫算法的设计与研究[D].广州:广东工业大学,2016.
[6]张月.基于ElasticSearch的分布式搜索引擎的设计与实现[D].北京:北京交通大学,2019.
[7] 自然语言处理中CNN模型几种常见的Max Pooliny操作[EB/OL].http://blog.csdn.net/malefactor/article/details/51078135,2018-12-03.
[8]段晨迪.基于ElasticSearch面向M00C的垂直搜索引擎设计与实现[D].北京:北京交通大学博士论文,2019.