文档章节

旅游吧!我在这里 ——旅游相册POI搜索:找回你的足迹

偶素浅小浅
 偶素浅小浅
发布于 2016/11/03 12:31
字数 2249
阅读 2
收藏 0
点赞 0
评论 0

版权声明:本文由林少彬原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/89

来源:腾云阁 https://www.qcloud.com/community

 

QQ空间相册的旅游相册,它以照片拍摄时间为主线,还原了旅游行程中的故事,清晰展现了用户行程景点位置及拍摄的美景。景点位置查询作为旅游相册一个重要功能,可以帮助用户找回旅途中的足迹。腾讯内部搜索平台部成立不久便托管了景点POI搜索业务,支持用户景点输入智能提示、国内外景点搜索。

一.现状

旅游相册POI搜索业务自2013年10月上线后,从最开始的仅支持国内景点搜索到国外景点数据补充,再到针对性地修补景点数据,从数据层面做了大的修补。搜索点击率也随之逐渐提升。时隔数年,再次拾起,希望可以通过总结整理,达到知识分享、提升的目的。

二.架构设计

POI搜索智能提示主要用于用户输入景点检索串时,实时进行相关结果快速提示的场景。一方面可以补充提示用户所要输入的位置信息,另一方面可以引导用户搜索精确化,从而提高景点搜索结果准确度及结果点击率。
针对以上业务特性,POI搜索业务架构有别于其他通用搜索,主要体现在数据补充、离线索引、在线检索三个模块。

1.数据补充


目前数据分为三个来源:

  • 国内数据:由腾讯地图提供的POI数据,包括国内各省、市、区等行政区,旅游景点等。
  • 台湾和国外数据:由相册业务侧负责抓取, 中文、英文、其他语言都有。
  • 国外景点数据:由搜索侧抓取国外景点,范围按洲、国家、省从大到小,根据抓取到的景点名称调用Google Map API获取对应POI信息。这种补充方案依赖于地图API的准确性及景点名称规范性。

2.离线索引


离线索引主要功能包括接收POI原始数据,建立倒排、顺排、属性、等索引,离线打分。基于地图POI数据更新周期较长、同步集中的特点,POI搜索业务采用了定期全量推送加每天增量推送的更新方式。
为支持用户输入景点的实时检索,我们设计了两套索引结构:前向匹配切词索引、普通分词索引,保证用户检索结果可以前缀命中或分词命中检索串,从而提升用户检索体验。

前向匹配切词索引

  • 末级POI信息按前向匹配生成索引,例子:“中国/湖南/长沙/岳麓山书院”,生成的索引为“岳”“岳麓”“岳麓山”“岳麓山书”“岳麓山书院”。
  • 非末级POI信息做数值过滤feature,例子:“中国”“湖南”“长沙”作为Doc的数值过滤feature。
  • 生成全拼拼音索引并按前向匹配索引,如“zhongguo”生成z, zh, zho, zhon, zhong, zhongg, zhonggu, zhongguo。
  • 外文名称按单词粒度处理。
  • 需控制倒排链的最大长度。
  • 英文也做前向匹配切词。

普通分词索引

  • 末级POI信息按普通分词生成索引,例子:“中国/湖南/长沙/岳麓山书院”,生成的索引为“岳麓山”“岳麓山书院”“中国”“湖南”“长沙”。
  • 非末级POI不索引

行政区特殊索引

为支持行政区名检索,离线索引对每个POI文档的省、市、区行政区名建立了特殊索引:首先建立行政区名到行政区名字母映射表,查表得到POI对应行政区字母缩写,再通过添加特殊前缀标记的方式,把带特殊前缀的行政区字母标记添加进这篇文档的顺排词表。支持行政区识别检索效果如下:

离线计算

行政级别权重 > POI类别权重 > 主副点
行政级别权重:国家 > 省 > 市 > 县 > 末级POI
类型权重:旅游景点 > 其他
主副点:主点 > 副点,比如 银科大厦 > 银科大厦停车场,简单比较方法是词长越短越重要

3.在线检索

预处理

  • 去空格、归一化
  • 混拼(拼音汉字参杂)转换为全拼音
  • 切词: 去行政区、去POI类别、整串、普通分词(例子:南山世界之)
  • 去行政区:提取“南山”为行政区,“世界之”为真实检索串
  • 去POI类别:提取“汽车站”、“火车站”、“机场”等为POI类别
  • 整串:“南山世界之”
  • 普通分词:“南山”、“世界”、“之”
    在线检索主要功能包括索引数据加载,检索语法树构建,结果求交集相关性排序等。用户检索请求经检索语法分析,可以扩展为三种检索语法:

