基于自然语言理解的中文地址匹配算法

6,666 阅读9分钟

地址匹配与自然语言理解

  1. 中文地址基本上是非结构化的中文自然语言,地址匹配的本质是把含有位置信息的文字信息与空间信息关联起来,这在理论上是可行的。
  2. 中文的自然语言理解方法包括中文分词、语义标注、句法分析和语义推理四个环节。在地址匹配的特殊场景,需要对这四个环节做特殊处理。
  • 中文分词环节实现地址分割
  • 语义标注环节实现地址分割单元的角色标注
  • 句法分析实现地址类型标识
  • 语义推理实现空间关系推理

基于自然语言理解的中文地址匹配算法的组成和流程

完整的算法流程包括预处理、地址解析、地址要素标准化、推理匹配和匹配登记等五个环节。

  • 第 1 步针对待匹配的地址数据做预处理,进行一些简单的编码处理和信息过滤,这一步之时普通的字符处理。
  • 第 2 步对处理后的地址做地址解析,把非结构化的地址转换成结构化表示形式。(重点)
  • 第 3 步对结构化的地址做地址要素标准化,把地址要素转 换为标准地址要素,这一步就是使用词典库查找要素名称对应的标准名称。
  • 第 4 步对标准化后的地址做推理匹配,这是利用地址要素之间的关系和知识库(地址库)做语义推理,确定待匹配地址对应的地理坐标。(重点)
  • 第 5 步是对匹配的结果做匹配登记,即对匹配的结果做量化 处理,把匹配的结果使用 XML 描述,并写入外部文件。

空间关系地质模型与地址库逻辑模型

  1. 中文地址是由地名、单位名、门牌等组成,这些成分被称为地址要素,地址要素是地址的基本组成单位。

  2. 地址模型是对地址的抽象,用于表达地址要素之间的关系,针对地址模型建立了空间关系地址模型,以新的视角解决中文地址抽象问题。

    • 通常中文地址是由以区划地名和局部地名点或者编号组成,限于描述的局限性,只能用来描述普通的街道地址。
    • 通过分析中文地址发现,地址要素之间存在 5 种空间关系:包含、相邻、邻接、方位和距离关系。
    • 地址要素之间的空间关系与地址要素的类型有密切联系。包含关系 :区域包含区域、路、兴趣点 (POI) 或者路包含 POI。相邻关系:区域相邻,区域与路相邻,路与 POI 相邻,POI相 邻。邻接关系:路之间相连关系。方位关系:POI点之间的方位。距离关系:POI点之间的距离量算。
  3. 地址库模型是地址要素的存储模型,用于记录地址要素之间的关系,针对地址库模型建立地址库逻辑模型,此法以新的视角解决地址信息的空间知识表达和地址要素内在联系的存储问题。 

    • 语义理解是以知识库为基础的。地址库又称为地址参考库,是地址匹配引擎的数据基础,满足地址匹配交换的需求。
    • 本算法设计的地址库主要围绕居民地址和企事业单位地址这两类应用。
    • 地址库中的地址的存储是以结构化的地址要素为基本单位,地址要素之间的空间关系是地址库模型设计的基础。
    • 地址库由三部分组成:区划、空间关系、地名。
    • 地址库模型需要数据支撑,采集数据任务繁重,主要方法以高分辨遥感影像为地图的人工标绘采集为主,并对部分地区辅以人工调查,降低数据采集的成本。

地址解析

  1. 地址解析是指把非结构化的中文地址拆分为地址要素,并确定地址要素所属类型的过程。

  2. 解析算法包括两个组成部分:地址要素分割和地址要素标注。

  3. 在解析过程与中文分词过程类似,并且根据中文地址的特征引入了特殊处理技术,但是地址分割属于命名实体识别领域的技术,所以会有如下难题:

    • 地名库覆盖的问题:未登录命名识别的问题。
    • 边界确定的问题:由于地名和组织机构生成结果多样,规则复杂,无法使用加德纳的规则匹配确定边界。
    • 解决办法:智能分割算法是规则分割与统计分割相结合的算法,这里的规则及包括地址要素之间的框架规则,也包括地址要素之间的约束规则。而统计分割算法则利用字与字之间的成词概率,识别未登录词。

    地址要素标注的难题:

    • 命名实体重名:地址要素有多重类型,名称同类型之间不是一对一的关系。
    • 未登录实体名类型不确定:这是由于实体名在地址库中不存在造成的。
    • 解决办法:地名类型由两方面确定:上下文结构和表达习惯。这两方面也是通过规则与统计相结合的方式,判定地址要素的类型,这里使用隐马尔可夫模型 (HMM)。

