电商运营之站内搜索全面指南(五)

2 评论 10234 浏览 42 收藏 10 分钟

上一章给大家安利了一下搜索结果页优化的原理,或者叫个人看法。搜索结果页的引流和转化。各个模块的优化运营方式与指标。那么这一章就来好好探讨下,站内搜索的流程,用户的搜索词是经过怎样一个流程最后变成呈现在我们面前的搜索结果页的。

为了便于大家理解,这里还是用一张通俗易懂的流程图给大家瞧瞧,有个大概的脉络,我也会依照此脉络给大家介绍。话不多说,上图!(为了显得不那么有产品味道,通俗易懂,我将其简化了很多)

一般而言,干劈流程是没啥味道的,所以我们就带着例子进去走一遍,差不多就了解了,先声明一下,我说的不一定对,切勿盲从。

我们先从汉语开始,关键词为“男士的印花T恤”

首先会进入预处理环节,此环节会将该关键词的无用部分进行去除,比如停用词。其中“的”就是我们要砍掉的部分,其实在预处理阶段还会有剔除一些左右两边无用的空格等,那么如何确定停用词呢,在汉语里面任何词可能都有用,但是在特定的语言环境下,许多的词组就成为了停用词,比如淫秽词,极限敏感词(参考广告法)等。

经过预处理环节之后,进入智能纠错或者人工改写环节,需要判断这个关键词是否有错别字(算法/人工词库),是否命中人工改写的词库(暴君功能)。

经过这一环节处理后,进入到语种识别环节,国内电商也是支持英语环境的,此时会对该关键词进行语种识别,确认该词应该在哪种语言环境里搜索,有的电商是没有这个环节的,因为确实没有必要。对于出口型跨境电商而言就显得很有必要,像速卖通,虾皮,亚马逊等。

此时进入词性还原阶段,词性还原顾名思义,针对英语就是单复数还原,时态还原,词干提取等,对于汉语而言则是识别其中关键词主干,男士印花T恤(预处理已经把“的”给去掉了),整个词都是主干。

随后进入分词阶段,此时分词系统会对“男士印花T恤”进行分词,一般而言汉语会进行n-gram多粒度分词。分词结果如下:男/士/印/花/t/恤/男士/印花/T恤/男士印花/印花T恤/男士T恤/。

对于上面的ngram不了解的也没关系,后续专门的算法章节会讲到。对于一些音型文字比如英语,法语,印尼语等使用的空格分词法,就是按照关键词之间的空格比如 “women dress”分词结果则直接从空格处进行切词。

为啥和汉语不同呢,其实英语也有多粒度切词,和汉语的切词方式都是基于词典里的词组合理性进行的,但是汉语与音型语言有着些许区别。

这里延展一下:音型语言与结构形语言在语言含义上有着两种决然不同的含义容量与精度。即单词含义容量单个单词语言含义表达范围精度:单个单词语言精准描述的范围值,范围值越小精度值越高。

结构形语言的起源来自于象形文字,即以物品的形状来结构文字,排除文学性的表达,基本的文字的表达内容需要多个单词组成完整精确的意义,单个文字的含义容量广泛,缺乏精度。

音型语言文字起源于对于字母拼接,较少的字母组合形成字根,用以作为语言延伸的基础。通过较少的字根来扩展获得更多的语义词汇,以此作为层级来拓展词汇分支。由词根变化向外扩展,变形越小含义越接近词根,变形越大含义越远离词根

因此得出个假设结论

  • 音型文字:音型文字单词含义容量范围较低,精度值高;
  • 汉语:象形结构形文字,单词含义容量范围高,精度值低。

汉语搜索采用多粒度词组切词的分词方式很大程度上是基于汉语搜索的单词含义容量较大造成精度不准,所以需要用多个单字组成词来确认搜索词的具体含义。

我们来体验一下:

  • query(汉语):男士印花T恤。切词:男/士/印/花/t/恤/男士/印花/T恤/男士印花/印花T恤/男士T恤/;
  • query(英语):Men Print T-Shirt  切词: men/print/t-shirt/men t-shirt/print t-shirt/。

两者的原理都大致相同,额外的说这些,只是想让大家明白不同语言之间分词是有些许差异的,并不能“一招鲜吃遍天”。

接下来经过分词之后,系统进入到同义词扩展环节,词典以及人工维护的同义词词库用来扩展分词之后的关键词,具体例子,印花与印染为同义词,男士与男生和男人是同义词,那么这些同义词将一道加入该分词进入匹配召回环节。

进入匹配召回阶段,那么先看下这张图,同样我偷懒也用我前同事的ppt截图作为展示,他这万年不变的例子截图我都看腻了,你们将就下看吧   相信你们一看就能明白,使用的是全词匹配召回。

什么意思?

男士印花T恤的分词结果,同一粒度下需要全部与商品名称或者属性描述匹配才能将该商品召回,少一个匹配补上也不行。

而且多词粒度的权重>单词粒度的权重,也就是说词组匹配要优先于单词匹配。

当词组没有匹配时,再去匹配单词,当然汉语匹配单词是没有什么意义的,一般汉语基本上匹配词组。(我汉语分词的例子有些不是很恰当)

匹配召回结束后进入到“点人头”环节,也叫确认商品是否是“无结果”还是“少结果”无结果就是这个关键词搜不到商品,少结果表示这个关键词搜到小于等于8个产品,有的电商将少结果定为4个 或者12个以内,反正大家知道这个意思就行。

在点完人头之后,进入到大范围的排序阶段,类目排序。

我们将这一环节叫类目预测,将与该关键词最相关的类目放在最前面(需要知道的是,这些类目的商品集合也是要与关键词全词匹配的。不是指所有类目的商品都会被放在前面)。

类目预测一般通过算法进行,人工干预进行补足。此时也确认了筛选项参数的显示范围(即该类目下的参数),顶部分类也会在此时确认是否激发展示。

类目预测结束后,开始进行商品排序,预测的类目与非预测的类目分开排序。排序的算法多种多样,基于用户行为数据,商品综合得分算法进行排序。进而经过网观渲染之后,就是我们看到的搜索结果页啦,

你瞧,简单吧,今天就先到这。

预告下一章内容:站内搜索类目预测的全面解析

#专栏作家#

作者:王欢,微信:wanghuan314400,运营小灰一枚。

本文由 @王欢 原创发布于人人都是产品经理,未经许可,不得转载。

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 大佬,请问停用词,关键词提取,分词这些都是在query前代码里处理吗?还是在建索引时设置,如果在代码里处理,就要在项目里引入词库什么的,会不会很麻烦?

    回复
  2. 回复