馬照亭,李志剛,孫 偉,印 潔
(1.中國測繪科學研究院,北京 100830;2.嘉興市規劃 (測繪)管理局,浙江嘉興 314000)
一種基于地址分詞的自動地理編碼算法
馬照亭1,李志剛2,孫 偉1,印 潔1
(1.中國測繪科學研究院,北京 100830;2.嘉興市規劃 (測繪)管理局,浙江嘉興 314000)
針對我國多數城市地名/地址表述的不規范性,基于可伸縮地址模型提出地理編碼數據庫的構建方案,設計一種基于地址分詞的自動地理編碼算法。首先根據地理編碼庫編制地址詞典,利用地址詞典對地名/地址進行地址分詞,形成地址要素及其級別;然后再對地址要素及其級別組合形成查詢條件到地理編碼庫中進行匹配;最后分析影響這種地理編碼算法精準度的因素,并提出相應的改進措施。實踐證明,該算法匹配準確率高,可以服務于我國數字城市、省區和國家級地理信息化建設。
地址模型;地理編碼數據庫;地址詞典;地址分詞;地址匹配;地理編碼量化
隨著地理信息采集手段的不斷普及和 GIS軟件的不斷成熟,越來越多的政府部門、公司、企事業單位基于地理信息構建本單位的業務應用。一些傳統上似乎與地理信息系統關聯性較弱的部門或單位,如工商、稅務、藥監、傳媒等,也紛紛提出了借助地理信息管理本部門信息的要求。但是這些部門或單位的專題信息采集時并不直接具備空間坐標,只是具有文字描述的地名/地址信息。只有將這些地名 /地址轉換成空間坐標,專題部門才能將專題數據與地理信息疊加,才能利用 GIS軟件的可視化和空間分析功能輔助本部門應用。這種將地名/地址信息映射成空間坐標的過程就是地理編碼[1]。
發達國家對地理編碼的研究較為成功,美國是地理編碼技術應用最早、最廣泛的國家。20世紀 70年代美國就建立了全國的地理編碼標準,并開發了通用的地理編碼軟件工具,20世紀 90年代后開始成功地應用于與人口數據相關的全國人口地址編碼系統 (TIGER系統),在歷次全國人口普查統計中發揮了巨大作用[2]。一些著名的國外 GIS軟件都具有地理編碼模塊,如 Map Info的 MapMarker和ArcGIS的 GeoCoding等,實現了基本的地址編碼框架和匹配引擎。由于國情不同,我國的地名/地址體系異常復雜,其管理缺少統一的標準和有效的服務體系,導致國外的地理編碼技術和軟件在我國并不適用[3]。
近年來,我國在地理編碼方面也作出了大量的努力,不少單位在地址模型、地理編碼標準以及地址匹配技術方面取得了一些成果。如李軍針對北京市地址現狀,提出了復雜層次的地址模型[4];在地理編碼標準方面,國家測繪局組織編制了國家標準《數字城市地理信息公共平臺地名/地址分類、描述及編碼規則》(GB/T 23705—2009),提出了城市內部地名 /地址分類、規范描述及編碼的規則[5];在地址匹配技術和軟件方面,文獻提及較多的是早期北京長地計算機公司的“尋址神”和北大方正數碼公司的“Map Search”軟件,近期并無成熟軟件問世。由于沒有適合國內應用的地址模型,未能建立標準的地理編碼數據庫系統,現有地理編碼技術仍局限于某個具體的應用系統,難以推廣應用[6]。有些部門在對本部門信息空間化時,甚至不惜重金將其逐一在地理信息底圖上人工定位,既耗時又費力。
基于地址分詞的自動地理編碼是基于地址詞典將地名/地址字符串切分為一組記錄級別的地址要素或標志物通名,然后利用切分到的一個或多個地址要素或關鍵詞組織成查詢條件與規范的地理編碼庫進行匹配。如果匹配成功,返回地理編碼庫中相應記錄的地理坐標;否則,根據需要,返回地名/地址所在道路、社區或其他行政區劃的地理坐標。匹配完成后,再對算法的精準度進行效果量化。基于地址分詞的自動地理編碼的實現流程如圖 1所示。

圖 1 算法實現流程
利用結構化的詞組對地名/地址進行表述和交流即地址模型,它反映了一個國家或地區對于地名/地址描述的不同方式。國家標準《數字城市地理信息公共平臺地名/地址編碼規則》(GB/T 23705—2009)中規定了不同粒度范圍地名 /地址的描述規則,可以看作是一種在層次上可伸縮的地名 /地址模型:根據地名 /地址描述粒度的不同描述規則自動伸縮,如圖 2所示。

