本發(fā)明實(shí)施例涉及基于位置服務(wù)技術(shù)領(lǐng)域,尤其涉及一種路徑軌跡的分析方法及裝置。
背景技術(shù):
隨著移動(dòng)互聯(lián)技術(shù)的廣泛應(yīng)用,收集用戶出行時(shí)途徑路徑的路徑軌跡數(shù)據(jù)已經(jīng)不再是難事。完成了用戶的路徑軌跡的收集之后,通過(guò)大數(shù)據(jù)技術(shù)對(duì)收集到的路徑軌跡數(shù)據(jù)進(jìn)行分析,能夠得到對(duì)人們出行習(xí)慣、歷史出行的諸多分析結(jié)果。
實(shí)際應(yīng)用中,常常出現(xiàn)兩個(gè)不同用戶的路徑軌跡重合的情況。而這種重合究竟是因?yàn)閮扇送性斐傻模€是因?yàn)閮扇酥g的短暫碰面造成的,現(xiàn)有技術(shù)并沒(méi)有給出有效的解決手段。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種路徑軌跡的分析方法及裝置,以準(zhǔn)確判斷不同用戶之間路徑軌跡出現(xiàn)重合的原因。
一方面,本發(fā)明實(shí)施例提供了一種路徑軌跡的分析方法,所述方法包括:
通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶;
根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶。
另一方面,本發(fā)明實(shí)施例還提供了一種路徑軌跡的分析裝置,所述裝置包括:
近鄰用戶獲取模塊,用于通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶;
判斷模塊,用于根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶。
本發(fā)明實(shí)施例提供的路徑軌跡的分析方法及裝置,通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶,根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶,從而對(duì)不同用戶之間路徑軌跡出現(xiàn)重合的原因給出準(zhǔn)確的判斷。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1是本發(fā)明第一實(shí)施例提供的路徑軌跡的分析方法的流程圖;
圖2是本發(fā)明第二實(shí)施例提供的路徑軌跡的分析方法中近鄰用戶獲取的流程圖;
圖3是本發(fā)明第三實(shí)施例提供的路徑軌跡的分析方法中判斷操作的流程圖;
圖4是本發(fā)明第四實(shí)施例提供的路徑軌跡的分析裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
第一實(shí)施例
本實(shí)施例提供了路徑軌跡的分析方法的一種技術(shù)方案。在該技術(shù)方案中,路徑軌跡的分析方法由大數(shù)據(jù)分析系統(tǒng)執(zhí)行。所述大數(shù)據(jù)分析系統(tǒng)包括:Hadoop系統(tǒng)、Spark系統(tǒng)、Storm系統(tǒng)、JStorm系統(tǒng),或者它們之間任意幾種的組合。
參見(jiàn)圖1,路徑軌跡的分析方法包括:
S11,通過(guò)對(duì)路徑軌跡數(shù)據(jù)的數(shù)據(jù)挖掘,獲取不同用戶的路徑軌跡。
所謂路徑軌跡數(shù)據(jù)是指用戶出行時(shí)途徑地點(diǎn)的連線行程的軌跡。通常情況下,路徑軌跡數(shù)據(jù)是在地圖上不同的位置點(diǎn)數(shù)據(jù)共同形成的線狀數(shù)據(jù)??梢岳斫獾氖牵嫉穆窂杰壽E數(shù)據(jù)通常是由不同設(shè)備,在不同的應(yīng)用場(chǎng)景下獲取到的,因而在方法執(zhí)行的初始階段,運(yùn)用數(shù)據(jù)挖掘技術(shù),從原始的路徑軌跡數(shù)據(jù)中挖掘出分屬于不同用戶的路徑軌跡。
具體來(lái)說(shuō),數(shù)據(jù)挖掘的操作包括對(duì)路徑軌跡數(shù)據(jù)的清洗、提取,及關(guān)聯(lián)等處理。完成上述的數(shù)據(jù)挖掘操作之后,得到的路徑軌跡信息具有統(tǒng)一的數(shù)據(jù)格式,并且數(shù)據(jù)的可靠性較高。
對(duì)原始的路徑軌跡數(shù)據(jù)的挖掘是流式的數(shù)據(jù)處理過(guò)程,并不是批量式的數(shù)據(jù)處理過(guò)程。
S12,將獲取到的路徑軌跡信息,存儲(chǔ)在Hadoop分布式文件系統(tǒng)HDFS中。
挖掘得到格式統(tǒng)一、可靠性高的路徑軌跡信息之后,將上述路徑軌跡信息統(tǒng)一存儲(chǔ)在Hadoop分布式文件系統(tǒng)(Hadoop distributed file system,HDFS)中。
優(yōu)選的,S11及S12的操作是由流式數(shù)據(jù)處理系統(tǒng)JStorm系統(tǒng)中完成的。
S13,通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶。
不同于S11及S12中的操作,從S13開(kāi)始,所有的數(shù)據(jù)處理操作在Spark大數(shù)據(jù)處理系統(tǒng)中完成。
所謂目標(biāo)用戶是事先選定的一個(gè)用戶。被選定的目標(biāo)用戶是進(jìn)行同行用戶判定的依據(jù)。
可以理解的是,在目標(biāo)用戶的路徑軌跡的周圍,一定的空間距離的范圍內(nèi),有可能會(huì)出現(xiàn)其他用戶的路徑軌跡。我們將這種出現(xiàn)在目標(biāo)用戶的路徑軌跡附近的路徑軌跡稱為近鄰路徑軌跡,將近鄰路徑軌跡所屬的用戶稱為近鄰用戶。
在Spark系統(tǒng)中,通過(guò)Spark SQL,根據(jù)軌跡之間的空間位置關(guān)系,獲取近鄰路徑軌跡。
S14,根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶。
近鄰路徑軌跡與目標(biāo)用戶的路徑軌跡之間,存在一定的重合軌跡段。這種重合軌跡段在空間上具有一定的距離,被稱為重合距離。通過(guò)對(duì)這種重合軌跡段的統(tǒng)計(jì),計(jì)算所述重合距離,并根據(jù)上述重合距離判定近鄰用戶是否目標(biāo)用戶的同行用戶。優(yōu)選的,當(dāng)重合距離超過(guò)了預(yù)定的距離閾值時(shí),可以判定近鄰用戶為所述目標(biāo)用戶的同行用戶。
本實(shí)施例通過(guò)對(duì)路徑軌跡數(shù)據(jù)的數(shù)據(jù)挖掘,獲取不同用戶的路徑軌跡,將獲取到的路徑軌跡信息,存儲(chǔ)在HDFS中,通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶,以及根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶,對(duì)不同用戶之間路徑軌跡出現(xiàn)重合的原因給出準(zhǔn)確的判斷。
第二實(shí)施例
本實(shí)施例提供了路徑軌跡的分析方法中近鄰用戶獲取的一種技術(shù)方案。在該技術(shù)方案中,通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶包括:通過(guò)Spark SQL,獲取所述目標(biāo)用戶的路徑軌跡的位置;獲取其中的軌跡點(diǎn)處于所述目標(biāo)用戶的路徑軌跡中的軌跡點(diǎn)附近的近鄰路徑軌跡;根據(jù)所述近鄰路徑軌跡所屬的近鄰用戶的身份信息,將所述近鄰路徑軌跡聚合為分屬于不同近鄰用戶的近鄰路徑軌跡;通過(guò)獲取所述近鄰用戶的身份信息,獲取所述近鄰用戶。
參見(jiàn)圖2,通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶包括:
S21,通過(guò)Spark SQL,獲取所述目標(biāo)用戶的路徑軌跡的位置。
優(yōu)選的,可以選擇目標(biāo)用戶的路徑軌跡上的一點(diǎn),或者一段路徑軌跡,進(jìn)而通過(guò)Spark SQL獲取這個(gè)點(diǎn),或者這段路徑軌跡的位置,從而完成對(duì)路徑軌跡的位置的獲取。
S22,獲取其中的軌跡點(diǎn)處于所述目標(biāo)用戶的路徑軌跡中的軌跡點(diǎn)附近,且生成時(shí)間相同的近鄰路徑軌跡。
所謂附近,可以是在路徑軌跡的位置點(diǎn)周圍,一定距離閾值范圍內(nèi)。假如有其他用戶的路徑軌跡出現(xiàn)在于上述的范圍內(nèi),則可以認(rèn)為該用戶的路徑軌跡就是近鄰路徑軌跡,該用戶是近鄰用戶。
可以理解的是,通過(guò)上述手段獲取到的近鄰路徑軌跡的數(shù)目可以大于一個(gè)。而且,這些路徑軌跡所屬的用戶的數(shù)目也可以大于一個(gè)。
另外,需要說(shuō)明的是,對(duì)于近鄰路徑軌跡的獲取不僅要考慮空間上的因素,還需要考慮時(shí)間上的因素。假設(shè)兩條路徑軌跡的生成時(shí)間相去甚遠(yuǎn),即使二者在空間上完全重合,也不能將其中一條路徑軌跡認(rèn)定為另一條的近鄰路徑軌跡。
S23,根據(jù)所述近鄰路徑軌跡所屬的近鄰用戶的身份信息,將所述近鄰路徑軌跡聚合為分屬于不同近鄰用戶的近鄰路徑軌跡。
在目標(biāo)用戶的路徑軌跡的附近,一定的距離閾值范圍內(nèi)出現(xiàn)了多條近鄰路徑軌跡的情況下,這多條近鄰路徑軌跡很可能是由不同的用戶的出行而產(chǎn)生的的。此時(shí),需要將這多條近鄰路徑軌跡按照其歸屬的用戶的身份進(jìn)行區(qū)分。通過(guò)對(duì)多條近鄰路徑軌跡按照身份信息的聚合,實(shí)現(xiàn)上述對(duì)近鄰路徑軌跡信息的區(qū)分。
具體的,可以利用SortByKey函數(shù),將分屬于不同用戶的近鄰路徑軌跡進(jìn)行上述聚合操作。
S24,通過(guò)獲取所述近鄰用戶的身份信息,獲取所述近鄰用戶。
所述身份信息可以是用戶專屬的手機(jī)號(hào),也可以是用戶的網(wǎng)絡(luò)注冊(cè)賬號(hào)。
由于身份信息能夠唯一的標(biāo)識(shí)一個(gè)用戶,獲取到了近鄰用戶的身份信息,就相當(dāng)于獲取到了所述近鄰用戶。
本實(shí)施例通過(guò)Spark SQL,獲取所述目標(biāo)用戶的路徑軌跡的位置,獲取其中的軌跡點(diǎn)處于所述目標(biāo)用戶的路徑軌跡中的軌跡點(diǎn)附近的近鄰路徑軌跡,根據(jù)所述近鄰路徑軌跡所屬的近鄰用戶的身份信息,將所述近鄰路徑軌跡聚合為分屬于不同近鄰用戶的近鄰路徑軌跡,以及通過(guò)獲取所述近鄰用戶的身份信息,獲取所述近鄰用戶,實(shí)現(xiàn)了對(duì)近鄰用戶的獲取。
第三實(shí)施例
本實(shí)施例提供了路徑軌跡的分析方法中判斷操作的一種技術(shù)方案。在該技術(shù)方案中,根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶包括:根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡之間的空間距離,計(jì)算所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡之間的重合距離;若所述重合距離大于預(yù)設(shè)的重合距離閾值,則判定所述近鄰用戶為所述目標(biāo)用戶的同行用戶;若所述重合距離小于或者等于所述重合距離閾值,則判定所述近鄰用戶為所述目標(biāo)用戶的約見(jiàn)用戶。
參見(jiàn)圖3,根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶包括:
S31,根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡之間的空間距離,計(jì)算所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡之間的重合距離。
優(yōu)選的,上述操作包括:獲取所述目標(biāo)用戶的路徑軌跡上的一個(gè)軌跡點(diǎn);獲取所述軌跡點(diǎn)與所述目標(biāo)用戶的路徑軌跡之間的最小距離;若所述最小距離小于預(yù)設(shè)的重合判定距離閾值,則將所述軌跡點(diǎn)與上一個(gè)軌跡點(diǎn)之間的距離累加至所述重合距離;獲取所述目標(biāo)用戶的路徑軌跡上的下一個(gè)軌跡點(diǎn),并重復(fù)上述步驟,直至所述最小距離大于或者等于所述重合判定距離閾值。
需要說(shuō)明的是,上述的重合距離的計(jì)算方式僅是一種優(yōu)選的計(jì)算方式。能夠?qū)崿F(xiàn)重合距離計(jì)算的其他實(shí)施方式并不被本實(shí)施例所排斥。
S32,若所述重合距離大于預(yù)設(shè)的重合距離閾值,則判定所述近鄰用戶為所述目標(biāo)用戶的同行用戶。
優(yōu)選的,重合距離閾值的取值可以是500米。當(dāng)根據(jù)S31的操作計(jì)算得到的重合距離的取值大于500米時(shí),可以認(rèn)為目標(biāo)用戶與近鄰用戶之間共同走過(guò)的空間距離較長(zhǎng),二者互為同行用戶。
S33,若所述重合距離小于或者等于所述重合距離閾值,則判定所述近鄰用戶為所述目標(biāo)用戶的約見(jiàn)用戶。
當(dāng)重合距離的取值小于或者等于500米時(shí),可以認(rèn)為目標(biāo)用戶與近鄰用戶之間共同走過(guò)的空間距離較短,二者之間的行為的性質(zhì)可以被判定為約見(jiàn)。
本實(shí)施例通過(guò)計(jì)算所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡之間的重合距離,當(dāng)重合距離大于預(yù)設(shè)的重合距離閾值時(shí),判定近鄰用戶為同行用戶,以及當(dāng)重合距離小于或者等于重合距離閾值時(shí),判定近鄰用戶為約見(jiàn)用戶,實(shí)現(xiàn)了對(duì)同行行為的準(zhǔn)確判定。
第四實(shí)施例
本實(shí)施例提供了路徑軌跡的分析裝置的一種技術(shù)方案。參見(jiàn)圖4,在該技術(shù)方案中,路徑軌跡的分析裝置包括:近鄰用戶獲取模塊43,以及判斷模塊44。
所述近鄰用戶獲取模塊43用于通過(guò)Spark SQL,獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶。
所述判斷模塊44用于根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡的重合距離,判斷所述近鄰用戶是否為所述目標(biāo)用戶的同行用戶。
進(jìn)一步的,所述近鄰用戶獲取模塊包括:位置獲取單元、軌跡獲取單元、聚合單元,以及近鄰用戶獲取單元。
所述位置獲取單元用于通過(guò)Spark SQL,獲取所述目標(biāo)用戶的路徑軌跡的位置。
所述軌跡獲取單元用于獲取其中的軌跡點(diǎn)處于所述目標(biāo)用戶的路徑軌跡中的軌跡點(diǎn)附近,且生成時(shí)間相同的近鄰路徑軌跡。
所述聚合單元用于根據(jù)所述近鄰路徑軌跡所屬的近鄰用戶的身份信息,將所述近鄰路徑軌跡聚合為分屬于不同近鄰用戶的近鄰路徑軌跡。
所述近鄰用戶獲取單元用于通過(guò)獲取所述近鄰用戶的身份信息,獲取所述近鄰用戶。
進(jìn)一步的,所述判斷模塊包括:距離計(jì)算單元、同行判定單元,以及約見(jiàn)判定單元。
所述距離計(jì)算單元用于根據(jù)所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡之間的空間距離,計(jì)算所述近鄰用戶的路徑軌跡與所述目標(biāo)用戶的路徑軌跡之間的重合距離。
所述同行判定單元用于若所述重合距離大于預(yù)設(shè)的重合距離閾值,則判定所述近鄰用戶為所述目標(biāo)用戶的同行用戶。
所述約見(jiàn)判定單元用于若所述重合距離小于或者等于所述重合距離閾值,則判定所述近鄰用戶為所述目標(biāo)用戶的約見(jiàn)用戶。
進(jìn)一步的,所述距離計(jì)算單元具體用于:獲取所述目標(biāo)用戶的路徑軌跡上的一個(gè)軌跡點(diǎn);獲取所述軌跡點(diǎn)與所述目標(biāo)用戶的路徑軌跡之間的最小距離;若所述最小距離小于預(yù)設(shè)的重合判定距離閾值,則將所述軌跡點(diǎn)與上一個(gè)軌跡點(diǎn)之間的距離累加至所述重合距離;獲取所述目標(biāo)用戶的路徑軌跡上的下一個(gè)軌跡點(diǎn),并重復(fù)上述步驟,直至所述最小距離大于或者等于所述重合判定距離閾值。
進(jìn)一步的,路徑軌跡的分析裝置還包括:軌跡挖掘模塊41,以及軌跡存儲(chǔ)模塊42。
所述軌跡挖掘模塊41用于在獲取路徑軌跡處于目標(biāo)用戶的路徑軌跡附近的近鄰用戶之前,通過(guò)對(duì)路徑軌跡數(shù)據(jù)的數(shù)據(jù)挖掘,獲取不同用戶的路徑軌跡。
所述軌跡存儲(chǔ)模塊42用于將獲取到的路徑軌跡信息,存儲(chǔ)在Hadoop分布式文件系統(tǒng)HDFS中。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動(dòng)和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。