搜索引擎进行信息检索的优化策略方法(搜索引擎搜索引擎如何实现网页排名的工作原理。)
优采云 发布时间: 2021-09-14 19:03搜索引擎进行信息检索的优化策略方法(搜索引擎搜索引擎如何实现网页排名的工作原理。)
搜索引擎的工作原理非常复杂。我们简单介绍一下搜索引擎是如何实现页面排名的。与真正的搜索引擎技术相比,这里介绍的只是表面的文章,但对于SEO人员来说已经足够了。
搜索引擎的工作原理大致可以分为三个阶段:
1)Grabbing and crawling-搜索引擎蜘蛛通过跟踪链接访问网页,获取网页的HTML代码并存入数据库。
2)Pre-Processing-Indexing 程序对抓取的页面数据进行文本提取、中文分词、索引等处理操作,为排名程序的调用做准备。
3)Ranking——用户输入关键词后,排名程序调用索引库数据,计算相关性,然后生成一定格式的搜索结果页面。
爬行和爬行
爬取和爬取是搜索引擎完成数据采集任务的第一步。
蜘蛛;蜘蛛状物体;星轮;交叉叉;连接手柄;十字头
搜索引擎用来抓取和访问页面的程序称为蜘蛛或机器人。搜索引擎蜘蛛类似于普通用户用来访问网站网页的浏览器。蜘蛛程序发送页面访问请求后,服务返回HTML代码,蜘蛛程序将接收到的代码存储在原创页面数据库中。搜索引擎为了提高爬取和爬取速度,采用多蜘蛛并发分布的方式进行爬取。蜘蛛在访问任何网站时,首先会访问网站根目录下的robots.txt文件。如果robots.txt文件禁止搜索引擎抓取某些文件或目录,蜘蛛将遵守协议,不会抓取被禁止的网址。
跟踪链接
为了在网络和搜索引擎上抓取尽可能多的页面,蜘蛛会跟随页面上的链接从一页爬到下一页,就像蜘蛛在蜘蛛网上爬行一样,蜘蛛就是搜索引擎蜘蛛这个名字的由来。整个互联网是由相互连接的网站和组成的网页组成。理论上,蜘蛛可以从任何网页抓取所有网页并跟踪链接。当然,由于网站的网页链接和结构极其复杂,蜘蛛需要使用特定的爬取策略来遍历互联网上的所有网页
最简单的爬行遍历策略有两种,一种是深度优先,一种是广度优先。
所谓深度优先是指蜘蛛沿着找到的链接爬行,直到没有其他链接在它之前,然后回到第一页,沿着另一个链接爬行。
广度优先是指当蜘蛛在一个页面上发现多个链接时,它不会一路跟踪一个链接,而是爬取页面上所有一级链接,然后再爬到第二级找到的链接——级别页面 三级页面。理论上,如果给蜘蛛足够的时间,无论是深度优先还是广度优先,蜘蛛都可以爬上整个互联网。在实际工作中,蜘蛛的带宽资源和时间不是无限的,不可能爬满所有的页面。事实上,最大的搜索引擎只抓取和记录互联网的一小部分。
深度优先和广度优先通常是结合使用的,可以兼顾网站(广度优先)和一些网站内页深度优先)。
预处理
选择文本
今天的搜索引擎仍然基于文本内容。蜘蛛抓取的页面中的HTML代码除了用户在浏览器上可以看到的可见文本外,还收录大量HTML格式标签、Javascript程序等无法用于排名的内容。搜索引擎预处理首先要做的是去除HTML文件中的标签和程序,提取出网页的文本内容,可以用来进行排名处理。除了可见文本,搜索引擎还会提取一些收录文本信息的特殊代码,例如Meta标签中的文本、图片的替代文本、Flash文件的替代文本、链接锚文本等。
中文分词
分词对于中文搜索引擎来说是一个独特的步骤。搜索引擎存储和处理页面,用户搜索基于单词。英语和其他语言的单词用空格分隔。搜索引擎索引程序可以直接将句子划分为词集。但是中文单词之间没有分隔符,句子中的单词都是连接在一起的。搜索引擎首先要区分哪些词构成一个词,哪些词本身就是一个词。比如“减肥方法”就会分为“减肥”和“方法”两个词。
中文分词基本上有两种方法,一种是基于词典匹配,一种是基于统计。
基于字典的匹配方法是将待分析的汉字与预制字典中的词条进行匹配,将字典中已有的词条扫描成待分析的汉字串,匹配成功,或截断一个字。根据扫描方向,基于字典的匹配方法可以分为正向匹配和反向匹配。根据匹配长度的优先级,可分为最大匹配和最小匹配。通过首先混合扫描方向和长度,可以生成不同的方法,如前向最大匹配和反向最大匹配。字典匹配方法计算简单,其准确性在很大程度上取决于字典的完整性和可更新性。
基于统计的分词方法是指对大量文本样本进行分析,计算相邻词的统计概率。出现的相邻词越多,形成一个词的可能性就越大。基于统计的方法的优点是对新词有更强、更快的反应,有助于消除歧义。基于词典匹配和统计的两种分词方法各有优缺点。在实际使用中,分词系统是这两种方法的混合,可以实现快速、高效的新词识别和歧义消除。
搜索引擎的分词取决于词典的大小和准确率以及分词算法的质量,而不是页面本身,所以人们在分词上做的很少。您唯一能做的就是在页面上以某种形式提示搜索引擎。某些词应该被视为文字处理,特别是当可能存在歧义时,例如页面标题中的关键词、h1 标签和粗体。如果页面内容是关于“和服”的,可以用粗体标记“和服”这个词。如果页面是“关于,妆容和服装”,可以将“服装”标记为粗体。这样,当页面分析时,您就会知道它被标记为黑色
正文应该是一个词。
转到停用词
无论是英文还是中文,页面内容中都会出现一些频繁出现但对内容没有影响的词,如“的”、“地”、“得”等辅助词“啊” 、“哈”、“雅”等感叹词,“从而”、“伊”、“克”等介词。这些词被称为停用词,因为它们对页面的主要含义没有影响。常见停用词英文如the、a、an、to、of等。搜索引擎会在索引页面前去除这些停用词,使索引数据的主题更加突出,减少不必要的计算。
消除噪音
大多数页面上还有一部分内容对页面主题贡献不大,比如版权声明文字、导航栏、广告等。以常见的博客导航为例,几乎每个博客页面会有文章category、历史存档等导航内容,但这些页面本身与“category”和“history”这两个词无关。当用户搜索“历史”和“类别”关键词时,仅仅因为页面上出现这些词就返回博客帖子是毫无意义和完全无关的。
所以这些块都是噪音,只能起到分散页面主题的作用。搜索引擎需要识别并消除这些噪音,排名时不使用噪音内容。去噪的基本方法是根据HTML标签将页面分成块,以区分页眉、导航、正文、页脚、广告等区域。 网站上的大量重复块往往是噪音。页面去噪后,剩下的就是页面的主要内容了。
删除重复
搜索引擎还需要对页面进行去重。同一个文章经常在不同的网站和同一个网站上重复出现。搜索引擎不喜欢这种重复的内容。用户搜索时,如果在前两页看到同一篇文章文章来自不同的网站,用户体验太差了,虽然都是内容相关的。搜索引擎希望在同一个文章中只返回一篇文章,因此需要在索引前识别并删除重复的内容。该原则称为重复数据删除。去重的基本方法是计算页面特征关键词的指纹,即选择页面关键词主要内容中最具代表性的部分(往往出现频率最高的关键词),并然后计算这些关键词的数字指纹。
这里的关键词选择是在分词、去停用词、降噪之后。实验表明,通常选择10个特征关键词可以达到比较高的计算精度,选择更多的词对去重精度的提升贡献不大。了解了搜索引擎的去重算法,人员应该知道,简单的添加“de,land,get”,改变段落的顺序,也就是所谓的伪原创,逃不过搜索引擎的去重算法,因为这样的操作不能改变文章关键词的特性。而且,搜索引擎的去重算法很可能不仅在页面级别,而且在段落级别。混用不同的文章,交叉切换段落顺序,不会让转载抄袭变成原创。
前向索引也可以简称为索引。
经过文本提取、分词、去噪和去重后,搜索引擎将获得反映页面主要内容的、基于词的独特内容。然后索引程序就可以提取关键词,根据分词程序,将页面转换成一组关键词,并记录每个关键词在页面上的出现频率、出现次数、格式(如出现在标题标签、粗体、H标签、锚文本等)、位置(如页面第一段等)。这样每个页面就可以记录为一系列关键词集合,其中还记录了每个关键词的词频、格式、位置等权重信息。
倒排索引
前向索引不能直接用于排名。假设用户搜索关键词2。如果只有前向索引,排序程序需要扫描索引库中的所有文件,找到收录关键词2的文件,然后进行相关计算。这个计算量不能满足实时返回排名结果的要求。因此,搜索引擎会将正向索引数据库重构为倒排索引,并将文件到关键词的映射转换为关键词到文件的映射。在倒排索引中,关键词为主键,每个关键词对应一系列文件,而这个关键词出现在这些文件中。这样,当用户搜索某个关键词时,排序程序在倒排索引中定位到这个关键词,可以立即找到收录这个关键词的所有文件。
链接关系的计算
链接关系的计算也是预处理的一个重要部分。所有主流搜索引擎排名因素现在都包括网页之间的链接流信息。搜索引擎抓取页面内容后,必须提前计算页面上的哪些链接指向其他哪些页面?每个页面导入的链接是什么?链接使用什么锚文本?这些复杂的链接指向关系构成了网站和页面的链接权重。谷歌PR值是这种链接关系最重要的体现之一。其他搜索引擎也执行类似的计算,尽管他们不称其为 PR。
特殊文件处理
除了 HTML 文件,搜索引擎通常可以抓取并索引多种基于文本的文件类型,例如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们也经常在搜索结果。但是,当前的搜索引擎无法处理图像、视频和 Flash 等非文本内容,也无法执行脚本和程序。尽管搜索引擎在识别图片和从Flash中提取文本内容方面取得了一些进展,但离通过读取图片、视频和Flash内容直接返回结果的目标还很远。图片和视频内容的排名往往以与其相关的文字内容为依据。详情请参考下方综合搜索部分。
排名
搜索引擎蜘蛛抓取页面,索引程序计算出倒排索引后,搜索引擎随时准备处理用户搜索。用户在搜索框中填写关键词后,排名程序调用索引库数据,计算排名显示给用户。排名的原则是直接与用户互动。
搜索词处理
搜索引擎收到用户输入的搜索词后,需要对搜索词做一些处理,才能进入排名原则。搜索词处理包括几个方面:
中文分词
与页面索引一样,搜索词也必须用中文进行分段,查询字符串必须转换为基于单词的关键词组合。分词原理与页面分词原理相同。
转到停用词
和索引一样,搜索引擎也需要去除搜索词中的停用词,以最大限度地提高排名的相关性和效率。
命令处理
查询切分后,搜索引擎默认的处理方式是关键词之间使用“与”逻辑。也就是说,当用户搜索“减肥方法”时,程序分词是“减肥”和“方法”。当搜索引擎默认排序时,用户正在寻找同时收录“减肥”和“方法”的页面。 仅收录“减肥”但不收录“方法”的页面,或仅收录“方法”但不收录“减肥”页面的页面,将被视为不符合搜索条件。当然,这只是为了说明原理而非常简化的说法。事实上,我们仍然会看到只收录关键词 一部分的搜索结果。此外,用户输入的查询词还可能收录一些高级搜索指令,如加号、减号等,搜索引擎需要进行相应的识别和处理。
文件匹配
搜索词处理后,搜索引擎根据词获取关键词的集合。文件匹配阶段是查找收录所有关键词的文件。索引部分提到的倒排索引可以快速完成文件匹配。
初始子集的选择
找到收录所有关键词的匹配文件后,无法进行相关性计算,因为通常会找到数十万、数百万甚至数千万个文件。实时对这么多文件进行相关计算需要很长时间。其实用户不需要知道所有匹配的几十万个页面,大多数用户只会查看前两个页面,也就是前20个结果。搜索引擎不需要计算这么多页面的相关性,只需要计算页面最重要的部分。使用搜索引擎的人会注意到,搜索结果页面通常最多只能显示一百个。当用户点击搜索结果页面底部的“下一页”链接时,最多只能看到第一百页,即一千个搜索结果。百度通常会返回 76 页的结果。
相关性计算
选择初始子集后,计算子集中页面的关键词relevance。计算相关性是排名原则中最重要的一步。相关性计算是搜索引擎算法中最有趣的部分。影响相关性的主要因素包括几个方面。
关键词常用度
分词后的多个关键词对整个搜索字符串的意义有不同的贡献。越常用的词对搜索词的意义贡献越小,越不常用的词对搜索词的意义贡献越大。例如,假设用户输入的搜索词是“we Pluto”。 “我们”这个词使用频率很高,出现在很多页面上。它对搜索词“us Pluto”的识别和意义贡献不大。找出那些收录“我们”一词的页面对搜索排名相关性影响不大,收录“我们”一词的页面太多了。术语“冥王星”不太常用,但对搜索术语“我们的冥王星”的含义贡献更大。收录“冥王星”一词的页面将与搜索词“我们的冥王星”更相关。最常见的词是停用词,它对页面的含义没有影响。
所以搜索引擎不会对搜索词中的关键词一视同仁,而是根据常用程度来加权。生僻词权重系数高,常用词权重系数低。排序算法更关注不常用的词。我们假设“我们”和“冥王星”这两个词出现在 A 和 B 页面上。但是“我们”这个词出现在 A 页面的普通文本中,而“冥王星”这个词出现在 A 页面的标题标签中。 B页,相反,“我们”出现在标题标签中,而“冥王星”出现在普通文本中。那么对于搜索词“我们冥王星”,页面 A 将更相关。
词频和密度
普遍认为,在没有关键词积累的情况下,搜索词在页面上出现的频率更高,密度也更高,说明该页面与搜索词的相关度更高。当然,这只是一般规律,实际情况可能并非如此,因此相关性计算中还有其他因素。频率和密度只是部分因素,其重要性越来越低。 关键词的位置和格式如索引部分所述,页面关键词的格式和位置记录在索引库中。 关键词出现在更重要的位置,如标题标签、黑体字、H1等,说明该页面与关键词的相关性更高。这部分就是页面SEO要解决的问题。
关键词distance
出现分段的关键词完全匹配,表明它与搜索词最相关。例如,在搜索“减肥方法”时,页面上连续完整出现的“减肥方法”四个词最相关。如果“减肥”和“方法”这两个词不连续匹配,它们看起来更接近,也被搜索引擎认为稍微更相关。
链接分析和页面权重
除了页面本身的因素*敏*感*词*的文本等。经过排序过滤和调整选择匹配文件的子集并计算相关性后,总体排序已经确定。之后,搜索引擎也可能有一些过滤算法来稍微调整排名,其中最重要的是施加惩罚。一些涉嫌作弊的页面,按照正常的权重和相关性计算,可能会排在第一位,但搜索引擎的惩罚算法可能会在最后一步将这些页面移到后面。典型的例子有百度的11位算法,谷歌的-6、-30和-950算法。
排名显示
所有排名确定后,排名程序调用原页面的标题标签、描述标签、快照日期显示在页面上。有时搜索引擎需要动态生成页面摘要,而不是调用页面本身的描述标签。
搜索缓存
用户搜索到的关键词有很大一部分是重复的。根据2/8定律,20%的搜索词占总搜索次数的80%。根据长尾理论,最常见的搜索词占不到80%,但它们通常头部比较大,少数搜索词占所有搜索的很大一部分。特别是当热点新闻发生时,每天可能有数百万人搜索完全相同的关键词。可以说每次搜索都重新处理排名是一种极大的浪费。
搜索引擎会将最常用的搜索词存储在缓存中,用户搜索时直接从缓存中调用,无需经过文件匹配和相关性计算,大大提高了排名效率,减少了搜索响应时间。查询点击日志可以搜索到用户的IP地址、搜索到的关键词、搜索时间、点击了哪些结果页面,搜索引擎会记录并形成日志。这些日志文件中的数据对于搜索引擎判断搜索结果质量、调整搜索算法、预测搜索趋势具有重要意义。
上面我们简单介绍了搜索引擎的工作原理。当然,搜索引擎的实际工作步骤和算法是非常非常复杂的。上面的描述很简单,但是有很多技术难点。搜索引擎不断优化算法和优化数据库格式。不同的工作步骤也会有所不同。但基本上所有主流搜索引擎的基本工作原理都是一样的,在过去几年和未来几年都不会出现可以预期的实质性变化。