旅游吧!我在这里—旅游相册POI搜索:找回你的足迹
背景
QQ空间相册的旅游相册,它以照片拍摄时间为主线,还原了旅游行程中的故事,清晰展现了用户行程景点位置及拍摄的美景。景点位置查询作为旅游相册一个重要功能,可以帮助用户找回旅途中的足迹。腾讯内部搜索平台部成立不久便托管了景点POI搜索业务,支持用户景点输入智能提示、国内外景点搜索。
现状
旅游相册POI搜索业务自2013年10月上线后,从最开始的仅支持国内景点搜索到国外景点数据补充,再到针对性地修补景点数据,从数据层面做了大的修补。搜索点击率也随之逐渐提升。时隔数年,再次拾起,希望可以通过总结整理,达到知识分享、提升的目的。
架构设计
POI搜索智能提示主要用于用户输入景点检索串时,实时进行相关结果快速提示的场景。一方面可以补充提示用户所要输入的位置信息,另一方面可以引导用户搜索精确化,从而提高景点搜索结果准确度及结果点击率。
针对以上业务特性,POI搜索业务架构有别于其他通用搜索,主要体现在数据补充、离线索引、在线检索三个模块。
a)数据补充
目前数据分为三个来源:
1、国内数据:由腾讯地图提供的POI数据,包括国内各省、市、区等行政区,旅游景点等。
2、台湾和国外数据:由相册业务侧负责抓取, 中文、英文、其他语言都有。
3、国外景点数据:由搜索侧抓取国外景点,范围按洲、国家、省从大到小,根据抓取到的景点名称调用Google Map API获取对应POI信息。这种补充方案依赖于地图API的准确性及景点名称规范性。
b)离线索引
离线索引主要功能包括接收POI原始数据,建立倒排、顺排、属性、等索引,离线打分。基于地图POI数据更新周期较长、同步集中的特点,POI搜索业务采用了定期全量推送加每天增量推送的更新方式。
为支持用户输入景点的实时检索,我们设计了两套索引结构:前向匹配切词索引、普通分词索引,保证用户检索结果可以前缀命中或分词命中检索串,从而提升用户检索体验。
前向匹配切词索引
末级POI信息按前向匹配生成索引,例子:“中国/湖南/长沙/岳麓山书院”,生成的索引为“岳”“岳麓”“岳麓山”“岳麓山书”“岳麓山书院”。
非末级POI信息做数值过滤feature,例子:“中国”“湖南”“长沙”作为Doc的数值过滤feature。
生成全拼拼音索引并按前向匹配索引,如“zhongguo”生成z, zh, zho, zhon, zhong, zhongg, zhonggu, zhongguo。
外文名称按单词粒度处理。
需控制倒排链的最大长度。
英文也做前向匹配切词。
普通分词索引
末级POI信息按普通分词生成索引,例子:“中国/湖南/长沙/岳麓山书院”,生成的索引为“岳麓山”“岳麓山书院”“中国”“湖南”“长沙”。
非末级POI不索引
行政区特殊索引
为支持行政区名检索,离线索引对每个POI文档的省、市、区行政区名建立了特殊索引:首先建立行政区名到行政区名字母映射表,查表得到POI对应行政区字母缩写,再通过添加特殊前缀标记的方式,把带特殊前缀的行政区字母标记添加进这篇文档的顺排词表。支持行政区识别检索效果如下:
离线计算
行政级别权重 > POI类别权重 > 主副点
行政级别权重:国家 > 省 > 市 > 县 > 末级POI
类型权重:旅游景点 > 其他
主副点:主点 > 副点,比如 银科大厦 > 银科大厦停车场,简单比较方法是词长越短越重要
c)在线检索
预处理
去空格、归一化
混拼(拼音汉字参杂)转换为全拼音
切词: 去行政区、去POI类别、整串、普通分词(例子:南山世界之)
去行政区:提取“南山”为行政区,“世界之”为真实检索串
去POI类别:提取“汽车站”、“火车站”、“机场”等为POI类别
整串:“南山世界之”
普通分词:“南山”、“世界”、“之”
在线检索主要功能包括索引数据加载,检索语法树构建,结果求交集相关性排序等。用户检索请求经检索语法分析,可以扩展为三种检索语法:
去行政区前缀检索
带行政区名的检索串识别到行政区后,行政区名作为分类过滤条件结合去行政区后的检索串进行前缀索引检索。效果如下:
普通前缀检索
无行政区名的检索串直接进行前缀索引检索。效果如下:
普通分词检索
获取分词结果后进行分词索引检索。效果如下:
排序策略
直接使用离线打分结果
RBU洗脸
行政区、景点、前向匹配切词结果、普通分词结果各占几条
行政区 > POI类别
前向匹配切词结果 > 普通分词结果
末级POI相同时,当前城市优先。如用户在深圳,搜索“世界之窗”“深圳世界之窗在”长沙世界之窗“前(暂无实现)
质量优化
a)零结果分析
根据业务侧提供的会话级检索词,即用户选中推荐地点时落下的检索串。会话级零结果数占每天会话级检索量接近四分之一
抽样会话级零结果检索串分析如下:
相册主题类:
包括时间+相册主题、相册主题类型的检索串。用户在地点框误输入相册主题,输入与景点搜索无关,检索串格式比较混乱
地点缺失:
用户输入带范围描述词的地点,比如:东莞莞城区西城楼附近、哈尔滨松花江江边。有些地点没有索引进来,比如:柳城太平安乐湖、康巴什赛马场
输入有误:
少数输入拼写错误,比如:巴黎罗浮宫
结论:
导致零结果的检索串中相册主题类型占了绝大部分;地点缺失问题主要是用户不能确定景点位置导致;数据缺失问题比例相对较小。
解决方式:
产品侧策略:通过产品侧对用户的输入做引导,帮助用户区分相册描述、景点位置输入框,提升检索串质量。
数据补充策略:针对地点缺失的问题,通过抓取旅游网站著名景点数据补充。
在线处理策略:后续考虑引入QC纠错,解决拼写错误等问题。
引入QC纠错及补充著名景点数据前后,搜索零结果率有所下降,效果如下:
b)结果曝光各类型POI数比例
结论:
从各类型结果曝光情况看出,非旅游景点、非行政区的结果检索得到的POI数最多;搜索结果整体趋向景点、地址搜索的场景,由于对风景名胜等景点相关的POI数据离线打分权重相对较高,导致其他类型数据召回效果并不理想。
解决方式:
针对特定类型(如机场、火车站、汽车站等)检索需求,离线索引会对这类POI文档建立分类类型特殊索引,在线检索对检索串语法分析时,可以识别出其分类意图及分类类型,转化为分类过滤条件下发。效果如下:
经历了QQ空间相册等业务的高速发展,景点POI搜索应用积累了丰富的应用场景与应用经验,不断提升性能及优化用户体验,足够成熟后已作为“腾讯云搜”产品的能力之一开放给广大的开发者用户。
作者:林少彬,腾讯工程师
旅游吧!我在这里—旅游相册POI搜索:找回你的足迹相关推荐
- 高一计算机信息与技术旅游,信息技术的发展与旅游信息系统的建设
摘要: 该文运用信息经济学的理论从分析信息技术的发展与旅游业的关系着手,比较全面地论述了信息技术对旅游业各主要方面的影响,并预示了信息技术将给旅游业带来的某些变化;初步运用产业组织理论提出了建设中国旅 ...
- 旅游商城会员中心HTML,旅游特产商城功能_旅游特产商城系统-思途旅游CMS
应用描述: 特产应用是针对思途CMS的扩展模块.安装后,可以在思途CMS中扩展一个特产产品管理模块,帮助平台管理员进行特产产品的发布.管理.销售:同时,前台会员也可通过线路预定功能模块进行特产产品预定 ...
- 旅游流的概念_旅游流的概念界定与理论内涵新论
旅游流的概念界定与理论内涵新论 陈海波 [摘 要] 摘要:在借鉴和思考的基础上,将旅游流界定为:旅游者在一次旅游 活动中所产生的位移为零的空间移位现象.对当前旅游流的流质.流势.流向 等观察维度进行了 ...
- 旅游流的概念_旅游流概念的研究的探讨.doc
旅游流概念的研究的探讨 旅游流概念的研究的探讨 摘 要:文章在比较分析各类旅游流定义研究的基础上,确定了旅游流的定义,区别了旅游流与旅游者个体综合:论述了旅游流的特征和影响因素,特别提出了旅游流的周期 ...
- 深圳免费旅游景点大全|深圳旅游攻略(上)
大鹏所城 ☑ 门票:免费 ☑ 开放时间:09:00~17:30 ☑ 地址:深圳市龙岗区南门西路 ☑ 乘车路线:在大鹏王母站乘坐M741(原B756路)公交车到大鹏所城站下车 推荐理由:大鹏所城是深圳八 ...
- HTML5期末大作业:新疆旅游模板网站设计——新疆旅游模板首页(1页) HTML+CSS+JavaScript
HTML5期末大作业:新疆旅游模板网站设计--新疆旅游模板首页(1页) HTML+CSS+JavaScript 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. ...
- DIV布局 旅游出行网站设计——武汉旅游(11页) HTML+CSS+JavaScript dreamweaver作业静态HTML网页设计模板
HTML5期末大作业:旅游出行网站设计--武汉旅游(11页) HTML+CSS+JavaScript dreamweaver作业静态HTML网页设计模板 常见网页设计作业题材有 个人. 美食. 公司. ...
- HTML5期末大作业:旅游出行网站设计——武汉旅游(11页) HTML+CSS+JavaScript dreamweaver作业静态HTML网页设计模板
HTML5期末大作业:旅游出行网站设计--武汉旅游(11页) HTML+CSS+JavaScript dreamweaver作业静态HTML网页设计模板 常见网页设计作业题材有 个人. 美食. 公司. ...
- 地方旅游产业运行监测与应急指挥平台、旅游资源管理平台、旅游产业监测平台、旅游应急指挥平台、旅游资源统计、旅游线路数据、旅游产业可视化大屏、餐饮场所数据、游客流量监测、景区数据监测、视频监控、环境监测
地方旅游产业运行监测与应急指挥平台.旅游资源管理平台.旅游产业监测平台.旅游应急指挥平台.旅游资源统计.旅游线路数据.旅游产业可视化大屏管理系统.餐饮场所数据.游客流量监测.景区数据监测.视频监控.天 ...
- 旅游流的概念_旅游流
旅游流(Tourist Flows) [編輯] 什麼是旅游流 旅游流是在一個或大或小的區域上,由於旅游需求的近似性而引起的旅游者集體性空間移動現象.這個定義比較好地把握住了形成旅游流的主要矛盾.特征和 ...
最新文章
- 详解Pattern类和Matcher类
- ASP.NET 第五天 CSS在支付宝中的应用
- Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置
- mysql语法学习(一)__Instances__表
- unity5.x C# 获取屏幕宽度 设置不受重力影响
- php输出二维数组中指定内容,HP将MYSQL内容读到二维数组并按指定列输出
- 我是如何把一个15分钟的程序优化到了10秒的
- linux bootstrap强制结束,Cisco UCCX bootstrap服务目录遍历漏洞
- 苹果mac虚拟机软件:Parallels Desktop 17(pd虚拟机)Intel专用版
- MSSQL存储过程调用 C#DLL
- 今夜酒店特价:订得早,不如订得好
- 外汇套利原理及策略EA
- sendcloud历险记
- PanoSim 5 功能模块简介--PanoExp
- dva的使用,附带一个Demo
- 输入一个3×3的整型矩阵,求该矩阵主对角线元素之和
- 对接阿里云平台短信接口
- UIQ3.0模拟器上网和显示中文
- C# 将一种类型的数组转换为另一种类型的数组
- C. Ehab and Path-etic MEXs
热门文章
- 省市区县街道四级联动下拉菜单
- HIT 软件构造2019春 Lab2
- 爬取豆瓣电影,输出最新电影列表、影评、影评热词统计、词云之一
- 泰戈尔专集:飞鸟集·新月集·园丁集(美冠纯美阅读书系·外国卷) 读后感
- python中文库_不用下载券也能下载百度文库资料,Python帮你轻松搞定
- 企业微信如何做社群运营?企业微信群运营新玩法(可复用)
- 华硕win10键盘失灵_win10键盘失灵错乱的几种解决方法【图文】
- MapReduce自定义排序、自定义分组、自定义分区
- C语言二维数组定义、赋值、按要求遍历操作、输出以及函数调用
- Python中的二维数组定义