实验三 搜索引擎及SEO实验
一、实验目的
研究并学习几种常见的搜索引擎算法,包括网络蜘蛛爬行策略、中文分词算法、网页正文提取算法、网页去重算法、PageRank和MapReduce算法,了解它们的基本实现原理;运用所学SEO技术对网页进行优化。
二、实验内容
1. 研究常用的网络蜘蛛爬行策略,如深度优先策略、广度优先策略、网页选择策略、重访策略和并行策略等,了解其实现原理;
2. 研究至少两种中文分词算法,了解其实现原理; 3. 研究至少两种网页正文提取算法,了解其实现原理; 4. 研究至少两种网页去重算法,了解其实现原理;
5. 研究Google的PageRank和MapReduce算法,了解它们的实现原理;
6. 使用所学的SEO技术,对实验二所设计的网站静态首页实施SEO,在实施过程中需采用如下技术:
(1) 网页标题(title)的优化;
(2) 选取合适的关键词并对关键词进行优化; (3) 元标签的优化;
(4) 网站结构和URL的优化;
(5) 创建robots.txt文件,禁止蜘蛛抓取网站后台页面; (6) 网页内部链接的优化; (7) Heading标签的优化; (8) 图片优化; (9) 网页减肥技术。
7. 使用C++、C#和Java等任意一种编程语言,设计并实现一个简单的网络蜘蛛爬行程序,要求在输入关键词、设置爬行深度和初始网页URL之后能够实现网页搜索,输出包含关键词的网页的URL和网页标题。【注:实验7为补充实验,不要求每个同学都完成,感兴趣者可自行实现该程序,不计入实验报告评分。】
三、实验要求
1. 研究几种常用的网络蜘蛛爬行策略,填写相应的表格,表格必须填写完整; 2. 研究两种中文分词算法,填写相应的表格,表格必须填写完整; 3. 研究两种网页正文提取算法,填写相应的表格,表格必须填写完整; 4. 研究两种网页去重算法,填写相应的表格,表格必须填写完整;
1
5. 研究PageRank算法和MapReduce算法,填写相应的表格,表格必须填写完整; 6. 提供实施SEO之后的网站静态首页界面和HTML代码,尽量多地使用所学SEO技术;
7. 严禁大面积拷贝互联网上已有文字资料,尽量用自己的理解来阐述算法原理,必要时可以通过图形来描述算法;
8. 使用任意一种编程语言实现一个简单的网络蜘蛛程序,需提供网络蜘蛛程序完整源代码及实际运行结果。
四、实验步骤
1. 通过使用搜索引擎并查阅相关资料,研究并整理几种常用的网络蜘蛛爬行策略相关资料,填写相应的表格;
2. 通过使用搜索引擎并查阅相关资料,研究并整理两种中文分词算法的基本原理,填写相应的表格;
3. 通过使用搜索引擎并查阅相关资料,研究并整理两种网页正文提取算法的基本原理,填写相应的表格;
4. 通过使用搜索引擎并查阅相关资料,研究并整理两种网页去重算法的基本原理,填写相应的表格;
5. 通过使用搜索引擎并查阅相关资料,研究并整理PageRank算法和MapReduce算法的基本原理,填写相应的表格;
6. 对实验二所设计的网站静态首页实施SEO;
7. 使用任意一种编程语言,设计并实现一个简单的网络蜘蛛爬行程序。
五、实验报告要求
1. 研究几种常用的网络蜘蛛爬行策略并填写如下表格: 策略名称 深度优先策略 基本原理 参考资料 深度优先搜索是一种在开发爬百度百科 深度优先搜索:虫早期使用较多的方法。它的目http://baike.http://www.wodefanwen.com//view/288277.htm
的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件2
中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。 广度优先策略 宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位址,彻底地搜索整张图,直到找到结果为止。 网页选择策略 对搜索引擎而言,要搜索互联网李志义《网络爬虫的优化策略探略》,上所有的网页几乎不可能,即使广东广州510631 全球知名的搜索引擎google也只能搜索整个Internet网页的30%左右。其中的原因主要有两方面,一是抓取技术的瓶颈。网络爬虫无法遍历所有的网页;二是存储技术和处理技术的问题。因此,网络爬虫在抓取网页时。 尽量先采集重要的网页,即采用网页优先抓取策略。 网页选择策略是给予重要程度、等级较高的Web页以较高的抓取优先级,即Web页越重要,则越应优先抓取。其实质上是一种使网络爬虫在一定条件下较快地锁定互联网中被用户普遍关注的重要信息资源的方法。而实现该策略的前提是正确评测Web页的重要程度bJ,目前评测的主要指标有PageRank
3
百度百科 广度优先搜索:http://baike.http://www.wodefanwen.com//view/1242613.htm 值、平均链接深度等。 重访策略 (1)依据Web站点的更新频率确定重访频率 此法符合实际情况,能够更有效地管理和利用网络爬 虫。例如,门户网站通常每天要不断地更新信息和添加新 的信息,重访的频率则以天或小时为周期进行网页的重访。 (2)不关心Web站点的更新频率问题,而是间隔一段 时间重访已被抓取的冈页。其弊端是重复抓取的概率大, 容易造成不必要的资源浪费。 (3)根据搜索引擎开发商对网页的主观评价,提供个 性化的服务 网页的重访需要搜索引擎开发商对主要的站点进行网 页更新频率的主观评价,可以根据需求提供个性化的服务。 并行策略 实施并行策略的核心是在增加李志义《网络爬虫的优化策略探略》,协同工作的爬虫数量的同时,科广东广州510631 学合理地分配每个爬虫的任务,尽量避免不同的爬虫做相同的Web信息抓取。一般通过两种方法来分配抓取任务,一是按照Web站点所对应的m地址划分任务,一个爬虫只需遍历某一组地址所包含Web页即可;另一种方法是依据Web站点的域名动态分配爬行任务,每个爬虫完成某个或某些域名段内Web信息的搜集。 李志义《网络爬虫的优化策略探略》,广东广州510631 2. 研究两种中文分词算法并填写如下表格: 算法名称 基本原理 参考资料 算法一:最大匹配算法 最大匹配算法是一种有着广泛应用的机张玉茹 肇庆526070械分词方法,该方法依据一个分词词表和《中文分词算法之最一个基本的切分评估原则.即“长词优先”大匹配算法的研究》 原则,来进行分词 算法二:基于无词典的分词算法 基于汉字之间的互信息和t-测试信息的分词算法。汉语的词可以理解为字与字之间的稳定结合,因此。如果在上下文中某4
刘红芝 徐州医学院图书馆 江苏徐州221004
几个相邻的字出现的次数越多,那么,这几个字成词的可能性就很大。根据这个道理引入互信息(Mutual information)和t-测试值(t—score)的概念,用来表示两个汉字之间结合关系的紧密程度。该方法的分词原理是:对于一个汉字字符串,计算汉字之间的互信息和t-测试差信息,选择互信息和t-测试差信息大的组成词。该方法的局限性是只能处 理长度为2的词,且对于一些共现频率高的但并不是词的字组,常被提取出来,并且常用词的计算开销大,但可以识别一些新词,消除歧义。对于一个成熟的 分词系统来说,不可能单独依靠某一个算法来实现,都需要综合不同的算法,在实际的应用中,要根据具体的情况来选择不同的分词方案。
3. 研究两种网页正文提取算法并填写如下表格: 算法名称 算法一基于相似度的中文网页正文提取算法 基本原理 正文文本在HTML源文件中有两种修饰方式:有标签提示和无标签提示。有标签文本中标签的作用一般包含分块信息、表格信息、或者文本的字体颜色信息等。这种文本采用基于分块的方法能有不错的效果。而无标签信息的正文文本处理之后不在分块中,也不在表格内。采用先分块后提取放入网页正文提取方法,无法达到理想的精度。本文提出根据相似度来提取网页正文的算法。算法分为两个步骤:首先取出网页中包含中文最多的行,然后利用鉴于此余弦相似度匹配和标签相似度来提取网页正文。该算法最大的特点是 避免了上述的分块步骤。 算法二基于FFT的网页正文提取算法研究与实现 给定一个底层网页的HTML源文件, 求解最佳的正文区问。对于任何字符串区间(b,e),(O≤6 5 《中文分词技术的研究》 参考资料 熊子奇张晖林茂松 (西南科技大学计算机科学与技术学院四川绵阳621010) 《基于相似度的中文网页正文提取算法》 李蕾,王劲林,白鹤,胡晶晶 《基于FFT的网页正文提取算法研究与实现》