Geocoding系列:(一)Geocoding的历史沿革以及中国Geocoding的困境

Geocoding的历史沿革

最早的Geocoding系统可以追溯到60年代,那时候只能从标准邮政地址和建筑物名称转换为地理区域的数字编号。
而现代Geocoding可以处理道路交叉口,各层级的行政区划,邮政编码,地标甚至由自然语言描述的位置信息。输出也不光是一个点,还可以是多边形、3D模型,甚至还有了室内3D Geocoding。
这些变化的产生与技术的进步是分不开的。
早期时候由于缺乏数字化的地理信息,只能依据纯文本信息得出精度很低的非地理信息。后来有了数字化的地理信息之后才有了真正意义上的地理编码。之后又出现了基于向量的地理数据,由此产生了新一代的基于差值的Geocoding近似算法,使得Geocoding的精度大大提升。近来还出现了预编码的的国家地址库以及高精度的数字化地址单元和轮廓数据,使得Geocoding返回的信息愈发精确。
而Geocoding使用场景的增多,也催生了各种新问题的产生。如Geocoding输出应该采用何种形式?中心点应该如何决定?是面积的中心还是根据人口加权平均?对于不同地理层级和类型的处理是否应该采取相同的策略?越来越多不同地理系统的产生,也使得Geocoding难以有一个统一的策略处理所有情况。

Geocoding的基本组成

最基本的部件自然是输入、输出和处理算法。其中处理算法可以细分为地址标准化和匹配地址库。
标准化是指将输入转换为与标准地址库相同的格式以便于匹配算法可以选取出最优解。其核心是决定输入的每个部分都对应于何种地址元素。最简单的标准化处理就是依序查表。而复杂的标准化还可以通过各种复杂的机器学习手段处理各种输入错误和顺序错乱的问题。
匹配算法即是从地址库中选出与输入最契合的一项。最简单的就是严格匹配每种属性。当然这样会出现很多无法匹配的情况,这时候就需要放宽匹配条件,并需要一些算法来打分决定哪个是最优匹配。
而根据地址库的不同,输出步骤也不尽相同。如果是预编译的地址库(即所有地址都已经标好了坐标或其他需要返回的地址信息)则直接返回即可。而如果地址库是基于线段的(如TIGER)则还需要插值算法估计出坐标。

中国Geocoding现状

中国作为一个发展中国家,最大的问题是数据的缺失。中国大部分地区的城市规划和地址管理都很混乱,道路名称五花八门多有重复,楼栋号码分配也很随意。导致地址的查询和定位都很困难。国外通常在城市规划时就把地址管理考虑在其中,如纽约道路名称本身就带指向性,东西走向为道(Avenue),南北走向为街(Street),道路名称几乎都是数字非常明确如第五大道。对于门牌号和邮政编码的重视也已成为其文化的一部分。如唐宁街10号、贝克街211号其门牌号本身就脍炙人口。下图是一些地区的常用地址模型。

而中国缺乏一个统一的地址模型,不同机构收集的地址格式都各不相同。与欧美最大的差异可能就是人们说一个地址时通常说的是地点名称,而门牌号码等信息只不过是辅助定位,有时候甚至不说。群众填写地址的时候也没有统一标准,有的时候写行政区划有的时候不写,有的时候写详细门牌有的时候不写。还有小区名、商圈名等等可写可不写的元素。而由于中文的复杂性,不同的人描述同一个目标也经常用不同的方式,同样层级的地址信息也可能有很多种命名方式。就连看似最简单的门牌号码,也有1号门、2号院、甲3号、4b号、a栋、b座、c区等各种各样的形式。而且由于中国地址的混乱导致人们经常习惯于添加一些描述性信息以解释具体地址。如什么地方附近、对面、以南多少米,更增加了处理难度。

几个典型的例子

  • 北京市朝阳外国语学校 <- 名称中包含行政区划
  • 北京市大兴区青云店 <- 名字很像POI的镇
  • 北京市昌平区北七家镇政府斜对面博发宾馆对面山西面食馆 <- 一层套一层的描述性信息
  • 北京市大兴区黄村镇双高花园小区(高米店北里)南门老年活动中心一层北京创兴房地产经纪有限公司(双高路) <- 无法划重点,你这么能咋不上天呢

诸如此类比比皆是,而且上述地址居然无一例外全无门牌号码。这还是堂堂首都北京的地址,放眼全国简直无法可想。

不仅如此,中文本身其复杂度也远远超过英文等字母语言,由于中文本身没有分隔符,所以第一要务还需分词。中文自然语言处理一直是一个难题,Geocoding第一步就是标准化,而标准化的第一步就是Tokenization,正可谓当头一棒。再加上中文地址模式之混乱,干扰冗余信息之繁杂,想要正确的辨识出每个地址的组成部分,并剔除无关信息更是难上加难。对此如何应对现在已有不少相关研究,在以后的专题中会详细介绍。

下期预告,美国几种主流Geocoding解决方案介绍(临)<-

Reference

[1] From Text to Geographic Coordinates: The current States of Geocoding. Daniel W. Goldberg, John P. Wilson, and Craig A. Knoblock.
[2] Using an Optimized Chinese Address Matching Method to Develop a Geocoding Service: A Case Study of Shenzhen, China. Qin Tian, Fu Ren, Tao Hu, Jiangtao Liu, Ruichang Li and Qingyun Du.
[3] A New Method of Chinese Address Extraction Based on Address Tree Model KANG Mengjun, DU Qingyun, WANG Mingjun.