原理网_生活中的科学原理解析

搜索引擎的基本工作原理(3)

信息技术类 2024-11-07 14:1898未知admin

               搜索引擎的工作原理(一)

    搜索引擎的工作原理可以分为三步:从互联网上抓取网页、建立索引数据库、在索引数据库中搜索排序。

    (1)、从互联网上抓取网页,就是利用能够从互联网上自动收集网页的Spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其他网页,重复这个过程,并把爬过的所有网页收集回来。

    (2)、建立索引数据库,就是由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息,根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度或重要性,然后利用这些相关信息建立网页索引数据库。

     (3)、在索引数据库中搜索排序,就是当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,网站排名越靠前。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。

   一、网页搜集。

       搜索引擎网页的搜集过程并不是在用户提交关键词后进行及时的搜索,而是预先将网页搜集好并进行相关处理之后等待用户的查询。我们知道,在网络比较畅通的情况下,从网上下载一篇网页大概需要1秒钟,因此如果用户在查询的时候即时去网上抓来成千上万的网页,一个个分析处理后再和用户的查询匹配,这样的查询时间就会很慢也不可能满足用户的需求。有可能多个用户重复抓取同一个页面,使系统的效益低下。面对大量的用户查询,不可能每来一个查询,系统就到网上“搜索” 一次。大规模的搜索引擎是将一批预先搜集好的网页进行管理和维护。如何维护?有两种基本的方法。

       A、定期搜索法:每次搜集替换上一次的内容,我们称之为“批量搜集”。由于每次都是重新来一次,对于大规模搜索引擎来说,每次搜索的时间都会花费几周的时间。这样的开销比较大,通常两次搜集的时间间隔也很长(如早期天网的版本大概每3个月搜索一次,google在一段时间曾是每隔28天搜索一次)。这种方法的好处是系统实现比较简单,缺点是实时性不高,还有重复搜集所带来的额外宽带的消耗。

       B、增量搜集法:最初时搜集好一批数据,以后只是新出现的网页和改变的网页并删除不再存在的网页。除了新闻网站外,许多网页的内容并不是经常变化的,这样一来每次搜集的网页量不会很大,于是可以经常去搜集。30万个网页,一台pc机,在一般的网络条件下,半天也就搜集完了。这样的系统表现出来的信息实时性就会比较高,主要缺点是系统实现比较复杂。

       在具体搜集过程中,如何抓取一篇篇的网页,可以有不同的考虑。最常见的是一种所谓“爬取”的过程,具体过程是:将Web上的网页集合看作十亿个有向图,搜集过程从给定的起始URL的集合S(或者说种子)开始,沿着网页中的链接,按照先深、先宽或者别的某种策略遍历,不停的从S中移除URL,下载相应的网页,解析出网页中的超链接URL,看是否已经被访问过,将未访问的那些URL加入集合S。整个过程可以形象地想象为一个蜘蛛(Spider)在蜘蛛网上(Web)上爬行。一个真正的系统其实是多个“蜘蛛”同时在爬。

       这种方法实现起来并不算困难,但需要注意的是在实现过程中通过一定的策略,使收集到的某些网页相对比较"重要"。我们知道任何搜索引擎是不可能将Web上网页搜集完全的,通常都是在某些条件的限制下来结束搜集的过程(如磁盘满,或者搜集时间已经太长了)。因此就有了一个尽量使搜到的网页比较重要的问题,这对于那些并不追求很大的数量覆盖率的搜索引擎特别重要。一般情况下按照先款搜索方式得到网页集合比先深搜索得到的集合重要。

       另外一种可能的方式是在第一次全面网页搜集后,系统维护相应的URL集合S,往后的搜集直接基于这个集合。每搜到一个网页,如果它发生变化并含有新的 URL,则将它们对应的网页也抓回来,并将这些新URL也放到集合S中;如果S中某个URL对应的网页不存在了,则将它从S中删除。这种方式也可以看成是一种极端的先款搜索,即第一层是一个很大的集合,往下最多只延伸一层。

       还有一种方法是让网站拥有者主动向搜索引擎提交他们的网址,系统在一定时间内向那些网站派出“蜘蛛”程序,扫描该网站的所有网页并将有关信息存入数据库中。大型商业搜索引擎一般都提供这种功能。


                  搜索引擎的工作原理(二)

    互联网上大部分信息都是以HTML格式存在,对于索引来说,只处理文本信息。因此需要把网页中的文本内容提取出来,过滤掉一些脚本标识符和一些无用的广告信息,同时记录文本的版面格式信息。网页处理主要包括四个方面:关键词的提取、重复或转载网页的消除、链接分析和网页重要程度的计算。

    一、关键词的提取:由于HTML文档产生来源的多样性,许多网页在内容上比较随意,不仅文字不讲究规范、完整,而且还可能包含许多和主要内容无关的信息(如广告、导航条、版权说明等)。为了支持查询服务,需要从网页源文件中提取能够代表它的内容的一些特征—关键词。

        网页处理阶段的一个基本任务,就是要提取出网页源文件的内容部分所包含的关键词。对于中文来说,就是要根据一个词典,用一个“切词软件”,从网页文字中切出词典所含的词语来。这样一片网页就可以由一组词来近似代表了,p={t1、t2、t3、t4......tn}。一般来讲,可能得到很多的词,同一个词可能在一篇网页中多次出现。从效果和效率来考虑,不应该让所所有的词都出现在网页的表示中,要去掉诸如“的”、“在”等没有内容指示意义的词,称为 “停用词”(Stop Word)。这样,对一篇网页来说,有效的词语数量大约为200。

    二、重复或转载网页的消除:我们知道Web上的信息存在大量的重复现象。统计分析表明,网页的重复率平均大约为4。也就是说,当通过一个URL在网上看到一篇网页的时候,还有另外三个不同的URL也给出相同或者基本相似的内容。这种现象对于搜索引擎来说,它在搜集网页的时要消耗机器时间和网络宽带资源,而且如果在查询的结果中出现,将消耗查询者计算机的资源,也会引来用户的抱怨。因此,消除内容重复或主题重复的网页是网页处理阶段的一个重要任务。

    三、链接分析:从信息检索的角度讲,如果系统仅仅面对的是内容的文字,我们能依据关键词和关键词在文档中集合出现的频率来统计该词的相对重要性以及和某些内容的相关性。有了HTML标记后,情况可能进一步改善,例如,在同一篇HTML中,<H1>和</H1>之间的信息很可能就比在<H4>和</H4>之间的信息更重要。尤其HTML文档中所含的指向其他文档的链接信息是人们特别关注的的对象,认为它们不仅给出了网页之间的关系,而且还对判断网页的内容有很重要的作用。

    四、网页重要度的计算:搜索引擎返回给用户的,是一个和用户查询相关的结果列表。列表中条目的顺序是很重要的一个问题。不同的顺序到达的结果是不一样的,因此搜索引擎实际上追求的是一种统计意义上的满意。例如,人们认为利用google查询比较好,是因为在多数情况下google返回的内容更要符合用户的需要。

   如何对查询结果进行排序有很多因素需要考虑,如何理解一篇网页比另外一篇网页重要?人们参照科技文档重要性的评估方式,核心思想就是“被引用的最多的就是最好的”。“引用”这个概念恰好可以通过在网页之间的超链进行体现,作为google创立核心技术的Page-Rank就是这种思路的成功体现。除此以外,人们还注意到网页和文档的不同特点,即一些网页主要是大量的对外链接,其本身基本没有一个明确的主题内容,而另外有些网页则被大量的其他网页链接。从某种意义上讲,这形成了一种对偶的关系,这种关系可以使得人们在网页上建立另外一种重要性指标。这些指标有的可以在网页处理阶段计算,有的则要在查询阶段计算,但都是作为查询服务阶段最终形成结果排序的部分参数。

标签关键词:

 备案号:

联系QQ: 邮箱地址: