热搜:
编辑导语:query 是一个查询参数类 ,封装了查询条件,分页,排序等功能,在搜索功能设计中,会接触到此功能;如今随着互联网的不断发展,我们会经常网上进行搜索查询,并且能从搜索出来的结果中得到很多信息;本文作者分享了关于query分析的一些思考,我们一起来了解一下。

一、引言

如果是你来做搜索功能,你会如何设计?

在我之前参与项目的搜索功能,前期只提供搜索最基本的功能,如搜索入口、搜索框、模糊搜索、搜索结果;在后续迭代的版本也很少优化到搜索功能,因为在当前业务范围它的优先级降属于较低,但实际上搜索功能不仅限如此。

搜索主要目的是根据用户输入的信息查找匹配的内容。基于大数量基于大量数据的产品搜索功能才能发挥它极大的价值。

搜索功能我们可以拆解成三个模块:搜索前、搜索中、搜索后

  • 搜索前:搜索入口、搜索引导、搜索热词等;
  • 搜索中:关联词、下拉提示、自动纠错等;
  • 搜索后:无结果内容的推荐、有结果内容的排序等。

本篇文章想要围绕【搜索中】模块去展开讨论,当用户在前端输入内容时,系统会如何处理去帮助用户进行搜索呢?

二、案例

在分析搜索词数据中发现大部分的用户会通过“pg”去搜索商品,没有产生任何浏览或交易等行为;于是在自有的产品和其他电商平台使用“pg”搜索,在自有平台是未查询到任何商品信息,其他电商平台却能搜索到与苹果相关的商品信息,比如苹果水果、iPhone手机等。

当用户在使用搜索查找商品并未出现期待值的结果时,等于对这行为画上了等号;用户可能会重新搜索商品或直接退出程序转向其他平台,这无疑对平台是一个损失,没有留住用户,没有产生任何转化率。

平台属于二手手机电商并有销售iPhone手机,我们也尝试过以输入商品名称进行搜索,它是能正确找到商品;系统目前是将商品名称作为搜索的唯一标准,这远远覆盖不了用户的需求,每个人对商品的叫法不同,导致相同的物品会存在不同的叫法,搜索习惯也会不一样。

比如iPhone,大部分人会在潜意识里接将iPhone翻译成中文“苹果手机”,有的人习惯用苹果的缩写“pg”、苹果拼音“pingguo”或苹果等其他叫法进行搜索。你看,不同的搜索内容但对应的商品却是相同的,因为系统只能通过搜索商品名称与数据库的商品进行匹配,才会理解不了用户其他的需求,导致用户搜索不到相关商品。

当平台希望用户通过搜索方式提高商品的曝光率、点击率或下单率等。那需要去分析用户的每个搜索词以及产生的结果,不能让已存在的商品因为搜索功能不足而去增加用户搜索步骤,每多一个步骤都会造成用户的流失可能性;并不是每个用户都会按照平台定义的商品名称去进行搜索,我们应当扩大搜索匹配的范围,让不同的叫法都能找到对应的商品,从而提高用户搜索效率。

所以该如何去扩大搜索匹配的范围呢?

三、解放方案

根据阿里提供的开放搜索文档中,我们可以知道搜索流程:

对于搜索流程我这样理解,用户在前端输入query并确认搜索,系统需要对query进行预处理,将原始的数据转换为可以理解的语义,对query进行一系列智能分析(停用词、拼写纠错、同义词等),将用户输入的query进行改写后再召回,在通过算法排序按照用户的搜索意图进行前后排序,这样就完成一次搜索。

1.为什么要query分析?

Query是指用户输入的搜索词,它直接决定搜索的结果是否满足需求。query分析是将搜索词演变成多个搜索场景进行多次搜索。

以商品“西红柿”为例,前提搜索条件以商品标题为准。

场景1:北方称为“西红柿”,南方称为“番茄”, 因南北文化差异导致了同个商品对应不同的名称。平台的商品名称“西红柿”,南方用户会以“番茄”进行搜索。

场景2:在搜索页面唤醒的键盘恰好是iPhone的英文键盘,从英文键盘切换到九宫格有两种方式,一个是切换键盘的“地球”按钮,需要切换到4次才能到九宫格;另一种是长按键盘“地球”按钮选择九宫格键盘。两种切换方式都有点繁琐,想直接在英文键盘上以拼音的方式输入商品名称“xihongshi” 。

场景3:晚上下班后没有在公司附近解决晚餐,在公交车上点好外卖等到家就能够吃上;由于是下班高峰期车上的人流量很大,偶尔会出现急刹车的突发情况,需要一手抓住扶手,另一只手在手机上点外卖;现在的手机都是大屏幕,一只手很难轻松的触碰到整个键盘,会输入商品名称缩写“xhs”。