去行政区前缀检索:

带行政区名的检索串识别到行政区后,行政区名作为分类过滤条件结合去行政区后的检索串进行前缀索引检索。效果如下:

普通前缀检索:

无行政区名的检索串直接进行前缀索引检索。效果如下:

普通分词检索:

获取分词结果后进行分词索引检索。效果如下:

排序策略

  • 直接使用离线打分结果
  • RBU洗脸
  • 行政区、景点、前向匹配切词结果、普通分词结果各占几条
  • 行政区 > POI类别
  • 前向匹配切词结果 > 普通分词结果
  • 末级POI相同时,当前城市优先。如用户在深圳,搜索“世界之窗”“深圳世界之窗在”长沙世界之窗“前(暂无实现)

三.质量优化

1.零结果分析

根据业务侧提供的会话级检索词,即用户选中推荐地点时落下的检索串。会话级零结果数占每天会话级检索量接近四分之一
抽样会话级零结果检索串分析如下:

检索串类型 示例
时间+相册主题 2005年的我
相册主题 一個人的旅途
地点缺失 上海普陀区梅川路步行街
输入有误 巴黎罗浮宫

相册主题类:

包括时间+相册主题、相册主题类型的检索串。用户在地点框误输入相册主题,输入与景点搜索无关,检索串格式比较混乱

地点缺失:

用户输入带范围描述词的地点,比如:东莞莞城区西城楼附近、哈尔滨松花江江边。有些地点没有索引进来,比如:柳城太平安乐湖、康巴什赛马场

输入有误

少数输入拼写错误,比如:巴黎罗浮宫

结论:

导致零结果的检索串中相册主题类型占了绝大部分;地点缺失问题主要是用户不能确定景点位置导致;数据缺失问题比例相对较小。

解决方式:

产品侧策略:通过产品侧对用户的输入做引导,帮助用户区分相册描述、景点位置输入框,提升检索串质量。
数据补充策略:针对地点缺失的问题,通过抓取旅游网站著名景点数据补充。
在线处理策略:后续考虑引入QC纠错,解决拼写错误等问题。
引入QC纠错及补充著名景点数据前后,搜索零结果率有所下降,效果如下:

2.结果曝光各类型POI数比例

结论:

从各类型结果曝光情况看出,非旅游景点、非行政区的结果检索得到的POI数最多;搜索结果整体趋向景点、地址搜索的场景,由于对风景名胜等景点相关的POI数据离线打分权重相对较高,导致其他类型数据召回效果并不理想。

解决方式:

针对特定类型(如机场、火车站、汽车站等)检索需求,离线索引会对这类POI文档建立分类类型特殊索引,在线检索对检索串语法分析时,可以识别出其分类意图及分类类型,转化为分类过滤条件下发。效果如下:

经历了QQ空间相册等业务的高速发展,景点POI搜索应用积累了丰富的应用场景与应用经验,不断提升性能及优化用户体验,足够成熟后已作为“腾讯云搜”产品的能力之一开放给广大的开发者用户。

本文转载自:

共有 人打赏支持
偶素浅小浅
粉丝 6
博文 202
码字总数 0
作品 0
信阳
DMP用户画像使用指南

用户画像是由无数个标签组成的,当说道用户画像的使用的时候,标签质量是个绕不开的话题。这一切都源于两个词:信任。这也是任何数据产品和数据业务与客户沟通的核心。 以下是经常遇到的问题...

刘洋
2017/01/23
0
0
U-Mail邮件系统成功赢得“办公神器”荣誉

天津滨海旅游区投资控股有限公司是新区区委、区政府为实现新区平衡发展规划,加快滨海旅游区域开发建设、创新区域发展模式而组建的一家国有投资控股型企业。滨旅控股公司是滨海旅游区域开发建...

小燕
2015/10/27
0
0
“世界那么大,我想去看看” ——10款精美的旅游网站设计欣赏

不知大家是否还记得那个最具情怀的辞职信“世界那么大,我想去看看”。我想我们现在都还没有这个勇气辞职,背起行囊来一场说走就走的旅行。 说起旅行,就想起去年在某著名旅行网站上的体验。...

mo311
01/18
0
0
Google 搜索放眼未来

来自华尔街日报的 消息,Google 正在计划一项重大的改变,对象是其核心业务——搜索。该计划将利用“语义搜索”分析搜索框内关键词的深层含义,然后直接显示问题的答案,而不是像现在这样 给...

