一種基于單步添加團(tuán)的社交網(wǎng)絡(luò)的朋友自動分組方法
【專利摘要】本發(fā)明公開了一種基于單步添加團(tuán)的社交網(wǎng)絡(luò)朋友自動分組方法,該方法將社交網(wǎng)絡(luò)描述為一個(gè)二元組,利用基于單步添加團(tuán)的重疊社團(tuán)檢測算法來解決社交網(wǎng)絡(luò)朋友自動分組問題。本發(fā)明能快速實(shí)現(xiàn)社交網(wǎng)絡(luò)中朋友圈自動分組,提高分組效率和準(zhǔn)確性,從而可以通過準(zhǔn)確的朋友分組,為用戶推薦更可靠地朋友,減少用戶在搜索志同道合朋友時(shí)產(chǎn)生的不必要麻煩。
【專利說明】
一種基于單步添加團(tuán)的社交網(wǎng)絡(luò)的朋友自動分組方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及社交網(wǎng)絡(luò)中朋友自動分組技術(shù)領(lǐng)域,具體來說就是提出一種基于單步 添加團(tuán)的社交網(wǎng)絡(luò)的朋友自動分組方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)時(shí)代的到來,社交網(wǎng)絡(luò)猶如雨后春筍得到了迅速地發(fā)展,吸引了國內(nèi) 外學(xué)者的廣泛關(guān)注。社交網(wǎng)絡(luò)的出現(xiàn)改變了人們傳統(tǒng)的思考、交流、工作及生活方式,越來 越多用戶選擇加入在線社交網(wǎng)絡(luò)進(jìn)行信息的交流,社交網(wǎng)絡(luò)的用戶規(guī)模呈爆炸式增長,加 劇了網(wǎng)絡(luò)中信息增長的速度。網(wǎng)絡(luò)信息的加劇導(dǎo)致用戶無法從海量的數(shù)據(jù)中選擇自己所需 的信息,也就是用戶面臨信息過載問題。如果用戶對自己所在的在線社交網(wǎng)絡(luò)進(jìn)行手動的 朋友分組,這樣不僅費(fèi)時(shí)還費(fèi)力,導(dǎo)致很多用戶沒有對他們的朋友進(jìn)行分類,因此,大多數(shù) 社交網(wǎng)站都會根據(jù)用戶的某些公共屬性自動為用戶分類好友。
[0003] 目前社交網(wǎng)絡(luò)朋友推薦中的自動分組問題包含兩類研究方法:
[0004] -類研究方法是基于社交網(wǎng)絡(luò)全局特征的研究方法,這類方法需要探測社交網(wǎng)絡(luò) 中所有的鏈路結(jié)構(gòu),獲知網(wǎng)絡(luò)的全局信息。但是這類方法計(jì)算成本較高,在復(fù)雜的社交網(wǎng)絡(luò) 中可能會影響推薦算法的高效性。
[0005] -類研究方法是基于社交網(wǎng)絡(luò)局部結(jié)構(gòu)特性,該類方法以網(wǎng)絡(luò)中節(jié)點(diǎn)的結(jié)構(gòu)為研 究對象實(shí)現(xiàn)朋友推薦中的朋友分組問題。這類方法計(jì)算復(fù)雜度較低,但是通常由于所給信 息不充分導(dǎo)致社交網(wǎng)絡(luò)中朋友分組不準(zhǔn)確。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明針對現(xiàn)有技術(shù)中存在的不足之處,提供一種基于單步添加團(tuán)的社交網(wǎng)絡(luò)的 朋友自動分組方法,以期能快速實(shí)現(xiàn)社交網(wǎng)絡(luò)中朋友圈自動分組,提高分組效率和準(zhǔn)確性, 從而可以通過準(zhǔn)確的朋友分組,為用戶推薦更可靠地朋友,減少用戶在搜索志同道合朋友 時(shí)產(chǎn)生的不必要麻煩。
[0007] 本發(fā)明為解決技術(shù)問題采用如下技術(shù)方案:
[0008] 本發(fā)明一種基于單步添加團(tuán)的社交網(wǎng)絡(luò)的朋友自動分組方法的特點(diǎn)是按如下步 驟進(jìn)行:
[0009] 步驟一、定義所述社交網(wǎng)絡(luò)表征為二元組{V,E},V= {vi,V2r",Vi,…,vn}表示所 述社交網(wǎng)絡(luò)中所有用戶的集合,Vl表示第i個(gè)用戶;n為用戶的總數(shù);E={ eij|i = l,2,…,n;j =1,2,…,n}表示任意兩個(gè)用戶之間的聯(lián)系的集合;ei請示第i個(gè)用戶Vl與第j個(gè)用戶^之 間的聯(lián)系;若e^ = l表示第i個(gè)用戶Vl與第j個(gè)用戶^之間有邊相連,且第i個(gè)用戶Vl與第j個(gè) 用戶~互為稱為鄰居用戶;若叫=〇,表示第i個(gè)用戶 Vl與第j個(gè)用戶~之間無邊相連,即不存 在聯(lián)系;
[0010] 步驟二、采用基于單步添加團(tuán)的重疊網(wǎng)絡(luò)社團(tuán)檢測算法將所述社交網(wǎng)絡(luò)G劃分成k 個(gè)分組集合,記為C={Ci,C2,~,Cx,-_,Cx} ;Ca表示第X個(gè)分組;x=l,2,-_,X;從而實(shí)現(xiàn)社交 網(wǎng)絡(luò)的朋友自動分組。
[0011] 本發(fā)明所述的基于單步添加團(tuán)的社交網(wǎng)絡(luò)的朋友自動分組方法的特點(diǎn)也在于,
[0012] 所述步驟二中的基于單步添加團(tuán)的重疊網(wǎng)絡(luò)社團(tuán)檢測算法是按如下步驟進(jìn)行:
[0013] 步驟0、初始化x=l;以所述社交網(wǎng)絡(luò)的所有用戶的集合V作為第x個(gè)預(yù)備組的候選 用戶集合,記為V(x);定義迭代變量t;定義迭代變量r;
[0014] 步驟1、初始化t = l;
[0015] 步驟2、從所述第x個(gè)預(yù)備組的候選用戶V(x)中隨機(jī)選取第t次迭代的用戶v(x)(t);
[0016] 步驟3、利用式(1)計(jì)算第t次迭代的用戶v(x)(t)的聚類系數(shù)G(x)(t):
[0018] 式(1)中,表示第x個(gè)預(yù)備組中第t次迭代的用戶v(x)(t)的鄰居用戶的數(shù)量, %WW表示第t次迭代的用戶v (x)(t)的所有個(gè)鄰居用戶間的有邊相連的邊數(shù);
[0019] 步驟4、利用式(1)計(jì)算第x個(gè)預(yù)備組中第t次迭代的用戶v(x)(t)的氣._個(gè)鄰居用戶 的聚類系數(shù),并分別與算第t次迭代的用戶v (x)(t)的聚類系數(shù)G(x)(t)比較,若能找到具有最大 聚類系數(shù)且最大聚類系數(shù)大于G (x)(t)的鄰居用戶,則將所找到的鄰居用戶作為第x個(gè)預(yù)備組 中第t+1次迭代的用戶v(x)(t+1);并執(zhí)行步驟5;否則,保留所述第t次迭代的用戶v (x)(t)作為第 x個(gè)預(yù)備組中的核心用戶;
[0020] 步驟5、將t+1賦值給t;并重復(fù)執(zhí)行步驟3;
[0021] 步驟6、初始化r = l;
[0022] 步驟7、找到第x個(gè)預(yù)備組中第t次迭代的核心用戶v(x)(t)所連接的一個(gè)k團(tuán);所述核 心用戶v (x)(t)所連接的k團(tuán)中的所有用戶均為鄰居用戶;以所述核心用戶v(x)(t)所連接的k團(tuán) 作為第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C (x)W;k>3;
[0023] 步驟8、根據(jù)式⑵計(jì)算第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C(x)(1^社團(tuán)適應(yīng)度值F(X)W:
[0025]式(2)中,a是可調(diào)節(jié)的參數(shù); <,丨#、分別表示第r次迭代初始社團(tuán)(^)(1:)的 內(nèi)部度數(shù)和外部度數(shù),內(nèi)部度數(shù)為第r次迭代的社團(tuán)C(x)w中所有用戶間有邊相連的 邊數(shù)的2倍;外部度數(shù)為第r次迭代的社團(tuán)C (x)w*所有用戶與外部用戶有邊相連的邊 數(shù);
[0026]步驟9、找到第r次迭代的社團(tuán)C(X)W中所有用戶的鄰居用戶并進(jìn)行并集處理,從而 構(gòu)成第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C(x)w的鄰居用戶;
[0027] 步驟10、判斷所述第x個(gè)預(yù)備組中第r次迭代的社團(tuán)(^)(1:)的鄰居用戶各自是否存 在自身所連接的一個(gè)k團(tuán);若存在,則將鄰居用戶各自的所連接的一個(gè)k團(tuán)分別加入到第r次 迭代的社團(tuán)C (X)W*計(jì)算相應(yīng)的社團(tuán)適應(yīng)度值;若不存在,則直接將相應(yīng)的鄰居用戶加入到 第r次迭代的社團(tuán)C(x)w*計(jì)算相應(yīng)的社團(tuán)適應(yīng)度值;
[0028] 步驟11、若能找到使得所述社團(tuán)適應(yīng)度值F(X)W增值最大的鄰居用戶或鄰居用戶 所連接的k團(tuán);則將增值最大的鄰居用戶或鄰居用戶所連接的k團(tuán)加入到第r次迭代的初始 社團(tuán)C(x)w*,并作為第r+1次迭代的社團(tuán)C(x)fr+1),執(zhí)行步驟12;否則,保所述第X個(gè)預(yù)備組中 第r次迭代的初始社團(tuán)C(x)w作為第x個(gè)分組;并執(zhí)行步驟13;
[0029]步驟12、將r+1賦值給r;并重復(fù)執(zhí)行步驟8;
[0030]步驟13、從所述第x個(gè)預(yù)備組的候選用戶V(x)中去除所述第x個(gè)分組,從而獲得第x+ 1個(gè)預(yù)備組的候選用戶V(x+1);
[0031] 步驟14、將x+1賦值給x;并返回步驟1執(zhí)行,從而得到X個(gè)分組,進(jìn)而實(shí)現(xiàn)社交網(wǎng)絡(luò) 的朋友自動分組。
[0032]與已有技術(shù)相比,本發(fā)明有益效果體現(xiàn)在:
[0033] 1、本發(fā)明根據(jù)局部社團(tuán)擴(kuò)充的思想,在對社交網(wǎng)絡(luò)進(jìn)行朋友自動分組時(shí)采用基于 單步添加團(tuán)的社團(tuán)擴(kuò)充方式,以完成社交網(wǎng)絡(luò)的自動分組。本發(fā)明在社團(tuán)擴(kuò)充過程只需要 獲取社交網(wǎng)絡(luò)中用戶的局部信息就可以完成用戶自動分組,無需獲知整個(gè)社交網(wǎng)絡(luò)的全局 信息和節(jié)點(diǎn)信息,這樣可以快速的檢測出社交網(wǎng)絡(luò)的各個(gè)朋友分組,獲得社交網(wǎng)絡(luò)中較為 準(zhǔn)確的朋友分組結(jié)果;解決了基于全局結(jié)構(gòu)特征方法高計(jì)算成本的問題,也解決了某些基 于局部結(jié)構(gòu)特征方法中網(wǎng)絡(luò)劃分不準(zhǔn)確的問題。
[0034] 2、在進(jìn)行朋友自動分組時(shí)首先要選擇初始朋友分組,本發(fā)明的初始朋友分組是通 過核心節(jié)點(diǎn)搜索得到的。核心節(jié)點(diǎn)作為一個(gè)分組或者圖中最特殊的節(jié)點(diǎn),是分組的中心節(jié) 點(diǎn)并對分組內(nèi)用戶的連通起著關(guān)鍵作用,這樣可以在一定程度上避免由初始分組選擇不準(zhǔn) 確帶來的隨機(jī)性,從而提高了社交網(wǎng)絡(luò)朋友自動分組的準(zhǔn)確性。
[0035] 3、目前存在的基于局部擴(kuò)充的方法在朋友分組過程中每次只加入一個(gè)用戶節(jié)點(diǎn), 沒有充分考慮用戶節(jié)點(diǎn)的局部信息會導(dǎo)致分組不準(zhǔn)確。本發(fā)明引用團(tuán)的概念:團(tuán)是一個(gè)完 全連通子圖,它們在分組劃分過程中極有可能同屬于一個(gè)分組,所以如果一個(gè)用戶節(jié)點(diǎn)屬 于某一個(gè)分組,那么該用戶節(jié)點(diǎn)所在的團(tuán)也更有可能成為這個(gè)分組的一部分。本發(fā)明在擴(kuò) 充時(shí)每次添加一個(gè)團(tuán),不僅考慮了被添加用戶點(diǎn)與已有分組的連接強(qiáng)度,同時(shí)較好考慮了 被添加用戶內(nèi)部的連接情況,更可以準(zhǔn)確的發(fā)現(xiàn)屬于同時(shí)多個(gè)分組的用戶。
【附圖說明】
[0036]圖1為本發(fā)明算法流程圖;
[0037] 圖2為本發(fā)明舉例的一個(gè)簡單網(wǎng)絡(luò)示意圖。
【具體實(shí)施方式】
[0038] 在實(shí)施例中,一種基于單步添加團(tuán)的社交網(wǎng)絡(luò)朋友自動分組方法將社交網(wǎng)絡(luò)中的 朋友自動分組問題轉(zhuǎn)化為復(fù)雜網(wǎng)絡(luò)社團(tuán)檢測問題,通過利用基于單步添加團(tuán)的復(fù)雜網(wǎng)絡(luò)社 團(tuán)檢測算法來解決社交網(wǎng)絡(luò)中朋友自動分組問題,從而得到社交網(wǎng)絡(luò)中的朋友分組;具體 地說是按如下步驟進(jìn)行:
[0039] 步驟一、定義所述社交網(wǎng)絡(luò)表征為二元組{V,E},V= {vi,V2,~,vi,…,vn}表示所 述社交網(wǎng)絡(luò)中所有用戶的集合,Vl表示第i個(gè)用戶;n為用戶的總數(shù);E={eij|i = l,2,…,n;j =1,2,…,n}表示任意兩個(gè)用戶之間的聯(lián)系的集合;ei謙示第i個(gè)用戶Vl與第j個(gè)用戶^之 間的聯(lián)系;若e^ = l表示第i個(gè)用戶Vl與第j個(gè)用戶^之間有邊相連,且第i個(gè)用戶Vl與第j個(gè) 用戶W互為稱為鄰居用戶;若叫=〇,表示第i個(gè)用戶 Vl與第j個(gè)用戶W之間無邊相連,即不存 在聯(lián)系;如圖2所示為一個(gè)包含11個(gè)用戶的簡單社交網(wǎng)絡(luò)結(jié)構(gòu)圖,其中每個(gè)節(jié)點(diǎn)代表社交網(wǎng) 絡(luò)中的用戶,每條邊代表用戶之間存在聯(lián)系;
[0040] 步驟二、采用基于單步添加團(tuán)的重疊網(wǎng)絡(luò)社團(tuán)檢測算法將所述社交網(wǎng)絡(luò)G劃分成k 個(gè)分組集合,記為C={Ci,C2,~,Cx,-_,Cx} ;Ca表示第X個(gè)分組;x=l,2,-_,X;從而實(shí)現(xiàn)社交 網(wǎng)絡(luò)的朋友自動分組。
[0041] 具體的說,如圖1所示,基于單步添加團(tuán)的重疊網(wǎng)絡(luò)社團(tuán)檢測算法是按如下步驟進(jìn) 行:
[0042] 步驟0、初始化x=l;以所述社交網(wǎng)絡(luò)的所有用戶的集合V作為第x個(gè)預(yù)備組的候選 用戶集合,記為V(x);定義迭代變量t;定義迭代變量r;
[0043] 步驟1、初始化t = l;
[0044] 步驟2、從所述第x個(gè)預(yù)備組的候選用戶V(x)中隨機(jī)選取第t次迭代的用戶v(x)(t);
[0045] 步驟3、利用式(1)計(jì)算第t次迭代的用戶v(x)(t)的聚類系數(shù)G(x)(t):
[0047] 式(1)中,表示第x個(gè)預(yù)備組中第t次迭代的用戶v(x)(t)的鄰居用戶的數(shù)量, 表示第t次迭代的用戶v (x) (t)的所有~心個(gè)鄰居用戶間的有邊相連的邊數(shù);
[0048] 步驟4、利用式(1)計(jì)算第x個(gè)預(yù)備組中第t次迭代的用戶v(x)(t)的^ ^個(gè)鄰居用戶 的聚類系數(shù),并分別與算第t次迭代的用戶v(x)(t)的聚類系數(shù)G(x)(t)比較,若能找到具有最大 聚類系數(shù)且最大聚類系數(shù)大于G (x)(t)的鄰居用戶,則將所找到的鄰居用戶作為第x個(gè)預(yù)備組 中第t+1次迭代的用戶v(x)(t+1);并執(zhí)行步驟5;否則,保留所述第t次迭代的用戶v (x)(t)作為第 x個(gè)預(yù)備組中的核心用戶;
[0049]步驟5、將t+1賦值給t;并重復(fù)執(zhí)行步驟3;
[0050] 步驟6、初始化r = l;
[0051]步驟7、找到第x個(gè)預(yù)備組中第t次迭代的核心用戶v(x)(t)所連接的一個(gè)k團(tuán);所述核 心用戶v(x)(t)所連接的k團(tuán)中的所有用戶均為鄰居用戶;以所述核心用戶v(x)(t)所連接的k團(tuán) 作為第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C (x)W;k>3;例如在圖2中,假設(shè)初始預(yù)備組由用戶節(jié) 點(diǎn){1,2,3,4,5}構(gòu)成,此時(shí),設(shè)置k = 3;
[0052]步驟8、根據(jù)式(2)計(jì)算第x個(gè)預(yù)備組中第r次迭代的社團(tuán)(^)(1:)的社團(tuán)適應(yīng)度值F(x Hr) |
[0054] 式(2)中,a是可調(diào)節(jié)的參數(shù);1分別表示第r次迭代初始社團(tuán)(^)(1^的 內(nèi)部度數(shù)和外部度數(shù),內(nèi)部度數(shù)為第r次迭代的社團(tuán)C (X)W中所有用戶間有邊相連的 邊數(shù)的2倍;外部度數(shù)尤為第r次迭代的社團(tuán)C(x)w*所有用戶與外部用戶有邊相連的邊 數(shù),根據(jù)公式(2)計(jì)算出第1個(gè)預(yù)備分組{1,2,3,4,5}的適應(yīng)度值為0.824;
[0055] 步驟9、找到第r次迭代的社團(tuán)C(X)W中所有用戶的鄰居用戶并進(jìn)行并集處理,從而 構(gòu)成第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C (x)w的鄰居用戶,這樣可知第1個(gè)預(yù)備分組{1,2,3, 4,5}的鄰居用戶為{6,7,8};
[0056]步驟10、判斷所述第x個(gè)預(yù)備組中第r次迭代的社團(tuán)(^)(1:)的鄰居用戶各自是否存 在自身所連接的一個(gè)k團(tuán);若存在,則將鄰居用戶各自的所連接的一個(gè)k團(tuán)分別加入到第r次 迭代的社團(tuán)C(x)w*計(jì)算相應(yīng)的社團(tuán)適應(yīng)度值;若不存在,則直接將相應(yīng)的鄰居用戶加入到 第r次迭代的社團(tuán)C (x)w*計(jì)算相應(yīng)的社團(tuán)適應(yīng)度值;則本實(shí)施例中,第1個(gè)預(yù)備分組{1,2, 3,4,5}的鄰居用戶{6,7,8}所連接的 k 團(tuán)分別為{(6,7,8),(6,7,8),(8,9,11)};
[0057]步驟11、若能找到使得所述社團(tuán)適應(yīng)度值F(X)W增值最大的鄰居用戶或鄰居用戶 所連接的k團(tuán);則將增值最大的鄰居用戶或鄰居用戶所連接的k團(tuán)加入到第r次迭代的初始 社團(tuán)中,并作為第r+1次迭代的社團(tuán)cWfrM,執(zhí)行步驟 12;否則,保所述第x個(gè)預(yù)備組中 第r次迭代的初始社團(tuán)C(x)w作為第x個(gè)分組;并執(zhí)行步驟13;本實(shí)施例中,通過計(jì)算可知6號 用戶所在的k團(tuán)加入第1個(gè)預(yù)備組{1,2,3,4,5}得到的分組{1,2,3,4,5,6,7,8}的適應(yīng)度值 為0.897,使得分組的適應(yīng)度值增加最大,因此選擇6號用戶連接的k團(tuán)加入到預(yù)備分組中得 到新的分組{1,2,3,4,5,6,7,8},如果再添加新的用戶或用戶所連接的1^團(tuán)不會使分組的適 應(yīng)度值增加,因此得到這個(gè)社交網(wǎng)絡(luò)的第1個(gè)分組為{1,2,3,4,5,6,7,8};
[0058]步驟12、將r+1賦值給r;并重復(fù)執(zhí)行步驟8;
[0059]步驟13、從所述第x個(gè)預(yù)備組的候選用戶V(x)中去除所述第x個(gè)分組,從而獲得第x+ 1個(gè)預(yù)備組的候選用戶V(x+1),此時(shí),圖2示例中候選用戶為{9,10,11,12};
[0060] 步驟14、將x+1賦值給x;并返回步驟1執(zhí)行,從而得到X個(gè)分組,進(jìn)而實(shí)現(xiàn)社交網(wǎng)絡(luò) 的朋友自動分組,在圖2展示的示例中,應(yīng)用本發(fā)明得到的朋友自動分組為{1,2,3,4,5,6, 7,8}和{9,10,11,12}。
【主權(quán)項(xiàng)】
1. 一種基于單步添加團(tuán)的社交網(wǎng)絡(luò)的朋友自動分組方法,其特征是按如下步驟進(jìn)行: 步驟一、定義所述社交網(wǎng)絡(luò)表征為二元組{ V,E},V= { VI,V2,…,Vi,…,Vn}表示所述社交 網(wǎng)絡(luò)中所有用戶的集合,Vl表示第i個(gè)用戶;11為用戶的總數(shù);E={eij|i = l,2,~,n;j = l, 2,…,n}表示任意兩個(gè)用戶之間的聯(lián)系的集合;eij表示第i個(gè)用戶Vl與第j個(gè)用戶^之間的 聯(lián)系;若e^ = l表示第i個(gè)用戶Vl與第j個(gè)用戶W之間有邊相連,且第i個(gè)用戶Vl與第j個(gè)用戶 互為稱為鄰居用戶;若明=0,表示第i個(gè)用戶 Vl與第j個(gè)用戶W之間無邊相連,即不存在聯(lián) 系; 步驟二、采用基于單步添加團(tuán)的重疊網(wǎng)絡(luò)社團(tuán)檢測算法將所述社交網(wǎng)絡(luò)G劃分成k個(gè)分 組集合,記為…,Cx,…,Cx};Ca表示第X個(gè)分組;x=l,2,…,X;從而實(shí)現(xiàn)社交網(wǎng)絡(luò) 的朋友自動分組。2. 根據(jù)權(quán)利要求1所述的基于單步添加團(tuán)的社交網(wǎng)絡(luò)的朋友自動分組方法,其特征在 于:所述步驟二中的基于單步添加團(tuán)的重疊網(wǎng)絡(luò)社團(tuán)檢測算法是按如下步驟進(jìn)行: 步驟〇、初始化x= 1;以所述社交網(wǎng)絡(luò)的所有用戶的集合V作為第x個(gè)預(yù)備組的候選用戶 集合,記為V(x);定義迭代變量t;定義迭代變量r; 步驟1、初始化t = l; 步驟2、從所述第x個(gè)預(yù)備組的候選用戶V(x)中隨機(jī)選取第t次迭代的用戶v(x)(t); 步驟3、利用式(1)計(jì)算第t次迭代的用戶v(x)(t)的聚類系數(shù)G(x)(t):式(1)中,氣_表示第x個(gè)預(yù)備組中第t次迭代的用戶v(x)(t)的鄰居用戶的數(shù)量,表 示第t次迭代的用戶v(x)(t)的所有個(gè)鄰居用戶間的有邊相連的邊數(shù); 步驟4、利用式(1)計(jì)算第x個(gè)預(yù)備組中第t次迭代的用戶v(x)(t)的個(gè)鄰居用戶的聚類 系數(shù),并分別與算第t次迭代的用戶v(x)(t)的聚類系數(shù)G(x)(t)比較,若能找到具有最大聚類系 數(shù)且最大聚類系數(shù)大于G (x)(t)的鄰居用戶,則將所找到的鄰居用戶作為第x個(gè)預(yù)備組中第t+ 1次迭代的用戶v(x)(t+1);并執(zhí)行步驟5;否則,保留所述第t次迭代的用戶v (x)(t)作為第x個(gè)預(yù) 備組中的核心用戶; 步驟5、將t+1賦值給t;并重復(fù)執(zhí)行步驟3; 步驟6、初始化r=l; 步驟7、找到第x個(gè)預(yù)備組中第t次迭代的核心用戶v(x)(t)所連接的一個(gè)k團(tuán);所述核心用 戶v(x)(t)所連接的k團(tuán)中的所有用戶均為鄰居用戶;以所述核心用戶v(x)(t)所連接的k團(tuán)作為 第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C (x)w;k>3; 步驟8、根據(jù)式(2)計(jì)算第x個(gè)預(yù)備組中第r次迭代的社團(tuán)社團(tuán)適應(yīng)度值F(x)w:式(2)中,a是可調(diào)節(jié)的參數(shù);分別表示第r次迭代初始社團(tuán)C(X)W的內(nèi)部度 數(shù)和外部度數(shù),內(nèi)部度數(shù)CKM為第r次迭代的社團(tuán)C(x)w中所有用戶間有邊相連的邊數(shù)的2 倍;外部度數(shù)為第r次迭代的社團(tuán)C (x)w中所有用戶與外部用戶有邊相連的邊數(shù); 步驟9、找到第r次迭代的社團(tuán)C(x)w中所有用戶的鄰居用戶并進(jìn)行并集處理,從而構(gòu)成 第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C(x)w的鄰居用戶; 步驟10、判斷所述第x個(gè)預(yù)備組中第r次迭代的社團(tuán)C(x)w的鄰居用戶各自是否存在自 身所連接的一個(gè)k團(tuán);若存在,則將鄰居用戶各自的所連接的一個(gè)k團(tuán)分別加入到第r次迭代 的社團(tuán)C(x)w*計(jì)算相應(yīng)的社團(tuán)適應(yīng)度值;若不存在,則直接將相應(yīng)的鄰居用戶加入到第r 次迭代的社團(tuán)C(x)w*計(jì)算相應(yīng)的社團(tuán)適應(yīng)度值; 步驟11、若能找到使得所述社團(tuán)適應(yīng)度值F(x)(1:4|值最大的鄰居用戶或鄰居用戶所連 接的k團(tuán);則將增值最大的鄰居用戶或鄰居用戶所連接的k團(tuán)加入到第r次迭代的初始社團(tuán)C (X)W中,并作為第r+1次迭代的社團(tuán)C(x)(rf),執(zhí)行步驟12;否則,保所述第x個(gè)預(yù)備組中第r次 迭代的初始社團(tuán)C (x)w作為第x個(gè)分組;并執(zhí)行步驟13; 步驟12、將r+1賦值給r;并重復(fù)執(zhí)行步驟8; 步驟13、從所述第x個(gè)預(yù)備組的候選用戶V(x)中去除所述第x個(gè)分組,從而獲得第x+1個(gè) 預(yù)備組的候選用戶V(x+1); 步驟14、將x+1賦值給x;并返回步驟1執(zhí)行,從而得到X個(gè)分組,進(jìn)而實(shí)現(xiàn)社交網(wǎng)絡(luò)的朋 友自動分組。
【文檔編號】G06F17/30GK106055568SQ201610338452
【公開日】2016年10月26日
【申請日】2016年5月18日
【發(fā)明人】張興義, 蘇延森, 鄭雯, 謝瑩
【申請人】安徽大學(xué)