论文部分内容阅读
伴随着互联网技术的蓬勃发展及Web2.0技术的兴起,网络中存储的信息量呈现出爆炸式的增长,搜索引擎在互联网中发挥了越来越重要的作用。网络信息检索新领域新的研究热点之一就是面向主题的网络爬虫与搜索引擎技术。传统的搜索引擎对网页的抓取是任意的,不作任何判断,而主题式搜索引擎则是带有目的性的去查询,仅仅返回某一个领域内的用户所需要的内容。使用特定主题的垂直搜索引擎,能够提高查询的精度、深度和广度,从而大大提高了人们的工作和生活效率。Nutch是一个开源的网络爬虫系统,它是以Lucene为基础,开发了索引和检索功能,尽力为用户提供更好的检索结果。通过与Solr索引服务器结合,从而具有高度标准模块的框架。虽然Nutch集成了各种功能的插件,但是缺乏对页面中脚本内容的解析和主题相关性的判断,可能会造成网页动态内容的缺失及索引文件的冗余,影响最终的检索结果。本文基于开源搜索引擎框架Nutch设计并实现了一个主题式搜索引擎。主要工作包括以下几个方面:1.对主题搜索引擎的相关技术和开源网络爬虫Nutch的工作原理及流程进行研究。介绍分析了主题搜索引擎的重要构成模块及中文分词技术。2.对传统网络爬虫不能爬取网页中的动态链接及内容的缺陷进行分析,利用Nutch的插件机制设计并实现了一个JS解析插件。该插件作用于爬虫的采集页面阶段,通过解析网页中的脚本内容,利用正则表达式来提取网页中的动态链接。并且针对Ajax请求,利用Htmlunit来完成动态页面的静态化,从而提取到网页中的动态内容。3.基于Nutch的插件机制,实现一个主题过滤模块,主要采用的思想是:在基于Mahout的贝叶斯分类算法的基础上,利用训练文档生成贝叶斯模型,将改进后的爬虫爬取到的网页在被建立索引之前进行主题判别,如果属于预先定义的主题,则保存该网页,否则丢弃,最后实现了自己的基于贝叶斯分类器的主题爬虫。4.引用基于词典的IKAnalyzer,利用归一化处理的双字耦合度思想对Nutch的中文分词其进行了进行了改进以及测试,进而改善了分词效果。5.设计并实现了基于Nutch网络爬虫及主题搜索引擎系统,并且针对该系统中爬虫的性能和查准率进行了相关实验。实验表明:本文设计实现的系统是有效的,虽然由于增加了 JS解析功能和主题过滤功能降低了爬取效率,但是相较于开源Nutch系统和通用搜索引擎百度,该系统的查准率大大提高了。