三、点击搜索后,发生了什么?瑞文文摘站内查询
由于个人的工作经历相关,之前在一个电商平台中负责搜索相关的需求。所以今天我们主要来聊聊站内搜索功能。
一切搜索的行为,是从用户输入一个搜索词开始的。当我们在搜索框中输入一个词,点击搜索后,发生了什么?
我画了一张搜索功能的图景:从一个关键词开始,搜索服务会怎么处理,最终返回搜索结果,如下:
接下来就分为一个部分来简单讲讲搜索服务的流程。
1。 文本分析器
当收到一个“搜索词”后,并不能马上发起搜索,而是要经过文本分析和处理,再使用处理过后的文本发起搜索。瑞文文摘站内查询
1)分词
用户在输入框中,输入的可能是一个句子,可能是一个短语,可能是一个词。用户的意图是多样的。这就是需要我们对用户输入的词语进行分词和理解。
例如用户输入的搜索词是“珠江新城咖啡厅”,这样的词语,经过分词算法的处理,可能会识别出以下几个搜索词“珠江”,“珠江新城”,“咖啡”和“咖啡厅”。
分词算法,使用自然语义识别 (NLP)和词频分析等技术,比较复杂。对小公司而言,可以使用一些开源的分词技术。大公司可能会根据自己的业务对分词算法进行优化,例如美团技术团队的文章中《美团搜索中 NER 技术的探索欲实践》就提到了:在进行实体字典匹配前引入了CRF分词模型,针对垂直领域美团搜索制定分词准则,人工标注训练语料并训练CRF分词模型。
在我们之前做的海外项目的分词中,因为目前没有开源的针对小语种的分词器的,于是只能使用最基础的空格分词。例如用户输入的是“Beşiktaş Coco Bean Coffee”,经过分词后,会得到“Beşiktaş”,“Coco”,“Bean”,“Coffee” 几个词,加上原文本一起分别进行搜索。
2)特殊词处理 瑞文文摘站内查询
分词结束后:
部分被禁止的词语,政治相关或色情相关的搜索词,会被移除,不然,可能就会请喝茶了。
有些预期主持,例如“吗”“啊”等停用词,会被移除。例如用户搜索的词语是“附近有咖啡厅吗?”,其实就可以理解为“附近”和“咖啡厅”,“有”和”吗“是可以去掉的。
3)同义词识别
有些含义相同的词语,例如经典的“西红柿”和“番茄”,这些同义词,需要人工维护,搜索运营会观察搜索数据,讲一些常见的同义词,维护关联到一起。这样搜“西红柿”的时候,也可以搜到“番茄”的结果。
4)实体识别(类目预测)
实体识别是根据用户输入的搜索词,预测用户想要搜索的实体(如商品、内容、表情等)。这一技术非常重要,可以很大提高搜索的准确度。瑞文文摘站内查询
例如“珠江新城咖啡厅”这个搜索词,在被分词为“珠江”,“珠江新城”,“咖啡”和“咖啡厅”后,其中一些词语会命中特点的类目,例如“珠江新城”会命中商圈、地铁站的实体词库,“咖啡”会命中食物分类的实体词库,“咖啡厅”会命中餐厅类型的实体词库。
这样的实体识别,可以预测用户的搜索意图,在下方做搜索结果的排序时,提高对应实体的排序。比如,在微信搜索中,如果你搜索“高启强表情”,那么微信会优先展示表情的搜索结果。