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