欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在大規(guī)模社會(huì)網(wǎng)絡(luò)中基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)方法

文檔序號(hào):6613688閱讀:163來源:國知局

專利名稱::在大規(guī)模社會(huì)網(wǎng)絡(luò)中基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)方法
技術(shù)領(lǐng)域
:本發(fā)明屬于互聯(lián)網(wǎng)
技術(shù)領(lǐng)域
,尤其涉及互聯(lián)網(wǎng)下的社會(huì)網(wǎng)絡(luò)搜索。技術(shù)背景個(gè)人關(guān)系發(fā)現(xiàn)是指下一代互聯(lián)網(wǎng)中自動(dòng)的發(fā)現(xiàn)人和人之間的相連關(guān)系的方法,將會(huì)給互聯(lián)網(wǎng)帶來巨大的用戶和使用頻率,是體現(xiàn)互聯(lián)網(wǎng)新的技術(shù)以及經(jīng)濟(jì)價(jià)值的重要手段。査找人和人之間的路徑是個(gè)人關(guān)系發(fā)現(xiàn)的基本方法,其目標(biāo)是為了在兩個(gè)不直接認(rèn)識(shí)的人之間找到一條路徑,該路徑的節(jié)點(diǎn)為人,該路徑的相鄰兩個(gè)人為互相認(rèn)識(shí)的關(guān)系,通過這些人的介紹,可以將兩個(gè)不直接認(rèn)識(shí)的人聯(lián)系起來,從而使得兩個(gè)不直接認(rèn)識(shí)的人能夠找到一種建立連接的方式。基于路徑來查找個(gè)人關(guān)系是這一個(gè)領(lǐng)域中的重要方法,其目標(biāo)是先把社會(huì)網(wǎng)絡(luò)建模成為圖,用節(jié)點(diǎn)來表示人,用連接節(jié)點(diǎn)的邊表示人和人之間的關(guān)系。在大多數(shù)方法中,查找人和人之間的關(guān)系是通過在圖中査找兩個(gè)節(jié)點(diǎn)可能存在的路徑來達(dá)到目標(biāo)。在已提出的個(gè)人關(guān)系發(fā)現(xiàn)方法中存在以下一些局限性第一,僅考慮了"最小路徑"的簡(jiǎn)單情形,也就是說,只査找長(zhǎng)度最短的一條路徑,這個(gè)長(zhǎng)度最短的路徑有可能是具有的邊最少的路徑,也有可能是根據(jù)邊的權(quán)重和邊的個(gè)數(shù)計(jì)算出來的最短路徑。第二,缺少路徑評(píng)分機(jī)制,在進(jìn)行多條路徑査找的時(shí)候,可以根據(jù)路徑評(píng)分結(jié)果去掉分?jǐn)?shù)較低的路徑,提高系統(tǒng)的效率,這在大規(guī)模的社會(huì)網(wǎng)絡(luò)中應(yīng)用時(shí)非常重要。針對(duì)上述不足,本發(fā)明提出了一種基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)系統(tǒng)(PathRankingbasedAssociationSearch,簡(jiǎn)稱PRAS)。本發(fā)明通過引入一種路徑評(píng)分機(jī)制,更好的提高了個(gè)人關(guān)系發(fā)現(xiàn)的效率,能夠被應(yīng)用在節(jié)點(diǎn)數(shù)超過百萬的社會(huì)關(guān)系網(wǎng)絡(luò)中,進(jìn)行人和人之間關(guān)系的快速查找,并且還可以將其應(yīng)用于研究者的關(guān)系發(fā)現(xiàn)。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的在于提供一種在大規(guī)模社會(huì)網(wǎng)絡(luò)下基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)方法和系統(tǒng)。該個(gè)人關(guān)系發(fā)現(xiàn)方法包括個(gè)人關(guān)系的模型搭建子模塊,個(gè)人關(guān)系最短路徑計(jì)算子模塊以及基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)子模塊和個(gè)人關(guān)系發(fā)現(xiàn)結(jié)果展示子模塊。本發(fā)明的核心在于基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)子模塊,其他子模塊為核心模塊提供數(shù)據(jù)服務(wù)。本發(fā)明所提出的方法的思路在于采用一種通用的社會(huì)網(wǎng)絡(luò)描述模型,首先基于該模型定義路徑評(píng)分方式;然后基于該模型構(gòu)建的社會(huì)網(wǎng)絡(luò)圖先査找出每相鄰兩個(gè)人之間的最短路徑;然后開始查找指定的兩個(gè)人之間路徑長(zhǎng)度不大于最短路徑某個(gè)倍數(shù)的所有路徑;最后按照路徑評(píng)分的順序?qū)⑺械穆窂椒祷亟o用戶。所述方法是基于一個(gè)已經(jīng)存在的社會(huì)網(wǎng)絡(luò)依次按以下步驟實(shí)現(xiàn)的,所采用的步驟框圖請(qǐng)見圖l,該方法包括如下步驟步驟l:構(gòu)建社會(huì)網(wǎng)絡(luò)圖設(shè)社會(huì)網(wǎng)絡(luò)為《二化",其中^為有向圖,其中K為節(jié)點(diǎn)的集合,f為邊的集合,任何一個(gè)節(jié)點(diǎn)yeK代表社會(huì)網(wǎng)絡(luò)中的一個(gè)人,e;e^代表有向圖中的一條有向邊,表示社會(huì)網(wǎng)絡(luò)中的人K和PO之間存在的一種關(guān)系r,因?yàn)閮蓚€(gè)人之間可能存在多種關(guān)系。其中e;的小標(biāo)力'表示該邊的起始節(jié)點(diǎn)是^結(jié)束節(jié)點(diǎn)是K,,這個(gè)關(guān)系類型是r。在這個(gè)圖之中,我們限定一個(gè)人只能在圖中出現(xiàn)一次,也就是說,圖中的兩個(gè)節(jié)點(diǎn)不可能表示同一個(gè)人。在這個(gè)圖上定義個(gè)人關(guān)系,個(gè)人關(guān)系指的是圖中任意兩個(gè)節(jié)點(diǎn)之間可能出現(xiàn)的一條路徑,路徑在這里的定義是兩個(gè)人之間通過若干條邊組成的一種可以連通的關(guān)系,如果節(jié)點(diǎn)之間只有一條邊,那么退化成為e;ef這種類型的關(guān)系。因此,在這里,兩個(gè)人之間的關(guān)系既可以是由一條相互之間關(guān)聯(lián)的邊組成,也可以由多條邊組成。個(gè)人關(guān)系的輸入是兩個(gè)人K和^,輸出是這兩個(gè)人之間的關(guān)系,按關(guān)系的評(píng)分從高到低排列,其中某一個(gè)關(guān)系的表示如下{e;《2,…,e、},這個(gè)集合中的元素個(gè)數(shù)大于或者等于l其中e;一e^,表示為圖中的一條邊,在這里力被定義為起點(diǎn),J0定義為終點(diǎn)。設(shè)K,和^的一個(gè)路徑之間有77條邊,其中路徑的長(zhǎng)度定義為(","■)'何』…'77其中P0)為7,和P0路徑上的第A條邊的權(quán)重,所以這個(gè)公式表示為從起點(diǎn)到終點(diǎn)的這條路徑上所有的邊的權(quán)重的和。本發(fā)明中的路徑長(zhǎng)度即路徑評(píng)分表示的是兩個(gè)人之間的親密程度,如果路徑評(píng)分低,則說明兩個(gè)人之間具有的這個(gè)路徑顯示的親密程度比較高,這個(gè)路徑比較重要;如果路徑評(píng)分高,則說明兩個(gè)人之間具有的這個(gè)路徑顯示的親密程度比較低,這個(gè)路徑不重要。在本發(fā)明中處理的所有關(guān)系以及權(quán)重表示如表1:表l,本發(fā)明處理的所有關(guān)系以及權(quán)重<table>tableseeoriginaldocumentpage6</column></row><table>關(guān)系權(quán)重的給定方法由人為給定,目前所采用的方法是隨機(jī)調(diào)研io個(gè)人,讓每個(gè)人對(duì)于每個(gè)關(guān)系都給出一個(gè)7-70分之間的分值,計(jì)算平均值后進(jìn)行四舍五入的取整,就是該關(guān)系的權(quán)重。下面舉例說明一個(gè)社會(huì)網(wǎng)絡(luò),一個(gè)真實(shí)的基于實(shí)驗(yàn)室的社會(huì)網(wǎng)絡(luò)如圖2所示,在這個(gè)圖中,我們可以發(fā)現(xiàn)對(duì)于兩個(gè)人"小洪"和"王教授"之間存在著如下的關(guān)系1)小洪—淤…,潛導(dǎo)—蔡教一存,一個(gè)艱^中工^—王教授2)小洪—^jT章/^"者—唐博士—凝…^^^導(dǎo)一王教授所以,關(guān)系l)的分?jǐn)?shù)為4+3=7;關(guān)系2)的分?jǐn)?shù)為2+4=6步驟l就是創(chuàng)建一個(gè)社會(huì)網(wǎng)絡(luò)的圖,圖中的節(jié)點(diǎn)就是人,圖中的邊就是表l中定義的4種邊。社會(huì)網(wǎng)絡(luò)存儲(chǔ)在關(guān)系數(shù)據(jù)庫中,本發(fā)明采用如下的數(shù)據(jù)庫結(jié)構(gòu)來存儲(chǔ)社會(huì)關(guān)系網(wǎng)絡(luò):1)關(guān)系以及權(quán)重表,該表存儲(chǔ)社會(huì)關(guān)系網(wǎng)中的所有關(guān)系以及權(quán)重,如下所示表2,社會(huì)網(wǎng)絡(luò)圖中的關(guān)系類型以關(guān)系權(quán)重表<table>tableseeoriginaldocumentpage6</column></row><table>2)節(jié)點(diǎn)表,該表存儲(chǔ)社會(huì)網(wǎng)絡(luò)中的所有人,如表3所示:表3,社會(huì)網(wǎng)絡(luò)圖中的節(jié)點(diǎn)表<table>tableseeoriginaldocumentpage6</column></row><table>3)節(jié)點(diǎn)關(guān)系表,標(biāo)識(shí)社會(huì)網(wǎng)絡(luò)中的人之間的關(guān)系,如表4所示:表4,社會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)關(guān)系表<table>tableseeoriginaldocumentpage7</column></row><table>實(shí)際上,圖中的每一條邊在表4中都有一條(雙向邊是兩條)相應(yīng)的記錄(表l中的行)。至此,一個(gè)社會(huì)網(wǎng)絡(luò)構(gòu)建完畢。步驟2:根據(jù)社會(huì)網(wǎng)絡(luò)圖,計(jì)算圖中每?jī)蓚€(gè)人之間的最短路徑的評(píng)分;在步驟l結(jié)束后,整個(gè)社會(huì)網(wǎng)絡(luò)已經(jīng)構(gòu)建完畢,在步驟2中,我們將計(jì)算社會(huì)網(wǎng)絡(luò)圖中任意兩個(gè)節(jié)點(diǎn)之間的最短路徑,以便讓步驟三使用。社會(huì)網(wǎng)絡(luò)途中任何兩個(gè)節(jié)點(diǎn)的最短路徑計(jì)算方法利用基于Dijkstra的圖最短路徑計(jì)算方法,算法如下算法的輸入,社會(huì)關(guān)系圖上的任意兩個(gè)節(jié)點(diǎn)y和"r和t分別代表兩個(gè)人。輸出f和t之間的最短路徑的評(píng)分。算法中的變量說明1)dis(a)的值表示圖中的節(jié)點(diǎn)a到r的最短路徑的評(píng)分;2)path(vj的值表示該條路徑到達(dá)f后的下一個(gè)節(jié)點(diǎn);3)c(a)的值表示這個(gè)節(jié)點(diǎn)是否被遍歷過,0為還沒有遍歷過,l為遍歷過了;4)(u,v)表示某一條邊(u,v)的開始和結(jié)束節(jié)點(diǎn),其中u表示開始節(jié)點(diǎn),v表示結(jié)束節(jié)點(diǎn)。表不邊e的權(quán)重。1.首先對(duì)于除去t之外的所有G中的點(diǎn)t,設(shè)為(2-2—52).21()23;pst力^y)為0;c(a)為0;};2.令dis(t)為0;3.創(chuàng)建一個(gè)最小堆heap:4.將t插入到最小堆中;5.當(dāng)(最小堆不為空的時(shí)候),做下面的循環(huán)(6.從最小堆中取出一個(gè)節(jié)點(diǎn),設(shè)為如果^。不為7,繼續(xù),否則回到第5步;7.c(^,J設(shè)為1:8.得到所有指向k的邊的集合"yj;9.(對(duì)于每個(gè)在f(^,J中的邊,設(shè)為&J,做下面的循環(huán)(10.得到;的起始和終結(jié)節(jié)點(diǎn)(",^J;11.如果(c(")為0并且+dis(pwj<dis("))則做如下操作{12.令dis(")為『(e碰)+disO.);13.令path(o)為7孤.;14.if(如果節(jié)點(diǎn)"存在于最小堆中)則做如下操作(15.將y從最小堆中移除16.}如果節(jié)點(diǎn)u不存在于最小堆中,則做如下操作{17.將y插入到最小堆中;18.}19.)20.}21.}22.輸出dis(v)的值,該值就是r到t之間的最短路徑;算法的一個(gè)例子如附圖3所示,在附圖3中,求r和t之間的最短路徑,算法的計(jì)算流程如下所示1)初始化先初始化算法的所有參數(shù)(2一2—52)2翻,必"sA(2-2—52)21。23,(2-2,2腦,^^c>pat/(Vj二一/,patA(k^二一厶pst力(^」二一7,pat/("by*=—/,c(VJ:ftcrW:O,c廣W:ac(W^,-o^s(^^2)算法開始,創(chuàng)建最小堆,將t插入最小堆;3)最小堆不為空,開始循環(huán),取出節(jié)點(diǎn),這時(shí)候?yàn)閠,于是&,。為t,于是c^;^;4)得到所有指向t的邊的集合,設(shè)為^t)^(a,t),(b,t"5)對(duì)于f(t)中的邊,開始循環(huán)6)首先處理(a,t),因?yàn)閏(a)^并且w((a,t))+dis(t)=5+0=5<dis(a)=(2-2-52).2肌所以dis(a)=5,path(a)=t;將a入最小堆;7)然后處理(b,t),因?yàn)閏(b)^并且w((b,t))+dis(t),6+0〈dis(bH(2-2-52).21。2所以dis(b)=6,path(b)=t;將b入最小堆;(2-2一52)28)因?yàn)樽钚《巡粸榭?,所以開始循環(huán),取出節(jié)點(diǎn),這時(shí)候?yàn)閍,于是c(a)4;9)得到所有指向a的邊的集合^Ta^Kv,aM;10)對(duì)于E(a)中的邊,開始循環(huán)11)處理(v,a),因?yàn)閏(v)-0,并且w((v,a))+dis(a^2+5^7〈dis(v)二(2-2—52).21。23,所以dis(v)=7,path(v):a;將v入最小堆;12)因?yàn)樽钚《巡粸榭?,所以開始循環(huán),取出節(jié)點(diǎn),這時(shí)候?yàn)閎,于是c(b^l;13)得到所有指向b的邊的集合f{(v,b)};14)對(duì)于E(b)中的邊,開始循環(huán)15)處理(v,b),因?yàn)閏(v)=0;而且w(v,b)+dis(b^3十6〉dis(v)-6,所以不做動(dòng)作。16)最小堆不為空,所以開始循環(huán),取出節(jié)點(diǎn),這時(shí)候?yàn)関,于是退回循環(huán);17)此時(shí)最小堆為空,則輸出力、6^=6,就是r和t之間的最短路徑;上面是圖3節(jié)點(diǎn)y和t之間最短路徑計(jì)算的例子,對(duì)于圖3中的任意兩個(gè)節(jié)點(diǎn),都利用上述方法計(jì)算出最短路徑并且存放在數(shù)據(jù)庫中。數(shù)據(jù)庫表的結(jié)構(gòu)包括三列源節(jié)點(diǎn);目標(biāo)節(jié)點(diǎn)和最短路徑。如表5所示,表5表示了圖2中的社會(huì)網(wǎng)絡(luò)的任意兩個(gè)節(jié)點(diǎn)之間的最短路徑在數(shù)據(jù)庫中存放的實(shí)際情況。表5,任意兩個(gè)節(jié)點(diǎn)之間最短路徑記錄表<table>tableseeoriginaldocumentpage9</column></row><table>這個(gè)表記錄了社會(huì)關(guān)系圖中任意兩個(gè)節(jié)點(diǎn)之間的最短路徑,如果這兩個(gè)節(jié)點(diǎn)并不連通,那么采用雙精度實(shí)數(shù)的最大值作為無窮大,該值為(2-2—52),21()23。在步驟2中,對(duì)步驟1所產(chǎn)生的社會(huì)關(guān)系網(wǎng)絡(luò)中的任意兩個(gè)節(jié)點(diǎn)的最短路徑進(jìn)行計(jì)算,并且將結(jié)果保存在數(shù)據(jù)庫中。步驟3:根據(jù)路徑評(píng)分,對(duì)于任意指定的兩個(gè)人,查找他們之間的社會(huì)關(guān)系;當(dāng)步驟1和步驟2把社會(huì)網(wǎng)絡(luò)圖以及圖中任意兩個(gè)人的最短路徑都生成完畢后,就可以進(jìn)行社會(huì)網(wǎng)絡(luò)巾任意兩個(gè)人之間的關(guān)系的快速查找了,設(shè)社會(huì)網(wǎng)絡(luò)圖中的兩個(gè)人為R和^,并且設(shè)定所返回的路徑不能大于最短路徑的倍數(shù)-,可以開始按照下面的方法進(jìn)行社會(huì)網(wǎng)絡(luò)中的關(guān)系的査找其中參數(shù)》的作用是用來過濾一些不親密的關(guān)系,因?yàn)榍懊嬉呀?jīng)提到,一個(gè)關(guān)系的評(píng)分越低,說明它越重要,比如^=1.2,那么,所有分?jǐn)?shù)高于k和^的最短路徑長(zhǎng)度乘于1.2的路徑都將被過濾掉。只返回那些重要的關(guān)系可以加快關(guān)系查找的速度,同時(shí)又兼顧到用戶關(guān)心的重要的關(guān)系,為本發(fā)明的核心。該方法步驟如下,其中對(duì)應(yīng)的變量和步驟2中查找兩個(gè)人之間的最短路徑的方法的變量的意義保持一致。增加了如下變量1)d(a),表示從節(jié)點(diǎn)s到節(jié)點(diǎn)R的路徑長(zhǎng)度;2)乙,,表示k,和to之間的最短路徑;1.首先初始化邊的權(quán)重,對(duì)于社會(huì)網(wǎng)絡(luò)中所有的邊ee&令這些邊的權(quán)重為『(ej,為方便起見記作i,其中w,為k和io之間的關(guān)系的權(quán)重,這些關(guān)系的權(quán)重列表見表1;2.其次對(duì)于除去終點(diǎn)^的所有的點(diǎn)fE^力,令dis(k)等于從y到力的最短路徑長(zhǎng)度;3.設(shè)厶&為K和K,之間的最短路徑,所以有乙化為dis(r》;4.將^入棧;5.定義如下兩個(gè)變量c/"j,crw。表示從k到7的路徑長(zhǎng)度,表示y是否已經(jīng)在路徑中出現(xiàn)過。并且對(duì)于任何圖中的節(jié)點(diǎn)k,都初始化^6^=0,crV=o。因?yàn)镵已經(jīng)在路徑中,所以CfVJ=2;6.如果(棧還不為空),那么進(jìn)行跳到7,如果(棧為空),那么跳到13;7.得到棧頂?shù)墓?jié)點(diǎn)s,將起點(diǎn)是s的邊的集合記為5YV,8.對(duì)于^YW中的任何邊&,進(jìn)行如下操作;9.假設(shè)邊e,是從s指向y的,那么如果"還未在路徑中,并且滿足從r,到s的路徑長(zhǎng)度+從s到u的路徑長(zhǎng)度+從"到k,.的長(zhǎng)度小于"乙.。,則跳到10,否則跳到12;10.如果"-po.,那么一條路徑己經(jīng)找到,對(duì)該路徑進(jìn)行評(píng)分,加到返回結(jié)果集中;11.如果"并不等于io,那么將y加入到棧頂,并且標(biāo)記u為在路徑中的節(jié)點(diǎn),c^=cr^W,并且更新y到K,.的值,Wa^t/^XeJ12.說明該條邊已經(jīng)被淘汰,將s是否在路徑中的值減l,cr^=cr^-L'13.得到所有的關(guān)系結(jié)果。算法的一個(gè)例于如附圖4所示,輸入為^和po,參數(shù)為-=丄2,就是找到所有關(guān)系長(zhǎng)度小于1.2*7=8.4的k和io之間的關(guān)系。在這個(gè)算法中,用隊(duì)列變量^來存儲(chǔ)所有得到的路徑。1)算法初始化得到所有邊的權(quán)重『(V"S」力『(^,0^=3,0^=《『(V力力5『&P^二7'(f(^t^:5Kjy>=《r"e/>=《『fe初始化dis(v):力's(VJ二7,g^s^y)二乙力'sfW-5g^s廣^-《力's(VJ^2。,力's^^二iV^/s(TJ二。,令L由=dis(Vi)=7,建立一個(gè)棧,并且將(Vi,NULL)插入棧,對(duì)于圖中所有的節(jié)點(diǎn),初始化d(v)和c(v),令d(Vi)=d(a)=d(b)=d(c)=d(d)=d(e)=d(f)=d(v》=0,c(Vi)=c(a)=c(b)=c(c)=c(d)=c(e)=d(f)=c(Vj)=0令c(Vi)=l;2)因?yàn)闂2粸榭?,所以彈出棧頂元素,?k,NULL),得到k作為起始節(jié)點(diǎn)的所有邊的集合A6^〃6^a人&,從c人d人對(duì)于每個(gè)f"J中的邊,進(jìn)行循環(huán)處理;3)處理(v,,a),因?yàn)閏(a):O,而且d(Vi)+『(6^,a力十dis(a)=0+1+0=1〈U.4,而且又因?yàn)閍不是vj;所以將(a,(Vi,a))加入棧,并且c(a)=c(a)+1,d(a)=d(Vi)+『(f^力a)=1;4)返回到算法2中的步驟6,因?yàn)闂2粸榭?,所以彈出棧頂元素,?a,(Vi,a)),得到a作為起始節(jié)點(diǎn)的所有邊的集合f^)二/Ys,W人對(duì)于A(V中的邊,進(jìn)行循環(huán)處理;5)處理(a,Vj),因?yàn)閏(Vj)^,而且d(a)+w((a,Vj))+dis(Vj)=l+7+0=8<8.4,而且因?yàn)镵;就是該邊的終點(diǎn),所以將棧中在(Vi,,a)之前的所有邊得到,作為一條路徑,就是(Vi,a)(a,Vj),將該條路徑存儲(chǔ)到A中,并且記錄該條路徑的長(zhǎng)度;并且彈出(a,(Vi,a)),并且c(a):c(a)-1;6)處理(v;,b),因?yàn)閏(b):0,而且3")+『(&,W)+dis(6)=0+2+0=2<仏.。=8.4,而且又因?yàn)閎不是Vj;所以將(b,(Vi,b))加入棧,并且c(b)=c(b)+l,d(b)=d(Vi)+『(""W)=2;7)返回到算法2中的步驟6,因?yàn)闂2粸榭?,所以彈出棧頂元素,?b,(Vl,b)),得到b作為起始節(jié)點(diǎn)的所有邊的集合ff^^;YAW人對(duì)于ff^中的邊,進(jìn)行循環(huán)處理;8)處理(b,Vj),因?yàn)閏(Vj):0'而且d(b)+w((b,Vj))+dis(Vj)二2+5十(KK8.4,而且因?yàn)镵,就是該邊的終點(diǎn),所以將棧中在(v,.,b)之前的所有邊得到,作為一條路徑,就是(Vi,b)(b,Vj),將該條路徑存儲(chǔ)到A中,并且記錄該條路徑的長(zhǎng)度;并且彈出(b,(Vl,b)),并且c(b卜c(b)-l;9)處理(v,,c),因?yàn)閏(c):0,而且d(Vl)+『((Kc力+dis(c)=0+3+0=3<"乙化=8.4,而且又因?yàn)镃不是V"所以將(C,(Vi,C))加入棧,并且C(C)=C(C)+l,d(C)=d(V》+>K(V力0>)=3;10)返回到算法2中的步驟6,因?yàn)闂2粸榭?,所以彈出棧頂元素,?c,(Vi,c)),得到c作為起始節(jié)點(diǎn)的所有邊的集合i^a;^Yc,^人對(duì)于/:Yd中的邊,進(jìn)行循環(huán)處理;11)處理(c,Vj),因?yàn)閏(Vj)=0,而且d(c)+w((c,Vj))+dis(Vj)=3+6+0=9>8.4,因此彈出(c,(Vi,c)),并且c(c):c(c)-l;12)處理(v,.,d),因?yàn)閏(d)-0,而且d(、)十(K&《)十dis(o)=0+2+0=2〈仏力=8.4,而且又因?yàn)閐不是Vj;所以將(d,(Vi,d))加入棧,并且"(1)="3)+1,(1(00^(^)+10)返回到算法2中的步驟6,因?yàn)闂2粸榭?,所以彈出棧頂元素,?d,(Vi,d)),得到d作為起始節(jié)點(diǎn)的所有邊的集合f^^/"對(duì)于Z^^中的邊,進(jìn)行循環(huán)處理;11)處理(d,e),因?yàn)閏(e)二O,而且d(e)+w((d,e))+dis(e)=2+8+0=10>8.4,因此彈出(d,(Vi,d)),并且c(d)^(d)-1;12)棧為空,退出循環(huán);13)輸出A,A包含了兩條路徑(Vi,b)(b,v》,(Vi,a)(a,Vj)步驟4:根據(jù)不同條件設(shè)置進(jìn)行路徑輸出;A屮包含了本方法返回的路徑,其中包含如下信息1.路徑的長(zhǎng)度,按照邊的權(quán)重計(jì)算得出,在算法2中的14行計(jì)算得到該值;2.每條路徑的邊的個(gè)數(shù),因?yàn)榉祷氐穆窂浇M織成邊的形式,所以能夠得到每條路徑的邊的個(gè)數(shù)。在排序的時(shí)候,本發(fā)明允許用戶利用這兩個(gè)參數(shù)得到相應(yīng)的排序結(jié)果,缺省情況下,本發(fā)明所返回的路徑按照路徑長(zhǎng)度排序。系統(tǒng)的硬件結(jié)構(gòu)圖見圖5,基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)的4個(gè)子系統(tǒng)分別實(shí)現(xiàn)了方法的4個(gè)步驟,而這4個(gè)子系統(tǒng)用4個(gè)裝置實(shí)現(xiàn)。說明如下其中裝置4社會(huì)網(wǎng)絡(luò)生成服務(wù)器負(fù)責(zé)生成社會(huì)網(wǎng)絡(luò)結(jié)構(gòu)圖,并且將社會(huì)網(wǎng)絡(luò)結(jié)構(gòu)圖存儲(chǔ)在裝置3數(shù)據(jù)庫服務(wù)器上。裝置4負(fù)責(zé)步驟1的工作,生成了表l,表2,表3和表4,然后通過網(wǎng)絡(luò)將這些表存儲(chǔ)在裝置3中;裝置3是系統(tǒng)的數(shù)據(jù)服務(wù)器,接受裝置4傳過來的表1-4,同時(shí)利用步驟2的方法,讀取表1-4的數(shù)據(jù)生成表5,于是裝置3上就有了所有系統(tǒng)的數(shù)據(jù),包括表1-表5,給裝置2提供服務(wù);裝置2社會(huì)網(wǎng)絡(luò)計(jì)算服務(wù)器接受Web服務(wù)器傳過來的査詢兩個(gè)人的社會(huì)關(guān)系的請(qǐng)求,通過步驟3的方法讀取裝置3數(shù)據(jù)庫服務(wù)器的信息并且計(jì)算出兩個(gè)人之間的社會(huì)關(guān)系然后返回給裝置4;裝置4是Web服務(wù)器。裝置4提供了界面,接受用戶的査詢請(qǐng)求并且將得到的結(jié)果顯示給用戶。用戶通過瀏覽器來訪問Web服務(wù)器,輸入査詢請(qǐng)求并且得到結(jié)果。圖l,基于路徑評(píng)分個(gè)人關(guān)系發(fā)現(xiàn)系統(tǒng)的的步驟框圖;圖2,基于路徑評(píng)分個(gè)人關(guān)系發(fā)現(xiàn)系統(tǒng)的一個(gè)社會(huì)關(guān)系網(wǎng)絡(luò)的例子;圖3,基于路徑評(píng)分個(gè)人關(guān)系發(fā)現(xiàn)系統(tǒng)的最短路徑算法的一個(gè)例子;圖4,基于路徑評(píng)分個(gè)人關(guān)系發(fā)現(xiàn)系統(tǒng)的社會(huì)關(guān)系發(fā)現(xiàn)算法的一個(gè)例子;圖5,基于路徑評(píng)分個(gè)人關(guān)系發(fā)現(xiàn)系統(tǒng)的硬件結(jié)構(gòu)圖。具體實(shí)施步驟利用本發(fā)明的步驟1—4,創(chuàng)建了一個(gè)研究者的社會(huì)網(wǎng)絡(luò),并且使用該社會(huì)網(wǎng)絡(luò)中査找研究者之間的關(guān)系的任務(wù)來驗(yàn)證本文的發(fā)明。(1)研究者社會(huì)網(wǎng)絡(luò)的構(gòu)建研究者的社會(huì)網(wǎng)絡(luò)的構(gòu)建主要使用了如下步驟首先基于發(fā)表文章,通過對(duì)特定的學(xué)術(shù)論文網(wǎng)站(http:〃www.informatik.uni-trier.de廠ley/db/)的數(shù)據(jù)分析,首先得到論文列表,接著得到每一篇論文的作者,對(duì)于每一篇論文的作者,做如下步驟如果該作者不存在節(jié)點(diǎn)表中,則將該作者添加到節(jié)點(diǎn)表中;接著,對(duì)于該論文的每?jī)蓚€(gè)作者,在節(jié)點(diǎn)關(guān)系表屮插入"同文章作者"關(guān)系。經(jīng)過這種構(gòu)建方法,收集了448,551個(gè)在計(jì)算機(jī)科學(xué)的研究者,他們之間的"同文章作者"數(shù)目大到了2,413,208個(gè)。接著,采用人工的方式,利用這些計(jì)算機(jī)科學(xué)研究者中具有個(gè)人主頁的研究者,進(jìn)行"被…所指導(dǎo)","在同一個(gè)項(xiàng)目中工作"以及"是…的朋友"關(guān)系的建立。其中"被…所指導(dǎo)"和"在同一個(gè)項(xiàng)目中工作"可以通過閱讀該研究者的網(wǎng)頁內(nèi)容所得到,一般來說,研究者會(huì)在個(gè)人主頁上說明自己的導(dǎo)師以及自己從事過的項(xiàng)目。相對(duì)而言,"是…的朋友"很多情況下并不能直接得到,我們采取利用網(wǎng)頁鏈接的方法得到,比如研究者A的主頁上放了研究者B的主頁的鏈接,那么我們認(rèn)為研究者A和研究者B直接存在朋友的關(guān)系。經(jīng)過人工構(gòu)建,這些研究者之中"被…所指導(dǎo)"的關(guān)系達(dá)到10,300個(gè),"在同一個(gè)項(xiàng)目中工作"的關(guān)系達(dá)到35,020個(gè),"是…的朋友"關(guān)系達(dá)到14,700個(gè)。在上述步驟完成后,社會(huì)網(wǎng)絡(luò)建立完畢,再通過算法1來計(jì)算這個(gè)社會(huì)網(wǎng)絡(luò)中任意兩個(gè)人之間的最短路徑,于是可以進(jìn)行算法2的驗(yàn)證了。(2)測(cè)試集的建立在上述的社會(huì)網(wǎng)絡(luò)上,我們創(chuàng)建了9個(gè)測(cè)試集,每個(gè)測(cè)試集分別包含369—1000個(gè)關(guān)系査詢。在測(cè)試集生成中,我們首先隨機(jī)選擇了1000對(duì)人(一對(duì)人(A,B)表示從A到B的關(guān)系査詢)作為第一個(gè)基礎(chǔ)測(cè)試集,對(duì)于余下的8個(gè)測(cè)試集,我們每次都從這1000對(duì)人里面選擇不同領(lǐng)域的兩個(gè)人。我們選擇了計(jì)算機(jī)中的本體映射、語義Web、數(shù)據(jù)挖掘、信息抽取、Boosting學(xué)習(xí)、規(guī)劃問題以及機(jī)器學(xué)習(xí)的研究者。構(gòu)建出的測(cè)試集表6所示表6,<table>tableseeoriginaldocumentpage14</column></row><table>其中SW代表語義網(wǎng)絡(luò),IE代表信息抽取,DM代表數(shù)據(jù)挖掘,BS代表Boosting學(xué)習(xí),PL代表規(guī)劃問題,亂代表機(jī)器學(xué)習(xí),OA代表本體映射。測(cè)試集中的"Random"表示隨機(jī)選取兩個(gè)人,共有1000對(duì)人;"SW—SW"表示兩個(gè)人都是語義Web領(lǐng)域的研究者,"IE—IE"表示兩個(gè)人都是信息抽取領(lǐng)域的研究者;"DM—DM"表示兩個(gè)人都是數(shù)據(jù)挖掘領(lǐng)域的研究者;"BS-PL"表示兩個(gè)人中的一個(gè)是Boosting學(xué)習(xí)領(lǐng)14域的研究者,另外一個(gè)人是規(guī)劃問題領(lǐng)域的研究者;"DM-SW"表示其中一個(gè)人是數(shù)據(jù)挖掘領(lǐng)域的研究者,另外一個(gè)人是語義Web的研究者;"ML-IE"表示其中一個(gè)人是機(jī)器學(xué)習(xí)領(lǐng)域的研究者;另外一個(gè)人是信息抽取領(lǐng)域的研究者;"PL-DM"表示其中一個(gè)人是規(guī)劃問題領(lǐng)域的研究者,另外一個(gè)人是數(shù)據(jù)挖掘領(lǐng)域的研究者;"SW-OA"表示其中一個(gè)人是語義Web領(lǐng)域的研究者,另外一個(gè)人是本體映射領(lǐng)域的研究者。這種訓(xùn)練集的設(shè)計(jì)可以充分的考慮到不同研究者之間社會(huì)關(guān)系距離的遠(yuǎn)近,因?yàn)橥粋€(gè)研究領(lǐng)域的研究者之間會(huì)通過比較少的節(jié)點(diǎn)產(chǎn)生關(guān)系,而不同領(lǐng)域的研究者之間會(huì)通過比較多的節(jié)點(diǎn)產(chǎn)生關(guān)系,所以測(cè)試集既考慮了通過少的節(jié)點(diǎn)產(chǎn)生關(guān)系的兩個(gè)研究者,也考慮了通過多的節(jié)點(diǎn)產(chǎn)生關(guān)系的研究者,在這樣的測(cè)試集下面取得的結(jié)果很有說服力。測(cè)試集里面的每個(gè)測(cè)試單元是兩個(gè)研究者,在同以往方法比較的時(shí)候,釆用了在所構(gòu)建的社會(huì)網(wǎng)絡(luò)中査找測(cè)試集上的每個(gè)測(cè)試單元中的兩個(gè)研究者的關(guān)系所需要的時(shí)間平均值。本發(fā)明中所述的方法與常用的圖遍歷法進(jìn)行比較,圖遍歷算法被廣泛的應(yīng)用于基于圖節(jié)點(diǎn)關(guān)系的查找之中,實(shí)驗(yàn)結(jié)果如表7所示表7,本文發(fā)明和遍歷法的實(shí)驗(yàn)結(jié)果比較<table>tableseeoriginaldocumentpage15</column></row><table>從實(shí)驗(yàn)結(jié)果可以看出,利用本發(fā)明所提出的方法能夠提高在社會(huì)網(wǎng)絡(luò)中查找個(gè)人關(guān)系的時(shí)候的速度。本發(fā)明所提出的個(gè)人關(guān)系發(fā)現(xiàn)的快速性質(zhì)體現(xiàn)在以下幾點(diǎn)(1)兩個(gè)人之間的最短路徑預(yù)先計(jì)算出來并且存儲(chǔ)完成,作為查找其他路徑的基礎(chǔ),在査找其他路徑的時(shí)候最短路徑不用重復(fù)計(jì)算;(2)在查找其他路徑的時(shí)候,通過對(duì)于長(zhǎng)度大于某個(gè)閾值的路徑直接進(jìn)行忽略,大大減少了需要查找的路徑的數(shù)目。綜上所述,利用本發(fā)明,能夠有效的提高在社會(huì)網(wǎng)絡(luò)中進(jìn)行個(gè)人關(guān)系査找的效率,本發(fā)明應(yīng)用在網(wǎng)站http:〃ww.arnetminer.com上,提高了用戶在搜索研究者之間關(guān)系的效率,使得網(wǎng)站訪問量劇增,己經(jīng)從未運(yùn)行該發(fā)明所提供的系統(tǒng)之前的2,000次/天提升到20,000次/天。權(quán)利要求1、在大規(guī)模社會(huì)網(wǎng)絡(luò)中基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)方法,其特征在于依次含有以下步驟步驟(1),初始化,在社會(huì)關(guān)系網(wǎng)絡(luò)生成服務(wù)器中,構(gòu)建社會(huì)網(wǎng)絡(luò)圖,其步驟如下設(shè)定社會(huì)網(wǎng)絡(luò)圖G=(V,E),其中,G為有向圖,V為節(jié)點(diǎn)的集合,E為邊的集合,任何一個(gè)節(jié)點(diǎn)v∈V,代表社會(huì)網(wǎng)絡(luò)中的一個(gè)人,erij∈E代表有向圖G中的一條有向邊,表示社會(huì)網(wǎng)絡(luò)中的一個(gè)人vi和另一個(gè)人vj之間存在的一種關(guān)系,下標(biāo)ij表示這種關(guān)系的起始節(jié)點(diǎn)是vi,結(jié)束節(jié)點(diǎn)是vj,關(guān)系的類型是r;有向圖G中的任何兩個(gè)節(jié)點(diǎn)不可能表示同一個(gè)人;定義關(guān)系集合{eri1,er12,…,erlj},表示兩個(gè)人vi和vj之間從vi開始尋找時(shí)的關(guān)系;其中,erm(m+1)∈E,表示圖G中的一條邊,關(guān)系的起點(diǎn)是vi,終點(diǎn)是vj;路徑長(zhǎng)度d為d=∑αk(vi,vj),k=1,2,…,n,n為vi和vj兩個(gè)節(jié)點(diǎn)之間的邊的總數(shù),αk(vi,vj)為其中第k條邊的權(quán)重,同向路徑長(zhǎng)度d為從起點(diǎn)vi到終點(diǎn)vj的這n條路徑上所有邊的權(quán)重的和;路徑長(zhǎng)度d的評(píng)分當(dāng)路徑中只有一條邊時(shí),路徑評(píng)分用這一條邊的權(quán)重表示,權(quán)重低,路徑評(píng)分就低,表示兩個(gè)人之間的關(guān)系親密度高;否則,反之;當(dāng)路徑中存在n條邊,即n種關(guān)系時(shí),用所有n條邊的權(quán)重之和表示這兩個(gè)人之間的路徑的綜合評(píng)分;構(gòu)建,以下要存儲(chǔ)的數(shù)據(jù)項(xiàng)的集合,用一個(gè)表來表示關(guān)系——權(quán)重表,含有關(guān)系、關(guān)系所表達(dá)的意義以及該關(guān)系的權(quán)重,共三類數(shù)據(jù)項(xiàng);其中,權(quán)重是設(shè)定值,關(guān)系類型——關(guān)系權(quán)重表,含有關(guān)系標(biāo)識(shí)、關(guān)系名稱、關(guān)系說明以及關(guān)系的權(quán)重,共四類數(shù)據(jù)項(xiàng);有向圖G中的節(jié)點(diǎn)列表,含有;節(jié)點(diǎn)標(biāo)識(shí)、節(jié)點(diǎn)名字和節(jié)點(diǎn)說明,共三類數(shù)據(jù)項(xiàng);社會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)關(guān)系表,含有關(guān)系類型、源節(jié)點(diǎn)即起點(diǎn)、目標(biāo)節(jié)點(diǎn)即終點(diǎn),三類數(shù)據(jù)項(xiàng);然后,把最終構(gòu)建的社會(huì)網(wǎng)絡(luò)圖G存入數(shù)據(jù)庫服務(wù)器;步驟(2),根據(jù)從數(shù)據(jù)庫服務(wù)器中取出的由步驟(1)構(gòu)建的社會(huì)網(wǎng)絡(luò)圖G,社會(huì)關(guān)系網(wǎng)絡(luò)計(jì)算服務(wù)器按以下步驟計(jì)算圖G中任意兩個(gè)人vi和vj之間最短路徑的評(píng)分,其中,vi為起點(diǎn),為終點(diǎn)vj;步驟(2.1),初始化設(shè)定v為除去終點(diǎn)vj之外,圖G中的任一個(gè)節(jié)點(diǎn),v∈V/vj,dis(v)為圖G中節(jié)點(diǎn)v到終點(diǎn)vj的最短路徑的評(píng)分,而dis(vj)為0,path(v),其值表示一條路徑到達(dá)節(jié)點(diǎn)v后的下一個(gè)節(jié)點(diǎn),c(v)表示節(jié)點(diǎn)v是否被遍歷過,未遍歷過,c(v)=0,否則,c(v)=1,(u,v)表示從節(jié)點(diǎn)u到節(jié)點(diǎn)v之間這條有向邊的開始節(jié)點(diǎn)u和結(jié)束節(jié)點(diǎn)v,w(c)表示邊c的權(quán)重;步驟(2.2),設(shè)定dis(v)為雙精度實(shí)數(shù)的最大值(2-2-52)·21023;c(v)=0,path(v)=0;令dis(t)=0;步驟(2.3),創(chuàng)建一個(gè)最小堆,初始值為零,把節(jié)點(diǎn)插入vj該最小堆,c(vj)=1;步驟(2.4),最小堆不為空,取出節(jié)點(diǎn)vj,得到所有指向vj的邊的集合E(vj);步驟(2.5),對(duì)于步驟(2.4)中集合E(vj)中的每條邊evvj依次按以下步驟處理步驟(2.5.1),計(jì)算w(evvj)+dis(vj)的值,其中,w(evvj)是指向節(jié)點(diǎn)vj的一條邊的權(quán)重;步驟(2.5.2),比較w(evvj)+dis(vj)與dis(v)的大小,dis(v)是節(jié)點(diǎn)v到節(jié)點(diǎn)vj的最短路徑的評(píng)分,初始值dis(v)=(2-2-52)·21023,取其中的小者為dis(v)的值,path(v)=vj,把v放在最小堆內(nèi);否則,不動(dòng)作;步驟(2.5.3),依此類推,把符合步驟(2.5.2)中所述的節(jié)點(diǎn)v都放在最小堆內(nèi);步驟(2.6),再依次取出所述最小堆內(nèi)的各節(jié)點(diǎn)v,此時(shí),c(v)=1,得到所有指向各個(gè)節(jié)點(diǎn)v的邊的集合E(v);步驟(2.7),對(duì)于各個(gè)節(jié)點(diǎn)v各自所對(duì)應(yīng)的邊的集合E(v),依次分別按步驟(2.5)所述的方法處理,此時(shí),各個(gè)節(jié)點(diǎn)v為終節(jié)點(diǎn),各個(gè)邊的起點(diǎn)到相應(yīng)節(jié)點(diǎn)v的最短路徑的評(píng)分為dis(v),步驟(2.8),按步驟(2.7)所述的方法,一直追蹤到源節(jié)點(diǎn)vj為止;步驟(2.9),根據(jù)步驟(2.5)-(2.8),得到社會(huì)網(wǎng)絡(luò)圖G中每相鄰個(gè)人之間的最短路徑;步驟(3),根據(jù)路徑評(píng)分,對(duì)于任意制定的兩個(gè)人快速發(fā)現(xiàn)他們之間的社會(huì)關(guān)系步驟(3.1),設(shè)定所述任意兩個(gè)人之間的路徑長(zhǎng)度小于最短路徑的倍數(shù)β,β=1,2;又設(shè)源節(jié)點(diǎn)為vj,目標(biāo)節(jié)點(diǎn)為vj;步驟(3.2),計(jì)算從vi到vj的各種可能的路徑的長(zhǎng)度,找到其中的最小路徑長(zhǎng)度,刪去所有長(zhǎng)度大于最短路徑1.2倍的路徑,再按長(zhǎng)度大小順序排隊(duì)后,通過WEB服務(wù)器向用戶輸出。全文摘要在大規(guī)模社會(huì)網(wǎng)絡(luò)中基于路徑評(píng)分的個(gè)人關(guān)系發(fā)現(xiàn)方法屬于互聯(lián)網(wǎng)中社會(huì)網(wǎng)絡(luò)搜索
技術(shù)領(lǐng)域
,其特征在于基于通用的社會(huì)網(wǎng)絡(luò),首先定義基于權(quán)重的路徑評(píng)分,再查找出每?jī)蓚€(gè)人之間的最短路徑,然后開始查找指定的兩個(gè)人之間的路徑長(zhǎng)度不大于最短路徑的基于倍數(shù)的所有路徑,最后按照路徑評(píng)分的順序把所有路徑返回給用戶。本發(fā)明能應(yīng)用于節(jié)點(diǎn)數(shù)超過百萬的社會(huì)關(guān)系網(wǎng)絡(luò)中,進(jìn)行人與人之間的關(guān)系快速查找或使用于研究者的關(guān)系發(fā)現(xiàn)。文檔編號(hào)G06F17/30GK101149756SQ20071017706公開日2008年3月26日申請(qǐng)日期2007年11月9日優(yōu)先權(quán)日2007年11月9日發(fā)明者杰唐,李涓子申請(qǐng)人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
嘉荫县| 龙州县| 苏尼特左旗| 平利县| 鹤岗市| 崇文区| 前郭尔| 大石桥市| 梨树县| 温泉县| 绥宁县| 尖扎县| 盖州市| 英山县| 靖西县| 沙坪坝区| 拜城县| 北安市| 鸡东县| 四平市| 阜康市| 溆浦县| 濮阳市| 德清县| 三河市| 武清区| 陇川县| 广汉市| 广水市| 巫山县| 岳西县| 祁连县| 封丘县| 昌平区| 蛟河市| 西藏| 永安市| 兴山县| 黎平县| 宜章县| 东乌|