写点什么

国际酒店聚合算法优化

  • 2020-12-03
  • 本文字数:1983 字

    阅读完需:约 7 分钟

国际酒店聚合算法优化

1. 背景介绍


『聚合解决的是“让数据有的比”的问题,聚合的成功率和准确率直接奠定了用户在网站进行比价体验的基调。』


在酒店频道,聚合一直被认为是业务的基础和核心。因为无论是 Qunar 最开始定位的报价搜索,还是现在转型的比价平台,业务模式决定了我们要从众多代理商和渠道获取大量的酒店数据并对其进行整合, 所以聚合解决的是一个“让数据有的比”的问题 ,不夸张的说,聚合的成功率和准确率直接奠定了用户在网站进行比价体验的基调。


酒店聚合的职责简单归纳就是:


将不同代理商来源的酒店数据(酒店 tree)统一到 Qunar 酒店下,为比价平台提供酒店对应关系的映射。


例如以下这组聚合关系:



目前酒店聚合算法主要参考 酒店名、地址、城市、 坐标、电话这几类数据进行判定,名称和地址作为重点参考内容,在大多数场景下可直接决定聚合结果;坐标和电话由于来源数据规范等问题(如坐标系不一致,酒店电话和代理商电话掺杂提供),仅做辅助判定。


2. 痛点难点


『各国地址信息命名本地化、差异大;基于对文本相似度的计算,对于酒店名和地址中的信息解析能力有限。』


国际酒店在 Qunar 起步较晚,各类基础数据,特别是聚合层面的数据积累有限,且 国际代理商数据参差不齐,数据的规范化程度较差 ,再加上运营资源有限,依靠 人工为数据建立聚合关系成本高、效率低、不现实 。基于以上这些情况,我们急需提高国际酒店自动聚合算法的能力。本文将介绍过去一年中针对国际几个重点国家进行的聚合算法优化的情况,希望能给到有类似业务痛点的同学一些解题思路和参考。


目前国际酒店聚合的痛点与难点集中在以下两个方面:


A. 不同国家间地址信息的本地化差异



如上图所示,地址的组成格式在各个国家之间都有差异且其中夹杂着本地化的信息(图中标红的部分)。


B. 原有算法针对文本相似度计算,对于酒店名和地址中的信息解析能力有限


酒店聚合算法的本质是针对两个酒店信息进行文本相似度的计算,满足一定的相似度分值后即可判定为二者存在聚合关系。但对于类似名称,地址类的长文本数据,其本身就包含多种成分,如品牌,分店,酒店行业词,路名,门牌号,城市等,且这些成分的重要程度是有所区别的。


比如“永正”作为品牌信息几乎可以直接锁定“北京永正商务酒店”,然而“商务酒店”作为行业词,由于信息太过模糊,几乎不能定位到任何具体的酒店。如果不能把这些成分区分清楚而直接进行文本相似度计算,就可能出现把下列两家酒店聚合到一起的错误。



如下图所示,目前的国际酒店聚合算法对于酒店名和地址中的详细成分几乎无法拆分。



3. 优化思路


『整理高频次出现的名称及地址格式,形成各种分词结果;从文本匹配变为将分词结果与可能模式进行匹配,针对相似度进行加权评分计算。』


上文提到,酒店名和地址可细分出多种不同成分,其中重要的部分可归纳为:



其中 城市层级,品牌,poi 字典 以 qunar 酒店基础信息为基底,配合代理商数据,酒店官网扩充覆盖及同义词;


通过对酒店名分词并进行反向高频统计,配合运营人工筛选,可整理出酒店 描述词行业词 字典;


酒店地址中的路名信息由于存在大量本地化内容,这部分关键字词典需要分地区(一般是按国家维度)对地址分词并统计高频结果,配合官方数据(google,Wikipedia 等)筛选整理。


基于目前库内已有的酒店数据,我们对名称和地址的组成格式进行统计,整理出高频率出现的格式,具体如下图截取的片段所示:



通过引入这种模式匹配的概念,就可以很容易的从给定的酒店名和地址中抽取出各类成分信息,举例如下:


酒店名拆分示例



酒店地址拆分示例



【划重点】


