搜索功能
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 条评论
下一页