1. 引言
目前的信息系统大多都包含有地址、联系方式这样的字段,如日常使用的地名、门牌、建筑物名称、企事业单位等,都是地址信息 [1] 。现有基于地址信息的民用IC卡系统存在与客服子系统不能关联的问题,民用IC卡系统负责用户的开卡、补卡等工作,系统中功能包括气量开补卡、售气、补写、燃气卡查询、用户信息查询和相关统计功能。客服子系统负责支持民用IC卡用户的地址管理、表具管理、巡检(安检)等业务功能,由于民用IC卡系统用户数据不规范,无法与用户管理系统-客服子系统用户数据相关联,无任何集成关系,导致客服人员不能及时查询民用IC卡系统的收费信息。由于早期的用户地址录入是人工书写记录,包含错别字,表达方式不同,地址数据不规范的问题,关联存在很大难度。针对此问题,研究地址关联工作,提出一种数据治理体系,包含组织构建、数据摸底、策略制定、数据治理、数据验证五个模块,可以实现地址数据的直接关联,试验证明,能有效提高地址关联率和准确率。
2. 复杂中文地址治理
依据地址多样性分析,得知原始数据杂乱无章、关系复杂,由此我们建立数据治理体系对地址数据进行有序处理。数据治理体系建设的目的,是建立数据拥有者、使用者、数据以及支撑系统之间的和谐互补关系,从全机构视角协调、统领各个层面的数据管理工作,确保内部各类人员能够得到及时、准确的数据支持和服务数据。治理体系主要包括组织构建、数据摸底、策略制定、数据管控、数据验证五个模块。通过组织架构建立管理方法,制定工作流程,确定角色职责。对数据进行摸底,充分掌握数据情况。通过策略制定有针对性的对不同类型数据采取不同关联方法。数据管控主要包括数据提取、数据分词、数据过滤、数据存储、数据标准化五部分进行数据关联,最后验证关联结果。各模块协同运营,确保数据关联率和准确率。
3. 数据治理体系
3.1. 组织构建
数据治理体系的组织构建旨在通过建立组织架构明确各级角色和职责,保障数据治理的各项管理方法、工作流程的实施,关联数据治理工作的有序开展。组织架构主要包括数据治理决策者、数据分析者、数据关 联者、数据测试者,数据质量管控者,数据清洗者。
具体包括如下人员:北京燃气集团信息档案中心、北京燃气集团销售服务部、北京燃气集团第一至五分公司和郊区子公司、北京信息科技大学,角色职责见表1。
3.2. 数据摸底
数据摸底工作在整个流程中非常关键,是对地址数据进行数据抽取,充分了解数据情况,从而制定合理的解决方案。通过数据抽取我们发现地址存在多样性,ic地址和kf地址存在严重差异,导致信息无法关联,主要分为以下几类:地址别称、信息缺失、重复记录等等,如下表2所示 [2] 。

Table 2. Common address error type
表2. 常见的地址错误类型
地址信息中楼号、单元号、门牌号缺失情况均有,导致整个小区无法关联,也有描述不清晰导致未关联的情况,例如“团河苑小区(团河农商行)”小区名表述模糊,实际分为东南西中四个区,地址信息中楼号、单元号、门牌号有重复的情况导致关联时出现一对多,多对一,由于有一个地址,存在多个用户的情况,例如:平房或四合院用户、写字楼类 用户、壁挂炉和普通家庭用户,导致数据库管理系统不能正确识别,造成重复记录。由于系统中用户的联系人和电话登记信息不完整,很难根据记录所包含的描述信息来确定与之相对应的实体,因此采用相似匹配技术,利用记录的文本相似度来判断两条记录是否相似,并且结合记录的语义信息来提高匹配的精度。
3.3. 策略制定
首先制定项目总体实施进度,确定任务交付时间有利于更好的制定计划。每周会议形式汇报本周工作完成情况以及下周工作计划,明确落实情况。及时反馈存在问题的数据情况,需要业务人员配合的事项要及时沟通。
针对全部地址数据的关联建立一套流程,包括地址预处理模型、关键词知识库迭代模型和地址数量猜测模 型,得到地址标准化结果和已匹配地址、未匹配地址。流程如下图1所示。地址预处理模型即数据清理过程,由数据抽取、数据分词、数据过滤、数据存储和数据标准化五个模块整合组成。关键词知识库迭代模型是将小区名进行字符串匹配和地理坐标定位,得到不同小区之间的关系,并构建了关键词知识库。数量猜测模型是指根据小区包含的户数做猜测,判断包含别名的小区之间的关系。

