当前位置: 首页 > news >正文

电商搜索入门

一、搜索用途

通常一个电商平台里面的商品,少则几十万多则上千万甚至上亿的sku,在这么多的商品中,如何让用户可以快速查找到自己想要的商品,那么就需要用到搜索功能来实现。

通过分析数据发现,接近40%的点击率是直接通过搜索来的。对于电商网站和平台来讲,一个好的搜索功能,能帮助用户精准快速的找到想买的商品,是提高转化率的重要因素。

二、搜索原理及常用算法

2.1搜索原理简介

当用户输入关键词或者选择特定维度进行搜索时,系统一般会经过以下几个流程步骤进行处理:1.输入层→2.逻辑处理层→3.搜索服务层→4.搜索展示层,详情见下图:

2.2搜索常用算法简介

搜索技术的基石是NLP(Natural Language Processing):自然语言处理,基于NLP会衍生出各种的搜索算法。

本文将简单介绍下其中几种常见的算法,如果感兴趣可以自己知乎百度了解。

2.2.1贝叶斯学习

算法思想:如果一个事物在一些属性条件发生的情况下,事物属于A的概率>属于B的概率,则判定事物属于A。

适用场景:贝叶斯算法适用于商品打标分类、个性化推荐等场景。

2.2.2N-Gram分词(交叉切分算法)

算法思想:将文本内容按字节流进行大小为N的滑动窗口操作,形成长度为N的字符串,每个字符串称为gram,对全部gram的出现频度进行统计,并按照事先设定的阈值进行过滤,抛弃垃圾字符串得到新词。

适用场景:适用于新书和用户搜索词中的未登录词的识别。

2.2.3TF-IDF算法(重点词提取)

提取重点词的算法有很多种,比如TF-IDF算法,TextRank算法和CRF序列标注、主题模型算法(包括LSA,LSI,LDA等)。但是对短文本的提取,特别是字符小于10的文本提取关键词,行业上也没有比较好的解决办法,从目前的测试数据来看,TF-IDF算法比较好一些。

算法思想:简单的理解为一个词在文档中出现的次数越多,而在其它文档中出现的次数少,这个词就越重要。

适场场景:对于分词工具分词后有多个分词结果,提取其中重点关键词的场景。

三、搜索逻辑简介

3.1输入层

按照内部逻辑划分,电商系统中的查询方式通常有两种:关键词查询和特定维度查询。

3.1.1关键词查询

关键词查询是整个搜索功能最重要的入口,可以允许用户随意输入要查询的关键词,通常仅有一个查询关键字长度的限制。

关键词通常跟用户想买的商品有及其密切的关联,以图书网站为例,经过埋点数据分析发现,关键词通常有以下几类:书名、作者、出版社、品牌、热搜词等;

关键词通常可以直接在搜索框输入,有的网站也增加了图片识别、语音识别等高级搜索功能,但本质上还是通过关键词搜索。比如图片识别,就是通过OCR技术识别并提取图片上面的关键词后再进行搜索。

3.1.2特定维度查询

特定维度仅可查询由系统指定的部分可属性,如分类、价格/折扣、出版时间、开本、装帧等,并且用户无法输入查询值,仅能选择查询值。

由于这些数据在系统内部都维护有基础数据,并且保存在指定的字段中,所以对它们的查询相对比较简单。用户在选中对应选项时,可以获得唯一ID,之后根据ID查询相应字段获得结果,查询相对比较准确。

3.2逻辑处理层

当关键词输入之后,系统会对输入的关键词进行一系列的清洗处理,比如违禁词过滤、文本纠错、同义词转换、跳转规则匹配等。

3.2.1违禁词过滤

由于用户输入的搜索词系统是无法控制的,所以可能会存在违禁内容,为了符合国家法律规定,系统需要对用户输入的搜索词进行违禁词过滤后才能进行搜索。

违禁词通常分为极限词、敏感词和禁售类违禁词三大类。①极限词是指对商品有夸大存在且与实物描述不符表极限的词汇,比如最佳、第一、史无前例等。②敏感词是指国家领导人名称或黄、暴、不雅、带侮辱性、政治倾向等不适合公共场合展示的词汇。③禁售类违禁词是指不允许在网站或平台售卖商品的词汇,比如大麻、三唑仑等。

