Gephi繪制微博轉發圖譜:以“@老婆孩子在天堂”為例

一、前言

以前看過一篇提取《釜山行》劇本中人物,并用Gephi繪制關系圖譜的文章,因此想用Gephi繪制下微博轉發情況,借此來換個角度看看微博內容是怎么擴散的。其中爬取轉發數據的思路可見于:老樹微博,三千詩與畫》,大同小異,不再贅述。

而在選擇哪則熱門微博時,正好看到有人轉發了杭州保姆縱火案受害者家屬,林生斌,微博ID:“老婆孩子在天堂”的一則為四川地震災民捐贈物資的微博,截止周五(20170811)晚上10點20,轉發發數為54045(評論:31431,點贊:238204。之后截圖數據不同),數據量較為充足,可以一試。

另外一個選定這則微博,而非其他更具娛樂性、更能蹭熱點的話題的原因,是一直沒能為林先生干點什么,因此如果能將轉發圖譜繪制出來,并和《爬取張佳瑋138w+知乎關注者:數據可視化》一文一樣登上網站首頁被加入今日看點的話,也姑且能算是幫其在擴散上盡了點小力。

二、Gephi簡介

Gephi是一款開源免費跨平臺基于JVM的復雜網絡分析軟件, 其主要用于各種網絡和復雜系統,動態和分層圖的交互可視化與探測開源工具。

應用場景

探索性數據分析:直觀的網絡操作實時分析。

鏈接分析:給出了關聯對象背后(特別是無標度網絡下)的結構。

社交網絡分析:可以輕松創建對應社區組織和小世界(small-world)的社交數據鏈接。

生物網絡分析:展示生物數據模式。

海報創作:通過打印高品質地圖推廣科學工作。

三、數據處理

想要用Gephi繪制網絡圖譜,最重要的就是知道每條網絡的起點和終點,即Source和Target,以及所有這些點所組成的Id。其他還有每條網絡的權重(Weight)、類型(有向的、無向的)、Id的名字Name、標簽Label等等。

而爬取微博獲得的原始數據卻是如圖格式的,因此,需要根據每一條的text內容,找出所有轉發的節點和對應的起點、終點指向關系。

以用戶“@Ponyyoung”的轉發為例,text內容如下:

“//@柯藍:危難中心里還有別人,讓人尊敬。//@西門不暗: 這幾年公共事件中,林先生是我見過情緒最克制,表達最得體的人。命運不該對他這么殘忍。祝福他。”

這一條網絡,包含四個節點,分別為:@老婆孩子在天堂>>>@西門不暗>>>@柯藍>>>@Ponyyoung。

那么在CSV文件里,用'//'分列,切分成不同列,text從右到左便分別是第一層轉發、第二層轉發、第三層轉發。知道了節點和所有轉發層級后,將數據處理成Gephi所需的格式(本項目篩選了14層轉發,越到后面數據也越少了,基本涵蓋了全部數據):

在Nodes文件里將所有微博節點以"Id"設置為自然數的形式排列:

并進一步將Edges文件中Source和Target列,轉換成對應“Id”值:

四、Gephi繪圖

經過上述的爬取數據(截止20170813下午4點前)并將數據處理成Gephi所需的格式后,便終于到了最激動人心的繪圖步驟了。由于此前并未使用過Gephi,里面各種參數和內置算法都不太熟悉,能得到怎么樣的成果圖,非常的依賴于繪制過程的操作。

此處推薦一個視頻教程和一篇操作文章:

Gephi中文教程 | Udemy

GEPHI – Introduction to Network Analysis and Visualization

后面的操作基本按照后者進行,因此不再重復講解操作步驟。不過由于電腦配置不行,跑軟件內置算法時實在吃力,最終在只進行到3.3,給網絡圖上色的步驟,模塊化處理之前。

運行Force Atlas 2算法后,圖譜不斷發生變化:

基本穩定后,give color to see see:

還是蠻漂亮的,不是嘛!其中右上角的圓形區域,其中心便是林先生的ID所在,左右密集的圓環就是由轉發層級較少的ID所形成,結合1-14層,各層級轉發數量圖可知,在所有轉發情況中直接轉發原微博占比最高,其次是第二層轉發。此處無法得知轉發的用戶中多少是林先生的粉絲,因而直接轉發,或者有哪些大V介入,使其擴散出去,為更多人所見:

繼續看看右上角圓環區域,所有ID所形成的節點,清晰可見:

放大,并加上ID名稱,大致如下,由于軟件內調整縮放大小和看圖,非常不便,非???,所有姑且只能這么看看:

重新將目光移動到非右上角區域,錯綜復雜的轉發關系,可見一斑:

找出其中一小簇節點情況(真的是漂亮,逃):

加上標簽,可知是由用戶“@據扯”引發的一小簇轉發:

對應到CSV表格里,進行驗證下,雖然上圖昵稱重疊嚴重,但還是基本符合的情況:

以上就是用Gephi繪制微博轉發圖譜的內容,還是那句話,由于跑不動軟件的算法,雖然最后得到的圖也還行,但操作不算完整。也無法得知千萬粉絲、百萬粉絲的大V,或高轉發ID,在整個擴散過程中所起到的具體作用和直觀的節點情形,略感遺憾。

五、微博生命周期

林先生的原微博發布時間為20170811(周五)14:43。從截止0813(周日)16點前獲取的數據來看,本則微博的轉發數在發布后的1-2小時內達到單位小時僅萬條的高峰,之后雖然維持4-5千每小時的轉發量至深夜,但下降趨勢已然明顯可見,次日轉發數已經無法和當天相比。當然這不僅有一則微博本身生命周期的原因;前期可能有不少大V參與的原因;也有林先生發布其他微博,大家關注點轉移等原因。

六、小結

繼續在老樹微博,三千詩與畫之后,有針對性地抓取微博數據,但這回曾遇上API請求被拒,微博app也好幾個小時上不去的情況,看來再大規模爬微博數據時要注意了。

再是,基本完成用Gephi繪圖和前期找到轉發的節點,并將數據處理成相應格式的步驟,在沒使用過Gephi的情況下,熟悉了下將近5w條節點和邊的數據繪制成網絡圖譜的流程,也對微博轉發和擴散的方式有了不同角度的認知,對一則微博的生命周期,其熱度及衰減過程有所了解。

補充一篇與本文相關的文章:傷心橋下春波綠,曾是驚鴻照影來

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容