Figure 1. Address association process design
图1. 地址关联流程设计
数据清理遵循以下原则,如下表3所示:
1) 计算机+人工协同处理;
2) 不同数据使用不同关联方法;
3) 基于小区的模块处理方法;
4) 综合考虑多种方法结果进行双向预测与判定;
3.4. 数据治理
通过数据摸底我们已经了解了地址数据的多样性,制定了处理策略,针对全部待清理数据进行数据治理,首先设计了一套数据清理方案,包含五个模块,分别是数据抽取、数据分词、数据过滤、数据存储、数据标准化,最后进行数据关联。方案如下图2所示。
3.4.1. 数据抽取
数据的抽取必须能够充分满足数据清洗的需要,同时又要保证不影响源系统(民用IC卡系统、用户客服系统)的性能。一般情况下采用专用数据库驱动接口,必要的时候采用API接口编程实现数据的抽取,以提高数据抽取效率,同时减少对源系统性能的影响。对原始系统数据进行抽取,包括对分词后、标准化后以及关联后的每一步结果进行抽取都是必要的,都作为下一步的输入。
3.4.2. 数据分词
本项目基于特征字符的分词方案可以将地址按逻辑意义分为行政区域、街道、小区、楼、单元及门牌号六组信息分段管理。数据分词采用正则表达式结合特征字符进行分词。
分词的基本思想是首先创建基于行政区域、街道、小区、楼、单元标准信息的元数据库,根据能够区分出五组信息的特征字符的位置进行行政区域、街道、小区、楼、单元信息的截取。对于含有多语言文本表示的字段可先将西文和数字分离出来,再将地址字段按特征字符进行分词。应用基于元数据内容进行匹配的方法将截取的信息与元数据库中的标准信息进行校验,若匹配成功则返回元数据库中的标准信息,删除地址信息中相应长度的字符后再进行下一级别的信息匹配,从而实现信息的分割。进而保证了分词的准确性。
具体操作分类如下:
① 时有行政区域、街道、小区、楼、单元特征字符;
② 只含有街道、小区、楼、单元特征字符的地址信息;
③ 只含小区、楼、单元特征字符而不含街道特征字符;
④ 只含小区、单元特征字符而不含街道、楼特征字符;
⑤ 只含小区、门牌特征字符而不含街道、楼、单元特征字符;
⑥ 不含任何级别特征字符。
结果表明该方案能将绝大多数的地址类信息按逻辑意义进行分组。分析实际地址情况后建立特征字符集如表4所示,基于表4中列举的特征字结合正则表达式进行不同情况数据的分词。
3.4.3. 数据过滤
数据过滤的流程是重复记录清洗的过程,包括重复记录检测及处理。为了使数据库中每条记录都表示不同用户地址的准确数据,通常对相似重复记录聚类中数据的处理可采用合并或删除的方法。
依据实际情况将计算机自动处理与人工处理相结合。针对地址类信息的相似重复记录进行检测和处理,分为预处理和重复记录匹配两个模块。预处理模块包括属性选择(选取用于记录匹配的属性)、初步聚类(将潜在的可能重复的记录调整到邻近的位置)及清洗脏字段(处理不规范的数据)三个步骤,然后通过重复记录的匹配及其相似度的计算,能简单地、准确地确定两条记录间的相似度,其次是重复记录的聚类,使用基本近邻排序方法、多趟排序近邻方法和优先队策略等方法,即在前者的基础上,快速地在一个记录集中检索出所有相互匹配的相似记录集。
3.4.4. 数据存储
按计划分阶段完成一分、二分、三分、四分、五分和昌平公司的民用IC卡用户数据通过质量检查的数据导出工作。导出数据格式需要按照用户管理系统系统要求,支持导出数据可以导入用户管理系统。
3.4.5. 数据标准化
常见的地址不规范情况如下:
① 小写数字混淆;
② 全角、半角字符混淆;
③ 存在“-”、“--”、“#”等不规范符号表达;
④ 要素中包含冗余的“0”或者冗余汉字,如5号楼可能表达为“005号楼”。
针对以上的表达不规范情况,总结字符映射转换表格如下表5所示,进行多样表达的规范统一。

