搜索功能
2021-04-09 14:08:15   1  举报             
     
         
 AI智能生成
  总结检索功能的设计与使用逻辑
    作者其他创作
 大纲/内容
  概括    
     用户体验(设计)    
     样式UI设计、交互设计  
     用户搜索前、搜索中以及搜索后用户对我们的功能的感知  
     功能实现(逻辑)    
     聚焦用户对问题的输入,和我们结果的输出(结果匹配度)  
     搜索的设计    
     用户路径地图    
     用户使用产品 - 有疑问需要搜索解决 - 看见搜索功能 - 点击搜索功能(展开输入框) - 输入问题 - 点击确认等到结果反馈 - 翻阅搜索结果 - 选择结果进行查阅。  
     搜索前    
     对于搜索核心的定义,那就是搜索功能核心在于解决用户的疑问,给予用户满意的答案  
     根据当前场景进行选择放大、缩小搜索对于用户的感官。在越容易产生疑问的地方选择使用输入框搜索作为设计方案,而在不容产生问题的地方还是可以选择搜索图标作为解决方案。  
     文案引导    
     引导使用文案  
     推荐搜素文案  
     搜索中    
     用户点击搜索功能输入问题这段时间,我们看作搜索中  
     当前页面直接进行搜索    
     PC端常见    
     pc页面有大面积区域可使用,可以尽情展示内容所以常见。  
     搜索独立页面    
     移动端常见    
     因受限于手机屏幕大小,在不跳转页面直接搜索的情况下我们可展示的内容过于受限。而采用了新页面承载搜索,那就可以提供更多的功能和内容。  
     可以通过后台管理功能,尽情的增加热门搜索的内容。  
     在用户输入内容后,我们对输入内容进行联想展示,方便用户选择他想搜索的实际内容,提高搜索的易用性和便捷性。    
     联想展示内容不易过多,控制在7个词条左右就行,过多词条会干扰用户阅读。展示内容需要有独立一套逻辑支撑,需要明确告知研发,为什么显示这些内容?这些内容排序依据是什么等。  
     从提高搜索的易用性和便捷性这个目的出发,我们可以收录用户近期历史搜索,以便用户再次搜索相同问题。    
     历史记录每次展示几个,可参考7+-2法则控制数量。(一般人的短时记忆容量约为7个加减2个,即5--9之间。可以理解为7加减2个组块。)  
     搜索后    
     搜索结果的展示在移动端上一般是双排和单排展示。    
     双排能够展示更多的搜索结果。单排能对搜索结果展示更多的信息。到这里基本对于搜索功能的原型就没有问题,下面开始说说搜索功能的逻辑部分。  
     搜索的逻辑     
      
     结论:看似简单的搜索其实并不只是由简单的sql(数据操作语言)进行全数据库搜索,里面还涉及对用户搜索问题的、分词、纠错、预测、召回以及排序排序。  
     分词    
     对输入的文字进行拆分,就叫分词。分词核心在于分词法以及特性字词典库。  
     分词也叫NLP(自然语言处理分析)算是AI人工智能的一个分支  
     方式    
     1、逐词匹配    
     给你一句话,这时你需要将他们分成两两相对或三三相对的词条,但是你并不知道如何那几个相邻的字能够组成字条。那么索性你直接拿着这句话去翻新欢词典,从头到尾翻一次,发现没有符合的时候,就删除最后一个字,在去翻词典。  
     2、正向最大匹配法    
     按照我们的阅读习惯,从左到右进行匹配,而其中的最大的含义就是当出现多个匹配词条时,以字数最多的词条为准。  
     有个用户搜索:“成都动物园在哪里”。
这个时候进行第一次词典查询,按在最大的词“成都动物园在哪里”进行查询,发现没有匹配。
进行第二次查询,这次查询“成都动物园在哪”,同样没发现匹配。
进行第三次查询,这次是“成都动物园在”,还是发现没有匹配的。
第四匹配的时候,这次匹配“成都动物园”,结果在词条里面检索到了。
    
    这个时候进行第一次词典查询,按在最大的词“成都动物园在哪里”进行查询,发现没有匹配。