要屏蔽对应的违禁词,后台就需要维护一套违禁词词库,当用户输入的关键字在非法词库中就不再做搜索,这样可以减轻服务器压力。

每个电商网站或平台的违禁词都不相同,而且时常更新。当然网上一般有现成的词库,也可以可以直接导入系统,不满足的后台再人工进行维护扩充即可。

3.2.2文本纠错

当用户输入查询关键词时,可能会输入成拼音、或者错别字,比如用户本来想要输入"水浒传",实际却输入成“shuihuzhuan"或者"水许传",但是结果依然能返回和"水浒传"匹配的数据。这是因为系统逻辑中有一套文本纠错的程序在处理,当系统对比有错误时,会进行纠正处理。

同样后台也需要维护一套纠错词库,当用户输入的关键字如果在纠错词库中,则系统会自动将错误关键字替换为设置好的关键字,如:shuihuzhuan->水浒传;水许传->水浒传,之后查询实际采用的是转换后的关键字。

3.2.3同义词转换

当用户输入查询关键词时,也有可能输入了和关键词意思相近的词语,比如用户本来想要输入"三体",但实际却输入成"3体",这个时候系统就会将"3体"转换为"三体",再进行下一步处理。

实现的原理和文本纠错一样,在此便不再赘述。

3.2.4跳转规则匹配

有时我们在电商网站或平台上输入查询关键词后,会发现部分关键词结果不会跳转到结果列表页,而是跳转到一个商家店铺主页或者活动页,如输入关键词"4.23世界读书日",可能直接就进入到了读书节的活动页面。

要实现这个功能,后台同样需要维护一套跳转规则映射库。用户的搜索关键词与规则库中的关键词匹配时,则返回规则所指定的跳转路径,前端页面直接跳转过去,通常这个跳转规则是有时间限定的。

3.3搜索服务层

当用户输入的查询关键词通过违禁词过滤、文本纠错、同义词转换、特定跳转匹配后,依然没有匹配结果。这时系统会将关键字交给商品搜索服务器,搜索服务器首先会对关键字进行分词处理,然后再根据分词进行商品查询,并根据权重规则获得商品权重值,之后再进行权重值排序,最后返回查询结果。

3.3.1分词

分词是指将一个比较长的关键字拆分成多个合理的比较短的关键字的过程。

由于中文不像英文有天然的分隔符,因此需要有专门的分词工具来处理。比如‘人人都是产品经理’这个搜索词,经过分词后可以将其拆分为‘人人、都是、产品经理’。

分词看起来很简单,但是如何将关键词拆分为好的分词并非易事,分词结果的质量好坏直接影响着搜索质量。比如‘人人都是产品经理’这个搜索词,经过不同的分词工具分词后可以有不同的结果,比如:

‘人人、都是、产品经理’

‘人、人、都是、产品、经理’

经过实际的搜索结果来看,第一种分词得到的搜素结果要比第二种好很多。

目前图书行业常用的分词工具有百度分词、jieba(结巴分词)、HanLP(汉语言处理包)、NLPIR(汉语分词系统)等;

通常正常情况下,分词工具都能对关键词正确,但是也会出现一些分词异常情况。比如单字搜索词,当用户输入‘飘’,则会分词失败,这个时候人工将其加入分词库。另外还有一些新品,也会出现分词失败的情况,类似场景较多,在此便不再展开来讲。

3.3.2权重排序

权重是衡量某一指标的重要程度,在电商平台里都是各家的商业机密,网上公开的资料也是少之又少。

一个商品的权重高低,直接决定着商品排序情况,权重越高则商品排名越靠前,也就意味着商品有更多的曝光率,直接影响着销售。

以图书商品为例,常用的权重计算维度有销量、图片、套装类型等,当然也可以手动调整指定商品的权重。

权重的计算方法有很多中,如加权计算法、加权平均数法、AHP层次法、优序图法等等。

3.4搜索展示层

商品经过分词搜索,再经过权重模型计算排序后,就会展示在前端给客户查看,但是系统查询的结果不一定就百分百是用户想要的,所以用户可以自己根据一定的规则再次进行筛选新排序,最终找到自己的想要搜索结果。

常见的排序规则有销量排序、价格排序、销售类型、出版时间排序等。

四、搜索指标

商品从搜索到最终付款,中间主要有以下几个流程:

