【命中】数据处理之搜索如何命中?
本文主要讲解了用户在搜索的时候,是怎么命中的,enjoy~
文章图片
了解搜索过程的基本原理:如何根据关键字匹配内容,如何返回搜索结果,如何将结果展示给用户;
在搜索场景下更合理的划定搜索范围(输入内容命中哪些字段),提高用户搜索效率,提高数据搜索基线;
【 【命中】数据处理之搜索如何命中?】提高日常工作中搜索的效率,更快更准地搜到自己想要的东西。
用户搜索的过程:用户输入关键词,系统根据用户输入的内容筛选出系统认为用户感兴趣的信息,然后按照系统所设定的规则进行排序。整个过程可拆解为三步:分词、筛选、排序。
在了解分词前先看下搜索的存储原理:在系统词库和索引库之间建立关联,通过用户输入的关键词去匹配词库,然后拉取索引库内容展示给用户。
以在美食网站搜索“北京最大的火锅店”为例,索引库中内容为系统内所有店铺,每个店铺包含的字段有店名、位置、月销量、评论量、评分等等;词库中内容为系统内的词条,只要用户输入的内容能够匹配到词条,就可以快速找到词条对应的索引内容,无法匹配到词条时就没有返回结果。每个系统都有自己的词库,搜索的很多优化都是集中在词库的优化上。
文章图片
一、分词
分词是对用户输入的信息进行解读,是自然语言处理的重要步骤。同机器学习原理一样,分词将非结构化的数据转化为结构化数据,结构化的数据就可以转化为数学问题了,解决数学问题正是计算机之所长。
1.1 分词的原因
搜索系统的词库无论如何优化、完善都是有限的,但用户的输入是没有限制的。那么如何把用户无限制的输入对应到有限的词库并返回结果呢?
这就需要引入一个新的概念——分词。简单说就是:系统在对用户输入的内容无法精确匹配时,会将内容进行切分,使切分后的词能够匹配到系统的词库。仍以上图为例,如果用户输入“北京最大的火锅店”,系统中并没有这个词,精确匹配的情况下没有任何结果,此时会将输入内容进行切分,于是
“北京最大的火锅店”——> “北京”、“最大”、“的”、“火锅店”。
拆解后每个词就匹配到了相应的内容,排序后就会返回结果。并不是所有的词都会返回有价值的结果,比如案例中的“的”,几乎所有的信息里面都会含有这个字,因此在系统分词时会被直接忽略掉。
1.2 分词的种类、区别
分词有两种,中文分词和英文分词,二者有着本质的区别。
区别1:分词方式不同,中文分词更难更复杂
英文有天然的空格作为分隔符,但中文没有,如何将一段中文进行拆分是一个难点,切分时断点不同,造成的结果也不同(即歧义识别),如“我们三人一组”就可以有两种分词方式:“我们三人/一组”和“我们/三人一组”。还有一个难点是新词识别,即识别未在词典中收录的词。
区别2:英文单词有多种形态
英文单词存在着丰富的变形和变换,如复数形式,过去式、正在进行式等,为了应对这些复杂的变换,在处理英文时会进行词形还原和词干提取。
词形还原:does、did、done、doing会通过词形还原转化为do;
词干提取:cities、children、trees会通过词干提取转化为city、child、tree。
区别3:中文分词需要考虑分词粒度的问题
分词粒度不同,返回的结果也不同,如“北京科学技术研究院”就有多种分法:“北京科学技术研究院”、“北京/科学技术/研究院”、“北京/科学/技术/研究院”。粒度越大,表达的意思就越准确,但是返回的结果也就越少,因此在分词是要根据不同的场景和要求选择不同的分词粒度。
1.3 分词的方法
① 基于词典分词
推荐阅读
- python 爬虫,咋获得输入验证码之后的搜索结果
- 唯品会无搜索模式真的能让大众消费者驻留页面更长时间吗
- 怎样制作一个简易的信号干扰器
- 《亿万》第九集里,法官用的这个搜索引擎是啥
- 怎样评价比搞平台的自媒体比价搜索功能
- 有啥搜索引擎可以替代Google(外语)
- 高权重论坛有哪些
- 能否在网页搜索中加入点赞机制,从而个性化搜索引擎
- 原谅我辣么肤浅,搜索引擎和分类信息网真的能相提并论吗
- 普通家庭门窗智能报警器,智能门磁。搜索到的都是需要网关才可以,有单独连接wifi就可以的吗
