利用随机森林基于文本形式的经纬度预测
2022-06-03罗寅张俊坤陈尧杨曦
罗寅 张俊坤 陈尧 杨曦
摘要:目前的地理信息系统已经趋于完善,但仍受到许多因素的制约。比如,希望通过大量的地理信息数据建立模型,输入一些未知的地理信息,就可以在一定程度上预测目标位置时,现有的技术会遇到许多挑战。本文针对这一问题,提出通过将机器学习中的随机森林算法应用于地址文本,实现一定程度上的地理位置(经纬度)的预测。
关键词:机器学习;随机森林;经纬度预测;地址文本
中图分类号:G424 文献标识码:A
文章编号:1009-3044(2022)08-0069-02
21世纪以来,由于互联科技的发展,以前只存在于科研机构和政府机关的数据已经在互联网随处可见,地理信息也开始对群众开放,而且它已经进入了人们的生活,成了必备的生活服务工具[1]。在解析地名后,将地理信息与自然语言结合在一起[3],如今通过发展,这些信息医疗保健、公共卫生、科学研究、社会建设等领域展现出了十分显著的作用[4-6]。
基于文本的地名解析,是对中文地名进行识别和语义判断并映射到文本中地名地理坐标的过程[7]。一般的地名解析需要进行5个步骤,构建地名识别模型、构建地名词典、地名识别、局部模糊匹配、文本地理编码[3]。一般流程为:篇章化需要地名解析的文本、基于篇章识别地名和局部模糊匹配地名、编码文本地理。上述三个步骤都需要依赖机构化的地名词典[3]。
从上面的信息可以看出,目前地理信息系统非常依赖地理词典。但是因为需要对国家的基础地理资料以及 GIS 服务商所提供的资料进行结构化的处理后才能够得到一个地理字典。所以,在某些时候,当地理数据服务器无法及时地更新数据,甚至无法获取目标所在的地理数据时,就需要对目标的地理位置进行一定范围内的预测。针对这一问题,本文试图将输入文本形式的地址分词,提取出其中的关键信息与经纬度信息结构化,通过随机森林算法训练模型,使之可以在一定程度上进行预测。通过实验,得到关于经纬度的0.002014969960158303的均方误差,证明了本文的方案具有一定的有效性。同时,由于本文的数据少且零散,也未对模型进行更深的优化,如果能够获得更好的數据,相信本文所提出的方案所得到的偏差值更小。
1 数据来源
首先需要说明的是,由于笔者无法得到较健全的数据,本文的数据来源为利用Python爬取拉勾网中所有登记的上海公司的首个地址文本(地址列表中的第一个),并利用百度地图API将地址文本全部转化为经纬度。笔者选择拉勾网,是因为拉勾网中公司的地址描述较为完整,虽然根据理论来讲,这样得到的有效数据量较少、集聚程度较差,不利于对本文数据结构的预测,但是本文主要目的是证明本文所建立的数据结构的重要性,而不是为了进行高精度的实验,所以只要预测的结果在接受的范围内即可。另外,由于爬取全国地址所需的计算量太大,这里只针对上海市的地址进行爬取,之所以选用上海,是因为这些地址在上海市的分布较为集中,而且上海市市辖区的划分较为明确,非常符合本文建立的结构化数据文本分词对文本地址的要求。
2 数据预处理
通过可视化绘图,数据的经纬度分布情况如图1(x轴为经度,y轴为纬度):
通过图1可以发现,有大部分数据集中在一小块区域,而这些数据正是所需要的(数据越集中,预测结果精度越高),其他过于离散的数据需要排除掉。
2 所用工具和算法简介
2.1 THULAC
THULAC(THU Lexical Analyzer for Chinese)是由清华大学自然语言处理与社会人文计算实验室开发并正式公布的一系列基于中文单词法进行分析的工具包,目前普遍地认为,THULAC分词工具包优于大多数中文分词工具包。
2.2 随机森林
作为包含多个决策树的随机森林,可以有效地处理并解决决策树泛化能力弱的问题。对于决策树来说,它的构成结构为节点和有向边,决策树由根节点、叶节点和内部节点构成。决策树算法将会从根节点开始运算,在输入的数据与决策树中的特征节点进行比对后,根据数据与特征节点的比对结果,选择下一个合适的分支进行再比较,直到比较到叶子节点结束,该叶子节点即为最后的决策结果。但在对于更加复杂、巨大的数据时,决策树的泛化能力弱的问题将影响决策结果,所以,由多个决策树组成的随机森林可以有效地解决该问题。
随机森林属于Bagging类型,Bagging策略来自Bootstrap Aggregation:从数据集中重采样特征数据,并在全部的数据中,对这些特征数据生成分类器(如ID3、CART等),重复重采样和建立分类器这两步,得到多个分类器,再根据这些分类器的决策结果,对数据进行分类。
随机森林在bagging的基础上进行了优化:
1)数据的随机:从数据集中用Bootstrap选取部分数据;
2)特征的随机:从数据集中随机地选出一些特征,并选择最佳的特征作为节点建立决策树;
3)重复以上两个过程多次;
4)这些决策树形成随机森林,通过投票得出结果,决定数据属于什么类。
3 结构化数据的原理流程
3.1原理介绍
首先,将地址文本进行分词,并筛选得到有效的地理描述特征词(如地名、名词、方位词等),这里用到的不是日常生活中用到的口语化的位置描述语句,而是特指含有完整的绝对地理位置信息的描述语句,如何把口语化的描述语转化为完整的信息属于NLP问题,不在本文所讨论范围内,所以本文使用“地址文本”指代这种语句。其次,将得到的地理描述特征词转化为易于计算机处理的特征值向量,最后,将特征值向量与地理位置信息结合(如经纬度),得到完整的数据结构。
3.2 实现流程
本文结构化数据的实现较为简单,可参见图2所示,通过把地址描述分词,并抽取出地名、名词和方位词,将其转换位特征值。如果地址描述分词后存在对应的特征值,将特征值置为1,否则为0,再结合其经纬度,形成完整数据结构。最后通过上述的预处理,得到可用的结构化数据,部分数据见图3所示。
4 预测结果以及评估模型
实验得到的预测结果如图4所示(部分):
评估模型的方法有很多,这里笔者只用最简单有效的一种方法——求均方误差。
其公式如下:
实验评估得到的结果为:0.002014969960158303
4 结论
总体来说,在只有拉勾网数据的情况下,这样的误差已经比较理想。由于没有上海市更多和更加完整的地址描述文本的信息,并受限于设备,无法进行更多关于本文所提出的数据结构对地理位置预测有效性的实验。但是,如果有更多有效数据,预测值的偏差会更小。
参考文献:
[1] 李德仁.论21世纪遥感与GIS的发展[J].武汉大学学报·信息科学版,2003,28(2):127-131.
[2] 李欣海.随机森林模型在分类与回归分析中的应用[J].应用昆虫學报,2013,50(4):1190-1197.
[3] 唐旭日,陈小荷,张雪英.中文文本的地名解析方法研究[J].武汉大学学报·信息科学版,2010,35(8):930-935,982.
[4]HillLL.Georeferencing:theGeographicAssociationsofInformation[M].Cambridge:MITPress,2009.
[5] 江洲,李琦.地理编码(Geocoding)的应用研究[J].地理与地理信息科学,2003,19(3):22-25.
[6] Goldberg D W,Wilson J P,Knoblock C A.FromTextto Geographic Coordinates:The Current State of Geocoding[J].URISA Journal,2007,19(1): 33-46
[7] Leidner J L. Toponym Resolution in Text: Annotation, Evaluation and Applications of Spatial Grounding of Place Names[D].Edinburgh: University of Edinburgh, 2007
[8] Aurélien Géron. Hands-On Machine Learning with Scikit-Learn and TensorFlow [M].南京:东南大学出版社,2017:173.
[9] [美] Jake VanderPlas.Python数据科学手册[M].陶俊杰,陈小莉译.北京:人民邮电出版社,2018:374.
[10] Stephen Lucci,DannyKopec. Artificial Intelligence in the 21st Century [M]. 北京:人民邮电出版社,2018:277-288.
【通联编辑:唐一东】