【产品设计】电商类产品搜索功能如何优化?

news2024/10/7 4:27:41

在这里插入图片描述

搜索功能对于电商类产品而言尤为重要,当用户带着明确的目的去搜索自己需要的产品时,却没有得到他想要的结果,这在很大程度上直接影响了用户对于产品的体验。本文作者结合自己的经验,来探讨关于电商类产品搜索功能应如何优化。

在讲主题之前想跟大家分享一下前些时间听到梁宁产品30讲里对用户画像的描述,里面有提到一组经典的用户画像大明、笨笨和小闲:大明呢对应的是对自己需求有明确认知的用户,脑子很清楚自己想要的是什么;笨笨则是对自己的需求只有模糊大概的方向,不清晰;至于小闲,想必大家也能猜得出来,主要是闲来无事就是想打发时间的用户类型。

B端采购产品面对的用户显而易见都是大明,他们都是带着明确的目标进行采购的,正是因为目标明确。所以在三种用户类型中,大明最依赖于搜索,他们的需求也是最简单的——快速找到自己想要的东西,价格实惠。因此搜索好不好直接影响到产品能否满足用户的需求。

一、面对的问题

第三方api接口质量差

因为是小公司的缘故,一开始搭建采购平台时接入的是某电商采购,但对方所提供的搜索接口质量太差、分词不准、召回率低或者召回数据量过大等等。打个比方:让你叫个周杰伦回来,要么周杰、杰伦、周杰伦都回来了,要么没人回,要么叫回的无关人员多的你都应付不过来了,简而言之就是问题多过对策。

自建搜索缺人缺资源

第三方的搜索接口太差,公司就已经做出了自己的搜索功能,但是人力物力有限,没有过剩的资源,再加上公司业务战线太长只能顾着拼命往前线赶,都无法顾忌这个路上的大坑,结果做了个烂尾的搜索。

虽然分词词库基于ik开源词库搭建,分词有了稍许改善,召回率也有了保障,但是分词结果依旧不精准,无法实现语义识别,根本不能满足大明用户的基本需求。

还是拿周杰伦举例:不仅来了周杰、杰伦和周杰伦,甚至还来了同名的阿猫阿狗。

二、老板的期望

不管做任何行业任何职业,老板都是一个躲不开绕不过的存在。做产品更是如此,因为很多小公司的老板就基本干着产品的活儿,所以跟你产品意见不合那就是家常便饭。

对于公司产品搜索功能,我们老板的期望还是比较谦虚的,仅次于国内知名电商平台的搜索体验就好了,不要100分,99分就行了。我的天,这真的是让我咬牙切齿了。

就我个人的体验来说,公司采购的搜索功能基本也就是个40、50分不及格的样子,加上公司没有专业做过搜索的产品,而我也是个新人,技术资源支持也不足,所以就算有心杀贼也无力回天。

问题总是接二连三的,骂人也是要骂的,但是事儿总得去做,毕竟总得跟老板表个态,就算面对不可能完成的任务,也必须抱着不破楼兰终不还的决心。

冷静思考一下:自己面对的问题主要集中在几个方面:搜索接口、分词、语义识别这三个方面。

基于这几点,通过几次产品技术的讨论会议,也算是确定了现阶段可以实施的优化方案如下:

三、优化的方案

1. 优化ik分词词库

大部分电商平台都是通过分词来提高商品的召回率以及相关度的排序,而分词词库则是保证分词准确的关键。上文里周杰伦的例子,正式因为分词词库里存在周杰、杰伦这些无效词,才使得会召回他们。

而ik词库分为基础词库、扩展词库和stopword,分词是根据基础词库里的词来分,扩展词库则是对基础词库的补充,而stopword里的词就是被过滤掉的词,因此优化ik词库采用三步走战略。

  • 首先是清洗基础词库的无效字词,以非名词和相关度过低的字词为主;
  • 其次是补充扩展词库,毕竟ik词库是只是个词库,没办法自动更新,与时俱进,它有周杰伦不一定有蔡徐坤,所以需要我们自己去新增;
  • 最后就是增加stopword,这个网上搜索一下就有了,ik自带的stopword量很少,通过补充,可以有效地过滤掉一些不必的分词结果。