Table 5. Character map transform table
表5. 字符映射转换表
3.4.6. 数据关联
标准化的数据,通过关键词知识库迭代模型,将小区名进行字符串匹配和地理坐标定位调用高德API接口进行地理坐标确认,得到不同小区之间的关系,并构建了关键词知识库,基于小区之间的关系进行详细地址的匹配。输出已匹配的关键词,未匹配关键词通过数量猜测模型,根据小区包含的户数做猜测,判断包含别名的小区之间的关系。在创建别名知识库过程中涉及制定的情况标记规则,规则如表6。

Table 6. Situation mark rule table
表6. 情况标记规则表
进行地理坐标定位具体设计步骤如下:
①创建账户后申请key
②引入高德地图API
③创建地图容器
④创建默认地图
var map = new AMap.Map('container');
map.setZoom(10); //setzoom指定缩放级别
map.setCenter([116.39,39.9]);//指定地图中心
⑤点标注可以添加参数
var marker = new AMap.Marker({
icon : 'http://vdata.amap.com/icons/b18/1/2.png',//24px*24px//自定义图标
position : provinces[i].center.split(','),
offset : new AMap.Pixel(-12,-12),
map : mapObj
});
3.5. 数据验证
对已经关联的数据,进行全面的质量检查,只有通过检查的数据才能导入用户管理系统,检查失败的数据支持打回,重新进行分词、关联和核对。为了验证本文提出的数据治理体系的可用性,计算的“关联率”和“准确率”指标衡量地址关联的完成程度。关联率为两个系统“一一对应”的关联条数除以系统的数据总条数,准确率是达到地址中行政区域、街道、小区、楼、单元、门牌号的“一一关联”。从燃气IC系统真实用户数据中随机抽取样本7个小区,计算其关联率 [3] ,结果如表7所示。

Table 7. Roportion of associated date
表7. 关联数据所占比
分别从未关联数、关联后增量、关联率几个数据进行分析发现此关联方案能达到预期效果,针对每个小区的关联结果都有不同幅度从27%~100%的增量,各关联率均在92%以上。下面抽取各分公司已关联数据和总数据进行对比,分析其关联的准确率,结果如表8所示。
各分公司地址数据关联准确率都达到97%以上,四分和昌平达到100%,其他公司未达100%的原因一方面是由于原始数据中还存在一些要素严重缺失的数据,例如有的地址没有楼号、单元号、门牌号;另一方面是由于重复数据的存在,单元号和门牌号的对应错误。总体来看,本数据治理体系在处理复杂地址数据关联时可以获得较高的关联率和准确率,证明了此体系的可用性和有效性。
4. 持续改进
本文提出的方法只是解决了地址关联中的一部分问题,仍然存在许多需要继续研究和改进的地方。例如方法中加入情况规则标记和数据过滤、重复数据清洗,虽然提高了对于复杂地址的关联成功率,同时也增加了算法本身的复杂度,如何优化算法来提高算法的运行效率仍是以后研究的重点。在计算机与人工协同处理的过程中,如何减少人工重复校验,通过数据挖掘等方法来减少数据采集和数据库建设的工作量,还有地址匹配的结果如何更有效地利用,也是以后需要研究的方向。
5. 结论
由于人们对规范地址的认知度不高,表达不规范,导致地址关联率不高。本文提出了一种面向中文地址的复杂数据治理体系,并结合燃气系统两百万用户地址数据进行试验验证,结果表明地址的关联率和准确率都达到很高的水平,证明了此体系的可用性和有效性。本文建立的关键词知识库迭代模型,以地理坐标定位为空间约束条件,采用正则表达式结合特征字符进行地址分词,将地址数据进行字符串匹配,构建的关键词知识库,能够用于复杂中文地址,可以更好地实现地址关联,具有很好的适应性,不但能够用于匹配规范的中文地址,也能够用于匹配非规范的地址 [4] 。
致谢
感谢我的指导老师,北京信息科技大学计算机学院的张伟老师,张老师主要研究大数据处理、数据存储方向,对本论文的研究方向给出了建设性的意见和引导,并在我的多次修改中耐心提出改善意见,且不断鼓励我深入研究,做到最好。在此对张老师的帮助和关怀表示诚挚的谢意。
基金项目
北京市教育委员会科技计划项目(KM201811232017)。
参考文献
NOTES
*通讯作者。