
Spotify
在下图中,Query代表用户提出的问题,Responses则是针对问题检索出的答案。Number of words in common表示Query与Responses中共有的单词数量。例如,问题为what color is the grass? 检索结果中,The grass is green 与问题重复的单词最多,因此该结果被判定为最佳答案。这种匹配方式通过统计共同单词的数量来衡量相关性,从而确定最符合问题的回答。这种方法简单直观,适用于初步筛选答案的场景。接下来,我们定义一个关键词搜索函数:定义keyword_search函数时,设置了四个参数如下:该在线数据库包含10种语言的数据,分别是英文(en)、德文(de)、法文(fr)、西班牙文(es)、意大利文(it)、日文(ja)、阿拉伯文(ar)、中文(zh)、韩文(ko)和印地文(hi)。查询时可选择不同语言进行操作。此外,函数中设置了BM25算法(with_bm25)以支持关键词搜索。接下来,我们将使用默认的英文进行关键词搜索示例。
为使结果清晰,避免混乱,可定义一个整理函数来处理上述多项结果。

YouTube
下面对这个关键词搜索系统的基本原理进行说明。该系统主要由查询和搜索系统两部分构成。其中,搜索系统能够调用预先处理好的文档数据,以回应查询请求。最终,系统会生成一个按照与问题相关性排序的文档列表,展示的内容。
搜索引擎的内部构造搜索系统内部主要分为两个工作阶段。第一阶段是检索阶段,通常利用 BM25 算法,结合倒排索引的思想,对文档集合中的文档与查询问题进行匹配评分。第二阶段为重新排序阶段(re-ranking),该阶段会对第一阶段产生的评分结果进一步优化排序,并最终输出排序后的结果,展示的流程所示。这两个阶段共同确保了搜索结果的相关性和准确性。
从上图可以看出,倒排表包含两列:第一列为关键词,第二列为该关键词所在文档的ID。构建倒排表的主要目的是优化搜索速度。当用户在搜索引擎中输入查询内容时,系统能够在几毫秒内返回结果。在执行搜索任务时,关键词对应文档ID的出现频率是评分的重要参考。例如,在上图中,Color和Sky均出现在804号文档中,因此804文档被命中的次数较多,评分会更高,最终在检索结果中的排名也会更靠前。这种机制确保了相关性更高的文档优先展示给用户。关键词检索并非依据语义,而是通过问题与文档中重复单词的数量进行匹配。这就导致一个难题:如果文档和问题在语义上相关,但没有共同的单词,关键词检索就无法找到相关文档,如下面的例子所示。
当文档和问题语义相关但无重复词汇时,关键词检索会失效,无法找到相关文档。这时需要借助语言模型通过语义识别进行检索。接下来,我们将利用语言模型优化关键词搜索的两个阶段,具体所示。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号