2. 关键词绑定类目来辅助语义识别

语义识别就是,让系统去召回周杰伦,系统知道周杰伦是男明星,而不会给你召回同名的其他人。而目前我们公司的能力,是无法从技术层面去实现搜索的语义识别,只会去全部召回匹配到标题名称里包含搜索关键词的商品。

为此只能通过人工的方式去将关键词和类目进行关联,相当于给关键词打了标签,找周杰伦只会在男明星的类目下去召回,保证了搜索结果的相关度。

小结

搜索功能的优化除了这些还有索引、排序等等,以上的优化方案都是基于我们公司的实际情况来说,也是为了满足大明用户的基本需求(可以搜到想要的东西)为出发点,虽然这些举措对搜索功能的优化起到一定的作用,但是最好的解决办法还是找到一个靠谱的接口或者是一个靠谱的分词词库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kettle之数据库连接-Generic database连接hive(CDH版)

版本:kettle7.1、hive-common-1.1.0-cdh5.5.0 目录 1、创建连接 2、org/apache/thrift/TException 3、org.apache.hadoop.conf.Configuration 1、创建连接 当我们想通过jdbc方式连接hive时,可以配置一个通用的一般数据连接Generic database&#xff…

理解GPT-4:人工智能的全新里程碑及其国内使用

在人工智能领域,每一代的进步都是突破性的。近年来,这个领域的发展尤为引人注目,尤其是在语言处理和生成方面。OpenAI的GPT系列模型就是最好的例证。在GPT-3取得巨大成功后,我们迎来了更强大的GPT-4。 GPT-4: AI的新里程碑 GPT-4…

【2022吴恩达机器学习课程视频翻译笔记】2.2监督学习-part-2

B站上面那个翻译我有点看不懂,打算自己啃英文翻译了(有自己意译的部分),然后懒得做字幕,就丢在博客上面了,2.2之前的章节结合那个机翻字幕能看懂 2.2监督学习-part-2 So supervised learning algorithms …

【qiankun】前端微服务架构踩坑记录

目录 前言 1.Cannot GET /cooperation/board 场景: 分析 解决 2.Invalid options in vue.config.js:"css.requireModuleExtension" is not allowed 原因 解决 3.less版本升级导致除法写法未转换 原因 解决 4.主子应用样式隔离 场景 解决 5…

HOT23-反转链表

leetcode原题链接:反转链表 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输…

Spring Boot 中的缓存注解

Spring Boot 中的缓存注解 在 Spring Boot 中,缓存是一个非常重要的话题。当我们需要频繁读取一些数据时,为了提高性能,可以将这些数据缓存起来,避免每次都从数据库中读取。为了实现缓存,Spring Boot 提供了一些缓存注…

电脑大文件夹怎么加密?大文件夹方法介绍

当我们把电脑中的各种数据分类存放在文件夹中时,可以方便我们使用和管理。但这些文件夹也会变得十分庞大,如果想要加密它们,就需要使用更快速、安全的方法。下面我们来了解一下电脑大文件夹的加密方法。 文件夹加密超级大师 文件夹加密超级大…

享元模式的学习与使用

1、享元模式的学习 当我们需要创建大量相似的对象时,享元模式(Flyweight Pattern)可以提供一种有效的解决方案。享元模式旨在通过共享对象来最小化内存使用和提高性能。它将对象分为可共享的内部状态(Intrinsic State)…

websocket前端的连接与接收数据

什么是websocket 1, WebSocket是一种用于在客户端和服务器之间进行全双工通信的网络协议。它使得在单个TCP连接上可以进行双向通信,允许服务器主动地发送数据给客户端,同时客户端也可以向服务器发送数据。与传统的HTTP请求-响应模型不同,Web…

