一種移動環境下基于索引技術的景點智能推薦方法
【專利摘要】本發明公開了一種移動環境下基于索引技術的景點智能推薦方法,包括:步驟1,當用戶的移動端進入到一個景區時,移動端獲取當前位置,得到位置檢索鍵;步驟2,根據服務器中的歷史記錄在服務器中建立離線緩存;步驟3,移動端獲取服務器中的離線緩存內容,用位置檢索鍵在緩存中進行前綴匹配,若找到匹配結果,移動端對匹配結果集進行距離計算,得到目標景點序號集合,轉入步驟5,若未找到匹配結果,移動端把用戶當前位置發送給服務器,執行步驟4;步驟4,服務器根據用戶當前位置進行距離計算,得到目標景點序號集合;步驟5,服務器對目標景點的綜合信息進行檢索,將目標景點詳情返回給用戶。
【專利說明】
-種移動環境下基于索引技術的景點智能推薦方法
技術領域
[0001] 本發明設及旅游信息服務領域,特別是一種移動環境下基于索引技術的景點智能 推薦方法。
【背景技術】
[0002] 隨著社會經濟發展和人民生活水平的提高,旅游需求正在不斷地增長。根據國家 旅游局數據中屯、2015年12月21日公布的《2014年中國旅游業統計公報》顯示:2014年,我國 旅游業持續快速發展。國內旅游市場高速增長,全國國內旅游人數為36.11億人次,比上年 增長10.7%。入境旅游市場穩中有進,出境旅游市場快速增長。然而,在景區進行游覽時,陌 生游客想要了解大小景點全面的信息的難度太大,往往是通過游客群體跟隨導游的講解進 行各景點的游覽,具有很大的局限性,旅游過程是被動的,不夠個性化。
[0003] 隨著個人智能移動終端的普及,移動互聯網正在改變人們生活的方方面面,"智慧 景區"模式是旅游目的地建設的未來趨勢。基于廣大游客對于獲取景區內景點信息的需求, 移動端系統應提供景區導覽功能和電子講解功能。
[0004] 同時,不同景區的景點數量可能參差不齊,當景區內景點數量很大時,將景區的景 點全部進行展示,對旅游用戶而言信息量過大,并且展示重點不夠突出,實際意義并不大。
[0005] LBS地理位置服務正在逐漸興起,主要是通過移動終端和移動網絡的配合,確定移 動用戶的實際地理位置,從而提供用戶所需要的與位置相關的服務信息,它是一種移動通 信與導航融合的服務形式。
[0006] 現有的移動端導游系統并不能很好滿足用戶的實際需求,一種個性化的移動端智 能景點推薦系統會被更加的需要。其能根據用戶的實時位置,根據用戶個性化的需求,對景 區內景區數據進行檢索,并隨著用戶位置改變,動態地更新推薦結果,為用戶提供有實際價 值的景區導覽功能。
【發明內容】
[0007] 發明目的:本發明所要解決的技術問題是針對現有技術的不足,提供了一種移動 環境下基于索引技術的景點智能推薦方法。
[000引為了解決上述技術問題,本發明公開了一種移動環境下基于索引技術的景點智能 推薦推薦系統,包括W下步驟:
[0009] 步驟1,當用戶的移動端進入到一個景區時,移動端獲取當前位置,得到位置檢索 鍵;
[0010] 步驟2,根據服務器中的歷史記錄在服務器中建立離線緩存;
[0011] 步驟3,移動端獲取服務器中的離線緩存內容,用位置檢索鍵在緩存中進行前綴匹 配,若找到匹配結果,移動端對匹配結果集進行距離計算,得到目標景點序號集合,轉入步 驟5;若未找到匹配結果,移動端把用戶當前位置發送給服務器,執行步驟4;
[0012] 步驟4,服務器根據用戶當前位置進行距離計算,根據地球表面距離進行升序排 序,得到目標景點序號集合,得到目標景點序號集合;
[0013] 步驟5,服務器對目標景點的綜合信息進行檢索,將目標景點詳情返回給用戶。
[0014] 本發明中,智能景點推薦系統由移動終端和服務器組成,服務器的主要功能是保 存用戶的歷史記錄和景點的語音和圖像等綜合介紹信息。服務器中存有用戶的歷史記錄, 每條歷史記錄為一個用戶的位置檢索健和它所對應的景點序號集合;服務器離線對所有用 戶在不同位置返回的目標推薦景點進行統計,維持一張映射表作為緩存內容。當有新用戶 提出空間查詢的請求時,首先計算該用戶所在位置對應的GE0HASH結果,即其位置檢索鍵, 在緩存中進行匹配得到該區域內歷史用戶檢索的結果集,作為目標景點序號集合的候選結 果集,縮小位置檢索的查詢范圍。
[001引步驟1包含W下步驟:
[0016] 步驟1-1,當用戶的移動端進入到一個景區時,移動端獲取用戶的當前位置的經締 度(01,丫1),對用戶位置的經締度(0ι,Υι)用GE0HA細編碼得到(x,y),其中01表示用戶的當 前位置的經度,丫康示用戶的當前位置的締度,X表示經度的編碼值,Χ = Χ1Χ2Χ3···Χν,表示締 度的編碼值,y=yiy巧3…yt,10 < V < 20,10 < t < 20;
[0017] 步驟1-2,將X和y按位進行交叉編碼,得到的位置檢索鍵z表示為:
[001引 Z =minim2n2郵mnunj.. .mvnt,其中mi表示對經度編碼值xi進行二分編碼后第i位的 值,W表示對締度編碼值yj進行二分編碼后第j位的值。
[0019]每位的計算公式如下所示:
[0022] 本發明中,緩存機制的核屯、是服務器維護多個歷史用戶的位置檢索鍵和目標景點 序號集,形成一張關于位置索引和目標景點集的全局映射表。隨著系統內用戶請求定期更 新,作為緩存加載到移動端,方便移動端能直接進行索引匹配,減少目標景點捜索范圍,同 時避免使用過程中移動端和服務器的頻繁通信,能節約用戶智能設備的耗電量。
[0023] 本發明中,將所有的位置索引鍵構建一個Tire字典樹。該字典樹由邊、非葉子節點 和葉子節點組成,每條邊用于連接兩個不同的節點,同時邊上標識了一個字符。從根節點到 非葉子節點之間連接的所有邊組成了一個字符串,該字符串為非葉子節點的值,作為該節 點所有位置索引鍵的公共前綴。
[0024] 步驟2包括W下步驟:
[0025] 步驟2-1,捜集服務器中所有歷史記錄,每條歷史記錄為一個用戶的位置檢索健和 它所對應的景點序號集合;
[0026] 步驟2-2,對歷史記錄中的位置檢索鍵進行數據清洗,遍歷每個位置索引鍵,構造 一個Tire字典樹,其中葉子節點為位置索引鍵,非葉節點的值表示為該節點的所有位置索 引鍵的的公共前綴,Tire字典樹的邊表示一個字符;
[0027] 步驟2-3,根據指定的精度要求選取Tire字典樹中對應的一層,該層的每一個非葉 節點的子樹對應一個景點序號集合(步驟1中獲取的用戶GI^位置信息包含有當前位置的經 度、維度W及精準度的偏差值。如果精準度的偏差值大于15米,則表示精度要求較低,選取 層高為Tire字典樹高度的對應層;如精準度的偏差值不大于15米,則表示精度要求較 高,可選取層高為Tire字典樹3/4高度的對應層該層的每一個非葉節點的子樹對應一個景 點序號集合組成的空間區域);
[0028] 步驟2-4,在每個子樹中,找出該子樹所有葉子節點對應的景點序號集合進行并集 操作,建立公共前綴與景點序號并集之間的映射表,緩存在服務器中。在本發明中,移動端 利用位置檢索鍵在緩存中進行前綴匹配后,若匹配結果不為空,則得到滿足條件的候選目 標景點序號集合,移動端可W對其進行距離計算;否則,移動端將請求發送給服務器進行全 局的距離計算。其中移動端和服務器采用同樣的距離計算方法,唯一的差別是兩者進行計 算的范圍不同。
[0029] 步驟3中所述移動端對匹配結果集進行距離計算包含如下步驟:
[0030] 步驟3-1,移動端逐個遍歷匹配結果集中的候選景點,對于每個候選景點,采用球 面半正矢公式化aversine formula)計算候選景點和用戶當前位置的地球表面距離,公式 如下:
[0036] 其中,01表示用戶當前位置的經度,丫 1表示用戶當前位置的締度,0p:表示第P個候 選景點的經度,丫 P表示第P個候選景點的締度,1含P含f,f表示為匹配結果集中的景點數, Δ latdi表示用戶當前位置的經度與第P個候選景點經度的差值,Δ londi表示用戶當前位置 的締度與第P個候選景點締度的差值,ai是對經締度差值進行正余弦計算后的值,C1表示用 戶當前距離與第P個候選景點在大圓上所形成弧長對應的圓屯、角,r表示地球的半徑,dp表 示用戶當前位置和第P個候選景點的地球表面距離;
[0037] 步驟3-2,根據求得的距離對景點候選集進行升序排序,采用k近鄰算法選擇前Κι 個離用戶當前位置距離最近的景點作為目標景點序號集合。
[0038] 步驟4包含如下步驟:
[0039] 步驟4-1,服務器逐個遍歷所有景點,對于每個景點qi,采用球面半正矢公式計算 景點和用戶當前位置的地球表面距離,公式如下:
[0045] 其中,01表示用戶當前位置的經度,丫 1表示用戶當前位置的締度,0q表示為第q個 景點的經度,丫 q表示為第q個景點的締度,A latcb表示用戶當前位置的經度與第q個景點經 度的差值,A loncb表示用戶當前位置的締度與第q個景點締度的差值,32是對經締度差值進 行正余弦計算后的值,C2表示用戶當前距離與第q個候選景點在大圓上所形成弧長對應的 圓屯、角,r表示為地球的半徑,dq表示為用戶當前位置和第q個景點的地球表面距離;
[0046] 步驟4-2,根據求得的景點和用戶當前位置的地球表面距離dq對景點候選集進行 升序排序,采用k近鄰算法選擇前K2個離用戶當前位置距離最近的景點作為目標景點序號 集合。
[0047] 本發明中,服務器中存有景點的語音和圖像等綜合介紹信息,通過目標景點序號 進行請求,用戶可獲取景點詳情信息。
[0048] 與現有技術相比,本發明具有的有益效果是:
[0049] (1)通過將服務器離線計算的結果緩存到移動端,使得移動端能直接進行索引匹 配,避免在使用過程中移動端和服務器的頻繁通信,能節約用戶智能設備的耗電量。
[0050] (2)服務器構造緩存內容過程使用Tire字典樹技術,用空間換時間,提高匹配效 率,并利用離線處理過程中構造的樹進行層次劃分子樹,可訓練并迭代優化空間區域劃分 過程。
【附圖說明】
[0051] 下面結合附圖和【具體實施方式】對本發明做更進一步的具體說明,本發明的上述 和/或其他方面的優點將會變得更加清楚。
[0052] 圖1是本發明的流程圖。
[0053] 圖2是本發明的系統工作過程圖。
【具體實施方式】
[0054] 下面結合附圖對本發明作具體說明。應該指出,所描述的實施例僅是為了說明的 目的,而不是對本發明范圍的限制。
[0055] 本發明公開了一種移動環境下基于索引技術的景點智能推薦方法,該方法的流程 圖如圖2所示,包括W下步驟:
[0056] 步驟1,當用戶的移動端進入到一個景區時,移動端獲取當前位置,如圖1所示,得 到位置檢索鍵;
[0057] 步驟2,根據服務器中的歷史記錄在服務器中建立離線緩存;
[0058] 步驟3,移動端獲取服務器中的離線緩存內容,用位置檢索鍵在緩存中進行前綴匹 配,若找到匹配結果,移動端對匹配結果集進行距離計算,得到目標景點序號集合,轉入步 驟5;若未找到匹配結果,移動端把用戶當前位置發送給服務器,執行步驟4;
[0059] 步驟4,服務器根據用戶當前位置進行距離計算,根據地球表面距離進行升序排 序,得到目標景點序號集合;
[0060] 步驟5,服務器對目標景點的綜合信息進行檢索,將目標景點詳情返回給用戶。
[0061] 本發明中,服務器中存有用戶的歷史記錄,每條歷史記錄為一個用戶的位置檢索 健和它所對應的景點序號集合;服務器離線對所有用戶在不同位置返回的目標推薦景點進 行統計,維持一張映射表作為緩存內容。當有新用戶提出空間查詢的請求時,首先計算該用 戶所在位置對應的GE0HASH結果,即其位置檢索鍵,在緩存中進行匹配得到該區域內歷史用 戶檢索的結果集,作為目標景點序號集合的候選結果集,縮小位置檢索的查詢范圍。
[0062] 步驟1包含W下步驟:
[0063] 步驟1-1,當用戶的移動端進入到一個景區時,移動端獲取用戶的當前位置的經締 度(01,丫 1),對用戶位置的經締度用GE0HA細編碼得到(x,y),其中町表示用戶的當 前位置的經度,丫康示用戶的當前位置的締度,X表示經度的編碼值,Χ = Χ1Χ2Χ3···Χν,表示締 度的編碼值,y=yiy巧3…yt,10 < V < 20,10 < t < 20;
[0064] 步驟1-2,將X和y按位進行交叉編碼,得到的位置檢索鍵z表示為:
[0065] z=化n皿2n2m3n3minj···mvnt,其中化表示對經度編碼值xi進行二分編碼后第i位的 值,W表示對締度編碼值yj進行二分編碼后第j位的值。
[0066] 每位的計算公式如下所示:
[0069] 本發明中,緩存機制的核屯、是服務器維護多個歷史用戶的位置檢索鍵和目標景點 序號集,形成一張關于位置索引和目標景點集的全局映射表。隨著系統內用戶請求定期更 新,作為緩存加載到移動端,方便移動端能直接進行索引匹配,減少目標景點捜索范圍,同 時避免使用過程中移動端和服務器的頻繁通信,能節約用戶智能設備的耗電量。
[0070] 步驟2包括W下步驟:
[0071] 步驟2-1,捜集服務器中所有歷史記錄,每條歷史記錄為一個用戶的位置檢索健和 它所對應的景點序號集合;
[0072] 步驟2-2,對歷史記錄中的位置檢索鍵進行數據清洗,遍歷每個位置索引鍵,構造 一個Tire字典樹,其中葉子節點為位置索引鍵,非葉節點的值表示為該節點的所有位置索 引鍵的的公共前綴,Tire字典樹的邊表示一個字符;
[0073] 步驟2-3,根據指定的精度要求選取Tire字典樹中對應的一層,如精度要求較低, 可選取層高為1'^6字典樹1/^2高度的對應層;如精度要求較高,可選取層高為1'^6字典樹3/ 4高度的對應層,該層的每一個非葉節點的子樹對應一個景點序號集合組成的空間區域;;
[0074] 步驟2-4,在每個子樹中,找出該子樹所有葉子節點對應的景點序號集合進行并集 操作,建立公共前綴與景點序號并集之間的映射表,緩存在服務器中。
[0075] 在本發明中,移動端利用位置檢索鍵在緩存中進行前綴匹配后,若匹配結果不為 空,則得到滿足條件的候選目標景點序號集合,移動端可W對其進行距離計算;否則,移動 端將請求發送給服務器進行全局的距離計算。其中移動端和服務器采用同樣的距離計算方 法,唯一的差別是兩者進行計算的范圍不同。
[0076] 步驟3中所述移動端對匹配結果集進行距離計算包含如下步驟:
[0077] 步驟3-1,移動端逐個遍歷匹配結果集中的候選景點,對于每個候選景點,采用球 面半正矢公式化aversine formula)計算候選景點和用戶當前位置的地球表面距離,公式 如下:
[007引洶洶屯=01 - 0p,
[0079] Al〇ndi= 丫廣丫P,
[0083] 其中,01表示用戶當前位置的經度,丫 1表示用戶當前位置的締度,0p表示第p個候 選景點的經度,丫 P表示第P個候選景點的締度,1含P含f,f表示為匹配結果集中的景點數, Δ latdi表示用戶當前位置的經度與第P個候選景點經度的差值,Δ londi表示用戶當前位置 的締度與第P個候選景點締度的差值,ai是對經締度差值進行正余弦計算后的值,C1表示用 戶當前距離與第P個候選景點在大圓上所形成弧長對應的圓屯、角,r表示地球的半徑,dp表 示用戶當前位置和第P個候選景點的地球表面距離;
[0084] 步驟3-2,根據求得的距離對景點候選集進行升序排序,選擇前K個個離用戶當前 位置距離最近的景點作為目標景點序號集合。
[00化]步驟4包含如下步驟:
[0086] 步驟4-1,服務器逐個遍歷所有景點,對于每個景點qi,采用球面半正矢公式計算 景點和用戶當前位置的地球表面距離,公式如下:
[0092] 其中,01表示用戶當前位置的經度,丫 1表示用戶當前位置的締度,0q表示為第q個 候選景點的經度,丫 q表示為第q個候選景點的締度,r表示為地球的半徑,dq表示為用戶當前 位置和第q個候選景點的地球表面距離;
[0093] 步驟3-2,根據求得的景點和用戶當前位置的地球表面距離dq對景點候選集進行 升序排序,選擇前K個離用戶當前位置距離最近的景點作為目標景點序號集合。
[0094] 實施例
[0095] 本實施例使用了 A城市某某湖景區景點數據進行實驗。
[0096] 對于拿到的原始數據,首先過濾掉無效數據,只保留景點位置信息和歷史用戶的 位置索引鍵和檢索智能附近景點詳情記錄。
[0097] 移動端獲取用戶的當前位置,對其經締度位置(118.9584,32.11276)進行GEOHAW 計算編碼得到位置檢索鍵,其中經度編碼得到編碼為"101010000Γ,締度得到編碼為 "1101000010",進行合并編碼為"11011 00110 0000 00110",轉換為十進制,對應著27、7、0 和7,用戶的位置索引鍵編碼結果為"V707"。
[0098] 移動端獲取服務器離線計算的緩存內容,根據位置索引鍵"V707"在緩存中進行前 綴匹配,匹配得到位置檢索鍵"V706"和"V705",對應的景點結果集分別為[景點2,景點6,景 點9]、[景點7,景點11 ],移動端對匹配結果集[景點2,景點6,景點7,景點9,景點11 ]進行KNN 距離計算,選取前4個最近景點[景點2,景點7,景點9,景點11]作為智能附近景點向用戶進 行展示。
[0099] 服務器中存有景點的語音和圖像等綜合介紹信息,可通過目標景點序號[景點2, 景點7,景點9,景點11]向服務器進行請求,服務器對目標景點的語音和圖像等綜合信息進 行檢索,將目標景點詳情返回給用戶。
[0100] 本發明提供了一種移動環境下基于索引技術的景點智能推薦方法,具體實現該技 術方案的方法和途徑很多,W上所述僅是本發明的優選實施方式,應當指出,對于本技術領 域的普通技術人員來說,在不脫離本發明原理的前提下,還可W做出若干改進和潤飾,運些 改進和潤飾也應視為本發明的保護范圍。本實施例中未明確的各組成部分均可用現有技術 加 W實現。
【主權項】
1. 一種移動環境下基于索引技術的景點智能推薦方法,其特征在于,包括以下步驟: 步驟1,當用戶的移動端進入到一個景區時,移動端獲取當前位置,得到位置檢索鍵; 步驟2,根據服務器中的歷史記錄在服務器中建立離線緩存; 步驟3,移動端獲取服務器中的離線緩存內容,用位置檢索鍵在緩存中進行前綴匹配, 若找到匹配結果,移動端對匹配結果集進行距離計算,得到目標景點序號集合,轉入步驟5; 若未找到匹配結果,移動端把用戶當前位置發送給服務器,執行步驟4; 步驟4,服務器根據用戶當前位置進行距離計算,根據地球表面距離進行升序排序,得 到目標景點序號集合; 步驟5,服務器對目標景點的綜合信息進行檢索,將目標景點詳情返回給用戶。2. 根據權利要求1所述的方法,其特征在于,步驟1包含以下步驟: 步驟1-1,當用戶的移動端進入到一個景區時,移動端獲取用戶的當前位置的經煒度 〔禮Y1),對經煒度(Iy1)用GEOHASH編碼得到(x,y),其中久表示用戶的當前位置的經度, γ 1表示用戶的當前位置的煒度,X表示經度的編碼值,χ = χιχ2Χ3.. .xv,y表示煒度的編碼值, y=yiy2Y3.. .yt, 10 < V < 20,10 < t < 20; 步驟1-2,將X和y按位進行交叉編碼,得到的位置檢索鍵Z表示為: z=mimm2n2m3n3minj · · .mvnt,其中ΠΗ表示對經度編碼值Xi進行二分編碼后第i位的值,nj 表示對煒度編碼值5?進行二分編碼后第j位的值, 每位的計算公式如下所示:3. 根據權利要求2所述的方法,其特征在于,步驟2包括以下步驟: 步驟2-1,搜集服務器中所有歷史記錄,每條歷史記錄為一個用戶的位置檢索健和它所 對應的景點序號集合; 步驟2-2,對歷史記錄中的位置檢索鍵進行數據清洗,遍歷每個位置索引鍵,構造一個 Tire字典樹,其中葉子節點為位置索引鍵,非葉節點的值表示為該節點的所有位置索引鍵 的的公共前綴,Tire字典樹的邊表示一個字符; 步驟2-3,根據指定的精度要求選取Tire字典樹中對應的一層,該層的每一個非葉節點 的子樹對應一個景點序號集合; 步驟2-4,在每個子樹中,找出該子樹所有葉子節點對應的景點序號集合進行并集操 作,建立公共前綴與景點序號并集之間的映射表,緩存在服務器中。4. 根據權利要求3所述的方法,其特征在于,步驟3中所述移動端對匹配結果集進行距 離計算包含如下步驟: 步驟3-1,移動端逐個遍歷匹配結果集中的候選景點,對于每個候選景點,采用球面半 正矢公式計算候選景點和用戶當前位置的地球表面距離,公式如下: Δ Iondi= γ 1-γp,dp - rci,其中,表示用戶當前位置的經度,Ti表示用戶當前位置的煒度,0p表示第P個候選景 點的經度,γ P表示第P個候選景點的煒度,I < P < f,f表示為匹配結果集中的景點數,A Iatd1表示用戶當前位置的經度與第P個候選景點經度的差值,△ Iond1表示用戶當前位置的 煒度與第P個候選景點煒度的差值,ai是對經煒度差值進行正余弦計算后的值,(^表示用戶 當前距離與第P個候選景點在大圓上所形成弧長對應的圓心角,r表示地球的半徑,d P表示 用戶當前位置和第P個候選景點的地球表面距離; 步驟3-2,根據求得的用戶當前位置和第p個候選景點的地球表面距離dP對景點候選集 進行升序排序,選擇前心個離用戶當前位置距離最近的景點作為目標景點序號集合。5.根據權利要求4所述的方法,其特征在于,步驟4包含如下步驟: 步驟4-1,服務器逐個遍歷所有景點,對于每個景點,采用球面半正矢公式計算景點和 dq = rC2,其中,表示用戶當前位置的經度,γ:表示用戶當前位置的煒度,表示為第q個景點 的經度,丫(1表示為第q個景點的煒度,A Iatd2表示用戶當前位置的經度與第q個景點經度的 差值,△ Iond2表示用戶當前位置的煒度與第q個景點煒度的差值,&2是對經煒度差值進行正 余弦計算后的值,(: 2表示用戶當前距離與第q個景點在大圓上所形成弧長對應的圓心角,r 表示為地球的半徑,dq表示為用戶當前位置和第q個景點的地球表面距離; 步驟4-2,根據求得的景點的地球表面距離對景點候選集進行排序,選擇前心個離用戶 當前位置距離最近的景點作為目標景點序號集合。
【文檔編號】H04W4/04GK105843948SQ201610219472
【公開日】2016年8月10日
【申請日】2016年4月8日
【發明人】竇萬春, 劉佳, 吳詩穎
【申請人】南京大學