当前位置:网站首页>Query意图识别分析
Query意图识别分析
2020-11-06 01:32:11 【IT界的小小小学生】
outline
近段时间在研究搜索的相关技术,在工作中主要涉及到资讯搜索功能的实现。我们采用了elasticsearch搜索引擎,es基础和es进阶1。由于需要对搜索功能进行迭代,所以笔者继续深入研究搜索原理和性能优化。本文主要研究以下几点:
什么是搜索
搜索评价指标
意图识别
query改写
什么是搜索
一个搜索引擎的技术构建主要包含三大部分:
(1) 对query的理解
(2) 对内容(文档)的理解
(3) 对query和内容(文档)的匹配和排序
搜索的一般评价指标
基础指标:
召回率(Recall)=检出的相关文档数/相关文档数,也称为查全率,R∈[0,1]
准确率(Precision)=检出的相关文档数/检出文档数,也称为查准率,P∈[0,1]
F值:召回率R和正确率P的调和平均值
搜索发展的阶段:
应用的初期:基于关键字的搜索
应用的发展期:基于主副标题的全文检索
应用的成熟期:针对搜索进行排名优化
LTR
应用的进化期:个性化的搜索
意图识别/“千人千面”/搜索建议等
意图识别
是什么
通过分类的办法将句子或者我们常说的query分到相应的意图种类
属于“对query的理解”部分
本质上是一个分类问题
意图识别搜索的一般过程:
S1. 用户的原始 query 是 “michal jrdan”
S2. Query Correction 模块进行拼写纠错后的结果为:“Michael Jordan”
S3. Query Suggestion 模块进行下拉提示的结果为:“Michael Jordan berkley”和 “Michael Jordan NBA”,假设用户选择了“Michael Jordan berkley”
S4. Query Expansion 模型进行查询扩展后的结果为:“Michael Jordan berkley”和 “Michael I. Jordan berkley”
S5. Query Classification 模块进行查询分类的结果为:academic
S6. 最后语义标签(Semantic Tagging)模块进行命名实体识别、属性识别后的结果为:[Michael Jordan: 人名][berkley:location]:academic
意图识别的前提
意图的划分问题:技能/领域
用户查询的需求分类:
(1) 导航类
(2) 信息类
(3) 事务类
概念介绍:
用户与搜索引擎的一轮完整交互过程称为一个Search Session,在Session里提供的信息包括:用户查询词(Query),用户所点击的搜索结果的标题(Title),如果用户在Session期间变换了查询词(例如从Query1 -->Query2),则后续的搜索和点击均会被记录,直到用户脱离本次搜索,则Session结束。
意图识别的方法
1.词表穷举法/规则解析法
2.基于查询点击日志 – 一般一条搜索日志记录会包括时间-查询串-点击URL记录-在结果中的位置等信息。
3.机器学习方法(基于规则挖掘,基于Bayes、LR、SVM等传统分类模型)–分类问题
query的分类
eg:识别每个实体词的属性,去索引里面精确匹配对应的字段,从而提高召回的准确率
4.基于神经网络(深度学习)–FastText
意图识别的难点
1、输入不规范,前文中已有介绍,不同的用户对同一诉求的表达是存在差异性的。
2、多意图,查询词为:”水”,是矿泉水,还是女生用的化妆水。
3、数据冷启动。当用户行为数据较少时,很难获取准确的意图。
4、没有固定的评价标准。pv,ipv,ctr,cvr这种可以量化的指标是对搜索系统总体的评价,具体到用户意图的预测上并没有标准的量化指标。
query改写
query改写,类目相关,命名实体识别和
query改写包括:
query纠错 – 如果搜索引擎返回的是空结果/或者结果过少,此时应该需要增加拼写纠错的处理
query扩展:
eg. “Michael Jordan berkley”和 “Michael I. Jordan berkley”
(1) 同义词扩展表
(2) 使用词向量进行同义词拓展
(3) 如果query没有相应返回,则根据用户历史数据拓展原query
query删除 – 判断丢弃哪个/些词 (实体识别)
参考资料
https://www.jianshu.com/p/e46eae028af3
https://blog.csdn.net/shijing_0214/article/details/71250327
https://blog.csdn.net/shijing_0214/article/details/71080642
版权声明
本文为[IT界的小小小学生]所创,转载请带上原文链接,感谢
https://vip01.blog.csdn.net/article/details/94444403
边栏推荐
- C++ 数字、string和char*的转换
- C++学习——centos7上部署C++开发环境
- C++学习——一步步学会写Makefile
- C++学习——临时对象的产生与优化
- C++学习——对象的引用的用法
- C++编程经验(6):使用C++风格的类型转换
- Won the CKA + CKS certificate with the highest gold content in kubernetes in 31 days!
- C + + number, string and char * conversion
- C + + Learning -- capacity() and resize() in C + +
- C + + Learning -- about code performance optimization
猜你喜欢
-
C + + programming experience (6): using C + + style type conversion
-
Latest party and government work report ppt - Park ppt
-
在线身份证号码提取生日工具
-
Online ID number extraction birthday tool
-
️野指针?悬空指针?️ 一文带你搞懂!
-
Field pointer? Dangling pointer? This article will help you understand!
-
HCNA Routing&Switching之GVRP
-
GVRP of hcna Routing & Switching
-
Seq2Seq实现闲聊机器人
-
【闲聊机器人】seq2seq模型的原理
随机推荐
- LeetCode 91. 解码方法
- Seq2seq implements chat robot
- [chat robot] principle of seq2seq model
- Leetcode 91. Decoding method
- HCNA Routing&Switching之GVRP
- GVRP of hcna Routing & Switching
- HDU7016 Random Walk 2
- [Code+#1]Yazid 的新生舞会
- CF1548C The Three Little Pigs
- HDU7033 Typing Contest
- HDU7016 Random Walk 2
- [code + 1] Yazid's freshman ball
- CF1548C The Three Little Pigs
- HDU7033 Typing Contest
- Qt Creator 自动补齐变慢的解决
- HALCON 20.11:如何处理标定助手品质问题
- HALCON 20.11:标定助手使用注意事项
- Solution of QT creator's automatic replenishment slowing down
- Halcon 20.11: how to deal with the quality problem of calibration assistant
- Halcon 20.11: precautions for use of calibration assistant
- “十大科学技术问题”揭晓!|青年科学家50²论坛
- "Top ten scientific and technological issues" announced| Young scientists 50 ² forum
- 求反转链表
- Reverse linked list
- js的数据类型
- JS data type
- 记一次文件读写遇到的bug
- Remember the bug encountered in reading and writing a file
- 单例模式
- Singleton mode
- 在这个 N 多编程语言争霸的世界,C++ 究竟还有没有未来?
- In this world of N programming languages, is there a future for C + +?
- es6模板字符
- js Promise
- js 数组方法 回顾
- ES6 template characters
- js Promise
- JS array method review
- 【Golang】️走进 Go 语言️ 第一课 Hello World
- [golang] go into go language lesson 1 Hello World