优化后的一次完整聚合流程如下


  1. 一条待聚合的酒店数据进入;

  2. 基于预先收集的各类型词汇(品牌,城市,国家)的词典,对酒店名和地址数据进行解析,找出其中所有可能的分词结果;

  3. 将分词结果与所有可能的模式进行匹配,选出合法匹配中的最优解作为解析结果;

  4. 根据解析出的关键成分(品牌+分店名,路名+门牌号)在已聚合数据中进行全文检索,初筛出相似度最高的 n 条结果作为候选集;

  5. 在待聚合和各候选酒店之间,针对各个成分进行对比,对比出的基于字符串的相似度(匹配的可能性有:完全一致,包含,前缀,后缀等)结果配合各个成分本身的权重(如酒店名中:品牌>分店>行业词>城市),最终算出一个综合的分数;

  6. 在某些特殊情况下进行打分的调整:如路名相同,门牌号不同,减分;如联系电话相同或坐标距离相近,加分;

  7. 选择相似度得分最高的候选酒店作为最终候选者,判断得分是否高于给定的聚合分数线,是则可认为聚合成功。


4. 优化成果


针对国际重点的八个国家,我们按照模式匹配的方式优化了聚合算法,收效成果如下图所示:



后续还将继续分享国际酒店房型的聚合经验,欢迎各位多多交流,共同进步。


作者介绍


王刚,2013 年加入 Qunar,目前主要负责国际酒店供应链系统,专注于基础数据集成,竞对分析,搜索 & 聚合算法等领域。


本文转载自公众号 Qunar 技术沙龙(ID:QunarTL)。


原文链接


国际酒店聚合算法优化


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-12-03 14:001479

评论

发布
暂无评论
发现更多内容

2021年证券类APP更新迭代检测专题分析(上)发布

易观分析

金融 券商App

web技术支持| Web 客户端实现录音、录像

anyRTC开发者

前端 Web 音视频 WebRTC 视频通话

案例分享|智慧广电的“宽带加速”之路,博睿数据来“私人定制”

博睿数据

数字化转型 博睿数据 智慧广电

位运算小妙招-求二进制序列中1的个数

芒果酱

c++ C语言 5月月更

得物技术消息中间件应用的常见问题与方案

得物技术

kafka 分布式 MQ 中间件 消息队列

赵海鹏:如何进行OpenHarmony音频特性架构设计和开发工作

OpenHarmony开发者

OpenHarmony 开发者故事 开发者说

博云:Kubernetes 近年影响最大版本发布,这几点值得关注

BoCloud博云

Kubetnetes

让客户实现 AI 算力“自由”,博云与趋动科技完成算力调度容器化验证

BoCloud博云

AI

告诉你使用预约小程序的9个理由

天天预约

小程序 SaaS 企业服务 预约工具

面试突击47:死锁产生的原因有哪些?

王磊

Java 面试 java面试

趣学设计模式-代理模式

ZuccRoger

5月月更

明道云入选爱分析2022年两份低代码研究报告

明道云

记一次存储系统IOPS翻倍的性能优化

Vincent

性能优化 存储系统

存储卷指标消失之谜 | K8S Internals 系列第二期

BoCloud博云

Kubernetes kubelet

直播预告|争夺存量用户关键战,助力企业构建完美标签体系

袋鼠云数栈

大数据 数据中台

极狐GitLab入驻阿里云计算巢,共同提升云上开发体验

阿里云弹性计算

DevOps 计算巢

姐姐驾到 | 零基础小白如何学前端!

锋享前端

数据湖揭秘—Delta Lake

阿里云大数据AI技术

sql spark 分布式计算 关系型数据库 存储

为了让女朋友运动起来,小伙儿不仅买单车还设计了智能防盗单车锁

华为云开发者联盟

stm32 华为云IoT 智能防盗单车锁 蓝牙

SAP 订单模型的编排方式概述

Jerry Wang

订单管理 订单 5月月更 b2b 编排系统

共同推动基础软件根技术发展,华为与中国软件行业协会签署战略合作协议

科技热闻

沙利文发布《2021年中国数据库市场报告》:中国分布式数据库2021专利占全球76%

科技热闻

万亿储能的极限拉力赛

钛禾产业观察

投稿开奖丨云服务器ECS征文活动(2&3月)奖励公布

阿里云弹性计算

云服务器 征文投稿开奖 玩转ECS

MySQL__数据处理之查询

编程江湖

TiDB 6.0 新特性解读丨 Collation 规则

PingCAP

如何真正将企业知识管理做出价值?

小炮

企业知识管理

5 月 20 日,API 网关 Apache APISIX Summit ASIA 2022 重磅来袭

API7.ai 技术团队

开源 API网关 Apache APISIX APISIX 网关 APISIX Summit

互联网用户画像,精准营销,数仓有妙招

华为云开发者联盟

位图 GaussDB(DWS) 用户画像 精准营销 Roaringbitmap

vue 自从使用了组件,工作量减去了一半

CRMEB

JAVA异常情况如何处理?

源字节1号

后端开发

国际酒店聚合算法优化_AI&大模型_Qunar技术沙龙_InfoQ精选文章