• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    五分钟了解搜索原理
    POST TIME:2018-12-03 21:46
     

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

    1. 信息和信息量

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

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

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

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

    1.2 信息量是一个信息能减少不确定性的度量,信息量也是一个信息能增加确定性的度量。

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

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

    2. 搜索的产品逻辑

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

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

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

    3. 搜索数据的存储原理

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

    图1-1

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

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

    简单总结下,搜索的存储原理就是:一个系统词库,一个摆列整齐的内容索引库,同时系统词库和内容索引库之间可以快速关联。

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

    4. Step1:对用户输入信息的解读

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

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

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

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

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

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

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

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

    
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!