圖 2 可伸縮的地名 /地址層次模型結構圖
由于一個城市內的道路名和小區名是唯一的,因此利用“道路名 (小區名)+門 (樓)牌號”可以精確定位一個地址,利用“行政區劃 +標志物名”一般也可以準確定位一個地址,而道路名、小區名、街道名也可以大致定位一個地址范圍。即當存在門(樓 )牌號時 ,僅使用“道路名 (小區名 )+門 (樓 )牌號”來表述一個地址;當存在標志物時,使用“行政區劃 +標志物名”進行表述;當此表述的標志物多于一個時,對行政區劃的粒度進行延伸,直至唯一確定此地址。例如,中國測繪創新基地的地址是“北京市海淀區蓮花池西路 28號中國測繪創新基地”,在北京市的應用中可以簡化為“蓮花池西路 28號”而不會造成任何歧義;再如,將“北京市石景山區華聯商廈”使用“北京市華聯商廈”進行描述可能定位到多個標志物,這時就需要延伸區級乃至街道級的區劃對其進行描述。
根據可伸縮地址模型對地名/地址描述的規則,筆者在地理編碼庫中分別設計了地名、標志物和門 (樓)牌三個數據表分別框架地名 (行政區劃、道路、小區)、標志物和門 (樓)牌及其地理坐標,并定義了各數據表的結構。按庫表結構依次錄入全市所有區縣、街道、道路、小區、標志物、門 (樓)牌的名稱 (簡稱、別名)和地理坐標即可構建一個城市的地理編碼庫。地理編碼庫檢查無誤后,分別選取框架地名數據表中的“城市名稱、城市別稱、區縣名稱、區縣別稱、街道辦名稱、道路名稱、小區名稱、小區別稱”、標志物數據表中的“標志物名稱、標志物別稱”以及門 (樓)牌數據表中的“門 (樓)牌 ”字段值作為地名/地址詞條,連同相應的地址級別記錄在地址詞典中。當地名別稱作為一個詞條時,還需記錄與本詞條相對應的標準名稱,以便在地址分詞時實現地址要素的規范化。
借助地址詞典和中文自動分詞算法,將一串文字描述形式的地名/地址切分、轉化為計算機能夠理解的、結構化的多個地址要素或標志物通名 (如酒店、大廈等),這一過程即地址分詞,它是實現地址標準化的重要途徑。地址分詞與中文自動分詞的不同在于詞典的內容和結構:在內容上,前者需在后者詞庫內容的基礎上擴充《中國地名用詞庫》中的通用地名詞條和一個城市中的專用地名/地址詞條;在結構上,地址詞典需要為地址要素掛接“標準名稱”和“地址級別”兩個屬性字段。有關中文自動分詞算法的技術細節,請參考文獻[7]。
表 1是可伸縮地址模型中地址要素采用的地址級別。這樣,當地址分詞切分出“北京市”、“西城區”、“華聯商廈”三個地址要素時,根據地址詞條中記錄的級別,我們可以準備定位到北京市西城區的“華聯商廈”,而不是北京市石景山區的“華聯商廈”,也不是沈陽市西城區的“華聯商廈”。

表 1 可伸縮地址模型中地址要素采用的地址級別
地址分詞后,需要對切分出來的地址要素進行標準化處理,如將城市、區縣、小區、標志物的別稱標準化為規范名稱。這一過程可通過關于地址詞典中詞條的“標準名稱”屬性實現。
將地址分詞切分出的地址要素或通用詞按可伸縮地址模型恢復成計算機可以識別的地址,并在地理編碼庫中比對出地理坐標的過程即地址匹配。由于切分出來的地址要素中具有可伸縮地址模型的地址級別,按如下流程可以在地理編碼庫中進行快速匹配。
1)切分出來的一組地址要素中含有門 (樓)牌號碼時 (如果門 (樓)牌地址要素前無道路名或小區名地址要素,視同門 (樓)牌),利用門 (樓)牌號碼可以在門 (樓)牌數據表中精確匹配。
2)當切分出來的一組地址要素中不含門 (樓)牌號碼,但包含標志物時,為了避免同名標志物的出現,結合地址模型中的行政區劃進行地址匹配。
3)當切分出來的地址要素中不含門 (樓)牌號碼和標志物,但包含標志物通用詞時,可以按標志物通用詞進行模糊查詢,將滿足條件的一條或多條記錄返回給用戶,供用戶交互甄別。
4)當切分出來的地址要素中不含任何門 (樓)牌號碼、標志物和標志物通用詞時,用最高地址級別地址要素進行匹配,返回道路、小區或行政區劃的地理坐標。
為了驗證算法的有效性,筆者提出了可信度作為地理編碼確定性評價的量化指標。當一個地名/地址經本算法能精確轉換為地理坐標時可信度為100%,完全不能定位時為可信度為 0。從算法流程上可以看出,本地理編碼算法的可信度與地址分詞的地址切分準確度、匹配準確度正相關。在地理編碼庫和地址詞典相同的情況下,可信度只取決于匹配準確度。根據可伸縮地址模型,定義匹配準確度的計算方法如下

