在上篇里,我们介绍了地理文本处理技术在高德的整体演进,选取了几个通用query分析的点进行了介绍。下篇中,我们会选取几个地图搜索文本处理中特有的文本分析技术做出分析,包括城市分析,wherewhat分析,路径规划,并对未来做一下展望。
四、query分析技术演进
4.1 城市分析
在高德地图的检索场景下,从基础的地图数据索引、到在线召回、最终产品展示,均以市级别行政单位为基础粒度。一次完整的检索需求除了用户输入的query外,还会包含用户的图面城市以及用户位置城市两个城市信息。
通常,大多数的搜索意图都是在图面或者用户位置城市下,但是仍存在部分检索意图需要在其他城市中进行,准确的识别出用户请求的目标城市,是满足用户需求的第一步,也是极其重要的一步。

在query分析策略流程中,部分策略会在城市分析的多个结果下并发执行,所以在架构上,城市分析的结果需要做到少而精。同时用户位置城市,图面城市,异地城市三个城市的信息存在明显差异性,不论是先验输出置信度,还是用后验特征做选择,都存在特征不可比的问题。
在后验意图决策中,多个城市都有相关结果时,单一特征存在说服力不足的问题,如何结合先验置信度和后验的POI特征等多维度进行刻画,都是我们要考虑的问题。
原始的城市分析模块已经采用先验城市分析和后验城市选择的总体流程

但是原始的策略比较简陋,存在以下问题:
- 问题1:先验和后验两部分均基于规则,效果不好并且可维护性差;
- 问题2:特征体系存在缺陷。原始的城市分析仅使用query级的特征,包括点击,session改写,query和城市共现等,对于低频query处理得不好。
技术改造
改造1:城市分析

方案
城市分析是一个轻召回重选择的问题,我们将城市分析设计为召回+选择的两阶段任务。
召回阶段,我们主要从query和phrase两种粒度挖掘特征资源,而后进行候选城市归并。
排序阶段,需要对候选城市进行判断,识别是否应为目标城市,用gbdt进行二分类拟合。
样本构建
样本方面,我们选择从搜索日志中随机抽取,简单清洗后,进行人工标注。构造样本时存在本异地分样本分布不均的问题,本地需求远远多于异地,这里需要剔除本地和异地相关的特征,