龍 雨,李 爽,李 華 瑋
(1.武漢大學遙感信息工程學院,湖北 武漢 430072;2.武漢大學計算機學院,湖北 武漢430072)
一般采用模糊搜索技術實現位置語義中對象的定位[1],但當用戶使用包含空間關系的位置語句查詢時,往往得不到正確的檢索結果,如現有的高德、百度地圖等定位服務系統無法對“華中師范大學東校區”或“電腦城在口腔醫院西北方向200 m”進行定位查詢。對位置的描述實際上涉及空間認知。若參照物范圍較小,往往會忽視其輪廓,如查詢“武漢大學法學院南邊50 m的教學樓”,可將法學院視作POI點,用傳統方法定位。當參照物范圍較大,且隱含目標對象與參照物間的包含關系時,會將參照物視作面要素,如“武漢大學南邊50 m的小區”,通常理解為從武漢大學南部邊界出發、向外延伸50 m的位置;若不考慮武漢大學范圍而以幾何中心點為參考,定位結果可能落在學校內部,不符合具體情境語義。因此,某些情境定位需綜合考慮對象幾何輪廓。
隨著計算機技術的發展,利用機器學習人類語言,揭示對象間更深層次的自然關系,進而提供符合語義情境的位置服務已成為重要研究方向。學者從語言描述層面解析空間定位問題,并通過提取潛在語義和構建模型有效解析地址信息,提高了地址與位置的匹配精度[2-4]。另一方面,隨著網格計算的興起,國內外學者將地理網格[5]與計算機網格相結合,建立了地理空間信息多級網格概念;通過將各種數據轉換到地理網格中,進行地理信息的單元化分析[6,7]和管理[8,9],形成空間信息與資源信息的映射,提供相應的數據服務。但現有的正多面體和正六邊形球面網格[10]在空間方位和空間位置的轉換中計算復雜,而GeoSOT網格嚴格遵循四叉樹遞歸剖分,通過3次擴展經緯度空間能夠產生整度、整分、整秒的網格層次[11],使得GeoSOT坐標轉換和空間方位計算較為簡單,同時與地圖圖幅特征能保持良好同構性,并能夠聚合其他網格(Google maps、Bing等),實現空間數據共享。因此,本文針對面要素位置描述中存在方位或距離的情況,提出一種基于GeoSOT的面要素語義位置的地理網格定位方法,實現面要素語義位置到空間位置的轉換計算。
面要素語義位置定位是指通過已知地理位置信息和空間相對位置關系,實現要素區域定位或位置推理的方法。由于面要素范圍較大且形狀復雜,當存在方位、距離等空間關系描述時,采用點要素定位法易產生誤差或難以辨明內外關系。因此,本文利用九宮格劃分思想,將已知面要素劃分成具有方位屬性的小區塊,再根據語義描述的參照物和空間關系查詢、計算目標所在位置。上述定位結果并非是對象的實際經緯度值,故使用GeoSOT地理網格標識對象可能存在的區域,具體流程如圖1所示。

圖1 方法總體流程
首先采用IKAnalyzer對位置描述語句進行分詞,提取對象的名稱或別稱;然后利用IKAnalyzer特有的正向迭代最細粒度切分算法,從詞庫中檢索詞語的最大分割詞,再層層迭代切分至最小粒度,如“中國人民銀行”的最大分割詞和最小粒度分詞分別為“中國人民銀行”“中國人民|人民銀行|中國|人民|銀行|人”;最后以名稱或別名為參數,通過請求互聯網地圖服務接口(如高德地圖API)得到相關數據信息,進而以數據信息中的興趣點編號(ID)作為參數請求另一個接口,得到對象的邊界坐標和更多地理信息。本文以名稱、ID和邊界坐標為必需字段建立初始的面要素基礎信息庫(表1)。

