人工智能应用- 搜索引擎:03. 网页定位

搜索引擎的首要任务是从海量数据中迅速找到与用户查询相关的文档。互联网上的信息数量庞大,搜索引擎需要在极短时间内搜索到用户想要查找的内容,并且还要同时应对大量用户的请求,因此必须设计一种高效的查询算法。"倒排索引"是当前广泛采用的一种技术。

我们可以通过一个小例子来理解倒排索引的原理。假设有 1 万名学生,每个学生可以加入几个兴趣小组,每个小组由几十名学生组成。如果我们想知道两位学生是否在同一个小组,应该如何做呢?最直接的方法是逐个检查每个小组,看看他们是否都在其中。然而,如果小组数量庞大,这种方法的效率会很低。更高效的做法是提前为每位学生记录他们参加的小组信息。这样,当我们查询两位学生是否有共同小组时,只需检查他们各自的记录,并找出重叠的小组即可。这种由学生到小组的记录方式就是倒排索引的核心思想。

将这种方法应用到搜索引擎中,关键词就类似于"学生",文档则类似于"兴趣小组"。我们设计一个表,表中每一行是一个关键词,同时记录包含该关键词的所有文档。这相当于建立了一个从关键词到文档的索引。

有了这个索 引, 就能快速定位和用户搜索意图相关的文档。下面给出了一个具体示例:

倒排索引

第一步,确定一批关键词,如"谷歌""地图""创始人"等,为每个关键词建立一个空的索引项。

第二步,离线处理每篇文档。如果它包含某个关键词K,则把这篇文档加入 K 的倒排索引中。处理完成后,每个关键词的倒排索引中就包含了所有与之相关的文档。图 37.2是用 5 篇文档生成的一个倒排索引表,其中第一行表示"谷歌"这个词包含在文档 1,2,3,4,5 中。

第三步,处理搜索请求时。以"谷歌创始人"为例,首先查找"谷歌"和"创始人"这两个词的倒排索引,然后检查两个索引项的交集,即可得到同时包含"谷歌"和"创始人"两个词的文档。这些文档即可作为搜索请求返回的结果。在图 3.15.2 所示的倒排索引表中,文档 3 是搜索返回的结果,因为文档 3 同时出现在"谷歌"和"创始人"两个词的倒排索引中。

相关推荐
relis2 小时前
Zvec 架构深度解析:阿里巴巴开源的轻量级进程内向量数据库
人工智能
测试_AI_一辰2 小时前
项目实战15:Agent主观题怎么评测?先定底线,再做回归
开发语言·人工智能·功能测试·数据挖掘·ai编程
东坡肘子2 小时前
祝大家马年新春快乐! -- 肘子的 Swift 周报 #123
人工智能·swiftui·swift
乾元2 小时前
提示词注入:针对 LLM 的 SQL 注入式攻击分析
运维·人工智能·安全·网络安全·架构·系统架构·自动化
勾股导航2 小时前
灰狼优化算法GWO
人工智能·深度学习·机器学习
sheyuDemo2 小时前
关于深度学习的d2l库的安装
人工智能·python·深度学习·机器学习·numpy
政安晨2 小时前
政安晨【人工智能项目随笔】OpenClaw网关与子节点完整配对指南——从零构建分布式AI助手网络
人工智能·ai网关·openclaw·分布式ai助手网络·openclaw分布式子节点·分布式ai节点·主节点-子节点
shenxianasi2 小时前
【论文精读】Language Is Not All You Need: Aligning Perceptionwith Language Models
人工智能·机器学习·计算机视觉·语言模型·自然语言处理·vllm·audiolm
这是个栗子2 小时前
AI辅助编程工具(八) - Baidu Comate
人工智能·ai·baidu comate