LBS定位應用app的興趣點與名稱搜尋__LBS

來源:互聯網
上載者:User
LBS定位應用app的興趣點與名稱搜尋 2015-12-26 22:15:18

我們知道,美團與福士點評的涉及30億美金的重量級合并是非常的吸引眼球的。在這一場合并中,美團主要看重的是福士點評的門店POI(Point of Interest,使用者感興趣的點的統稱)資料。福士點評擁有1700萬門店POI資料,比美團POI資料多2倍。在美團的800萬POI資料中,有團購交易的商戶接近150萬左右,POI到交易的轉化率很高。而福士點評的POI的轉化率雖然沒有美團高,但也是美團眼中的香餑餑。成了這場合并的重要籌碼。

既然POI這麼重要,那麼,POI如何設計。又如何用於檢索呢。

POI系統的設計

福士點評當年得到POI的方法是很笨的,是派人去“掃街”來採集POI,即:外業人員到商鋪門口去採集,並利用GPS確定位置,內業人員將外業採集得到的資料更新到地理資料庫。這種方法和高德/四維圖新等圖商的POI採集方法是相同的。

在採集POI完成後,下一步是設計POI系統。POI系統設計的核心就是加快POI資料的檢索。為了實現POI的快速檢索,可以對POI系統建立精細設計的儲存及擷取的架構,也可以對資料進行線性排序,也可以建立空間索引(參見本系列第一期《LBS資料的空間索引方法》(《程式員》10月B刊))。

【POI系統的儲存及擷取】

POI的名稱由於可以重複,所以為了減少儲存的容量,提高檢索的速度,可以對所有的名稱進行統一儲存。這樣,可以許多的POI對應一個名稱,就減小了POI名稱的儲存容量。

與名稱相同,由於POI的表徵圖也可以重複,所以為了減少儲存的容量,提高檢索的速度,可以對所有的表徵圖進行統一儲存。一幅地圖資料存放區不到100個表徵圖就滿了,而POI只需要有一個對表徵圖的引用即可。

POI除了一般資訊外,就是其深度資訊了。一般資訊就是商鋪的名稱或者電話等常見資訊。深度資訊如:店鋪的評價、店鋪的上班時間,或者地圖中需要更新的資料(如從網路得到的POI資料)等。可以想象,未來的地圖資料必然是互動的地圖,也必然是連網的地圖。所以,未來的地圖資料中有可能很大一部分是互動的深度資料,比如從其他網站(淘寶、天貓)得到的深度資訊。這一點實際上百度和高德等已經在實施,百度的很多資料是靠爬蟲從網頁中爬來的。高德的很多POI的資料也是從淘寶/天貓得到的。

【線性排序】

如果把所有的幾何類型歸結為:點、線、面資料。那麼,POI顯然屬於點類型。

點的設計可以非常簡單,比如:可以只考慮做一個有經緯度的點到地圖上就可以,也可以進行更精細的設計,除了建立更好的空間索引來檢索外,也可以對點進行排序,以便能更快速地對點進行檢索。

對點進行排序的方法主要有兩種:希爾伯特曲線排序和Z排序。這兩種排序方法都可以用來對POI進行排序,從而縮簡短名稱搜尋所需的時間。

希爾伯特曲線排序

希爾伯特曲線是一種能填充滿一個平面正方形的分形曲線(空間填充曲線),由數學牛人大衛·希爾伯特在1891年提出。

由於它能填滿平面,它的豪斯多夫維(Hausdorff-Becikovich Dimesion,目前主流的拓撲維度度量)是2。

希爾伯特曲線本質上顯現了一種排序,這種排序的L系統記法如下。

變數:L、R

常數:F、+、−

規則為:

L → + RF− LFL− FR+

R → LF+RFR+FL

其中,F表示向前;−表示右轉90°;+表示左轉90°。

排序的步驟如圖1所示。

圖1 希爾伯特排序

Z排序(莫頓排序)

與希爾伯特曲線排序一樣,Z排序也是一種將多維空間利用曲線進行填滿(實際上是一種點排序)的方法。

Z排序是一種很重要的方法,我們曾在《LBS資料的空間索引方法》一文中描述其原理。下面展現一下其排序效果,如圖2所示。

圖2  Z排序

圖2  Z排序

這兩種排序方法都是將二維空間化為一維的方法,從而可以將二維空間進行排序,可以很快地進行POI名稱檢索。

【POI系統的檢索】

搜尋是使用者和LBS互動的主要渠道。各種LBS應用有所不同,但是搜尋技術大致可歸納為以POI(興趣點)為基礎,以名稱搜尋為表現形式,以推薦系統為核心技術(我們將在下一期介紹推薦技術)。

