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