c语言社交网络,图论在社交网络中的应用研究
【摘 要】在社交網絡中常用到圖論來分析解決實際問題,本文闡述了圖形理論在社交網絡應用的理論基礎,同時通過案例分析如何基于圖論理論建立社交網絡模型和進行應用評估。
【關鍵詞】社交網絡;圖論;模型;應用
一、圖論與社交網絡
圖論〔Graph Theory〕是數學的一個分支。它以圖為研究對象。圖論中的圖是由若干給定的點及連接兩點的線所構成的圖形,這種圖形通常用來描述某些事物之間的某種特定關系,用點代表事物,用連接兩點的線表示相應兩個事物間具有這種關系。圖論起源于著名的哥尼斯堡七橋問題。[1]
社交網絡源自網絡社交,網絡社交的起點是電子郵件。互聯網本質上就是計算機之間的聯網,早期的E-mail解決了遠程的郵件傳輸的問題,至今它也是互聯網上最普及的應用,同時它也是網絡社交的起點。BBS則更進了一步,把“群發”和“轉發”常態化,理論上實現了向所有人發布信息并討論話題的功能,隨著網絡社交的悄悄演進,一個人在網絡上的形象更加趨于完整,這時候社交網絡出現了。
二、社交網絡分析的圖形方法
數學和圖形技術通常被用來以系統性方式描述社交網絡,用以描述和解釋社交網絡分析的數學科學就是圖形理論。相關社交網絡分析的的基本概念和測量方法均來自圖形理論。圖形理論的一個巨大優勢是可以應用于計算的數學準則,也因此可以應用于商業問題。在社交網絡中每個人可以看做一個點,朋友關系看做連接兩點之間的線。這樣整個社交網絡就形成一個復雜網絡圖,社交網絡本身就是一個復雜的人際關系網絡。物以類聚,人以群分,采集社交網絡人際關系數據,進行聚類分析,發現群組。
三、社交網絡分析
分析社交網絡,主要是研究社會實體的關系連結以及這些連結關系的模式、結構和功能。社交網絡分析被用于描述和測量行動者之間的關系或通過這些關系流動的各種有形或無形的東西,比如信息、資源等。根據分析的著眼點不同,社交網絡分析可以分為兩種基本視角:關系取向(relationalapproach)和位置取向(positional approach)。關系取向關注行動者之間的社會性粘著關系,通過社會連結(socialconnectivity)本身――如密度、強度、對稱性、規模等――來說明特定的行為和過程。位置取向則關注存在于行動者之間的、且在結構上處于相等地位的社會關系的模式化。它討論的是兩個或兩個以上的行動者和第三方之間的關系所折射出來的社會結構,強調用“結構等效”來理解人類行為。
(一)關系距離及中心性分析
1.度(degree)
度指的是社會網絡圖中鄰點的個數。
2.密度(density)
密度指的是圖中各個點之間關系的緊密程度,是實際分布圖與完備圖的差距。在一個群體的結構型態分析中,密度是一項重要變量,因為一個團體可以有緊密團體,也可以有疏離團體,一般來說,關系緊密的團體有效的合作行為較多,信息流通較容易,團體工作績效也會較好,而關系十分疏遠的團體則常有信息不通、情感支持太少、集體滿意程度較低等問題。社交網絡圖(無向圖)的密度公式如下:
其中n為圖中節點的數目,L為圖中線的數目。
3.中心度(centrality)
如果一個行動者與很多其他行動者有直接的關聯,該行動者就居于中心地位。因此在無向社會網絡圖中,一個點的度就是該點的中心度。在有向圖中,中心度包括內中心度(in-centrality)和外中心度(out-centrality),三分別對應“入度”和“出度”。A. Bavelas最先對中心度的形式特征進行了開創性研究,驗證了如下假設,即行動者越處于網絡的中心位置,其影響力越大。
中心度分為三種形式:程度中心性、親近種新型、中介中心性。
(1)程度中心性常用來衡量誰在團體中是最主要的中心地位。無向圖計算公式為:
(2)中介中心性指標
衡量了節點作為媒介的能力。中介中心性高的節點掌握了信息流以及商業機會,進而可以控制兩群節點,獲得中介利益。社會網絡分析中衡量一個人作為橋的程度的指標就是中介中心性。
是節點j到節點k的捷徑數,是節點j到節點k的快捷方式上有節點i的快捷方式數,g是網絡節點數。
(3)群體中介性公式:
含義是,一個圖形中,中介性最高的節點的中介性與其他人中介性的差距。差距越大,群體中介行數值越高,表示此團體分成數個小團體而太依靠某個節點傳話,這個節點特別重要。
(二)小團體(子群)分析
派系(subgroup)是社群中的一小群人關系特別緊密,以至于結合成一個次團體。在一個社交網絡圖中,派系指的是至少包含三個點的最大完備子圖。該定義意味著:
派系的成員至少包含三個點;派系是“完備”的,即任何兩點之間都是直接相關,都是鄰接的;派系是“最大”的,不能再向該派系加入新點,否則將改變“完備”這個性質。
1.成分(component)
如果一個點集的任何兩點都可以通過一定的路徑相連,這樣的點集叫做成分(component)。很顯然,派系比成分要嚴格得多,一個成分中的所有點之間不要求都是鄰接的,而派系中的點都必須鄰接。
2.n-派系(n-cliques)
對于一個總圖來說,如果其中的一個子圖滿足如下條件,就稱之為n-派系:在該子圖中,任何兩點之間在總圖中的最短距離最大不超過n。其形式化定義為:
其中d(i,j)是點i和點j之間的距離。
四、案例分析對象及問題
本文研究主要以人人網為例。人人網為整個中國互聯網用戶提供服務的SNS社交網站,給不同身份的人提供了一個互動交流平臺,提高用戶之間的交流效率,通過提供發布日志、保存相冊、音樂視頻等站內外資源分享等功能,搭建了一個功能豐富高效的用戶交流互動平臺。對于在人人網中,能否找到一種方法自動地為我的所有好友進行分組。
(一)解決方案思路
人人網是一個復雜的人際關系網絡,物以類聚,人以群分。對于解決本案例中的問題,首先是采集社交網絡人際關系數據,進行聚類分析,發現群組。
其次是選擇開發語言――Python,是一種解釋型的,面向對象的、帶有動態語義的高級程序設計語言。自從20世紀90年代初Python語言誕生至今,它逐漸被廣泛應用于處理系統管理任務和Web編程。具有優雅、明確、簡單的特點。能完成系統編程、用戶圖形接口、Internet腳本、組件集成、數據庫編程、快速原型、數值計算與科學計算編程、游戲、圖像、人工智能、XML、機器人等功能。
再次是熟練掌握復雜網絡處理程序庫:
1.Boost Graph Library――準C++標準庫
代碼結構良好、靈活、高運行效率,沒有提供復雜網絡分析算法,可幫助 C++ 開發人員將實際工程問題轉化成圖論問題。
2.QuickGraph――.NET平臺下的BGL
BGL在.NET平臺下的實現,提供有方向和無方向的.NET圖形結構圖和算法庫。
3.Igraph――C語言寫的復雜網絡分析庫
包括圖論各種經典算法以及網絡分析算法,它提供了一些非常有效的挖掘功能,提供Python、R語言接口。
workX――全面支持復雜網絡分析的Python包包括圖論經典算法和復雜網絡分析算法,具有文檔清晰易讀、程序結構組織較好,執行效率比igraph要低很多,便于用戶對復雜網絡進行創建、操作和學習。利用networkx可以以標準化和非標準化的數據格式存儲網絡、生成多種隨機網絡和經典網絡、分析網絡結構、建立網絡模型、設計新的網絡算法、進行網絡繪制等。
(二)社交網絡數據采集
社交網絡數據的采集主要是通過運營商開放平臺API,用網絡爬蟲爬取頁面。
開放平臺(Open Platform)在軟件業和網絡中,開放平臺是指軟件系統通過公開其應用程序編程接口(API)或函數(function)來使外部的程序可以增加該軟件系統的功能或使用該軟件系統的資源,而不需要更改該軟件系統的源代碼。
網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻,自動索引,模擬程序或者蠕蟲。網頁爬蟲所用的網頁搜索策略主要有廣度優先搜索策略、最佳優先搜索策略、深度優先搜索策略,網頁分析算法有網絡拓撲的分析算法和網頁分析算法等。
(三)簡單網絡爬蟲過程分析
1.模擬用戶登錄,保存Cookie。所謂Cookie,可以簡單認的為是在瀏覽器端記錄包括登錄狀態在內的各種屬性值的容器名稱。
圖1保存人人網cookie
2.指定抓取入口
圖2人人網抓取入口
3.次級頁面自動發現
圖3次級頁面
4.已爬地址處理。通過以上方式可以抓取到網頁,但還要從這些頁面中解析出需要的文本信息,如,標題、內容、URL鏈接地址等。之后提出這些信息組成一個document對象,通過Lucene將document對象加入到索引,提供用戶搜索用。在實際項目中通常使用HTML解析器(如,HTMLParser)來提取網頁內容。
5.信息采集強度控制,主要包括多線程數和停歇時間。
五、結論
本文主要介紹了圖論在社交網絡上的應用,通過對圖論和社交網絡分析基礎知識的分析,探討了在社交網絡中如何用圖論理論來分析解決實際問題。重點采集了“人人網”人際關系數據,進行聚類分析,發現群組,對數據進行可視化,生成了“人人網社交網絡圖”。探討了在社交網絡中常用到圖論來分析解決實際問題。指出社交網絡信息是一類重要的分析對象,其中蘊含著豐富的社會網絡信息。
參考文獻:
[1]Carlos Andro Reis Pinherio[著],漆晨曦等[譯].社交網絡分析及案例詳解[M].人民郵電出版社,2013.01.
[2]王桂平,王玨,任嘉辰.圖論算法理論、實現及應用.北京大學出版社,2011.11.
[3]徐俊明.圖論及其應用.中國科學技術大學出版社,2010.03.
[4]王樹禾.圖論.科學出版社,2009.08.
[5]殷劍宏、吳開亞.中國科學技術大學出版社,2004.01.
總結
以上是生活随笔為你收集整理的c语言社交网络,图论在社交网络中的应用研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 串口驱动解析之2440
- 下一篇: vs2010 快捷键大全