日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LBS定位应用app的兴趣点与名称搜索

發布時間:2025/7/25 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LBS定位应用app的兴趣点与名称搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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(興趣點)為基礎,以名稱搜索為表現形式,以推薦系統為核心技術(我們將在下一期介紹推薦技術)。

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

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

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

FTS

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

自動提示

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

在線式技術(利用分詞):這種技術往往有一個龐大的分詞數據庫,利用龐大的服務器的運算能力,以單詞(中文或英文)為單位生成自動提示的詞匯。這種技術一般用于搜索引擎,比如谷歌/百度。

離線式技術(利用分詞庫):這種技術與在線式分詞技術類似,一般是利用預先生成的或用戶操作生成的詞庫。利用詞庫間單詞的關系來自動提示下一個單詞。由于這種技術所生成的詞匯并非一一對應網頁或文本地址。所以,這種技術往往應用于輸入法。如果應用于離線式引擎,則需要將分詞對應多個網頁或文本。

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

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

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

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

?

圖3 NVC的結構

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

圖4 自動提示

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

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

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

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

作者簡介

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


總結

以上是生活随笔為你收集整理的LBS定位应用app的兴趣点与名称搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。