作者:hooly
微信公众号:一口袋星光
什么是搜索?
根据提供的已知信息,给用户提供符合各方利益诉求的内容。
搜索的主体:
1.搜索的用户
2.输入的内容(关键词/图片/语音)
3.检索规则
4.搜索结果的处理
搜索流程:
检索原理:
若干一个词库,搜索词按照规范化处理以后,进行分词,分词完成之后,和词库中词语做匹配,匹配命中的,则不再拆词,拆词节后之后,用拆好的词去搜索。
检索查询-分词:
1.规范化处理:
去除标点符号 加减号、空格等;通过配置文件去除干扰词,“你、我、他”等
2.分词方式:
中英文分开;根据空格分词;把输入词和词库进行匹配,按照词库词语进行分词。命中则不分词。
现有的中文分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。下面介绍下第一类分词方法
基于字符串匹配的分词方法
这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词库中的词条进行配,若在词库中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
3.词库
词库可以有很多内容:比如商品标题;品牌;属性;描述;店铺;分类...每个词库也会有对应的权重,而影响最后的排序。
检索查询-匹配命中方式:
首词命中:指输入词与结果首位词匹配,如用户输入“汉庭”,结果匹配汉庭快捷酒店(新街口店)
包含命中:是指输入词在结果中包含,如用户:输入“大四”,结果匹配牡丹江大四方旅馆;
排序规则:
静态-相关性:词相关性、字段相关性、文本匹配;字段类型:标题、同义标题、品牌、属性、描述、店铺、分类等...
动态-业务因素:库存、单品反馈(收藏、购买、点击)、更新时间、促销
动态-商业因素:销售金额、销售额、评论数、商品评分、店铺评分
动态-个性化因素:个人历史行为,个人喜好等...
搜索系统的架构:
作者:hooly
微信公众号:一口袋星光
我会在微信公号上持续更新我的文章,你来讨论我很欢迎。