其中搜索结果质量的好坏,决定用户是否点击,而评估搜索质量主要有两个指标:召回率和查准率。

4.1召回率

召回率(Recall Rate,也叫查全率)是指搜索出的商品总数与系统中所有和搜索词相关商品总数的比率。

4.2查准率

查准率是指搜索出的商品中和搜索词有关系的商品总数与总召回数的比率。

召回率与查准率二者之间没有必然关联,但是又是相互制约的。召回率不是越高越,比如当召回率越高时,查准率可能越低。所以我们通产将这两个度量值融合成一个度量值,如F度量(F-measure)来进行综合评估。

来源:https://mp.weixin.qq.com/s/p_p8DeouvBLM7ako_1OBHA

相关文章:

电商搜索入门

一、搜索用途通常一个电商平台里面的商品,少则几十万多则上千万甚至上亿的sku,在这么多的商品中,如何让用户可以快速查找到自己想要的商品,那么就需要用到搜索功能来实现。通过分析数据发现,接近40%的点击率是直接通过…...

4.3.1初阶数据结构(C语言)(无头不循环单链表)

1.完整的单链表注释&#xff1a; #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h>typedef int SLTDateType; // 重定义数据类型typedef struct SListNode // 定义结构体类型的节点 {SLTDateType data;str…...

一文深度解读音视频行业技术发展历程

从1948年的香农定律&#xff0c;到音视频的今天。IMMENSE、36氪&#xff5c;作者 北京时间2月28日凌晨&#xff0c;FIFA年度颁奖典礼在巴黎举行。梅西荣膺年度最佳球员&#xff0c;斯卡洛尼当选年度最佳男足主帅&#xff0c;马丁内斯荣获年度最佳男足门将&#xff01;阿根廷因…...

面向对象拓展贴

1. 类和对象的内存分配机制 1.1 分配机制  Java 内存的结构分析 栈&#xff1a; 一般存放基本数据类型(局部变量)堆&#xff1a; 存放对象(Cat cat , 数组等)方法区&#xff1a;常量池(常量&#xff0c;比如字符串)&#xff0c; 类加载信息示意图 [Cat (name, age, price)]…...

Android仿QQ未读消息拖拽粘性效果

效果图原理分析首先是在指定某个位置画一个圆出来&#xff0c;手指按到这个圆的时候再绘制一个可以根据手指位置移动的圆&#xff0c;随着手指的移动两个圆逐渐分离&#xff0c;分离的过程中两圆中间出现连接带&#xff0c;随着两圆圆心距的增大&#xff0c;半径也是根据某一比…...

Linux 打包压缩解压指令 gzip bzip2 tar

总结自鸟哥Linux私房菜 Linux压缩文件的扩展名大多是&#xff1a;“.tar, .tar.gz, .tgz, .gz, .Z, .bz2, *.xz”&#xff0c; 不同压缩文件使用了不同的算法&#xff0c;不能通用压缩或解压 常见扩展名&#xff1a; *.Z compress 程序压缩的文件&#xff1b; *.zip zip 程序…...

系统升级丨分享返佣,助力商企实现低成本高转化营销

秉承助力传统经济数字化转型的长远理念 酷雷曼VR再次在VR全景营销中发力 创新研发“分享返佣”功能 进一步拓宽商企VR全景营销渠道 助力商企搭建低成本、高传播、高转化 的VR营销体系 01、什么是“分享返佣”&#xff1f; ●“分享返佣”即“推广”返佣&#xff0c;是酷…...

机试代码模板

文章目录进制转换高精度加/乘法搜索BFSDFS树二叉树遍历图Dijkstra算法Kruskal算法动态规划最长公共子序列(LCS)最长上升子序列(LIS)KMP算法进制转换 #include <iostream> #include <string> #include <cmath> #include <iomanip> #include <algori…...

Java性能优化-垃圾回收算法-理解CMS回收器

垃圾回收算法 理解 CMS回收器 三个基本操作 1.回收新生代&#xff08;同时暂停所有的应用线程&#xff09; 2.运行并发周期来清理老年代数据 3.如果有必要则FULL GC压缩老年代 当发生新生代回收 &#xff0c; 如果老年代没有足够的空间容纳晋升的对象则执行FULL GC,所有线程停…...

Oracle11G的表空间数据文件大小限制问题处理

