一種基于Floyd-Warshall的互聯網社區檢測算法
【技術領域】
[0001] 本發明涉及互聯網社區檢測算法領域,提高了一種基于Floyd-Warshall的互聯 網社區檢測算法。
【背景技術】
[0002] 從互聯網社區概念的提出到現在的十多年中,各國的研宄者對互聯網社區檢測的 相關技術和研宄給予了很多關注,取得了很多實質性的進展。
[0003] 研宄者首先對互聯網的拓撲結構進行了更加深入的分析。與人們的設想不同,互 聯網和其他很多網絡的相互關聯并不完全是隨機的,并不能完全用隨機圖來描述互聯網社 區的結構。尤其是在對越來越多互聯網數據進行分析后,隨機圖結構的概念受到嚴重的沖 擊。互聯網的實際結構遠比我們想象得要復雜得多,鏈接、網站、頁面、用戶、管理者之間的 關系也是多樣化的。在互聯網中有很多區域內部聯系緊密同外部的聯系較弱,這些區域就 是互聯網社區,互聯網社區的結構特征是無法用隨機圖描述清楚的。
[0004] 隨著互聯網社區概念的提出和相關研宄的深入展開,開發者們設計了各種不同類 型的的互聯網社區檢測算法對其進行結構檢測,并根據實驗結果不斷地對算法進行改進和 優化。隨著研宄的深入開展,對互聯網社區進行檢測的算法也在不斷地被優化改進。
[0005] 與傳統方法相比,現在的算法大多能夠充分考慮到網絡運行的并行性、實時性和 可擴展性等來解決物理上的限制。比如Sadi等人提出的用并行的螞蟻找圈的社區檢測方 法。這樣可以在不影響結果效果的前提下,壓縮互聯網結構圖直至一個穩定的大小以降低 算法運行的成本,從而完成對大規模網絡的處理。也有Leung等人提出的對標簽傳播算法 進行改進,并加入啟發式教育法的方法對大規模網絡進行實時的社區檢測。針對不同的互 聯網社區檢測方法,Leskovec等人對現有的一些方法進行研宄比較,發現大規模網絡社區 檢測問題并不是一個簡單算法就能解決的,是一個非常復雜的問題,要考慮到網絡結構、數 據分布、網絡爬行效果等多方面的問題。隨著檢測技術的不斷成熟,互聯網社區檢測有效度 也在不斷提升,同傳統的蠻力算法相比較,社區檢測技術已經越來越成為一種藝術。作為社 區檢測一個新興的方向,將會對互聯網結構挖掘做出巨大影響。
【發明內容】
[0006] 本發明的目的在于通過社區檢測的概念,可以較好地描述并檢測出網絡社區這樣 的網絡結構并加以應用。
[0007] 一種基于Floyd-Warshall的互聯網社區檢測算法,其特征在于包括如下步驟:
[0008] 步驟1、數據獲取:為了從給定的起始博客鏈接出發獲得跟它相關的博客鏈接信 息,通過Spider對相關數據進行爬取,并將得到博客關系圖用矩陣表示;
[0009] 步驟2、特征提取:選定圖中任意兩點的最小距離作為特征值,為了從圖中提取最 小距離作為聚類的特征基礎,使用Floyd-Warshall算法對圖中任意兩點的最小距離進行 計算。
[0010] 步驟3、聚類分割:為了按一定特征異同將網絡劃分為不同的社區,以最小距離作 為特征進行聚類分割,得到指定個數的聚類結果。
[0011] 步驟4、影響力排名:為了判斷每個聚類中哪些節點有更高的影響力,使用 PageRank對每個聚類進行排名;
[0012] 步驟5、結果可視化:為了直觀形象地表達結果,使用GraphViz對結果可視化表 達。
[0013] Spider包括如下步驟:
[0014] 步驟2-1、添加起始鏈接至待分析鏈表;
[0015] 步驟2-2、如鏈表不為空,進行步驟2-3,否則結束;
[0016] 步驟2-3、從鏈表中取出最前鏈接分析其內容;
[0017] 步驟2-4、如存在下一個鏈接,進行步驟2-5,否則進行步驟2-2 ;
[0018] 步驟2-5、鏈接處理,是否為目標連接,是則更新數據,否則進行步驟2-4。
[0019] 連接處理包括如下步驟:
[0020] 步驟3-1、判斷連接是否滿足格式一,如果滿足則進行步驟3-4,否則進行步驟 3-2 ;
[0021] 步驟3-2、判斷連接是否滿足格式二,如個滿足則去掉連接中"m/"部分,并進行步 驟3-4,否則進行步驟3-2;
[0022] 步驟3-3、判斷連接是否滿足格式三,如果滿足則進行步驟3-4,記錄當前連接不 是目標連接,進行步驟3-5;
[0023] 步驟3-4、記錄當前連接是目標連接;
[0024] 步驟3-5、結束。
[0025] 更新數據包括如下步驟:
[0026] 步驟4-1、判斷當前鏈接是否已插入數據庫,如已插入則進行步驟步驟4-3,否則 進行步驟4-2 ;
[0027] 步驟4-2、判斷已存目標連接數未超過最大,如未超過則將鏈接插入待分析鏈表, 并將鏈接插入數據庫,否則結束;
[0028] 步驟4-3、將鏈接關系插入數據庫,結束。
[0029] 本發明因為采用以上技術方案,因此具備以下有益效果:
[0030] 本發明通過社區檢測的概念,可以較好地描述并檢測出網絡社區這樣的網絡結構 并加以應用。
【附圖說明】
[0031] 圖1為本發明的整體流程;
[0032] 圖2為本發明的Spider需要爬取的鏈接圖示;
[0033] 圖3為本發明的Spider流程圖;
[0034] 圖4為本發明的Spider鏈接處理子流程流程圖
[0035] 圖5為本發明的Spider更新數據子流程流程圖
[0036] 圖6為本發明的數據庫中兩個鏈接關系
[0037] 圖7為本發明的Floyd-Warshall算法流程;
[0038] 圖8為本發明的k-means算法流程圖;
[0039] 圖9為本發明的PageRank算法流程圖。
【具體實施方式】
[0040] 本文提出一種基于Floyd-Warshall的互聯網社區檢測算法并應用于博客社區檢 測中。
[0041] 如圖1所示,算法分為五個步驟:
[0042] 數據獲取:為了從給定的起始博客鏈接出發獲得跟它相關的博客鏈接信息,我在 實驗中通過實現一個WebSpider程序對相關數據進行爬取,并將得到博客關系圖用矩陣表 不〇
[0043] 特征提取:實驗選定圖中任意兩點的最小距離作為特征值。本過程為了從圖中提 取最小距離作為聚類的特征基礎,使用Floyd-Warshall算法對圖中任意兩點的最小距離 進行計算。
[0044] 聚類分割:為了按一定特征異同將網絡劃分為不同的社區,以最小距離作為特征 進行聚類分割,得到指定個數的聚類結果。
[0045] 影響力排名:為了判斷每個聚類中哪些節點有更高的影響力,使用PageRank對每 個聚類進行排名。
[0046] 結果可視化:為了直觀形象地表達結果,使用GraphViz對結果可視化表達。
[0047] 下面小節對程序流程中主要過程使用的算法進行說明。
[0048] 數據獲取
[0049] 實驗是以新浪博客為對象進行社區檢測,所以針對新浪博客網頁及網頁所設置的 鏈接做了相關的觀察和分析,一個博客所設置的鏈接可能分成不同的區域,每一個鏈接可 能為新浪博客,也可能為其他網站的鏈接。如圖2所示。紅色箭頭指向的紅色邊框區域是 當前博客所設置的友情鏈接區域,其中,這些區域中用紅線標出的是滿足爬取要求的新浪 博客。所以爬蟲要做的主要工作就是從網頁的所有鏈接中,篩選出滿足要求的部分。
[0050] 通過分析,滿足要求的鏈接可以有以下幾種格式:
[0051] 格式1 :http://blog. sina. com. cn/xxx,其中xxx是數字和英文字母的組合;
[0052] 格式2. :http://blog. sina. com. cn/m/xxx,其中xxx也是數字和英文字母的組 合,現在這樣類型的鏈接會直接被轉到http://blog. sina. com. cn/xxx ;
[0053] 格式 3 :http://blog. sina. com. cn/u/number,其中 number 代表的是數字的組合。
[0054] Spider從起始博客鏈接出發,采用廣度優先的遍歷方法實現數據爬取。廣度優先 的遍歷爬蟲即以起始鏈接為樹的根部,按照網頁的鏈接形成樹的結構,按照樹的寬度進行 遍歷。由此可以得到針對新浪博客的爬蟲的主要算法的流程圖,如圖3