推理匹配

  1. 推理匹配是指基于语义理解,实现推理和位置定位的过程,推理判断地址要素之间的空间关系。从人工智能的角度定义,推理是指由已知判断出另一种判断。由于同一位置的多种不同表述,不用自然语言理解角度处理,是无法实现正确匹配的。

  2. 中文地址的主要组成部分是由区域地名(区划区域、功能区域、自然片区)和局部点组成,描述的地理实体之间是包含、相邻、邻接、方位、距离关系。推理基于地址库建立决策树,根据不同的地址要素选择相应的动作。在地址描述中,经常遇到冗余描述,比如地址要素之间还可能存在等价关系。所以推理过程包含了多种关系的判断与处理,所以推理的动作主要有集合查找、关系确认、相对位置计算、插值计算。集合查找的目的是判断地址要素是否在地址库中有记录。关系确认是确定当前地址要素与前一个地址要素之间是空间关系还是等价关系。当地址是使用参考位置来表达时,则需要以参考地点为基准计算偏移位置,偏移位置的精度有参考点以及偏移位置描述的精度确定。当描述的地址点在地址库中不存在,而地址点是用门牌号表示,可以使用插值计算用于解决两类地址点位置计算,一类是门牌号是采用距离编码方法,另一类是模糊位置计算指定使用插值方法确定。

  3. 推理的过程采用启发式策略,知识(地址要素关 系)存储采用隐式存储。采用隐式图搜索方式,求解问题。为了减少搜索的规模采用逆向推理策略。智能匹配的核心是基于知识推理,在知识空间内寻找最优解。知识库为地址库。知识推理的过程的最终结果得到一条从根节点到叶子节点的路径,知识推理过程采用深度优先策略。由于在地址库中记录了从子节点到父节点的指针(父节点标识),所以深度优先搜索的复杂度显著减少,只需采用递归寻找以当前子节点为起点,寻找以父节点为终点的局部路径,如果路径存在,则说明从父节点转移到当前节点是成功的,则可以继续做深度搜索;如果路径不存在则需要做异常处理。

  4. 推理技术是模拟人类在寻址行为,因此地址匹配的过程类似与邮件邮寄,处理按照有大到小的过程,每一次匹配完成了路径查找。匹配的成功与否是由从起点到终点的路径决定。推理匹配过程:

    • 步骤 1:以地址解析的标准化后的结果和匹配的最终目标 (楼房、门牌号、道路等)作为输入条件,判断地址的有效性。如果地址有效则转入步骤 2,否则转入步骤 9。
    • 步骤 2:判断地址要素中是否存在方位描述。如果不存 在则转入步骤 3,否则转入步骤 7。
    • 步骤 3:对地址的类型判断,如果是普通名称类地址则转入步骤 4,否则转入步骤 5。
    • 步骤 4:基于全文检索实现匹配定位,转入步骤 9。
    • 步骤 5:利用有限状态机,实现要素关系推导,计算空间位置,转入步骤 6。
    • 步骤 6:定位计算,转入步骤 9。
    • 步骤 7:对地址划分,匹配无方位部分参照地址,转入步骤 8。
    • 步骤 8:通过方位和距离估算目标位置。转入步骤 9。
    • 步骤 9:对匹配的结果登记 。

实验结果与分析

  1. 对于 1000 条随机抽取的户籍地址数据,地址匹配实验结果是匹配率 98.7%、准确率 93.5% ,对于 100 条人工构造的地址数据,地址匹配实验结果是匹配率 98%、准确率 96%。平均每条地址匹配耗时约 0.2S。

  2. 通过分析数据发现,导致户籍地址匹配失败的原因是由于地名词典覆盖的地名不全。对人工构造的地址,实验结果表明匹配率和准确率均很高,这说明本文提出的基于自然语言理解的中文地址匹配算法能够很好地理解空间语义,能够实现由多种表达方式的人工构造地址都能正确匹配,如果地址库质量高,覆盖的数据广,意味着知识库丰富,则能很好的处理同一地点多种地址描述的匹配要求;如果地址库的覆盖不足,导致匹配率低,精度差。

本文参考

宋子辉.2013.自然语言理解的中文地址匹配算法.遥感学报,17(4):788-801

每日格言:简单的做人,不沉迷于幻想。

请作者吃辣条 支付宝

支付宝

微信

微信