式中,Mi為地址要素在地理編碼庫中的匹配準確度,匹配成功時為 1,匹配失敗時為 0;Wi為各地址要素在可伸縮地址模型中所占的權重,取值介于0.0和 1.0之間。可伸縮地址模型中各地址要素在本算法中量化計算時的權重如表 2所示。

表 2 可伸縮地址模型中地址要素采用的權重值
在本算法中,由于地理編碼庫中的所有地址要素均包含在地址詞典中,匹配準確度完全取決于地址分詞切分的地址要素,取決于地址詞典 (地理編碼庫)的豐富性和全面程度。當地址詞典中缺少“石景山醫院”時,匹配地址“北京市石景山醫院”時只能分解出“北京市”、“石景山”、“醫院”三個詞條,只能通過模糊搜索,得到北京市石景山區內包含“醫院”的所有標志物的空間坐標,供用戶確認。如“北京市石景山區中醫醫院”、“北京市石景山醫院”、“北京市石景山同心醫院”、“北京市石景山區五里坨醫院”等都在結果之列。如果在地址詞典中擴充“石景山醫院”一詞,可以直接到“北京市石景山醫院”的空間坐標。可見,提高本算法可信度的關鍵是按照可伸縮地址模型的規范不斷更新與完善地理編碼庫。
基于上述設計思想和算法,通過改造開源的中文分詞代碼包,筆者開發了利用地理編碼庫編制地址詞典的工具,搭建了基于地址分詞的地名/地址批量匹配工具。圖 3是地名 /地址批量匹配工具的操作界面,用戶選擇一個 Access或 Excel格式的表格,就可以按表格中指定的地名/地址字段進行批量地址匹配。對于有多個可能結果的地名/地址,由用戶根據返回的結果在地圖窗口中予以確認。

圖 3 自動地理編碼批量處理工具界面
依托國家測繪局開展的數字城市地理信息公共平臺建設項目,分別針對多個城市不同部門的專題數據進行地理編碼試驗,結果表明,匹配成功率均在 90%以上,如圖 4所示。

圖 4 不同城市不同部門地理編碼結果統計圖
本文提出了一種基于地址分詞的自動地理編碼算法,在深刻剖析實現所需關鍵技術的基礎上,在數字城市地理信息公共平臺軟件 NewMap GIS中實現了適用于我國城市地名/地址的地理編碼功能。試驗表明,本算法正確、有效,不但適應于城市級地名/地址的地理編碼,而且適用于省級和國家級地名信息向空間坐標的轉換。但是,由于地理編碼庫中未考慮諸如地址中存在錯別字、同音字等地址筆誤的情況,算法在此方面的兼容性還有待加強。
[1]江洲,李琦.地理編碼 (Geocoding)的應用研究 [J].地理與地理信息科學,2003,19(3):22-25.
[2]U.S.Census Bureau.TIGERμ,TIGER/Lineμ and TIGERμ-Related Products[EB/OL].[2010-01-20].http:∥www.census.gov/geo/www/tiger/,2008-12/2009-10-1.
[3]王凌云、李琦、江洲.國內地理編碼數據庫系統開發與研究[J].計算機工程與應用,2004(21):167-168,212.
[4]李軍,李琦,毛東軍,等.北京市地理編碼數據庫的研究[J].計算機工程與應用,2004(2):1-3,6.
[5]國家質量監督檢驗檢疫總局.GB/T 23705—2009數字城市地理信息公共平臺地名/地址編碼規則 [S].北京:中國標準出版社,2009.
[6]江洲,李小林,劉碧松.地理信息系統地址編碼技術標準化研究[J].標準化研究,2007(5):22-25.
[7]劉開瑛.中文文本自動分詞和標注 [M].北京:商務印書館,2000.
An Automatic Geocoding Algorithm Based on Address Segmentation
MA Zhaoting,L I Zhigang,SUN Wei,YIN Jie
0494-0911(2011)02-0059-04
P208
B
2010-05-17
馬照亭 (1976—),男,河南睢縣人,助理研究員,主要研究方向為數字城市、GIS應用和三維 GIS。