由以上场景得出的结论,在不同的场景下用户会以不同的query来搜索同个商品。当以商品名称的标准来搜索会找不到对应的商品,用户可能会换个词继续搜索,但也可能会去其他的平台进行搜索或并购买商品。

为了避免以上情况,系统需要通过query去辨识场景的类型提供不同的策略,为用户找到更多的商品。

阿里提供的query分析策略是:停用词、拼写纠错、同义词等词库;当找到相关商品时,结合类目预测和点击行为数据进行优先级排序。类目预测是指不同的名称对应的商品类目会有所不同,而行为数据有浏览、收藏、下单等。

举例:

用户输入的query是“苹果”,在找到的对应的商品时,其中一部分所属的类目是“水果”,另一部分所属的类目是“电子产品”,根据行为数据,在搜索“苹果”的人里面,点击“电子产品”类目下的商品要大于“水果”类目的人。

  • 当在用户对商品没有产生行为的时,可优先根据之前采集的数据优先显示“电子产品”下的商品,其次是”水果”;
  • 当用户在搜索结果页面或其他页面浏览了“水果”类目的商品,再次搜索时会优先显示“水果”。

商品的排序是与query的数据相结合,其次才会针对个人的行为数据优先显示商品。

2.query分析方式

围绕停用词、拼写纠错、同义词展开分析。

1)停用词

停用词是指在信息检索中,过滤关键词中无意义的词去提高搜索效率否则会影响到搜索结果。常见词有“的、了、么、呢、吧、啊”等语气词以及标点符号等。

在人们日常交流中通常偏口语化,会潜意识的在书面表达中展示出来;以至于在输入query时容易口语化带入语气词,当大部分商品含有同个语气词时,是无法保证提供真正相关的搜索结果,同时降低搜索的效率,对停用词进行干预是为用户召回较为精准的搜索结果。

举例:

“海南的香蕉”是口语化的方式,但query是“海南的香蕉” 会发现搜索结果了了无几,将query换成“海南香蕉”却会找到相关商品,就需要对搜索词进行干预屏蔽“的”,最终query“海南的香蕉” 呈现的结果与“海南香蕉”一致。

2)拼写纠错

拼写纠错是指用户输入query存在错别字为其提供自定义纠错行为。错误的输入会导致查询结果不符合或无结果,因此需要对用户的输入进行检查并给出纠错建议,对于确定的拼写错误直接改写成正确。

中国汉字有大量同音不同字的词语,在拼音输入法中容易存在错别字。用户在输入的过程中对某个错别字有着高频率的使用,日后的拼音输入中也会高频率的出现;因为输入法越来越智能,是会记录你的行为并且输入拼音后的第一个字就是你上次选择的字。

举例:

“福健特产”、“口服夜”、“头胞”。

3)同义词

同义词是指同个商品存在不同的表达方式,分为标准词(原名称)和其他名称;不论是输入标准名称或其他名称都能够找到该商品。同义词主要功能是对query进行同义扩展,与商品其他名称进行关联找到更多相关商品。

在电商搜索环境中,同义词分为好几类:国际品牌同义词、新词旧词替换、地区称呼不同等。

国际品牌同义词:

为了提高国外品牌在国内知名度及方便国内用户能快速记住品牌名,在进入中国市场会建立中文名称。让同个商品多了一个名称,所以用户通常会对中文名称印象深刻;比如国外品牌“adidas”、中文名称“阿迪达斯”、简称“阿迪”。

新旧词替换:

不同时期对同个事物的称呼不一样,这些不同的称呼又同时存在一个时代里面。以“自行车”为例,70年代称“二八大杠、洋车、脚踏车” 、80年代称“自行车”、90年代称“单车”。

地区称呼不同:

我们常说南北方文化差异,是指在同个事物有不同的称呼。事实上不仅是南北方,每个省份、每个城市对事物有特定的称呼,以馄饨为例,四川称“抄手”、广东称“云吞”、北方称“馄饨”。

不管什么类型的同义词,如果没有与其他称呼相关联,则只能召回少量的相关商品。

四、总结

在搜索过程中要考虑用户不同的场景用不同的query搜索同个商品,因为不同的query搜索结果不同,并不一定满足用户的搜索需求。

query分析是将搜索词演变成多个搜索场景进行多次搜索,所以需要通过query去辨识搜索场景的类型理解用户搜索意图为其提供不同的策略,从而扩大搜索范围为用户找到更多的商品。