关于通用搜索引擎的一些技术点,你了解多少?

优采云 发布时间: 2021-06-29 19:00

  关于通用搜索引擎的一些技术点,你了解多少?

  1.写在前面

  今天和朋友一起学习一些关于通用搜索引擎的技术要点。

  由于搜索引擎内容非常大,每个部分写几个文章就够了,所以这篇文章只是一个介绍,需要老手们深入挖掘。

  通过本文,您将对通用搜索引擎的基本原理和组成有更清晰的认识。仔细阅读,一定有收获!

  别废话了,大家上车!

  

  2.第一个知道搜索引擎2.1搜索引擎分类

  搜索引擎可以根据使用场景和规模简单分为两类:

  一般搜索也称为大搜,如谷歌、百度、搜狗、神马等都属于这一类。

  

  垂直搜索,也叫垂直搜索,是特定领域的搜索,比如用QQ音乐搜索周杰伦的歌曲。

  

  虽然两类搜索引擎的数据规模和数据特征不同,但都旨在弥合用户和海量信息之间的鸿沟。

  

  2.2 搜索推荐

  搜索和推荐经常被比较,但两者之间存在一些差异和联系。

  

  2.3 搜索引擎评价标准

  我们每天都在和搜索引擎打交道,评价一个搜索引擎的好坏可以简单概括为:准确性、及时性、响应速度、权威性等。

  换句话说,搜索引擎了解用户真正想要查找的内容,并且可以快速准确地显示它们。他们还可以收录及时展示一些热点和意想不到的信息,可以很好地赢得用户。

  这个目标需要搜索引擎的多个模块协同处理,这是一个复杂的系统工程,不是一件容易的事。

  3.通用搜索引擎总体概述3.1 搜索引擎基本流程

  大白尝试用通俗易懂的语言来大致表达一下一般搜索引擎的工作原理:

  1.网络蜘蛛爬虫每天不知疲倦地工作收录网页,然后存储起来,让每个站点的页面都有一个镜像,这个规模是百亿/百亿。

  

  2. 单纯的镜像不能直接使用。它需要处理。对每个网页进行分词,建立搜索词与网页的对应关系,这样用户在搜索某个东西的时候,就会得到很多相关的网页。 .

  

  3. 例如,“搜索隐藏的角落”可能会找到100个相关网页,但网页和搜索词之间的相关性必须强或弱,因此需要对网页进行排序。有很多排序策略。最后,优质的网页呈现在用户面前。

  

  用户看到相关结果后,点击或跳过,搜索引擎根据用户的相关动作进行调整,实现整个闭环流程。

  4. 为了更好的理解用户的真实目的,需要进行搜索词意图理解、词条切分、同义词替换、语法纠错等处理,然后获取基于数据的根据用户的这些搜索词查找您想要的网页。

  例如,如果搜索词是“eagles”,则可能是自然界中的老鹰或 NBA 中的一支球队:

  

  3.2 搜索引擎的基本组成

  我们从整体的角度来简单了解一下各个模块的基本组成和主要功能:

  

  接下来简单介绍几个模块的基本内容和技术要点。

  4.网络爬虫模块介绍

  网络爬虫模块是一般搜索引擎的一个非常基础的组件。一般由分布式爬虫实现。我们来看看这个搬运工是如何实现海量网页的发现的:

  

  一个网络爬虫的基本过程:

  爬取过程中有多种遍历策略:深度优先遍历DFS、广度优先遍历BFS、部分PageRank策略、OPIC在线页面重要性计算策略、大站优先策略等。

  

  在工程实践中,您需要根据自己的情况和搜索引擎的特点,选择某种策略或多种策略的组合。

  网络爬虫需要遵循Robots协议(网络爬虫排除标准),这是网络爬虫和网站之间的君子协议。该站点使用该协议告诉网络爬虫什么可以被捕获,什么不能被捕获。

  网络爬虫还需要考虑爬取的频率,防止网站负担过重。总之,搜索引擎的网络爬虫需要做一个谦虚的绅士。

  5.网页内容处理模块

  爬虫模块存储网页内容后,网页内存处理模块开始解析网页内容。主要任务包括:数据清洗、网页内容分词、建立正向索引、建立倒排索引等。

  

  5.1 数据清洗

  一般来说,网页中除了具体的内容外,还会有很多无关的东西,比如html标签、推广等,在实际搜索引擎中是无用的。

  

  内容处理模块会清理掉无用的数据和标签,为后续的分词做准备。

  5.2 中文分词

  对清洗后的内容关键词进行分词,例如一个网页内容有1000个词,分词后大概有50个词,相当于提取了网页的主体,不同部分标题、摘要、正文等。内容以不同的权重处理。

  在分词过程中,会去除停用词、虚词等,如'de、de、di'等,以尽量还原网页的主要内容。

  我们使用在线网页分词工具和真实网页来模拟这个过程:

  网页分词在线工具:

  获取网页:

  

  可以看到分词后可以标注词频。这些是后续网页排名的重要来源。但是中文很复杂,所以有很多分词算法。常见的包括:

  

  5.3 正指数

  假设我们对每个网页的docid进行了唯一编号,经过前面的分词,一个网页就会被分成多个不同权重的实体词。

  所谓前向行是指可以根据docid获取属于网页的所有内容。这是一个符合我们思维的积极过程。相对来说,会有倒排索引。

  我们以一页《隐藏的角落》剧情介绍为例,模拟分词,大致如下(分词结果纯脑补,以实际情况为准):

  

  5.4 倒排索引

  如果我们对10000个网页进行细分,它收录了一些公共搜索词:微山湖、智慧虎山、三十年、隐藏角落等,所以我们将在总结后创建搜索词->网页的映射关系。

  

  所以对于有很多网页的搜索词“隐藏的角落”,倒排索引相当于一个词可以拉出多少个文章的过程。

  

  就像我们谈食物时想到的食物一样:火锅、烧烤、烤鸭、炒菜等,也是一个从点到面的过程。这个反向过程在搜索引擎中非常重要。

  

  5.5 本章小结

  内容处理模块对抓取到的网页进行清理,预先给爬虫模块分配新的URL,对内容进行分词,并建立正向索引和倒排索引,作为前后链接的中间环节.

  特别提到前向索引和倒排索引,字面上并不直观,但道理不难理解:

  正索引:特定于一个网页有多少关键词,尤其是属于网页本身的内容集合,这是一个网页。

  倒排索引:搜索关键词对应多少个相关网页,即备选网页的集合,是一种网页类型。

  6. 网页排序和用户模块6.1 网页排序的必要性

  由于存储的网页有数百亿个,一个搜索词可能与数万、数十万甚至更多的相关网页相关。

  网页排名需要综合考虑:相关性、权威性、及时性、丰富性等方面。

  搜索引擎必须向用户展示高质量、相关性强的网页,并将其放在最前面,否则搜索结果不佳,用户不会购买。

  其实也是一样。例如,搜索引擎返回 10 页结果,每页 10 个结果,以及 100 个摘要。一般用户点击第1-3页后就不会再点击了,因此排序Content的头部对搜索结果至关重要。

  我们还是以搜索“隐藏角落”为例。百度一共返回了10页,其中1-2页的内容相关性强,是一个比较好的搜索结果:

  

  6.2 网页排名常用策略

  网页排名策略是一个不断优化和改进的进化过程。我们来看看有哪些可用的排序策略:

  这是早期搜索引擎经常采用的方法。比较简单,但效果还不错。

  简单的说就是以关键词在网页上出现的频率和位置作为排名依据,因为一般认为搜索词越频繁,位置越重要,相关性越好的网页,排名越高。

  词频不是简单的计数次数。需要一个全局的概念来判断关键词的相对频率。这就是我们要讲的TF-IDF逆文档频率。来看看百度百科的解释:

  TF-IDF(词频-逆文档频率)是一种常用的信息检索和数据挖掘加权技术。

  TF 是词频,IDF 是逆文档频率。

  TF-IDF 是一种统计方法,用于评估单词对文档集或语料库中的一个文档的重要性。

  一个词的重要性与其在文档中出现的次数成正比,但同时与它在语料库中出现的频率成反比。

  举个栗子:

  “用餐”一词在网页上出现了 10 次。虽然出现了很多次,但是“dining”这个词太常见了,因为它出现在很多其他网页上,所以搜索词“dining”的重要性相对降低了。

  链接分析认为:一个网页被其他网页引用的次数越多或被引用的权威网页越多,该网页的质量就越高。

  

  基于链接分析的排序算法有很多,其中最著名的PageRank算法被谷歌广泛采用作为其核心排序算法。

  看一下PageRank算法的基本思想:

  网页的重要性由 PageRank 值衡量。一个网页的PageRank值体现在两个方面:引用该网页的其他网页的数量和引用该网页的其他网页的重要性。

  假设一个网页A被另一个网页B引用,网页B将PageRank值分配给网页B引用的网页,所以网页A被引用的越多,PageRank值就越高。

  另外,网页B越重要,它可以分配给它引用的页面的PageRank值就越多,网页A的PageRank值越高,它就越重要。

  其实这个算法说起来很简单:比如写个公众号,转载一个大V就相当于引用了。其他公众号转载越多,您的公众号内容质量越高。

  

  PageRank 算法也有一定的问题。例如,它对新页面不友好。新页面暂时没有被大量引用。因此PageRank值很低,PageRank算法强调网页之间的引用关系,可能会影响网页本身的主题内容。关注不够,就是所谓的话题漂移问题。

  与PageRank算法类似,还有一些其他的算法来弥补主题关联问题,包括:HillTop算法、Topic-Sensitive PageRank算法、HITS算法等,本文不再展开。

  6.3 网页反作弊和SEO

  搜索引擎也有二八原则。头部网页占据了大量的点击流量,也意味着巨大的商业价值。

  这里会提到SEO,我们来看看百度百科对SEO的定义:

  搜索引擎优化也称为 SEO,或搜索引擎优化。它是通过分析搜索引擎的排名规则来了解各种搜索引擎如何搜索,如何抓取网页,以及如何确定特定关键词的一种方式。搜索结果排名技术。

  搜索引擎采用容易被搜索引用的方法,有针对性地优化网站,提高网站在搜索引擎中的自然排名,吸引更多用户访问网站,提升网站访问次数提高网站的销售和宣传能力,从而提升网站的品牌效应。

  路高一尺,魔力高。只有魔法才能战胜魔法。

  

  网页反作弊是搜索引擎需要解决的重要问题。常见内容防作弊、链接分析防作弊等

  

  6.4 用户搜索意图理解

  用户模块直接与用户交互,接收用户的搜索词,准确理解用户的搜索意图非常重要。

  实际上,用户输入是多种多样的,部分口语化,甚至拼写错误,不同背景的用户对同一个搜索词的要求不同,使用无争议搜索词的目的也不同。

  

  7.全文摘要

  搜索引擎是一个非常复杂的系统工程,涉及到很多算法和工程实*敏*感*词*量的典型代表。深入研究一个模块会受益匪浅。

  本文的目的是和大家简单梳理一下搜索引擎的基本组成和运行原理。是科普文章。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线