虫虫
2012/03/16
1K
8
分享一份旅游公司/旅行社网站建设制作开发方案

随着国家致力于持续发展和改善民生,当前国内游和出境游呈现双双增长的态势。旅游政策的利好不断,可以说为旅游行业预订市场的发展提供了必要的前提保障。国家权威机构预测2018年,国内的在线...

王晴儿设计
05/24
0
0
Comit/GoTravelling

GoTravelling 旅游路线记录与分享Android App——同享旅行 App截图 App介绍 目标用户 在寒暑假内希望结伴同游的高校学生 节假日时期的家庭自驾游/朋友之间的自驾游 通过他人旅游过程获得旅游...

Comit
2016/03/08
0
0
旅游移动端网站—慢!慢!慢!

一.前言 随着智能手机和数据网络的不断普及,真正的「移动互联网」的世界必然到来,无论是学生还是工作者,无论是旅行规划时还是旅游途中,使用智能手机进行搜索,应对途中的各种突发请款,这...

OneAPM蓝海讯通
2016/01/28
36
0
全新升级!思途旅游 CMS6.0 正式发布

思途智旅——国内知名的旅游网站建设与营销专家,旗下旅游网站建设系统:思途旅游CMS本周正式迎来全新6.0版本升级。本次升级主要涉及产品模块化调整,新应用发布,新增模板皮肤变色等功能。思...

学校的粉
2017/02/27
348
1
2017上半年中国出境游大数据报告

9月22日,以“海岛愿景:新丝路 新机遇 新旅程”为主题的2017国际海岛旅游大会在浙江省舟山市朱家尖正式开幕。 大会由国家旅游局和浙江省人民政府主办,浙江省旅游局和舟山市人民政府承办,旨...

个推君
2017/09/25
0
0
小程序的特性—模块化,大有可为

今早读了一篇有关微信小程序能力特性相关的文章,突发了一点自己对小程序的见解。小程序越来越火,但是不少用户又因为部分小程序功能太单一而望而却步,大放异彩的都是一些功能突出的工具类应...

JasonWild
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

垃圾回收算法

一 如何判断对象可以回收 1 引用计数法 思路大概为:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计算器为0的对象就是不可能再被使用...

sen_ye
4分钟前
0
0
Activiti简介(学习总结一)

一、介绍 activiti是使用命令模式设计基于bpmn2.0的一款开源工作流引擎。 工作流简单举例:提交请假申请->经理审批->结束。这就是一个简单流程。activiti支持用户自定义流程。配置各个流程对...

沙shasha
4分钟前
0
0
VCL界面控件DevExpress VCL Controls发布v18.1.3|附下载

DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包。所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速开发出完美、...

Miss_Hello_World
5分钟前
0
0
加米谷大数据培训:云计算、大数据和人工智能之间的关系

一般谈云计算的时候会提到大数据、谈人工智能的时候会提大数据、谈人工智能的时候会提云计算……感觉三者之间相辅相成又不可分割。 一、云计算最初的目标 云计算最初的目标是对资源的管理,管...

加米谷大数据
10分钟前
1
0
java集合元素的默认大小

当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使...

竹叶青出于蓝
13分钟前
1
0
Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板

JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+BootstrapTable列表\ ElementUI列表表单)...

Jeecg
16分钟前
0
0
export 和 module.export 的区别

在浏览器端 js 里面,为了解决各模块变量冲突等问题,往往借助于 js 的闭包把左右模块相关的代码都包装在一个匿名函数里。而 Nodejs 编写模块相当的自由,开发者只需要关注 require,exports,...

孟飞阳
18分钟前
1
0
技术教育的兴起

技术教育的兴起 作者: 阮一峰 1、 有一年,我在台湾环岛旅行。 花莲的海边,我遇到一对台湾青年夫妻,带着女儿在海滩上玩。我们聊了起来。 当时,我还在高校当老师。他们问我,是否觉得台湾...

吕伯文
18分钟前
0
0
Linux服务器下的HTTP抓包分析

说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,但是有时候由于客户端开发人员(可能是第三方)知识欠缺或者其它一些原因,无法顺利的在客户端进行抓包分析,...

mylxsw
23分钟前
0
0
mybatis3-javaapi

sqlSessionFactoryBuilder->sqlSessionFactory->sqlSession<-rowbound<-resultHandler myBatis uses a Java enumeration wrapper for transaction isolation levels, called TransactionIsol......

writeademo
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部