进行第二次查询,这次查询“成都动物园在哪”,同样没发现匹配。
进行第三次查询,这次是“成都动物园在”,还是发现没有匹配的。
第四匹配的时候,这次匹配“成都动物园”,结果在词条里面检索到了。
 保留结果是“成都动物园”。随后便去除“成都动物园”变成“在哪里”重新开始检索。这样根据我们的词典进行分词,我们可以得到结果:“成都动物园”“在”“哪里”。  
     3、逆向最大匹配法    
     逻辑和正向匹配相同,唯一的区别在于它是从右到左,每次减去开头的字。  
     以“成都动物园在哪里”为例。
第一次词典查询,按在最大的词“成都动物园在哪里”进行查询,发现没有匹配。
进行第二次查询,这次查询“都动物园在哪里”,同样没发现匹配。
进行第三次查询,这次是“动物园在哪里”,还是发现没有匹配的。
.......
最后在第七次查询我们得到“哪里”,随后便去除“哪里”对““都动物园在”进行检索。
    
    第一次词典查询,按在最大的词“成都动物园在哪里”进行查询,发现没有匹配。
进行第二次查询,这次查询“都动物园在哪里”,同样没发现匹配。
进行第三次查询,这次是“动物园在哪里”,还是发现没有匹配的。
.......
最后在第七次查询我们得到“哪里”,随后便去除“哪里”对““都动物园在”进行检索。
 当同样的逻辑缩减到“在”后,还是没有相对应的词典,那么将“在”也单独剔出,开始检索“成都动物园”。这样第一次检索就成功检索出来,得到结果“哪里”“在”“成都动物园”这样的分词。因为是反向其实结果和正向结果相同。  
     4、双向匹配    
     这种匹配法是为了更加准确的分词出现,把正向和反向两种算法都切一遍,然后根据词条颗粒度来进行选择。分词的词条越长越好,非词典词和单字词越少越好的原则,选出这里面最合适的进行匹配。  
     例如:
非词典内的词:正向匹配(1)> 反向匹配(0) 选择反向
词典内的单字:正向匹配(2)= 反向匹配(2) 持平不做选择
总分词数量:正向匹配(3)< 反向匹配(2)选择反向
  
    非词典内的词:正向匹配(1)> 反向匹配(0) 选择反向
词典内的单字:正向匹配(2)= 反向匹配(2) 持平不做选择
总分词数量:正向匹配(3)< 反向匹配(2)选择反向
 词意纠错    
     词意纠错也是搜索里重要的一环节,在搜索的时候,打错字说错话是很常见场景(语言搜索)。  
     1、拼音纠错    
     当输入的汉字存在错误时,系统需要及时联系上下文进行解析,可以将汉字转换成拼音,通过同拼音进行识别,比如“如何吧大象放入病象”,把他们未能分词成功单独留下的汉字转化成拼音“如何“”ba“”大象“”放入“”bing“”xiang”在查询字典进行处理。  
     2、模型算法    
     这部分高于繁琐,想了解的可自行搜索:SVM、Maxent等  
     类目预测    
     用户使用搜索功能在于得到解答,所以我们需要理解用户搜索内容的含义。    
     比如用户搜索苹果的时候,她搜索的是吃的苹果还是苹果手机了。一个吃一个用这两个答案是风马牛不相及的,所以预测类目会对用户搜索结果影响很大。  
     1、人工配置    
     通过后端埋点日志搜集最近热门的搜索词,对这些搜索词进行指定配置,这样就可以保证当用户搜索苹果的时候出来的是苹果手机,而不是真的苹果。  
     2、类目相关性    
     通过对搜索词进行算法计算,从搜索词的重要性、类目数、类目出现次数、搜索词出现次数等进行计算。
代表性tf-dc算法。
  
    代表性tf-dc算法。
 结果排序    
     比如搜索苹果手机,出现的结果是10万+条商品信息,那么谁排第一。就需要从权重出发进行权重排序。(商品少也可以按照最新更新时间排序)。  
     1、词频:对搜索对query进行分词处理,在进行预测类目后对高词频内容优先展示
  
     2、用户标签:符合用户标签喜好的商品进行加权,优先排序
  
     3、时间段:对当前时段营业(客服在线)进行加权
  
     4、销量、好评率:同理这就不说了
  
     5、商品时效:对新更新商品进行加权,可用于互冲旧商品销量、好评的加
  
     6、付费:竞价广告、付费升权等  
    
 
 
 
 
  0 条评论
 下一页