一、背景
地图App的功能可以简单概括为定位,搜索,导航三部分,分别解决在哪里,去哪里,和怎么去的问题。高德地图的搜索场景下,输入的是,地理相关的检索query,用户位置,App图面等信息,输出的是,用户想要的POI。如何能够更加精准地找到用户想要的POI,提高满意度,是评价搜索效果的最关键指标。
一个搜索引擎通常可以拆分成query分析、召回、排序三个部分,query分析主要是尝试理解query表达的含义,为召回和排序给予指导。
地图搜索的query分析不仅包括通用搜索下的分词,成分分析,同义词,纠错等通用NLP技术,还包括城市分析,wherewhat分析,路径规划分析等特定的意图理解方式。
常见的一些地图场景下的query意图表达如下:
query分析是搜索引擎中策略密集的场景,通常会应用NLP领域的各种技术。地图场景下的query分析,只需要处理地理相关的文本,多样性不如网页搜索,看起来会简单一些。但是,地理文本通常比较短,并且用户大部分的需求是唯一少量结果,要求精准度非常高,如何能够做好地图场景下的文本分析,并提升搜索结果的质量,是充满挑战的。
二、整体技术架构
搜索架构
类似于通用检索的架构,地图的检索架构包括query分析,召回,排序三个主要部分。先验的,用户的输入信息可以理解为多种意图的表达,同时下发请求尝试获取检索结果。后验的,拿到每种意图的检索结果时,进行综合判断,选择效果最好的那个。
query分析流程
具体的意图理解可分为基础query分析和应用query分析两部分,基础query分析主要是使用一些通用的NLP技术对query进行理解,包括分析,成分分析,省略,同义词,纠错等。应用query分析主要是针对地图场景里的特定问题,包括分析用户目标城市,是否是where+what表达,是否是从A到B的路径规划需求表达等。