本發(fā)明涉及索引技術(shù)領(lǐng)域,尤其涉及一種社交網(wǎng)絡(luò)文本數(shù)據(jù)的索引方法。
背景技術(shù):
自互聯(lián)網(wǎng)的發(fā)展從web1.0步入web2.0的新時(shí)代后,各種各樣的由用戶主導(dǎo)而生成的內(nèi)容互聯(lián)網(wǎng)產(chǎn)品隨之發(fā)展起來,如博客、rss等。在線社交網(wǎng)絡(luò)服務(wù)(socialnetworkingservice,sns)發(fā)展成為網(wǎng)絡(luò)上最受歡迎的應(yīng)用。各種在線社交網(wǎng)絡(luò)服務(wù)網(wǎng)站都出現(xiàn)在人們眼前,如twitter,facebook,新浪微博等。在現(xiàn)實(shí)世界中,人們通過結(jié)識更多的人以擴(kuò)展自己的社交圈,更優(yōu)更廣的社交關(guān)系往往是一個(gè)人自身價(jià)值與自我發(fā)展的關(guān)鍵。而在這些在線社交網(wǎng)絡(luò)中,用戶可以發(fā)布自己的狀態(tài)或者了解最近的好友狀態(tài),或者分享給他人生活體驗(yàn),與好友互發(fā)消息、照片及視頻等。這彌補(bǔ)了由于身在異地或者其他原因無法面對面溝通交流的遺憾,在線社交網(wǎng)絡(luò)現(xiàn)在提供一種新興又非常普適的交友方式,依靠其真實(shí)性、便利性、可玩性以及穩(wěn)定性、方便熟人朋友間的溝通、也為陌生人之間提供了認(rèn)識的橋梁等特點(diǎn)得到了人們的認(rèn)可和青睞。定位技術(shù)的發(fā)展應(yīng)用,并且又結(jié)合gis地理信息系統(tǒng),確定用戶是基于地理的位置服務(wù)(locationbasedservice,lbs)也快速發(fā)展開來。社交網(wǎng)站引入用戶主動簽到機(jī)制,并適當(dāng)整合用戶位置信息與社交信息,可在簽到行為的基礎(chǔ)上提供后續(xù)有價(jià)值的服務(wù)。
盡管社交網(wǎng)站實(shí)現(xiàn)了各種各樣技術(shù)特點(diǎn)的功能,但是它們主要的“骨干”是一組組可見的個(gè)人文本或者圖片等信息。這些信息是用戶唯一可以自己輸入的。一個(gè)人加入一個(gè)社交網(wǎng)絡(luò)后,會被要求填寫包含一系列問題的表單,通常包含一些特有的描述,如年齡、地址、興趣和自我介紹。大多數(shù)網(wǎng)站還鼓勵(lì)用戶上傳個(gè)人照片。有些網(wǎng)站允許用戶提交一些多媒體文件或者修改個(gè)人基本信息來提升個(gè)人賬號的形象。不同的社交網(wǎng)站的用戶能見度情況也是不一樣的。默認(rèn)情況下,這些用戶信息都可以被查看,但是也存在一些社交網(wǎng)站是收費(fèi)查看,或者是只對好友開放查看,或者是只允許其他人查看部分的信息。由于在可見性和訪問方式的區(qū)別下,社交網(wǎng)站也相互區(qū)別開來。
當(dāng)用戶在加入一個(gè)社交網(wǎng)站時(shí),識別系統(tǒng)會推薦與其有關(guān)系的其他用戶。這些關(guān)系的標(biāo)簽主要分為朋友,聯(lián)系人,粉絲等。大多數(shù)社交網(wǎng)站需要雙向確認(rèn)友誼。單向的關(guān)系則會被貼上粉絲的標(biāo)簽。而朋友的標(biāo)簽也可能會誤導(dǎo)人,因?yàn)檫@種連接不一定意味著日常關(guān)系上的友誼,因?yàn)槿藗兟?lián)系的原因是多種多樣的。除了用戶的個(gè)人信息之外,社交網(wǎng)絡(luò)還提供結(jié)識朋友、發(fā)表評論和發(fā)送私人消息等功能。有的社交網(wǎng)站會提供照片分享或者視頻分享的功能,或者是內(nèi)置博客和即時(shí)消息傳遞功能。許多社交網(wǎng)站的目標(biāo)用戶會是特定的地理區(qū)域或者特定語言使用團(tuán)體,盡管實(shí)際上可能并不是特定的目標(biāo)用戶。
隨著位置服務(wù)(locationbasedservice,lbs)與社交網(wǎng)絡(luò)逐漸融合,形成了基于位置的社交網(wǎng)絡(luò)(location-basedsocialnetworks,lbsn),它通過移動用戶的位置簽到功能,把線上虛擬社會與線下真實(shí)世界關(guān)聯(lián)在一起,實(shí)現(xiàn)用戶位置定位的同時(shí),還實(shí)現(xiàn)了位置信息在虛擬網(wǎng)絡(luò)世界的共享和傳播,從而衍生出多種多樣的位置服務(wù),其中,推薦系統(tǒng)作為目前解決信息過濾和個(gè)性化服務(wù)問題的重要技術(shù)手段之一,在位置服務(wù)中發(fā)揮著越來越重要的作用。
社交網(wǎng)絡(luò)的快速崛起和廣泛應(yīng)用,讓更多的人加入到社交網(wǎng)絡(luò)中進(jìn)行信息交流活動。人們產(chǎn)生,傳播和使用信息的方式被社交網(wǎng)絡(luò)所改變。社交網(wǎng)絡(luò)與傳統(tǒng)的互聯(lián)網(wǎng)絡(luò)不同:傳統(tǒng)互聯(lián)網(wǎng)中的用戶只是信息的接收者,他們只能通過網(wǎng)站瀏覽信息;在社交網(wǎng)絡(luò)中,用戶除了作為信息消費(fèi)者,又是信息的發(fā)布者和傳播者。用戶可以在社交網(wǎng)絡(luò)中發(fā)布信息,并且被發(fā)布出來的信息通過社交網(wǎng)絡(luò)平臺在用戶群體之間傳播。例如,用戶在facebook上分享自己的觀點(diǎn),關(guān)注那些自己會感興趣的信息,并將這些信息分享給好友。又如,在twitter和新浪微博上,用戶可以發(fā)表自己的微博,添加好友,也可以向粉絲們分享自己的興趣愛好信息等。
目前,社交網(wǎng)絡(luò)中的用戶規(guī)模和用戶發(fā)布的信息增量迅猛,而包含著地理位置信息的內(nèi)容也在被越來越多的人所關(guān)注。社交網(wǎng)絡(luò)所提供的信息是很豐富的。一般情況下,人們使用社交網(wǎng)絡(luò)平臺與朋友保持聯(lián)系和尋求各種不同的社會信息?,F(xiàn)在,廣泛采用了的全球定位系統(tǒng)的移動終端和基于位置的移動服務(wù)(lbs)的成功使得社交媒體數(shù)據(jù)能夠獲取到地理位置信息。地理位置標(biāo)記微博在分享言論和意見、獲取新聞和了解現(xiàn)實(shí)世界的真實(shí)事件上發(fā)揮了重要的作用。因此基于位置的社交網(wǎng)絡(luò)成為了豐富的含有地理信息的資源。
但是,當(dāng)前的傳統(tǒng)主流搜索引擎大多在從含有豐富的關(guān)鍵詞的長文本中獲取相關(guān)的信息,這種方式并不適合包含一些關(guān)鍵字信息的短文本社交媒體數(shù)據(jù)。當(dāng)前流行的微博它們自身也提供了一些實(shí)時(shí)搜索服務(wù),搜索返回與用戶輸入的關(guān)鍵字相關(guān)的高排名的微博,然而這種搜索并沒有包含所發(fā)微博的空間信息,對于用戶來說,用戶可能希望自己的搜索結(jié)果是結(jié)合了微博的空間信息之后,獲取到的最合適的信息。并且,現(xiàn)有的技術(shù)在進(jìn)行相關(guān)信息的索引時(shí),都是根據(jù)單一的關(guān)鍵字或者單一的信息點(diǎn)進(jìn)行搜索,使得搜索準(zhǔn)確性降低,搜索的工作量增大,降低了用戶的體驗(yàn),為用戶進(jìn)行有效信息的查找?guī)聿槐恪?/p>
技術(shù)實(shí)現(xiàn)要素:
針對上述問題,本發(fā)明的目的在于提供一種社交網(wǎng)絡(luò)文本數(shù)據(jù)的索引方法,在顧及關(guān)鍵詞相關(guān)性的同時(shí),考慮地理位置的相關(guān)性。
為了解決背景技術(shù)中所存在的問題,本發(fā)明的技術(shù)方案為:
一種社交網(wǎng)絡(luò)文本數(shù)據(jù)的索引方法,包括以下步驟:
1)、獲取需求用戶的地理位置,根據(jù)需求用戶輸入的需求,對社交網(wǎng)絡(luò)中的文本數(shù)據(jù)進(jìn)行分詞處理,獲取與需求用戶的需求相匹配的關(guān)鍵詞組;
2)、根據(jù)所獲取的關(guān)鍵詞組,建立索引樹dlir-tree,所述索引樹dlir-tree的每個(gè)節(jié)點(diǎn)包含一系列的社交網(wǎng)絡(luò)文本的發(fā)送用戶,每個(gè)節(jié)點(diǎn)的發(fā)送用戶都是由該節(jié)點(diǎn)的下一層的子樹所包含的發(fā)送用戶的集合;
3)、根據(jù)需求用戶的需求、地理位置及區(qū)域半徑查詢索引樹dlir-tree,得到相應(yīng)的文本數(shù)據(jù)。
所述步驟1)具體包括:
1.1、對待處理的文本數(shù)據(jù)進(jìn)行分詞停用詞、標(biāo)點(diǎn)符號、表情處理,得到處理后的文本數(shù)據(jù);
1.2、利用正向匹配策略與逆向匹配策略對處理后的文本數(shù)據(jù)對文本數(shù)據(jù)分詞,通過相互的信息比對,以及歧義詞語對的互信值比較,以互信值高一組為最終的分詞結(jié)果,輸出分詞集合。
所述步驟2)具體包括:
定義dlir-tree葉子節(jié)點(diǎn)對象<l,λ,ψ,f>,其中每個(gè)實(shí)體對象都包含了地理位置信息l,λ為存在一個(gè)與該地理位置對應(yīng)的最小邊界矩形mbr屬性,與地理位置相關(guān)聯(lián)的文本關(guān)鍵詞ψ,并且存在集合f代表一組發(fā)送用戶,這組發(fā)送用戶在該地理位置上簽到過的;
定義dlir-tree非葉子節(jié)點(diǎn)對象<r,λ,ψ,f>,其中,r表示了孩子節(jié)點(diǎn)對象的集合,λ為其孩子節(jié)點(diǎn)的地理位置所組成的對應(yīng)的最小邊界矩形mbr屬性,最小邊界矩形對所要查詢的區(qū)域用戶做相應(yīng)的匹配計(jì)算,ψ對應(yīng)了所有的孩子節(jié)點(diǎn)所包含的文本關(guān)鍵詞,f為對象中一組在該區(qū)域做過簽到行為且發(fā)表過文本的發(fā)送用戶。
所述步驟3)具體包括:
給定一個(gè)查詢需求q、給出一個(gè)非葉子節(jié)點(diǎn)實(shí)體e,以及它的最小邊界矩形e.λ,用trq(p)表示對象實(shí)體p對應(yīng)的關(guān)聯(lián)倒排文本與查詢q的關(guān)鍵詞的相關(guān)度,對于任意屬于節(jié)點(diǎn)e的對象實(shí)體p,均有
在上述公式中,sdq(p)表示對象實(shí)體p對于用戶u發(fā)起的查詢的社會距離相關(guān)性,其中,α∈[0,1),常量1保證了計(jì)算的相關(guān)性永遠(yuǎn)不會等于零。
與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果為:
本發(fā)明提供了一種社交網(wǎng)絡(luò)文本數(shù)據(jù)的索引方法,同時(shí)考慮文本數(shù)據(jù)和地理位置的混合索引結(jié)構(gòu),簡稱dlir-tree,以便于根據(jù)用戶的需求快速搜索得到符合需求及在區(qū)域范圍內(nèi)與關(guān)鍵詞組相關(guān)的文本信息,并且能夠通過邊界評分方式提供搜索空間的剪枝能力,通過利用地理位置已經(jīng)查詢的需求建立索引,增大了索引能力,減低了索引的數(shù)據(jù)處理量,提供了工作效率。
附圖說明
圖1是本發(fā)明社交網(wǎng)絡(luò)文本數(shù)據(jù)的索引方法流程圖;
圖2是本發(fā)明社交網(wǎng)絡(luò)文本數(shù)據(jù)的索引方法dlir-tree結(jié)構(gòu)圖;
圖3是本發(fā)明實(shí)施例微博倒排索引結(jié)構(gòu)圖;
圖4是本發(fā)明實(shí)施例地理位置圖;
圖5是本發(fā)明實(shí)施例倒排文件圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明做詳細(xì)描述。
用戶可能通過移動終端發(fā)表一條文本的時(shí)候,該移動終端支持位置定位服務(wù),那么用戶可以選擇是否標(biāo)記地理位置進(jìn)行簽到,但是并不是所有的移動終端都支持位置定位服務(wù),也可能用戶不讓別的用戶或者好友看見自己在何地發(fā)表微博而故意不簽到。針對這種情況,本發(fā)明對帶有地理位置信息的社交網(wǎng)絡(luò)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行處理。
如圖1所示,本發(fā)明提供了一種社交網(wǎng)絡(luò)文本數(shù)據(jù)的索引方法,包括以下步驟:
1)、獲取需求用戶的地理位置,根據(jù)需求用戶輸入的需求,對社交網(wǎng)絡(luò)中的文本數(shù)據(jù)進(jìn)行分詞處理,獲取與需求用戶的需求相匹配的關(guān)鍵詞組;
1.1、對待處理的文本數(shù)據(jù)進(jìn)行分詞停用詞、標(biāo)點(diǎn)符號、表情處理,得到處理后的文本數(shù)據(jù);
定義漢字字符集合∑={c1,…,ci,…,cn},其中c1表示漢字的字符,∑*表示在字符集∑上的字符串集合。
定義分詞規(guī)則為
定義針對應(yīng)用d(applicationdomain)的詞匯及(詞庫):
vd={w1,…,wi,…,wv|wi∈∑*},并且應(yīng)用d滿足segd(wi)=1。
不考慮對d的限制,認(rèn)為任何詞庫都可以作為參考,vd簡記為v。于是v*表示在v的詞匯串集合。
定義tail(s)=tail(c0c1…ck)=ck,head(s)=c0,vcat(ci,cj)=cicj,
定義如果存在字符串s∈s,
定義將分詞規(guī)則定義為k,中文分詞問題就成為了利用計(jì)算機(jī)解決式子:
中文分詞方法中,常用的方法主要有正向最大匹配分詞法(forwardmaximummatchingmethod,fmm)和逆向最大匹配分詞法(reversemaximummatchingmethod,rmm)。
正向最大匹配分詞法fmm主要依據(jù)了分詞詞典來進(jìn)行詞語切分,它的思想是:假定如果分詞詞典中最大長度詞條的長度為n即該詞條由n個(gè)字符組成,首先獲取文檔的中文短語,然后讀取當(dāng)前中文短語中的前n個(gè)字符,這些字符就是需要匹配的字符串,然后開始分詞操作,與分詞詞典中的詞語進(jìn)行匹配,如果詞典中有這個(gè)字符串形成的詞語,那么匹配成功,這個(gè)字符串就是一個(gè)詞語被切分出來;如果詞典中找不到對應(yīng)這樣的一個(gè)詞語,就認(rèn)為匹配失敗,此時(shí)去掉字符串最后一個(gè)字符,繼續(xù)進(jìn)行匹配,直到匹配成功出一個(gè)詞或者字符串只剩下一個(gè)字符結(jié)束匹配。以偽代碼的形式在下面給出正向最大匹配分詞法的描述:
逆向最大匹配分詞方法rmm與正向最大匹配分詞方法fmm的基本原理相同,但是不同的地方在于分詞切分掃描的方向與fmm方法是相反的。逆向最大匹配分詞法從文檔的末尾處進(jìn)行匹配,使用逆序詞典作為分詞詞典,其中每個(gè)詞語都是正常詞語的逆序形式。在算法中,首先要對被處理文檔進(jìn)行逆序的操作,生成逆序文檔。接著采用逆序詞典對逆序文檔進(jìn)行匹配。由于中文語句大多是偏正結(jié)構(gòu)的形式,從后向前的匹配策略能夠使得分詞的準(zhǔn)確率得到提升。以偽代碼的形式在下面給出逆向最大匹配分詞法的描述:
歧義詞語是中文分詞中經(jīng)常會出現(xiàn)的問題。中文歧義是對于一個(gè)中文句子進(jìn)行分詞,可能會得到不同的分詞的結(jié)果。中文歧義有三種形式,交集型歧義(oas),覆蓋型歧義(cas)和真歧義:oas歧義,設(shè)a,b,c分別代表一個(gè)或多個(gè)連續(xù)的漢字,則句子abc中,ab和bc分別可以組合成詞,那么就被成為交集型歧義;cas歧義,設(shè)a,b各為一個(gè)或多個(gè)連續(xù)的漢字,若a,b自身分別是詞語,則稱作覆蓋型歧義;真歧義就是對于分詞結(jié)果必須根據(jù)上下文其他句子去進(jìn)行判斷。
需要說明的是,在對文本內(nèi)容進(jìn)行分詞預(yù)處理時(shí),需要去考慮對于停用詞的處理。在中文語句中,停用詞基本上是對這句話沒有語義上的貢獻(xiàn),沒有意義。然而,這種詞語會大量出現(xiàn)在文本中,因此處理好停用詞能夠提高詞語切分效率以及提升后續(xù)算法處理的準(zhǔn)確性。詞語切分時(shí),必須對這些詞進(jìn)行處理。要正確的處理好停用詞,那么停用詞表的使用和停用詞的識別是非常重要的。
1.2、利用正向匹配策略與逆向匹配策略對處理后的文本數(shù)據(jù)對文本數(shù)據(jù)分詞,通過相互的信息比對,以及歧義詞語對的互信值比較,以互信值高一組為最終的分詞結(jié)果,輸出分詞集合。
對文本進(jìn)行分詞預(yù)處理,這其中要對停用詞和標(biāo)點(diǎn)符號進(jìn)行處理,停用詞庫的獲取很方便,將文本與停用詞庫以及標(biāo)點(diǎn)符號做比對處理。用“#”進(jìn)行替換,從而可獲取到待分詞文本數(shù)據(jù)。接下來就是具體分詞算法核心處理部分,對待分詞文本進(jìn)行詞語切分處理,最后得到分詞結(jié)果集合。
文本分詞處理算法中,歧義詞的處理時(shí)分詞不可避免的階段,采用計(jì)算互信來進(jìn)行歧義的消除?;バ诺墓饺缦滤荆?/p>
在公式(4.1)中,xy表示中文有序字符串,x、y分別是其中兩個(gè)詞。
示例性的,本發(fā)明以偽代碼的形式在下面給出微博文本分詞處理算法的描述:
該算法首先通過對文檔x與停用詞集合的處理獲取到處理后的文檔x1,那么文檔x1經(jīng)過停用詞處理后,實(shí)際上將其變成了由一句短語構(gòu)成的文本。之后讀取文檔x1,首先獲取一個(gè)中文短語s,如果中文短語s長度小于分詞詞典最長詞語長度,則直接對中文短語進(jìn)行分詞,如果中文短語s長度大于分詞詞典最長詞語長度,則就需要進(jìn)一步截取字符串進(jìn)行分詞,算法中采用字符串term1與正向分詞詞典匹配進(jìn)行正向分詞的操作,采用term2與逆向分詞詞典匹配進(jìn)行逆向分詞的操作。當(dāng)獲取到正向分詞集合fw和逆向分詞集合rw后,首先將逆序分詞集合rw詞語進(jìn)行逆向操作獲取正確的詞語集合,然后比較正向與逆向分詞集合,判斷是否出現(xiàn)了歧義詞語,當(dāng)出現(xiàn)歧義詞語的時(shí)候,就記錄這些歧義詞語存入集合aw中。算法中對消除歧義的做法采取的是,先參照集合c1中的詞語出現(xiàn)次數(shù),然后統(tǒng)計(jì)歧義詞語出現(xiàn)的概率,并根據(jù)公式(4.1)進(jìn)行互信計(jì)算,互信的分高的那組為最終的分詞結(jié)果。算法最終生成輸出分詞集合r。
2)、根據(jù)所獲取的關(guān)鍵詞組,建立索引樹dlir-tree,所述索引樹dlir-tree的每個(gè)節(jié)點(diǎn)包含一系列的社交網(wǎng)絡(luò)文本的發(fā)送用戶,每個(gè)節(jié)點(diǎn)的發(fā)送用戶都是由該節(jié)點(diǎn)的下一層的子樹所包含的發(fā)送用戶的集合;如圖2所示,圖2為dlir-tree結(jié)構(gòu)圖,在這個(gè)樹中,葉子節(jié)點(diǎn)由一組實(shí)體對象構(gòu)成。給出該對象的形式化定義:
定義dlir-tree葉子節(jié)點(diǎn)對象<l,λ,ψ,f>定義表明每個(gè)實(shí)體對象都包含了地理位置信息l,并且存在一個(gè)與該地理位置對應(yīng)的最小邊界矩形mbr屬性λ,與地理位置相關(guān)聯(lián)的文檔即用戶在該地理位置簽到時(shí)所發(fā)的微博文本關(guān)鍵詞ψ,并且存在集合f代表一組用戶,這組用戶都是在該地理位置上簽到過的。
對于dlir-tree索引樹的每個(gè)葉子節(jié)點(diǎn)來說,每個(gè)葉子節(jié)點(diǎn)映射一個(gè)相應(yīng)的倒排文件。
倒排文件又被稱作倒排索引,它的含義是用記錄的非主屬性值(也叫副鍵)來查找記錄而組織的文件叫倒排文件,即次索引。倒排文件中包含了所有的非主屬性值,并且列出了與之有關(guān)的所有記錄的主鍵值,倒排文件主要用于復(fù)雜查詢處理。
對于搜索引擎而言,它需要一個(gè)特別有效的數(shù)據(jù)結(jié)構(gòu)處理收集到的數(shù)據(jù),并在這個(gè)基礎(chǔ)上給用戶提供搜索服務(wù)?,F(xiàn)在大量的搜索引擎都采用倒排文件的索引方式處理數(shù)據(jù)。根據(jù)倒排文件的特征可以看到,倒排文件簡單地認(rèn)為是一種用文檔的關(guān)鍵詞作為索引,而文檔自身作為索引目標(biāo)的結(jié)構(gòu)。
針對葉子節(jié)點(diǎn)關(guān)聯(lián)的倒排文件,如圖3所示,由兩個(gè)主要的部分構(gòu)成:
(1)一個(gè)關(guān)鍵詞詞匯表,這些關(guān)鍵詞均在某些微博文本中出現(xiàn)過。
(2)對于每一個(gè)單詞來說,它對應(yīng)的一組微博文本集合,以鏈表形式表現(xiàn)。例如對于一個(gè)關(guān)鍵詞w來說,一篇微博文本中出現(xiàn)了這個(gè)關(guān)鍵詞w,那么將這樣的微博文本放在同一個(gè)集合中。
對于dlir-tree中的每一個(gè)非葉子節(jié)點(diǎn),給出了形式化的定義:
定義dlir-tree非葉子節(jié)點(diǎn)對象<r,λ,ψ,f>定義中r表示了它的孩子節(jié)點(diǎn)對象的集合,并且其孩子節(jié)點(diǎn)的地理位置所組成的對應(yīng)的最小邊界矩形mbr屬性λ,這個(gè)最小邊界矩形可以對所要查詢的區(qū)域用戶做相應(yīng)的匹配計(jì)算,ψ對應(yīng)了它所有的孩子節(jié)點(diǎn)所包含的微博文本關(guān)鍵詞,對象中的f也是一組在該區(qū)域做過簽到行為且發(fā)表過微博的用戶,同時(shí)這些用戶也是該節(jié)點(diǎn)的孩子節(jié)點(diǎn)對應(yīng)的用戶集合。
對于dlir-tree索引樹的每個(gè)非葉子節(jié)點(diǎn)來說,每個(gè)非葉子節(jié)點(diǎn)也始終會映射一個(gè)相應(yīng)的倒排文件。
如圖4所示,圖4是對于圖2dlir-tree樹中各個(gè)節(jié)點(diǎn)的一個(gè)地理位置圖。如圖所示,位置l1和位置l2形成了一個(gè)mbr即r1,位置l3和位置l4形成了一個(gè)mbr即r2,位置l5、位置l6和位置l7形成了一個(gè)mbr即r3,位置l8和位置l9形成了一個(gè)mbr即r4,接著r1與r2形成上一層的mbr即r5,r3與r4形成上一層的mbr即r6,與圖2dlir-tree相對應(yīng)。
示例性的,如圖5所示,是對于圖2dlir-tree樹中各個(gè)節(jié)點(diǎn)的一個(gè)倒排文件圖。圖中左側(cè)為節(jié)點(diǎn)r5的倒排文件,文件中包含六個(gè)關(guān)鍵詞,其中每一個(gè)關(guān)鍵詞對應(yīng)了構(gòu)成r5的r1與r2的實(shí)體對象,可以看到價(jià)格對應(yīng)r1與r2,牛排對應(yīng)r1,餐廳對應(yīng)r1與r2,電影院對應(yīng)r1,酒店對應(yīng)r2,商場對應(yīng)r2。圖中中間部分是r1對應(yīng)的倒排文件,右側(cè)部分是r2對應(yīng)的倒排文件。因?yàn)閞1對應(yīng)的孩子節(jié)點(diǎn)已經(jīng)是葉子節(jié)點(diǎn),因此其對應(yīng)的倒排文件內(nèi)容關(guān)聯(lián)的是具體的微博文本,已在圖中表示。
所定義的dlir-tree繼承了典型的ir-tree所具有的一個(gè)重要特征,即每一個(gè)非葉子節(jié)點(diǎn)都有一個(gè)對應(yīng)的關(guān)聯(lián)倒排文本,該關(guān)聯(lián)文本就是對以該節(jié)點(diǎn)為根節(jié)點(diǎn)的子樹的查詢的關(guān)聯(lián)倒排文本的上界。
3)、根據(jù)需求用戶的需求、地理位置及區(qū)域半徑查詢索引樹dlir-tree,得到相應(yīng)的文本數(shù)據(jù)。
定義dlir-tree倒排文本單調(diào)性給定一個(gè)查詢q,再給出一個(gè)非葉子節(jié)點(diǎn)實(shí)體e,以及它的最小邊界矩形e.λ。用trq(p)表示對象實(shí)體p對應(yīng)的關(guān)聯(lián)倒排文本與查詢q的關(guān)鍵詞的相關(guān)度。那么對于任意屬于節(jié)點(diǎn)e的對象實(shí)體p,均有
例如對于圖2中數(shù)據(jù),給定一個(gè)查詢q,那么就有trq(r5)≥trq(r1)≥trq(p1)
對于微博簽到位置與用戶發(fā)起查詢的地理位置之間的社會距離相關(guān)性的如下列公式(4.2)所示:
在上述公式中,sdq(p)表示對象實(shí)體p對于用戶u發(fā)起的查詢的社會距離相關(guān)性。其中,α∈[0,1),常量1保證了計(jì)算的相關(guān)性永遠(yuǎn)不會等于零。α||uqu||s也經(jīng)常會被用于其他的一些社交網(wǎng)絡(luò)評分計(jì)算以及pagerank,考慮對其進(jìn)行合適的處理,應(yīng)用在dlir-tree的查詢算法中。
基于以上定義與公式,給出下列定義:
定義給定一個(gè)查詢q,再給出一個(gè)非葉子節(jié)點(diǎn)實(shí)體e,并且它擁有孩子節(jié)點(diǎn),孩子節(jié)點(diǎn)包含了n個(gè)實(shí)體對象,有e={ei,1≤i≤n},那么對于任意的孩子節(jié)點(diǎn)對象實(shí)體,都有
因?yàn)閑i是e的孩子節(jié)點(diǎn)中的一個(gè)對象,ei一定是e的一個(gè)子集,有
dlir-tree查詢算法:
對于給定的一個(gè)微博文本p與用戶需求q關(guān)鍵詞組的相似度,可以用下列公式(4.3)計(jì)算:
根據(jù)對微博文本分詞處理后,可將微博文本看作是由一組關(guān)鍵詞組成的,即微博文本自身也是一個(gè)關(guān)鍵詞組。那么通過對公式(4.3)的分析可知,當(dāng)wp,i*wq,i的結(jié)果為零時(shí),是不影響相似度的,而只有當(dāng)p或者q其中任意一方的關(guān)鍵詞不能匹配時(shí),wp,i*wq,i的結(jié)果為零。當(dāng)p或者q中的關(guān)鍵詞不完全匹配時(shí),也就是其中有一方不存在該關(guān)鍵詞,但是這種情況出現(xiàn)的比較少,那么可以考慮以關(guān)鍵詞存在較多的一方作為參考對象,而不考慮關(guān)鍵詞存在較少的一方。相反,當(dāng)p或者q中的關(guān)鍵詞匹配度非常低的時(shí)候,也就是wp,i和wq,i存在非常多的零項(xiàng)時(shí),那么就考慮以關(guān)鍵詞存在較少的一方作為參考對象,而不考慮關(guān)鍵詞存在較多的一方。公式(4.4)是改進(jìn)的余弦相似度計(jì)算公式,其中k為選擇的關(guān)鍵詞的索引集合,去掉了不考慮的關(guān)鍵詞組中的關(guān)鍵詞。
改進(jìn)的余弦相似度計(jì)算公式能夠保證當(dāng)匹配度高的情況下,給與其一定的權(quán)值挑選出來,匹配度過低的情況下,賦予其較低的權(quán)值,使得相似度的區(qū)分更加快速更加合理。結(jié)合dlir-tree以及改進(jìn)的余弦相似度計(jì)算公式,可以獲取到微博plist。
以偽代碼的形式在下面給出dlir-tree查詢算法的描述:
上述算法首先初始化一個(gè)優(yōu)先隊(duì)列u,該隊(duì)列存放的是對dlir-tree進(jìn)行最佳優(yōu)先搜索的結(jié)果。首先將dlir-tree的根節(jié)點(diǎn)存入優(yōu)先隊(duì)列中,對優(yōu)先隊(duì)列u進(jìn)行while循環(huán)操作,當(dāng)優(yōu)先隊(duì)列u為非空隊(duì)列時(shí),則表明此隊(duì)列中存在符合條件的節(jié)點(diǎn)或?qū)ο螅敲磁袛喑鲫?duì)列的是否是一個(gè)實(shí)體對象,如果是一個(gè)實(shí)體對象,那么判斷這個(gè)對象對應(yīng)的微博文本是否已經(jīng)存入plist中,若plist中沒有,就將該對象添加入plist中。當(dāng)出隊(duì)列的不是一個(gè)實(shí)體對象時(shí),那么它就對應(yīng)了dlir-tree中的一個(gè)非葉子節(jié)點(diǎn),那么此時(shí)遍歷這個(gè)節(jié)點(diǎn)e的所有孩子節(jié)點(diǎn)e′,如果存在孩子節(jié)點(diǎn)e′的社交距離小于給定的查詢半徑社交距離即sdq(e′)<sdq(r),并且它所對應(yīng)的倒排文件關(guān)鍵詞與給定查詢關(guān)鍵詞組有交集即
對于本領(lǐng)域技術(shù)人員而言,顯然能了解到上述具體實(shí)施例只是本發(fā)明的優(yōu)選方案,因此本領(lǐng)域的技術(shù)人員對本發(fā)明中的某些部分所可能作出的改進(jìn)、變動,體現(xiàn)的仍是本發(fā)明的原理,實(shí)現(xiàn)的仍是本發(fā)明的目的,均屬于本發(fā)明所保護(hù)的范圍。