張芬
(上海市測繪院,上海 200063)
隨著計算機網絡、數據庫等支撐技術的深入發展,GIS 技術應用也逐步拓展滲透到各行各業。地名地址匹配技術即地理編碼,是GIS 融入到相關領域的核心技術,它將其他行業的非空間專題數據與實際的空間地理坐標掛接,實現各個行業專題數據的“落地”,在此基礎上,通過在電子地圖上疊合專題數據,實現直觀的專題數據顯示與查詢、統計等GIS 功能。近年來,隨著地名地址匹配技術的逐步完善與深入應用,如何實現地名地址的便捷輸入、高效快速定位成為地名地址匹配應用的關鍵問題。
在消防系統案件處理中,接警員輸入報案地址,借助地名地址匹配功能獲得匹配坐標并在電子地圖上顯示報案地址。為保證案件接收處理的快速、便捷、準確,作為接警處警核心功能的地名地址匹配,必須能保證接警員能快速輸入地名地址,快速進行地址定位且匹配結果準確無誤。如何在特定的應用領域實現地名地址快速高效定位,筆者認為有兩個方面的問題需要解決,一個是輸入方式的革新,以保證接警人員的快速便捷輸入;二是定位快速準確,以保證處理警情的迅速無誤。
基于拼音音頭輸入的地名地址匹配技術,區別于一般的中文輸入的地名地址匹配功能,它能接收地址的拼音音頭輸入,能正確解析輸入的拼音音頭,并智能進行地址定位,輸出中文形式的實際地址以及與之匹配的地理坐標。
本文以應用在消防系統中的拼音音頭地址匹配技術為例,詳細介紹地名地址數據庫優化、地名地址輸入方式優化、快速檢索等關鍵技術。
數據的完備與否決定著地址匹配率的高低。一個檢索范圍廣,匹配率高的地名地址匹配功能后面,總有一個龐大的地址數據庫作為后臺支撐。盡管有Oracle等大型數據庫高效檢索機制的大力支持,龐大的地名地址數據同樣影響著地址匹配的檢索效率。管理好紛繁的地址數據,將這些數據進行有效分類,將數據庫的龐大數據量“化大為小”,是解決地址匹配效率的有效途徑。
在消防系統中,按照實際接處警的需要,地名地址匹配功能將地名地址數據分為道路門牌、居民區、鄉鎮、知名區域等類別,將整個龐大的地址庫按地址分類,邏輯上劃分成幾個小地址庫,在進行地址檢索時,按照輸入的地址類別標示,有針對性的檢索小地址庫,縮小檢索范圍,從而大大提高檢索速度。
為支持地名地址拼音音頭輸入,同樣需要后臺拼音音頭地址庫的支撐,所以,進行地址拼音音頭數據處理,建立地址音頭數據庫是首先必須完成的基礎工作。
按照一定的數據處理標準,將分類地址數據庫中的地址建立對應的拼音音頭地址庫,當用戶輸入拼音音頭地址時,地名地址功能能很快檢索到對應的中文地址。以居民區為例,建立居民區表與居民區拼音音頭表之間的關系如圖1所示。