實際上,推薦技術就是搜尋技術,因為推薦技術往往是進行網頁排名(Google發明的一種網頁排名技術)的,所以推薦技術就是最核心的搜尋技術。

但是,搜尋技術除了出現使用者最感興趣的內容(推薦系統)外,還有效率的需求。提高搜尋技術的效率往往有兩種技術:大規模的雜湊(Hash)技術(如Hadoop中所用到的海量資料存放區技術)和構建樹的技術。其中大規模的雜湊技術在大型的搜尋引擎(比如搜狗IME/百度搜尋)中使用比較普遍,往往是先對文本建立分詞庫,然後建立一些大規模的雜湊化的倒排索引等,這種技術實現起來有一定的難度。

而構建樹的技術相對於大規模的雜湊技術而言,簡單且易行。最常見的構建樹的技術就是FTS(利用B-樹的全文檢索搜尋)或自動提示。

FTS

FTS往往是利用與SQLITE的FTS3或FTS4類似的技術來建立的,本質上是一種利用B-樹的技術,使用起來比較簡單,比如:可以在sqlite3種利用一兩句sql語句,就可以實現FTS搜尋。

自動提示

自動提示技術大概有如下4種。

線上式技術(利用分詞):這種技術往往有一個龐大的分詞資料庫,利用龐大的伺服器的運算能力,以單詞(中文或英文)為單位產生自動提示的詞彙。這種技術一般用於搜尋引擎,比如Google/百度。

離線式技術(利用分詞庫):這種技術與線上式分詞技術類似,一般是利用預先產生的或使用者操作產生的詞庫。利用詞庫間單詞的關係來自動提示下一個單詞。由於這種技術所產生的詞彙並非一一對應網頁或文本地址。所以,這種技術往往應用於IME。如果應用於離線式引擎,則需要將分詞對應多個網頁或文本。

離線(不利用分詞庫)這種情況下,往往使用NVC(next valid character,下一有效字元)技術。

NVC技術是在國外應用很普遍的一種技術,先於分詞技術而產生,最早應用在車載引擎上,並一直在車載引擎上佔據統治地位。這是因為NVC技術可以在尋找到單詞的同時,同步產生唯一對應的POI或道路的索引。所以,方法(3)相比於方法(1)、(2)來說,具有精確、技術實現簡單、維護簡單的特點。

進行道路或興趣點名稱的NVC的方法如下:

通過在資料庫中預先儲存所有的道路或興趣點的名稱,並預先儲存NVC的資料內容,實現預先判斷使用者輸入的下一個有效字元,從而可以在很短的時間內實現下一字元的自動提示。各名稱字元間的關係如圖3所示:

 

圖3 NVC的結構

名稱的全文提示。這種方法近似自動補全功能,這種自動提示方法通過使用者輸入的前幾個字元,在名稱的下拉框中提示1個或多個道路或興趣點的名稱字串。比如:

圖4 自動提示

總的來說,第(1)、(2)種技術所用的方法是非常好的,並且已經普遍應用在大型搜尋引擎中,比如百度、Google或搜狗IME。但由於這種方法的開發成本比較高,且對硬體或網路的要求也較高,所以並沒有普遍應用於高端車載導航產品及低端的LBS產品。

沒有用於低端的LBS產品的原因主要在於開發成本的關係。沒有在高端的車載導航中成為主流是因為,高端車載導航需要精確、快速更甚於介面的友好,比如,用第①、②種方法,如果不花費巨額的研發成本,往往不能滿足“使用者的輸入詞彙與對應的網頁/文本地址一一對應”的要求。比如,使用者要尋找:望京商業樓,所尋找到符合要求的POI可能有多條,而使用者真正希望尋找的那個POI因是冷門的POI,如果採用第①、②種做法,可能被放在第一頁之後,或者被忽視。這種情況是高端汽車導航所無法接受的,特別是在目前的車廠的思維仍然比較原始的情況下。

所以,以上四種方法在實現LBS應用時各有優點,開發人員需要根據自身的研發實力和需求來制定相應的技術方案。

綜上所述,我們已經把POI的設計和名稱搜尋講完了。由於這兩者都是為了搜尋而服務的,推薦系統才是搜尋的核心技術。所以,我們將在下一期講述推薦系統。

作者簡介

賈雙成,阿里巴巴資深工程師,擅長於資料編譯、資料採礦的系統分析和架構設計,主持研發過多個高端車載導航及adas資料編譯器。曾發表發明專利、論文四十餘篇,著有《LBS核心技術揭秘》、《資料採礦核心技術揭秘》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.