羅寅 張俊坤 陳堯 楊曦
摘要:目前的地理信息系統(tǒng)已經(jīng)趨于完善,但仍受到許多因素的制約。比如,希望通過大量的地理信息數(shù)據(jù)建立模型,輸入一些未知的地理信息,就可以在一定程度上預(yù)測目標(biāo)位置時(shí),現(xiàn)有的技術(shù)會(huì)遇到許多挑戰(zhàn)。本文針對這一問題,提出通過將機(jī)器學(xué)習(xí)中的隨機(jī)森林算法應(yīng)用于地址文本,實(shí)現(xiàn)一定程度上的地理位置(經(jīng)緯度)的預(yù)測。
關(guān)鍵詞:機(jī)器學(xué)習(xí);隨機(jī)森林;經(jīng)緯度預(yù)測;地址文本
中圖分類號(hào):G424? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)08-0069-02
21世紀(jì)以來,由于互聯(lián)科技的發(fā)展,以前只存在于科研機(jī)構(gòu)和政府機(jī)關(guān)的數(shù)據(jù)已經(jīng)在互聯(lián)網(wǎng)隨處可見,地理信息也開始對群眾開放,而且它已經(jīng)進(jìn)入了人們的生活,成了必備的生活服務(wù)工具[1]。在解析地名后,將地理信息與自然語言結(jié)合在一起[3],如今通過發(fā)展,這些信息醫(yī)療保健、公共衛(wèi)生、科學(xué)研究、社會(huì)建設(shè)等領(lǐng)域展現(xiàn)出了十分顯著的作用[4-6]。
基于文本的地名解析,是對中文地名進(jìn)行識(shí)別和語義判斷并映射到文本中地名地理坐標(biāo)的過程[7]。一般的地名解析需要進(jìn)行5個(gè)步驟,構(gòu)建地名識(shí)別模型、構(gòu)建地名詞典、地名識(shí)別、局部模糊匹配、文本地理編碼[3]。一般流程為:篇章化需要地名解析的文本、基于篇章識(shí)別地名和局部模糊匹配地名、編碼文本地理。上述三個(gè)步驟都需要依賴機(jī)構(gòu)化的地名詞典[3]。
從上面的信息可以看出,目前地理信息系統(tǒng)非常依賴地理詞典。但是因?yàn)樾枰獙业幕A(chǔ)地理資料以及 GIS 服務(wù)商所提供的資料進(jìn)行結(jié)構(gòu)化的處理后才能夠得到一個(gè)地理字典。所以,在某些時(shí)候,當(dāng)?shù)乩頂?shù)據(jù)服務(wù)器無法及時(shí)地更新數(shù)據(jù),甚至無法獲取目標(biāo)所在的地理數(shù)據(jù)時(shí),就需要對目標(biāo)的地理位置進(jìn)行一定范圍內(nèi)的預(yù)測。針對這一問題,本文試圖將輸入文本形式的地址分詞,提取出其中的關(guān)鍵信息與經(jīng)緯度信息結(jié)構(gòu)化,通過隨機(jī)森林算法訓(xùn)練模型,使之可以在一定程度上進(jìn)行預(yù)測。通過實(shí)驗(yàn),得到關(guān)于經(jīng)緯度的0.002014969960158303的均方誤差,證明了本文的方案具有一定的有效性。同時(shí),由于本文的數(shù)據(jù)少且零散,也未對模型進(jìn)行更深的優(yōu)化,如果能夠獲得更好的數(shù)據(jù),相信本文所提出的方案所得到的偏差值更小。
1 數(shù)據(jù)來源
首先需要說明的是,由于筆者無法得到較健全的數(shù)據(jù),本文的數(shù)據(jù)來源為利用Python爬取拉勾網(wǎng)中所有登記的上海公司的首個(gè)地址文本(地址列表中的第一個(gè)),并利用百度地圖API將地址文本全部轉(zhuǎn)化為經(jīng)緯度。筆者選擇拉勾網(wǎng),是因?yàn)槔淳W(wǎng)中公司的地址描述較為完整,雖然根據(jù)理論來講,這樣得到的有效數(shù)據(jù)量較少、集聚程度較差,不利于對本文數(shù)據(jù)結(jié)構(gòu)的預(yù)測,但是本文主要目的是證明本文所建立的數(shù)據(jù)結(jié)構(gòu)的重要性,而不是為了進(jìn)行高精度的實(shí)驗(yàn),所以只要預(yù)測的結(jié)果在接受的范圍內(nèi)即可。另外,由于爬取全國地址所需的計(jì)算量太大,這里只針對上海市的地址進(jìn)行爬取,之所以選用上海,是因?yàn)檫@些地址在上海市的分布較為集中,而且上海市市轄區(qū)的劃分較為明確,非常符合本文建立的結(jié)構(gòu)化數(shù)據(jù)文本分詞對文本地址的要求。
2 數(shù)據(jù)預(yù)處理
通過可視化繪圖,數(shù)據(jù)的經(jīng)緯度分布情況如圖1(x軸為經(jīng)度,y軸為緯度):
通過圖1可以發(fā)現(xiàn),有大部分?jǐn)?shù)據(jù)集中在一小塊區(qū)域,而這些數(shù)據(jù)正是所需要的(數(shù)據(jù)越集中,預(yù)測結(jié)果精度越高),其他過于離散的數(shù)據(jù)需要排除掉。
2 所用工具和算法簡介
2.1 THULAC
THULAC(THU Lexical Analyzer for Chinese)是由清華大學(xué)自然語言處理與社會(huì)人文計(jì)算實(shí)驗(yàn)室開發(fā)并正式公布的一系列基于中文單詞法進(jìn)行分析的工具包,目前普遍地認(rèn)為,THULAC分詞工具包優(yōu)于大多數(shù)中文分詞工具包。
2.2 隨機(jī)森林
作為包含多個(gè)決策樹的隨機(jī)森林,可以有效地處理并解決決策樹泛化能力弱的問題。對于決策樹來說,它的構(gòu)成結(jié)構(gòu)為節(jié)點(diǎn)和有向邊,決策樹由根節(jié)點(diǎn)、葉節(jié)點(diǎn)和內(nèi)部節(jié)點(diǎn)構(gòu)成。決策樹算法將會(huì)從根節(jié)點(diǎn)開始運(yùn)算,在輸入的數(shù)據(jù)與決策樹中的特征節(jié)點(diǎn)進(jìn)行比對后,根據(jù)數(shù)據(jù)與特征節(jié)點(diǎn)的比對結(jié)果,選擇下一個(gè)合適的分支進(jìn)行再比較,直到比較到葉子節(jié)點(diǎn)結(jié)束,該葉子節(jié)點(diǎn)即為最后的決策結(jié)果。但在對于更加復(fù)雜、巨大的數(shù)據(jù)時(shí),決策樹的泛化能力弱的問題將影響決策結(jié)果,所以,由多個(gè)決策樹組成的隨機(jī)森林可以有效地解決該問題。
隨機(jī)森林屬于Bagging類型,Bagging策略來自Bootstrap Aggregation:從數(shù)據(jù)集中重采樣特征數(shù)據(jù),并在全部的數(shù)據(jù)中,對這些特征數(shù)據(jù)生成分類器(如ID3、CART等),重復(fù)重采樣和建立分類器這兩步,得到多個(gè)分類器,再根據(jù)這些分類器的決策結(jié)果,對數(shù)據(jù)進(jìn)行分類。
隨機(jī)森林在bagging的基礎(chǔ)上進(jìn)行了優(yōu)化:
1)數(shù)據(jù)的隨機(jī):從數(shù)據(jù)集中用Bootstrap選取部分?jǐn)?shù)據(jù);
2)特征的隨機(jī):從數(shù)據(jù)集中隨機(jī)地選出一些特征,并選擇最佳的特征作為節(jié)點(diǎn)建立決策樹;
3)重復(fù)以上兩個(gè)過程多次;
4)這些決策樹形成隨機(jī)森林,通過投票得出結(jié)果,決定數(shù)據(jù)屬于什么類。
3 結(jié)構(gòu)化數(shù)據(jù)的原理流程
3.1原理介紹
首先,將地址文本進(jìn)行分詞,并篩選得到有效的地理描述特征詞(如地名、名詞、方位詞等),這里用到的不是日常生活中用到的口語化的位置描述語句,而是特指含有完整的絕對地理位置信息的描述語句,如何把口語化的描述語轉(zhuǎn)化為完整的信息屬于NLP問題,不在本文所討論范圍內(nèi),所以本文使用“地址文本”指代這種語句。其次,將得到的地理描述特征詞轉(zhuǎn)化為易于計(jì)算機(jī)處理的特征值向量,最后,將特征值向量與地理位置信息結(jié)合(如經(jīng)緯度),得到完整的數(shù)據(jù)結(jié)構(gòu)。
3.2 實(shí)現(xiàn)流程
本文結(jié)構(gòu)化數(shù)據(jù)的實(shí)現(xiàn)較為簡單,可參見圖2所示,通過把地址描述分詞,并抽取出地名、名詞和方位詞,將其轉(zhuǎn)換位特征值。如果地址描述分詞后存在對應(yīng)的特征值,將特征值置為1,否則為0,再結(jié)合其經(jīng)緯度,形成完整數(shù)據(jù)結(jié)構(gòu)。最后通過上述的預(yù)處理,得到可用的結(jié)構(gòu)化數(shù)據(jù),部分?jǐn)?shù)據(jù)見圖3所示。
4 預(yù)測結(jié)果以及評(píng)估模型
實(shí)驗(yàn)得到的預(yù)測結(jié)果如圖4所示(部分):
評(píng)估模型的方法有很多,這里筆者只用最簡單有效的一種方法——求均方誤差。
其公式如下:
實(shí)驗(yàn)評(píng)估得到的結(jié)果為:0.002014969960158303
4 結(jié)論
總體來說,在只有拉勾網(wǎng)數(shù)據(jù)的情況下,這樣的誤差已經(jīng)比較理想。由于沒有上海市更多和更加完整的地址描述文本的信息,并受限于設(shè)備,無法進(jìn)行更多關(guān)于本文所提出的數(shù)據(jù)結(jié)構(gòu)對地理位置預(yù)測有效性的實(shí)驗(yàn)。但是,如果有更多有效數(shù)據(jù),預(yù)測值的偏差會(huì)更小。
參考文獻(xiàn):
[1] 李德仁.論21世紀(jì)遙感與GIS的發(fā)展[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版,2003,28(2):127-131.
[2] 李欣海.隨機(jī)森林模型在分類與回歸分析中的應(yīng)用[J].應(yīng)用昆蟲學(xué)報(bào),2013,50(4):1190-1197.
[3] 唐旭日,陳小荷,張雪英.中文文本的地名解析方法研究[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版,2010,35(8):930-935,982.
[4]HillLL.Georeferencing:theGeographicAssociationsofInformation[M].Cambridge:MITPress,2009.
[5] 江洲,李琦.地理編碼(Geocoding)的應(yīng)用研究[J].地理與地理信息科學(xué),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].南京:東南大學(xué)出版社,2017:173.
[9] [美] Jake VanderPlas.Python數(shù)據(jù)科學(xué)手冊[M].陶俊杰,陳小莉譯.北京:人民郵電出版社,2018:374.
[10] Stephen Lucci,DannyKopec. Artificial Intelligence in the 21st Century [M]. 北京:人民郵電出版社,2018:277-288.
【通聯(lián)編輯:唐一東】