目前最好的中文词性标注开源工具:中文分词算法在地址标准化清洗中的应用
目前最好的中文词性标注开源工具:中文分词算法在地址标准化清洗中的应用 (3)门牌:民政部门颁发的独立门牌地址,比如湖东路188号、高新大道1号。 (2)居民地:包括居住工作相对集中在一起的生活聚集地,比如自然村、居民小区等。 1.1地址的分类 地址信息内容繁多,将城市常见的地名地址数据分成以下6类: (1)行政区划:具有行政意义的数据,可以分为市级行政区划数据,区县级行政区划数据,街道/乡镇级行政区划数据,社区/村级行政区划数据。
地址数据是“智慧城市”重要的基础空间数据,也是各类政务信息传递的重要载体。地址数据也渗透在百姓生活的方方面面,快递、打车、水电煤气等城市公共体系都离不开标准地址的支撑服务。
由于中文的语法特点及人们表达方式的差异,导致大量的地址数据不规范,有些甚至是错误的数据。为了有效实现城市标准地址信息服务,从地址数据源中检测和消除错误数据、不一致数据以及重复数据,提升数据总体质量,地址标准化清洗工作是一项重要的、不可或缺的环节。
1 地址标准化
地址数据是公共地理框架数据的重要组成部分,是对地址信息的结构化描述与标识。其以坐标点位的方式描述某一特定空间位置上自然或人文地理实体的专有名称和属性,是专业或社会经济信息与地理空间信息通过地理编码或地址匹配进行挂接的媒介与桥梁。
1.1地址的分类
地址信息内容繁多,将城市常见的地名地址数据分成以下6类:
(1)行政区划:具有行政意义的数据,可以分为市级行政区划数据,区县级行政区划数据,街道/乡镇级行政区划数据,社区/村级行政区划数据。
(2)居民地:包括居住工作相对集中在一起的生活聚集地,比如自然村、居民小区等。
(3)门牌:民政部门颁发的独立门牌地址,比如湖东路188号、高新大道1号。
(4)楼址:指按院落内的建筑物按标准地址形式冠名的楼名楼号,比如1栋,逸夫楼等。
(5)兴趣点(POI):指与人们生活密切相关的地理实体,如学校、银行、餐馆、加油站、医院、超市等,比如肯德基(金山大道)店。
(6)专业部门使用的具有地名意义的台、站、港、场等名称。
1.2标准地址描述规则
标准地址采用分段组合的方式描述,由行政区划名称、基本区域限定物名称、局部点位置描述3大类要素共同组成。行政区划名称指省级、地区级、县级、乡级、行政村级行政区划;基本区域限定物名称指街、巷、居民小区、自然村等;局部点位置描述指门(楼)址、标志物名、兴趣点名等。
1.3地址编码方法
图1 地址数据编码方法
对于某个城市范围内的地址数据编码,采用4级制,即17位数字代码分为4级,如图1所示。
第1级代表行政区划,共5位数字代码,由2位“区县级行政区划码”和3位“乡镇级行政区划码”共同组成;第2级代表地块码,共6位数字代码,由3位“社区/居民委员会/村民委员会”码和3位“居民小区/单位名称”码共同组成;第3级代表局部点位置,3位数字代码,由“门牌/楼址/兴趣点”码组成;第4级为扩展码,3位数字代码,可以在需要添加其他信息的时候用到,比如将来有可能需要扩充的楼层号顺序码、房间顺序码号等,这样数据就从单纯的二维平面向三维立体空间延伸。
这种编码方法,很好地表示了空间位置及其包含的属性信息,格式规范,可以在不同平台间进行数据转换,有很强的可扩展性。
2 中文分词及其在地址标准化清洗中的应用
2.1中文分词
中文分词技术属于自然语言处理技术范畴,对于一句话,自然人可以通过自己的知识来明白哪些是词,哪些不是词,但计算机的理解过程是分词算法。中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块。与英文不同的是,中文地址中没有明显的词的界限,只能在进行中文自然语言处理之前,先进行分词。
中文分词根据实现场景的不同,主要分为基于词典分词算法和基于统计的机器学习算法。其中,基于词典的分词算法是应用最广泛、分词速度最快的。本文所使用的中文分词法,综合了以上两种方法,其中以基于词典的分词方法为主。同时,结合地名地址的特点,构造专业的地名地址词典、地名通名词典,以提高对地名地址领域词汇的识别和分词的精度。通过遍历地名通名词典,设计了地址标准化清洗的方法。
2.2词典内容设计
基于词典的中文分词普遍只设计一个分词词典,词典一般有十几万个词条,规模较大。本文对词典结构进行了重新设计,由基本词词典、地名地址专用词典组成词典集。基本词词典由除去特征词后所剩余的常用词和短语构成,在基本词词典中只包含两个字以上的词,减小了词典规模,也减少了匹配中的判断次数,提高了算法查询速度。
地名地址专用词典由一些在分词过程中具有标识意义的词组成,包括地名地址词典和地名通名词典,地名地址词典保存城市地名、路名等词条,用来提高对于地名地址专业领域词汇的识别,提高分词的精度。通过对地名特征的研究,发现大部分地名通常由专名和单字通名构成,如“南屿镇”“流水村”等,其中“南屿”“流水”为地名专名,“镇”“村”为地名通名。类似的单字通名,还有很多,比如以“省、市、县、区、乡、镇、村”结尾的行政区划地名等,以“海、江、河、湖、洋、岛、山、峰”结尾的地形地貌,以“路、街、坊、巷、弄”结尾的路名。
为了快速进行地名地址标准化清洗工作,本文构建了地名通名词典,用于保存这些单字通名。本文词典内容使用数据库保存,在程序运行时加载到内存。数据结构采用3层结构,每一层都能按照二分法进行查找,可以快速地把查询词的工作缩小到一个很小的范围内,有利于分词效率的提高。
2.3地址标准化清洗
2.3.1非标准地址和错误地址的识别
在实际生活中,有完整的行政区划信息、详细地址要素的标准地址非常少见,经过研究比对,非标准地址或错误地址主要有以下几种情况:
(1)地址串具有明确的指向性,但行政区划信息缺漏。在实际地址应用中经常出现这类非标准地址,需要完善行政区划信息进行标准化;
(2)地址串不具有明确的指向性,且行政区划信息缺漏。例如连锁超市在同一行政区划范围内存在较多的分布数量,这类地址需要额外补充附加描述信息才能明确其准确位置。地址标准化清洗时,这类地址只能提供结果集作为地址清洗的可选项,后续需要人工补充信息后再识别;
(3)地址串的地址元素之间存在混乱、倒置的情况,空间约束关系不清晰。地址标准化清洗时,需要对地址元素进行识别,并重新建立其空间约束关系,同时对描述信息中比较弱的关联关系进行过滤;
(4)地址串存在描述错误的空间约束关系。这类地址串属于错误地址,地址串只做标识,不做清洗处理。
2.3.2地址标准化清洗流程
基于中文分词词典的地址标准化清洗,关键是确定清洗策略和对标准地址数据库的查询。待清洗的地址串,通常是某一级别的地址要素或者某几个级别的地址要素的组合,因此在对行业地址数据进行清洗时,按照地址从高到低的组合顺序,基于正向最大匹配法从标准地址数据库中查找待清洗地址中涵盖的最大地址要素,实现模糊检索。为了提升地址清洗的速度,通过对基本词词典和地名地址专用词典建立索引,减少地址要素查询和比对的频率,优化数据清洗效率。
图2 地址数据清洗工艺流程
对于一条给定的待清洗地址串,清洗工艺流程如图2所示。
(1)初始化处理:将当前处理级别初始化为标准地址数据库中定义的最高级,当前地址串初始化为给定的待清洗地址串。
(2)正向最大匹配:采用正向最大匹配法对待清洗地址在当前处理级别的地址词典中进行查找,以获得其涵盖的最大地址要素。
(3)剩余地址串处理:将删除最大地址要素后剩余的字符串作为当前处理地址串,当当前地址串为空时,则将行业地址信息与标准地址信息的对应关系添加到清洗结果中。
(4)获得清洗结果:当待清洗地址串完全匹配时,则构建该地址串的标准地址,并从标准地址数据库中获取其相关信息,对待清洗地址信息进行完善;当待清洗地址串不完全匹配时,则显示最大地址要素,以及最大地址要素对应的标准地址及其在标准地址数据库中的相关信息,结束清洗。
图3 地址清洗匹配
(5)对于待清洗地址串,若其与查找出的最大地址要素字符串完全相同时,称之为完全匹配,清洗结果可以直接使用;若只有部分相同时,称之为部分匹配,部分匹配的结果需要通过人工识别的方式进行再确认。清洗后的地址匹配结果如图3所示。
3 结语
本文结合多源异构地址数据的特点,设计了中文地址编码层次模型和分类标准化,并基于词典的中文分词技术,设计一套地址标准化清洗流程,有效地实现了大量非标准地址数据的快速标准化,有助于各行业地址数据的融合处理,也为城市管理部门提供高可用的城市标准地址信息服务。
作者:姚路
本文刊发于《中国高新科技》杂志2020年第20期
(转载请注明来源)