當前位置:編程學習大全網 - 編程語言 - NewGeoCoding:壹種外賣場景下的GeoCoding算法

NewGeoCoding:壹種外賣場景下的GeoCoding算法

地理編碼(GeoCoding)是地圖服務中壹項重要的功能,它提供了將詳細的結構化文本地址轉換為經緯度坐標的能力,比如:

在外賣場景下,GeoCoding將用戶填寫的送餐地址文本轉換成經緯度,作為騎手送餐的目標經緯度,所以GeoCoding算法準確性的高低直接影響到騎手送達效率。目前訂單地址文檔到經緯度的映射是通過高德GeoCoding接口實現的,由於高德GeoCoding接口提供的是壹種通用的地理編碼功能,對外賣場景下訂單的識別效果很多情況下不夠完美。體現在以下幾個方面:

基於以上的現狀,我們設計並實現了壹套針對外賣場景的地址反解算法,我們稱為NGC(NewGeoCoding)。NGC的核心功能是將用戶填寫的兩段地址綁定到poi庫中匹配程度最高的壹條poi記錄上,然後使用該poi的經緯度作為地址反解的經緯度。對該算法有如下的要求:

NGC的整體流程包含三個主要步驟:兩段地址合並,獲取周邊相似poi,地址和周邊poi匹配:

用戶在餓了麽下單時地址是兩段式地址,理想情況下兩段地址應該清晰準確,互為補充,但由於第二段用戶手動填寫的地址部分是不受限制的,所以用戶可以隨意填寫,導致了壹系列的地址問題,包括這兩段地址存在互相矛盾,重復,對同壹個小區或樓棟前後采用不同的表述,地址中實體成分順序顛倒混亂等情況。所以首先要將兩段地址合並成壹段完整、合理、不存在歧義和矛盾、不包含重復內容、條理清晰的地址,見下面的例子。

下文中我們使用/表示兩段文本地址,如“餓了麽/建材城中路27號”,代表第壹段地址是“餓了麽”,第二段地址是“建材城中路27號”。

兩段地址內容重復是兩段地址合並中首先需要處理的問題,內容重復包含幾個層面的含義:

經過上面的預處理後,我們完成了對重復內容的檢測,接下來就是怎麽拼接兩段地址,我們基於觀察總結出兩段文本的四種拼接方式: 承接式、包含式、描述式和插入式

承接式 地址指的是兩段地址存在地址實體結構的由高到低的關系,比如“管莊西裏24號樓/2單元302”,兩段地址從前往後依次是“小區/樓棟號/單元號/房間號”,這種情況只需要把兩段地址順序拼接就可以了。

包含式 地址指的是兩段地址存在壹段包含另壹段地址的情況,這種情況直接使用較長地址即可。

描述式 地址指的是第壹段地址是壹個poi,第二段地址是對這個poi位置的描述,比如“巫山烤魚/昌平區長江街壹號院奇點中心3樓”,對於這種地址需要交換兩段地址的位置,第二段地址在前,第壹段地址在後,組合成“昌平區長江街壹號院奇點中心3樓巫山烤魚”。

插入式 地址指的是需要將第壹段地址插入第二段地址的某個位置,比如“信達大廈/北京西路1399號3樓”,需要將“信達大廈”插入到“北京西路1399號”和“3樓”中間,構成“北京西路1399號信達大廈3樓”。

這樣,我們完成了兩段地址合並成壹段地址的處理。

獲取周邊相似poi是基於用戶訂單的經緯度和地址文本,搜索其周圍相似度最高的top N條poi數據,是壹個粗篩的過程。拿到這N條記錄後,後續再進行更為精確的相似度打分。

我們首先計算當前訂單經緯度所在的精度為7的GeoHash網格,連同周邊八個鄰居網格,***9個網格。將poi數據預處理後存入ElasticSearch,首先過濾出9個GeoHash網格的poi數據,然後利用ES的Match方法獲取其中top N的記錄,進行後續的poi綁定。如果poi綁定失敗了,我們會擴大網格範圍到精度為6繼續搜索,如果還是綁定失敗了繼續擴大到整個城市範圍,返回最終匹配的結果,或者null。所以搜索的過程是壹個逐層擴大的過程,這樣可以提高綁定的精度,減少同城同名poi帶來的影響。

現在我們已經有了合並後的訂單地址文本,同時拿到了周邊相似度最高的N條poi記錄,接下來需要計算該地址文本和哪條poi記錄綁定最合適。

該過程分兩步,第壹步是沖訂單地址文本中抽取可能的poi名稱,對於壹個訂單會從不同的維度抽取出多個poi名稱,比如“朝陽門內大街15號富力小區91號樓2單元401室”,可以抽取出如下的候選poi名稱:

朝陽門內大街15號

朝陽門內大街15號富力小區

富力小區91號樓

富力小區91號樓2單元

富力小區

我們拿這些候選poi名稱分別和周邊N條poi進行匹配,計算出得分最高的壹條poi地址作為最終綁定的結果。打分的過程主要基於兩方面,壹方面看候選poi和周邊poi的名稱相似度,相似度越高得分越高;另壹方面看候選poi本身所包含的實體的豐富程度,細節越豐富,得分越高。

  • 上一篇:PERLS是美國"衍生物"的壹種,本人不是很懂,請教哈....謝謝
  • 下一篇:誰有四川省廣安市2007年小學語文畢業試卷啊?
  • copyright 2024編程學習大全網