浅解搜索引擎技术.docx
《浅解搜索引擎技术.docx》由会员分享,可在线阅读,更多相关《浅解搜索引擎技术.docx(7页珍藏版)》请在冰豆网上搜索。
浅解搜索引擎技术
浅析搜索引擎技术
[键入文档副标题]
通信1002班简铸
2012-2-17
浅析搜索引擎技术
内容目录
一、什么是搜索引擎
1、搜索引擎的概念
2、搜索引擎的分类
3、搜索引擎的代表
二、搜索引擎的工作原理
1、抓取网页
2、预处理
3、查询服务
一、什么是搜索引擎
最简单的回答,像XX、google一样的就是搜索引擎。
搜索引擎(SearchEngine),一般指通过超文本(超媒体)技术在Internet网络上建立的一种向网络用户提供网上信息资源检索和导航服务的专门站点或服务器。
它通过搜集网上的信息,如网站,网页,URL以及非WWW形态的BBS,FTP,Netsgroup等,进行整理,组织,加工,处理,建立管理和存储这些信息的索引数据库,并提供基于该索引数据库的检索。
用户输入关键词查询后,全文检索到的结果是与输入关键词相关的一个个网页的地址和一小段该网页内容的摘要。
例如:
1为关键词②为搜索到的网址及其摘要
那么是不是所有的搜索引擎都是一样的呢?
明显不是,我们可以看看谷歌搜索相同关键词的结果:
搜索引擎可以按数据检索方法分为两类:
(1)全文检索搜索引擎。
全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。
这个过程类似于通过字典中的检索字表查字的过程。
(2)目录分类式检索搜索引擎。
也称分类式搜索引擎主要通过人工发现信息,由编辑人员根据信息资源的内容按一定的主题进行分类组织,并形成信息摘要,将信息置于事先确定的分类框架中,组织成一层一层的分类目录,目录下面有更具体的子目录。
信息的类别也由大到小、由粗到细,整个搜索引擎形成了一个层次型的类别目录。
用户可以逐层浏览,选择不同的主题对网络信息进行过滤,所选择的主题类别越小,信息的相关性就越高,用户就越有可能找到自己所需要的信息。
这类搜索引擎的性能主要取决于对所获取网页的人工归类或自动分类算法的精确度如何。
搜索引擎也可以按其主要技术分为四类:
(1)目录式搜索引擎
(2)基于网络爬虫的搜索引擎(3)元搜索引擎(4)分布式搜索引擎。
我们熟知的google、XX是全文搜索引擎也是基于网络爬虫的搜索引擎。
二、搜索引擎的工作原理
搜索引擎的工作过程大体上可以分成三个阶段。
(1)抓取网页。
每个搜索引擎都有自己的抓取网页的程序,一般称其为爬虫或者蜘蛛。
它的工作目的是尽快尽可能的抓取到网页内容。
搜索引擎蜘蛛访问到一个页面,读取它,然后跟随这个页面链接到这个站点的其他页面,这就是人们所说的站点被套住了或者被爬过了。
蜘蛛会按照固定的时间不断的回来访问这个站点,如每月或每两个月,以便查看页面的变化。
由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。
(2)预处理。
由爬虫程序抓取到得海量网页并不能够直接用于检索服务,需要经过处理。
这个处理主要有四个方面,关键词的提取,“镜像网页”和“近似镜像网页”的消除——所谓镜像网页就是网页内容完全相同,这些网页出现在搜索结果中是没有意义的,链接分析和网页重要程度的计算。
现在的搜索引擎还是以文字内容为基础。
蜘蛛抓取到的页面中的HTML代码,除了用户在浏览器上可以看到的可见文字外,还包含了大量的HTML格式标签、JavaScript程序等无法用于排名的内容。
搜索引擎预处理首先要做的就是从HTML文件中去除标签、程序,提取出可以用于排名处理的网页面文字内容。
比如下面这段HTML代码:
今天愚人节哈
="rel="bookmark"title="PermanentLinkto
除去HTML代码后,剩下的用于排名的文字只是这一行:
今天愚人节哈
对于中文搜索引擎还有一项特殊的技术,中文分词技术。
搜索引擎存储和处理页面及用户搜索都是以词为基础的。
英文等语言单词与单词之间有空格分隔,搜索引擎索引程序可以直接把句子划分为单词的集合。
而中文词与词之间没有任何分隔符,一个句子中的所有字和词都是连在一起的。
搜索引擎必须首先分辨哪几个字组成一个词,哪些字本身就是一个词。
比如“减肥方法”将被分词为“减肥”和“方法”两个词。
中文分词方法基本上有两种,一种是基于词典匹配,另一种是基于统计。
基于词典匹配的方法是指,将待分析的一段汉字与一个事先造好的词典中的词条进行匹配,在待分析汉字串中扫描到词典中已有的词条则匹配成功,或者说切分出一个单词。
按照扫描方向,基于词典的匹配法可以分为正向匹配和逆向匹配。
按照匹配长度优先级的不同,又可以分为最大匹配和最小匹配。
将扫描方向和长度优先混合,又可以产生正向最大匹配、逆向最大匹配等不同方法。
词典匹配方法计算简单,其准确度在很大程度上取决于词典的完整性和更新情况。
基于统计的分词方法指的是分析大量文字样本,计算出字与字相邻出现的统计概率,几个字相邻出现越多,就越可能形成一个单词。
基于统计的方法的优势是对新出现的词反应更快速,也有利于消除歧义。
基于词典匹配和基于统计的分词方法各有优劣,实际使用中的分词系统都是混合使用两种方法的,快速高效,又能识别生词、新词,消除歧义。
中文分词的准确性往往影响搜索引擎排名的相关性。
这就是上述XX和google搜索结果不同的原因之一。
(3)查询服务。
前面的抓取网页与预处理都是在后台完成的,搜索引擎用户对此没有感觉。
而查询服务是在我们眼前完成的。
用户在搜索框填入关键词后,排名程序调用索引库数据,计算排名显示给用户,排名过程是与用户直接互动的。
这里主要讲解下搜索词的处理。
搜索引擎接收到用户输入的搜索词后,需要对搜索词做一些处理,才能进入排名过程。
搜索词处理包括如下几方面。
①中文分词。
与页面索引时一样,搜索词也必须进行中文分词,将查询字符串转换为以词为基础的关键词组合。
分词原理与页面分词相同。
②去停止词。
和索引时一样,搜索引擎也需要把搜索词中的停止词去掉,最大限度地提高排名相关性及效率。
③指令处理。
查询词完成分词后,搜索引擎的默认处理方式是在关键词之间使用“与”逻辑。
也就是说用户搜索“减肥方法”时,程序分词为“减肥”和“方法”两个词,搜索引擎排序时默认认为,用户寻找的是既包含“减肥”,也包含“方法”的页面。
只包含“减肥”不包含“方法”,或者只包含“方法”不包含“减肥”的页面,被认为是不符合搜索条件的。
当然,这只是极为简化的为了说明原理的说法,实际上我们还是会看到只包含一部分关键词的搜索结果。
另外用户输入的查询词还可能包含一些高级搜索指令,如加号、减号等,搜索引擎都需要做出识别和相应处理。
有关高级搜索指令,后面还有详细说明。
④拼写错误矫正。
用户如果输入了明显错误的字或英文单词拼错,搜索引擎会提示用户正确的用字或拼法,如图2-26所示
。
图2-26输入的错拼、错字矫正
⑤整合搜索触发。
某些搜索词会触发整合搜索,比如明星姓名就经常触发图片和视频内容,当前的热门话题又容易触发资讯内容。
哪些词触发哪些整合搜索,也需要在搜索词处理阶段计算。
而最后的结果,搜索引擎是如何排列的呢?
用你所喜欢的搜索引擎搜索任何东西,搜索引擎几乎立刻就从他知道的几百万的页面中挑选出与你的主题相匹配的那些,呈现在你的荧屏上。
这些网页按一定的顺序排列起来,最相关的排在最前面。
但搜索引擎并不是图书管理员,他没有能力一再地询问有关的问题来更好地定位搜索的目标,也不能依靠智力判断和过去的经验来排列网页,而人可以做到。
智能化是发展的方向,但还有一段很长的路要走。
那么搜索引擎是怎样决定相关性的呢?
他们依靠一套规则,主要的规则是页面中关键词出现的位置和频率,我们把这称做"位置/频率法"。
1、位置
如果你到图书馆去寻找有关旅游方面的书,管理员首先会去查找题目中有"旅游"的书籍。
搜索引擎也一样,关键词(即"旅游")出现在题目(Title)中的页面比那些Title中不出现关键词的页面更相关。
搜索引擎还会检查关键词是否出现在页面的顶部,如文章标题中或前面的几个段落。
他们认为与搜索主题相关的页面在开始都会提到那些词语。
2、频率
频率是相关性的另外一个主要因素。
搜索引擎会分析页面中关键词相对其他词语所出现的频率,频率越高,就越具相关性。
3、搜索引擎在排列网页时有一定的差异
所有的搜索引擎都有以上提到的三个基本部分,在一定程度上都符合“位置/频率法”,但在具体实施上又有区别,这就是为什么我们用不同的搜索引擎做同样的搜索时会产生不同结果的原因。
首先,有些搜索引擎会索引到更多的Web页面,有些又会比其他引擎更新索引的频率快,所以搜索引擎索引中不可能收集完全一样的Web页面。
其次,出于某种原因,有些搜索引擎也可能给某些Web页面在排列层次上有优先权。
如Excite用链接的流行度作为排列网页的一个因素,他知道在索引中哪些页面有许多指向他们的链接,他在排列时就给这些页面小小的奖励,将他们适当提前。
这也是合理的,因为在Internet上有越多指向他们的链接,就说明这些页面更被大家看重。
另外,一些混合结构(搜索引擎和目录共存)的搜索引擎可能会把那些目录中已存在的站点的网页靠前,理由是一个站点足够好才能放到目录中,就应该有机会比那些不被列在目录中的站点的网页靠前