27-6

搜索引擎的算法有哪些

1. 爬虫与数据抓取

这是整个搜索引擎系统的起点。爬虫是一个自动化程序,它会模拟人浏览网页的行为,从一个起始页面开始,沿着页面中的链接不断地爬取新的网页,并将它们存储到搜索引擎的数据库中

  • 工作原理:爬虫会周期性地访问网站,检查是否有新的内容或更新。为了提高效率,它会遵循一些规则,比如不爬取某些禁止访问的页面(通过 robots.txt 文件指定),或者优先抓取热门网站和经常更新的页面

2. 索引

抓取到的网页原始数据是无法直接用于搜索的。索引过程就是将这些网页数据进行预处理结构化,使其能够被快速检索

  • 分词(Tokenization):将网页内容分解成一个个独立的词语(或称为“词项”)。例如,将句子“深度学习算法”分解为“深度”、“学习”、“算法”
  • 倒排索引(Inverted Index):这是索引的核心。它将词语与包含该词语的文档列表进行关联。这种结构使得搜索引擎可以迅速找到包含特定关键词的所有文档,而不是遍历所有文档

3. 排名算法

这是搜索引擎算法中最核心、最复杂的部分,它决定了哪些搜索结果会排在前面。排名算法的目标是根据用户查询,评估每个网页的相关性(Relevance)重要性(Importance),并进行排序

a. 文本相关性算法

这些算法主要评估查询词和网页内容之间的匹配程度

  • TF-IDF(词频-逆文档频率):这是一种经典的相关性算法
    • TF(Term Frequency):一个词在文档中出现的频率。如果一个词出现得越多,说明该文档与这个词越相关
    • IDF(Inverse Document Frequency):一个词在所有文档中出现的频率。如果一个词在越少文档中出现,说明它越能区分文档,其权重越高
    • TF-IDF 的核心思想是:一个词在一个文档中出现频率高,但在所有文档中出现频率低,那么这个词对该文档的代表性就越强。