1.表空间数据文件容量 oracle11g的表空间数据文件容量与DB_BLOCK_SIZE有关&#xff0c;在初始建库时&#xff0c;DB_BLOCK_SIZE要根据实际需要&#xff0c;设置为 4K,8K、16K、32K、64K等几种大小&#xff0c;ORACLE的物理文件最大只允许4194304个数据块&#xff08;由操作系统…...

计算机三级|网络技术|备考指南|网络系统结构与设计的基本原则|1

一、网络系统结构与设计的基本原则宽带城域网的关键技术p1 p2 p3设计一个宽带城域网涉及“三个平台一个出口”&#xff0c;即网络平台、业务平台、管理平台和城市宽带出口。宽带城域网&#xff1a;宽带城域网划分为三个层次&#xff1a;核心层、汇聚层、接入层。核心层承担高速…...

基于 TI Sitara系列 AM64x核心板——程序自启动说明

前 言 本文主要介绍AM64x的Cortex-A53、Cortex-M4F和Cortex-R5F核心程序自启动使用说明。默认使用AM6442进行测试演示,AM6412测试步骤与之类似。 本说明文档适用开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux开发环境:Ubun…...

自学5个月Java找到了9K的工作,我的方式值得大家借鉴 第一部分

我是去年9月22日才正式学习Java的&#xff0c;因为在国营单位工作了4年&#xff0c;在天津一个月工资只有5000块&#xff0c;而且看不到任何晋升的希望&#xff0c;如果想要往上走&#xff0c;那背后就一定要有关系才行。而且国营单位的气氛是你干的多了&#xff0c;领导觉得你…...

微电影广告的内容突破方案

微电影作为新媒体时代背景的产物&#xff0c;深受大众的欢迎&#xff0c;同时&#xff0c;微电影广告在微电影模式环境下应运而生&#xff0c;以自己独特的传播优势&#xff0c;俘获了大量企业主的青睐&#xff0c;也获得了广大青年群体的喜爱。微电影广告欲确保可持续发展&…...

茌平区为什么越来越多的企业由请高新技术企业?山东同邦科技分享

茌平区为什么越来越多的企业由请高新技术企业?山东同邦科技分享 近年来&#xff0c;越来越多的企业开始申报高新技术企业&#xff0c;认定为国家高新技术企业能获得非常多的好处&#xff0c;那么具体都有哪些呢? 一、国际高新技术企业认定的好处: 1、财政补贴: 获得高新企业…...

谷歌优化排名怎么做出来的?谷歌排名多久做上去?

本文主要分享谷歌排名的算法机制&#xff0c;让你很容易地用更短的时间把Google的自然排名做到首页。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 谷歌优化排名怎么做出来的&#xff1f; 答案是&#xff1a;持续更新原创优质内容…...

字节跳动青训营--Webpack

文章目录前言一、为什么要学习Webpack&#xff1f;二、什么是Webpack&#xff1f;1. 产生背景2. 基础概念三、使用Webpack1. 安装2. 编辑配置文件3. 执行编译命令核心流程四、如何使用Webpack流程类配置配置总览五、理解Loader六、理解插件插件钩子课外关注资料前言 此文章仅用…...

微信多媒体文件speex格式转为mp3文件格式

1、安装speex环境 wget https://ftp.osuosl.org/pub/xiph/releases/speex/speex-1.2.0.tar.gz tar -zxvf speex-1.2.0.tar.gz -C /usr/local/ cd /usr/local/speex-1.2.0/ ./configure make make install 2、配置path到/usr/lib 因为安装的speex生成的可执行文件默认在/usr…...

IAP初探

IAP(In-Application Programming)在应用编程&#xff0c;浅显易懂&#xff0c;按照字面意思即是在程序不关闭情况下&#xff0c;对应用进行再次写入程序&#xff0c;对程序的写入需要传输数据&#xff0c;而传输数据的前提是通信&#xff0c; IAP对代码进行更新可以简要分为以…...

【组织架构】中国铁路兰州局集团有限公司

1 公司简介 中国铁路兰州局集团有限公司&#xff0c;是中国国家铁路集团有限公司管理的18个铁路局集团有限公司之一&#xff0c;简称“兰局”。经过59年的发展&#xff0c;现已成为西北地区最大的交通运输企业之一&#xff0c;形成了以兰州为枢纽&#xff0c;由陇海铁路、包兰铁…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...