云媒派--原媒体比价网

五分钟了解搜索原理

时间:2022-02-23

本篇文章是对于搜索系统工作原理一个整体的介绍,对于原理的理解,是设计系统举重若轻的基础。

1.信息和信息量

在介绍搜索之前,先介绍两个概念:信息和信息量。

(采用的均是自以为比较通俗易懂的解释,如果感兴趣可以读相关书籍)

信息是减少不确定性的东西,信息也是增加确定性的东西。

前半句是香农信息定义,后半句是逆香农信息定义。举个栗子,回想下,和一个异性交往的过程。在你遇到ta之前,你不知道这个世界上有这个人的存在,后来你看到了ta的样子,后来你了解了ta的性格、口头禅,往事。然后一步一步,你对ta从丝毫不了解,到逐渐熟识。这期间就是一个你不停获取ta信息的过程,正是这些信息,让你从完全不确定ta是怎样的人,到完全确定ta很适合你。

信息量是一个信息能减少不确定性的度量,信息

量也是一个信息能

增加确定性的度量。

关于信息量,有很多数学的描述,但是通俗来讲,可以这么简单理解。举个栗子,证人描述嫌疑犯。a证人的信息是“他是个男人”。b证人的信息是“ta是个高中男生”,c证人的信息是“ta是个长发170摆布的高中生。”d证人的信息是“我认识他,他是学校的扛把子陈浩南”。我们直觉能感受到信息量的大小关系为:a

翻译为计算机可以理解的数学逻辑:本地男人的比例是50%,本地高中男生的比例为8%,本地长发170摆布的高中男生的比例是4%,本地叫陈浩南的扛把子的比例是%。因为p(a)>p(b)>p(c)>p(d),所以信息量的大小关系为:a

2.搜索的产品逻辑

搜索满足了用户迅速找到本身感兴趣内容的需求。用户输入一个query,搜索系统按照用户的输入的信息,筛选出系统认为用户感兴趣的内容,同时根据系统认定的重要性进行排序展示。请注意这个表述,简单而言,搜索可以分为三步。

step1:对用户输入信息的解读step2:按照用户输入信息对内容进行筛选step3:对筛选后的结果进行排序

而要了解这三步怎么在搜索系统中完成,就需要先了解搜索的办事器怎么存储信息。

3.搜索数据的存储原理

上一张图,假设我们做了一个新闻网站,那么它的结构就是下图。内容进行了简化,假设一个新闻,文本只有标题,导语,正文。数据只有阅读量,评论数,分享数。

图1-1

差不久不多就是上图右边的这种结构。右边标识的是新闻内容的存储:就像图书馆的书一样,整整齐齐按挨次排好,便利查找(这个存储结构的名字叫做索引,就是来自于图书馆的用语)。左边是词库:只要一次搜索的输入词能匹配到词库,就可以快速的查找词库到对应的内容。

每个搜索系统都有本身的词库,无法对应到分词的搜索行为就会没有结果。每个搜索系统都会按照目标用户的差别,有对应的一套词库,就像字典一样,《冶金专业词典》和《生物学大辞典》收录的词条是差别的,知乎的词库和淘宝的词库也差别。搜索的很多优化都是集中在词库的优化上。

简单总结下,搜索的存储原理就是:

一个系统词库,一个摆列整齐的内容索引库,同时系统词库和内容索引库之间可以快速关联。

在这个搜索系统的储存结构的基础上,我们提到的搜索三步骤将依次展开。

:对用户输入信息的解读

前面提到,搜索的词库是有限的,但是用户的输入却是没有限制的。那么怎么把无限制的搜索转化为有限的词库,而且匹配到对应的结果呢?这里需要介绍一个新的概念:

分词,简单来说就是对输入字符串进行分拆。

同样以【图1-1】中的新闻搜索系统为例。如果用户输入的query为“中国的转基因食物”,系统中其实没有这个词。如果没有分词功能,这个搜索就会立即结束,,即使系统里确实有对应的内容。分词的工作原理是在无法精确匹配的情况下,会对用户的输入进行进一步的拆分。于是我们得到了下面的结果。

“中国的转基因食物”——“中国”、“的”、“转基因”、“食物”。

并不是所有的词都有信息量,如果召回“的‘’的结果,那么几乎所有的新闻内容里面都会有这个字,召回这么多结果显然是分歧错误的。好比这个query里的“的”,这个词实际上在分词系统中会被直接忽略掉。正是因为出现在内容中的概率差别,一个词出现的新闻越多,这个词的信息量就越小,信息量太小的词会被忽略,也就是

停用词

。同时包罗信息量越大的词的新闻内容,会更更要。那么去掉停用词之后,结果就进一步简化。

“中国的转基因食物”——“中国”、“转基因”、“食物”。

经过处理,用户非尺度的query就被转化为尺度的词库,就可以快速找到对应的内容了。如【图1-1】所示。

:按照用户输入信息对内容进行筛选

经过对用户的query解读之后,其实就得到了一些尺度化的词,而这些词就会对应一些搜索目标内容,接下来就是对于内容的筛选。

免责申明:问答内容为用户发布,不代表云媒派的立场,如果侵犯了您的权益,请联系我们,我们在核实后24小时内删除内容。