搜索引擎的查询意图识别(query理解)

by 张帆(自然语言处理组@搜狗)

通用搜索VS垂直搜索
        通用搜索特点:
                抓取互联网上一切有价值的页面,同意建立索引,以关键字匹配为基本检索方式,以网页title和summary为展现方式
                google, 百度,搜狗,搜搜,有道
        垂直搜索特点:
                以一特定类别为主题,只抓取与主题相关信息,根据主题特点有针对性的建立相应的索引检索方式,筛选方式,以及展现方式
                机票搜索,地图搜索,购物搜索(一淘)……
                
解决方法:通用搜索引擎 + 垂直搜索引擎
        意图识别
        
意图搜索的难点:
        输入不规范
                输入方法多样化
                非常不规范
                有堆砌关键词
                自然语言查询
                甚至非标准自然语言
        多意图
                如:仙剑奇侠传
                        游戏?--> 游戏软件?……
                        电视剧?--> 电视剧下载?相关新闻?……
                        电影?--> 电影下载?查看影评?剧情介绍?……
                        音乐?--> 歌曲下载?在线听歌?歌词下载?……
                        小说?--> 小说下载?在线观看?……
        意图强度
                如:荷塘月色
                荷塘月色歌曲 --> 歌曲下载:50%
                荷塘月色小区 --> 房产需求:20%
                荷塘月色菜 --> 菜谱需求:10%
        结果可靠性
                供我们获取搜索结果的这些垂直站点往往是一些中小型的网站,我们需要保证搜索结果的准确性和相关性
                如:遥控汽车
                预期结果:返回所有遥控汽车的相关结果
                实际返回:
                        遥控汽车--> 没有遥控汽车相关结果
                        遥控--> 返回遥控器,遥控飞机等于原意图无关的结果
                        汽车--> 返回汽车模型,汽车配件等于原意图无关的结果
                        (比如京东就是这么拆搜索词的)
        时效性
                如:iPhone5 7月1日上市销售
                6月30日的查询意图:新闻90%,百科10%
                7月1日的查询意图:新闻70%,购买25%,百科5%
                8月1日的查询意图:购买50%,资讯40%,其他10%
                5年以后的查询意图:百科100%
        
词表穷举法:
        最简单直接的方法,通过词表的直接匹配来获取查询意图,也可加入适用于较为简单且查询较为集中的类别,比如电视台节目查询,节假日查询,餐馆查询等
                如:北京的天气怎么样啊
                (停用词替换) --> [北京][天气][怎么样]
                (查询词归一) --> {城市][关键词][疑问词]
                (顺序无关) --> {[城市], [关键词], [疑问词]}
                给出白名单:

规则解析法:
        适用于一些查询虽然不集中但非常符合规则的类别,通过规则解析查询来做意图识别和关键信息提取的,比如汇率查询,计算器,度量衡等
                如:236.2美金能换多少RMB?
                [236.2][美金][今天]能换多少[人民币]?
                [数字][货币单位][日期]能换多少[货币单位]?
                ★通过知识图表,来替换/对应/归一
                解析:
                        数量:236.2
                        源货币:美元(不再是“美金”)
                        目的货币:人民币
                ★配合自己建立的一些语言模型,可以比较好的解决召回率比较低的问题
                        模型训练的比较好的话,相对召回也很不错
                        但是比如购物啊什么的,是无法做这种信息模型的
        
统计模型分类法:(最常用)
        查询词分类:基于查询词本身的分类,也就是建立基于字面意思的统计分类模型
        查询词扩展分类:基于查询词的扩展信息的分类,也就是基于真实社会知识的分离,通常是搜索结果扩展
                比如“家常菜”居然是个电视剧!
        查询词分类:
        查询词-->查询纠错、规则化、知识词表-->Uni-gram, Bi-gram, CRF, 语料分类模型-->搜索结果验证、垂直搜索结果验证-->查询扩展分类结果
        查询扩展分类:
        查询词-->搜索结果1,2,3,4-->标题分类、摘要分类、网站分类-->结果分类1,2,3,4-->查询扩展分类结果
                (针对每个搜索结果,验证一下查询意图强度和类别)
                
        需要配合持续更新的语料,就可以通过流程自动更新
        比较可行的方法如:
        先到软件下载站
        把排行榜的TOP 100拖下来(这些都有软件下载的查询需求)
        搜索一遍,然后每个取前50个搜过结果
        作为一个5000大小的语料,可以训练
        可以持续、自动更新

搜索意图识别未来
        无类别概念的意图识别
                基于垂直搜索的分类模型,而非基于类别的分类模型,帮助用户获取想要的内容而不限定类别
                比如将 类别和网站本身 建立联系,直接在网站内部的数据库中搜索
        个性化意图上下文分析
                根据用户特征建立个性化的信息,获取用户的短期兴趣和长期兴趣,准对性的优化意图识别
        精准意图理解
                更加精准的意图理解,所有价值信息的解析,目前的展现多为整体展现,可以再进一步来生成个性展现
        语言应用的意图理解
                针对语言类应用的特点优化,比如语言纠错,个性信息的辅助意图识别等

你可能感兴趣的:(算法研究(数据挖掘,机器学习,自然语言,深度学习,搜索引擎))