表1 面要素基礎信息
為體現面要素包含的空間語義,本文采用九宮格對其進行分割。首先計算面要素的最小外包矩形(Minimum Bounding Rectangle,MBR),通過九宮格將其細分成具有相對位置關系的9個區塊;然后分別計算、存儲區塊的GeoSOT網格編碼集,作為后續查詢定位方法的基礎。
1.2.1 全球剖分網格GeoSOT GeoSOT是一種基于經緯度網、適用于空間信息和數據組織的全球剖分網格,由于劃分方便、鄰接關系簡單,可廣泛應用于各種場景。GeoSOT同一層級網格間隱含了距離和方位的關系,不同層級的剖分面片對空間位置模糊性表示具有天然優勢[12]。GeoSOT表達的地理信息具有全球性,不同區域的數據能在該網格框架中融合,保證整體一致性和可擴展性;同時,該網格能夠聚合成其他地理網格,具有較好的同構性,可繼承或轉換不同網格的地理數據,實現資源整合共享。
為使剖分面片大小為整度、整分、整秒,GeoSOT以地球經緯度空間作為第0級剖分面片(圖 2a),每下一級面片都在上一級的基礎上進行四叉劃分,第1次擴展將180°×360°地球表面空間擴為512°×512°(圖 2b);為保證經緯線上嚴格整型二分,進一步對1°和1′的面片進行擴展,即從1°等于60′擴展到64′(圖 2c),從1′等于60″擴展到64″(圖 2d)[11,13];最后采用64位編碼標識剖分面片(圖 2e)。
1.2.2 面要素分割與網格編碼
(1)面要素分割。首先對面要素構建最小外包矩形MBR,然后以1/3邊長在MBR各邊上建立分割點,通過組合不同分割點的經緯度值得到九宮格區域;借助該九宮格可將面要素分解成9個子區塊,并獲取各區塊方位屬性(圖 3),其中,wn、ws、en、es、n、w、s、e、mid分別代表西北、西南、東北、東南、北、西、南、東、中央。相對于通過GeoSOT編碼單獨計算網格間關系,九宮格能從整體上將網格集合按方位歸類;而GeoSOT網格采用四叉樹數據結構,其方位計算取決于參照物。例如,以GeoSOT網格查找某對象東南邊,以C為參照可定位到A網格,以B為參照則無法獲得相同結果(圖4a);九宮格劃分則能消除這種不確定性,東南方向固定為A區域(圖 4b)。

圖2 GeoSOT網格剖分及空間擴展[11]

圖3 面要素分割示意

圖4 GeoSOT與九宮格方位對比
(2)各區塊GeoSOT編碼集計算。根據實際應用中面要素大小確定合適的GeoSOT層級,計算該層級面要素分割中九宮格區塊的GeoSOT編碼集并進行存儲。存儲數據庫中,每個面要素和子區塊通過ID及方位關聯;每個子區塊具有獨立的編碼集合,網格的方位屬性與要素子區塊的方位一致;編碼集的并集即為該面要素的完整編碼集,具體的數據結構如圖 5所示。