圖1 數據表關系
(1)建立漢字—拼音音頭對照表
漢字—拼音音頭對照表是建立地址音頭數據庫的基礎,它是單個漢字與其拼音音頭的對照關系表,比如“樂”對應音頭“L”和“Y”,為保證覆蓋所有的消防接警地址,本項目建立了基本漢字—拼音音頭對照表(共計23 088個漢字),該表涵蓋常用漢字和其讀音音頭。
地址音頭數據庫是以漢字—拼音音頭對照表為基礎進行的。按照對照表,以一定的音頭數據處理標準,生產地名地址庫相對應的地址音頭數據庫,同時,可根據實際地址情況對漢字—拼音音頭對照表進行擴充,以保證基本漢字—拼音音頭對照表的可持續擴充。
(2)音頭數據處理標準
音頭數據生成是將地址詞條拆分為單字進行音頭轉換,對于屬于多音字的單字,會轉換出該字所有讀音的音頭,最后將該詞條所有單字的所有音頭進行排列組合,輸出結果。
根據單字的不同,有以下幾種處理標準:
①單音常用字:能在漢字—拼音頭對照表中找到,能輸出唯一的音頭;
②多音常用字:能在漢字—拼音頭對照表中找到,能輸出其所有讀音的音頭;
③生僻字:不能在漢字—拼音頭對照表中找到,需要人工生成音頭,并擴充漢字—拼音頭對照表;
④字符和數字:不能在漢字—拼音頭對照表中找到,按源字輸出。
(3)處理流程
音頭數據的處理流程為:將詞條拆分為單字,按照處理標準中的分類情況對單字進行處理,最后對各單字的音頭排列組合輸出結果。自動化處理結束之后,可根據處理過程中輸出的標識篩選出漢字—拼音頭表中不存在的漢字,然后將該字擴充至漢字—拼音頭表,并用程序自動修改存在該字的詞條音頭。
一般來說,輸入拼音音頭要比輸入漢字消耗的時間少,而且輸入方便。特別對于有口音干擾的報警地址,輸入拼音音頭確實是一個不錯的思路。同時,為了縮小地址檢索范圍,增加輸入地址分類標示。
考慮消防系統接警員輸入案發地址的實際場景,為提高地址的輸入效率,地名地址輸入由一般的中文地址輸入優化為地址拼音音頭輸入,并且滿足拼音頭的模糊輸入。消防接警員可以輸入案發地址的拼音音頭,比如“中興路”,往往輸入為“zxl”,甚至為了節省時間,輸入為“z”。對于地址“中興路靠近西藏北路”的檢索,輸入為:ZX[靠近]X。下圖為封裝調用拼音音頭地名地址匹配功能后的實際接處警輸入與輸出界面。輸入包括道路門牌、居民區、單位、鄉鎮、知名區域的分類標示以及地址拼音音頭,如圖2所示。

圖2 接處警輸入與輸出界面
確定用戶的輸入方式,處理數據分類,建立音頭數據庫之后,拼音音頭地址匹配邏輯基本上形成了。用戶輸入地址拼音頭、地址分類標示;地名地址功能根據輸入條件,首先進行輸入解析,之后檢索音頭數據庫,將輸入的地址拼音頭轉換成中文地址,然后再根據輸入的地址分類標示定位分類地址庫,最后利用中文地址在分類地址庫中進行小范圍檢索。利用音頭輸入法的便捷輸入以及縮小地址檢索范圍的策略,有效提高地址檢索效率。具體地址匹配邏輯如圖3所示:

圖3 拼音音頭地址匹配邏輯圖
本文闡述的基于拼音音頭地名地址匹配功能在輸入方式、數據庫分類存儲方面進行了創新,在提高地址輸入速度,加快匹配速度上做出了探索性的研究。目前,上海市測繪院制作的基于拼音音頭輸入的地名地址定位功能已經成功運用在上海市消防系統中。基于拼音音頭輸入的地名地址快速定位方法在其他需要快速輸入地址的地址匹配應用領域同樣具有很大的應用價值,該技術的拓展應用,將為不同領域,不同系統間的數據共享提供強有力的技術支撐。
[1]夏蘭芳,毛煒青,郭功舉.上海城市地理編碼系統應用與研究[J].測繪通報,2012(1):78 ~80.
[2]張林曼,吳升.地理編碼系統中地址匹配引擎的設計與實現[J].測繪信息與工程,2008,33(6):12 ~16.
[3]陳細謙,遲忠先,金妮.城市地理編碼系統應用與研究[J].計算機工程,2004,30(23):50 ~52.
[4]江洲,李琦.地理編碼(Geocoding)的應用研究[J].地理與地理信息科學,2003,19(3):22 ~25.
[5]趙東保,盛業華.全局尋優的矢量道路網自動匹配方法研究[J].測繪學報,2010,39(4)416 ~421.