百度排名代发收录怎么上百度

百度排名代发收录怎么上百度,如何提高百度排名,网站提高排名最新手册!#seo 今天来点不一样的,就是讲一下百度竞价里边最基础也是最容易踩的一个坑,就是我发现很多人很喜欢把自己推广的产品或者说业务直接作为关键词上…

OpenAI 发布的新语音系统Whisper能力到底有多强?

OpenAI 最近发布了一个名为Whisper 的自动语音识别系统,声称其在英语语音识别方面已经接近人类水平的鲁棒性和准确性。这个系统使用了68万小时多任务监督数据来进行训练,并且在处理口音、背景噪音和技术语言等复杂场景时表现出了很好的鲁棒性。那么&…

s3 删除事故?

起因 一次巡检s3备份查看时, 一回车手滑,出现了下面这种画面,生产事故?!!! 现象 aws s3 rm s3://gfai-hk/upload.cmd 证实的确被删除了,推断后面的生产数据也被全删, 尝试用s3命令恢复发现需要该对象开启版本控制, rm被删除才有可能找回,否则永久删除于是尝试下面的命令 先…

跟着李沐学AI(动手学深度学习 PyTorch版)学习笔记——02深度学习介绍

1.课程安排大概共34天的课-(计划7月底看完,争取做到最少两天一更) 2.动手学深度学习课本教材 3.课程谈论坛 4.pytorch论坛 一、 目标 二、内容 三、 学习目标: 四、简单了解深度学习 深度学习: 图片分类物体的检测和…

华为OD机试真题 Python 实现【区间连接器】【2023Q1 200分】,附详细解题思路

一、题目描述 有一组区间 [a0, b0], [a1, b1], … (a, b 表示起点, 终点),区间有可能重叠、相邻,重叠或相邻则可以合并为更大的区间; 给定一组连接器[x1, x2, x3, …](x 表示连接器的最大可连接长度,即 x>gap&…

python网络编程笔记(一)

一:Socket简介 套接字起源于20世纪70年代加利福尼亚大学伯克利分校版本的Unix,即人们所说的BSD Unix。因此,有时人们也把套接字称为“伯克利套接字"或"BSD套接字”。一开始,套接字被设计用在同 -台主机上多个应用程序之间的通讯BSD Socket接口是TCP/IP网…

ArcMap发布arcgis sever缓存瓦片服务

1.全能电子地图下载瓦片地图 2.地图拼接 acrgis sever缓存瓦片 下载完成的文件目录 3.arcMap添加数据 连接本地文件 这一步有坑,一定要加载到瓦片最外层目录,否则看不到图层文件。 找到图层数据,点击添加 添加数据完成,开始发布服…

数字化和物联网的发展如何改变我们的生活方式?

数字化和物联网 (IoT) 的发展已经给我们的生活方式带来了重大变化,而且这些变革将在未来继续发生。以下是数字化和物联网影响我们生活的一些方式: 连接设备和智能家居:物联网使日常物品能够连接到互联网并相互通信。这种连通性允许创建智能家…

记录一次oracle报错IMP-00058: 遇到 ORACLE 错误 904 ORA-00904: “xxx“: 标识符无效

错误原因:导入的表中缺少DATASRC字段 解决方法:在要导入的表中加上DATASRC字段

对 React 状态管理的理解及方案对比

1、React 状态、通信 React 为什么需要状态管理 React 特点: 专注 view 层:专注 view 层 的特点决定了它不是一个全能框架,相比 angular 这种全能框架,React 功能较简单,单一。UIrender(data)UIrender(data)&#x…

Keras-深度学习-神经网络-人脸识别模型

目录 模型搭建 模型训练 模型搭建 ①导入所需的库,导入了 Keras 和其他必要的库,用于构建和处理图像数据。 from keras.models import Sequential from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D import os from PIL import Image …