圖5 面要素相關數據整體結構
將已有的面要素作為參照物,根據描述中的相對空間關系查找或計算目標對象所在的GeoSOT網格,模糊表達定位范圍。該步驟將所有已知或未知地理范圍的對象整合到GeoSOT網格中,以網格形式進行位置信息的存儲和表達,對原有面要素數據集進行了擴展。具體實現步驟如下:首先分析定位語句,提取的語義關鍵詞可分為地理對象名稱、方位、距離3種類型,如“武漢大學西邊200 m”分詞結果為:“武漢大學|西邊|200 m”,地理對象名稱用于在數據庫中檢索位置參考物,距離和方位用于計算偏移。然后,根據方位選擇對應區塊作為參照物,將距離轉換為網格大小,利用GeoSOT編碼進行計算得到目標區域網格。由于人們對方位的認知一般為四方向或八方向,因此對九宮格劃分產生的2種區塊(圖 3),在具體位置推算時分別討論。
(1)當方位關鍵詞為中間方位時,傾向采用八方向定位,選擇最合理區塊計算。例如,“東北邊”可理解為“東、東北、北”3種,優先以東北區塊計算結果;當東北區塊無地理實體時,以東和北區塊代替,此時需考慮方位補足(即東區塊向北平移,北區塊向東平移);若這3個區塊無地理實體,便以中央區塊代替,不考慮中央是否無實體。假設定位“A對象|東北邊|200 m”,東北方向200 m約等于向東和向北同時移動141 m(200 m×sin45°),一個20級網格約為64 m,近似2個網格大小。GeoSOT網格由經度編碼與緯度編碼組合而成,在東北半球,代表經度的整型編碼加(減)1表示向右(左)平移1個網格,代表緯度的整型編碼加(減)1表示向上(下)平移一個網格[10],故此時通過在經度、緯度編碼上分別加2計算得到A對象東北區塊網格編碼。若當前所尋找對象在A外部,將計算結果與移動前的網格編碼取差集。
(2)當方位關鍵詞為基礎方位時,傾向采用四方向定位,對應的中間方位也參與計算。例如,“A對象|東邊|200 m”代表將東、東北、東南區塊向東平移3個20級網格大小,因此,在對應網格的經度編碼上加3,得到定位結果。
為驗證本文方法的可行性和有效性,本研究收集武漢市內各高校及科研院所的位置數據,包括88所大學(含民辦)和23所科研院所(具備研究生招生資格)。首先,根據院校及科研院所的名稱在高德地圖中查詢獲得對應的ID、坐標、邊界范圍等詳細信息,建立基礎信息數據庫SchoolDB;然后對每個院校及科研院所進行九宮格劃分,計算各子區塊統一在第20層級下的GeoSOT編碼,構建空間信息數據庫GeoSchoolDB。最后,根據語義關鍵詞進行直接查詢或推理獲得定位結果。本實驗按照定位中語義內容的不同主要分為兩種情境。
情境1:在參照物內部的定位。若定位“華中師范大學西北區”,隱含的語義是“華中師范大學內部”,由于華中師范大學作為院校類型的面要素已進行了劃分,可直接查詢,其在第20層級下的GeoSOT網格集合如圖6a所示;若定位“華中師范大學西區”,結果如圖6b所示,西區塊可能性最高(深色網格),西北和西南次之(淺色網格)。此種情境下,若需匹配到具體對象,對比邊界經緯度進行查詢,網格編碼的查詢效率更高;若無需匹配對象,采用網格保證數據存儲格式具有統一性,為更復雜的情境定位(類似情境2)奠定數據基礎。

圖6 華中師范大學部分網格集合
情境2:在參照物外部的定位。若定位“水生所27號宿舍位于水生所東邊50 m”,需提取關鍵詞“27號宿舍|水生所|東|50 m”。首先在GeoSchoolDB數據庫中檢索得到“水生所-東區塊”的網格集合(表 2);根據GeoSOT各級面片大小,一個20級網格(約64 m)最接近需求距離(50 m),故在經度方向編碼上加1后得到目標網格編碼。由于宿舍在水生所外部,對網格取差集得到圖7中灰色部分網格。

表2 水生所東區塊GeoSOT編碼集

圖7 水生所東邊50 m網格查詢結果
通過高德地圖的坐標拾取工具進行驗證。獲得水生所27號宿舍的經緯度坐標約為(114.358012°E,30.544629°N),計算出網格編碼為G001132230-210101-21310,與圖7中深色網格編碼一致,證明實驗對該語句的定位查詢有效,而使用高德地圖則無法直接對水生所27號樓定位(圖8黑框處)。

圖8 高德查詢27號宿舍結果
對具有語義位置的空間定位認知取決于語義描述中對象自身的空間范圍大小:當對象空間范圍較小時,根據對象幾何中心點或其邊界輪廓進行定位的結果相差不大;當對象空間范圍較大時,其定位結果相差較大,此時更傾向于以對象的邊界輪廓為參照物進行距離方位描述。因此,對于在空間范圍較大區域(如學校、景區、居民區等)內部或附近的定位,將對象視作面要素進行位置計算,比傳統使用POI定位更符合空間認知。故本文根據面對象的特征,采用九宮格劃分和語義分析,構建了一種允許包含距離和方位描述的面要素語義位置定位方法:利用九宮格預先劃分方位,根據空間語義信息進行未知對象的定位計算,最后以GeoSOT網格表達目標所在區域。實驗證明,當存在距離、方位或包含關系描述時,本文方法能夠實現以范圍較大對象為參照物的語義位置定位,結果更符合人們的空間認知習慣;同時,通過將面要素對象和定位推理出的區域轉換為GeoSOT網格編碼,既實現了對象位置信息的存儲表達,也為后續以網格為單元的大數據分析研究提供重要的數據基礎。但本文方法仍有待改進:部分面要素形狀特殊,導致九宮格切割出的部分區域無地理意義;切割后的區域內部碎片化,影響位置推理結果的準確性等。后續研究將考慮對形狀特殊的面要素進行優化處理,以加強本方法的適用性。