利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

社會網絡是一個關係與關係之間的網絡,進行社會網絡分析,我們要弄清楚的是網絡中包含哪些具有相互聯繫的節點,這些節點之間又具有怎樣的關係,以及每個節點在整個網絡中佔有何種地位。

而有關這方面節點的數據都是在做關係圖之前需要準備好的。

本文包含兩個案例,引出第一個案例詳細列出步驟便於理解,第二個案例為演練。

第一個案例中用到的軟件有Ucinet和NetDraw(文末提供軟件安裝包),其用途為:

-輸出用於NetDraw分析的矩陣數據

-繪製社會網絡

第二個案例中用到GooSeeker分詞軟件,主要目的是生成詞頻統計表。

案例一:社交網分析

首先,我自己在Excel準備了一份簡單的數據。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

這份數據很好理解,第一行和第一列代表人物,若他們之間有聯繫,那麼人物A與人物B對應的單元格數字為1,無聯繫則為0。比如:張三和王五、陳七、楊九有聯繫,與其他人無聯繫。

先用Ucinet輸出用於NetDraw分析的矩陣數據,打開Ucinet,選擇數據>輸入>Excel矩陣。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

輸入文件路徑選擇前面準備的Excel共現矩陣表,其他可不改動,選擇確定。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

接著Ucinet會進行處理,彈出處理日誌,並在與輸入相同的路徑中輸出.##h矩陣文件。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

數據準備完畢,打開NetDraw準備繪製,選擇file>open>ucinet dataset>network。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

在彈窗中選擇剛剛Ucinet生成的.##h矩陣文件,點擊OK。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

社會網絡圖繪製完畢。

然後NetDraw會進行繪製,繪製的社會網絡圖如下:

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

這個數據比較簡單,通過上圖可以直接看出楊九是核心人物,如果數據量較大較複雜的話,肉眼是比較難看出來的,可以通過節點中心性分析來進行研究,讓NetDraw繪製出節點大小與中心度正相關的社會網絡圖。

在NetDraw選擇analysis>centrality measures。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

然後在彈出界面的set node size by下選擇degree,點擊ok。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

接著NetDraw重繪製,結果圖如下:

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

從上圖來看,楊九的中心節點大小最大,與最多的人相聯繫,可以將他理解為該社交網的中心人物。

度中心性(Degree Centrality)是在網絡分析中刻畫節點中心性(Centrality)的最直接度量指標。一個節點的節點度越大就意味著這個節點的度中心性越高,該節點在網絡中就越重要。

對度中心性計算原理感興趣的同學可以自行去了解,從結論來說,節點越大就意味著越重要。另外,度中心性只是衡量節點中心性的指標之一,還有三個衡量節點中心性的主要指標有接近中心性(Closeness Centrality)、中介中心性/中間中心性(Between Centrality)和特徵向量中心性(Eigenvector Centrality)。這裡就不進行贅述了。

案例二:微博研究主題共詞分析

前面我的一篇文章《畢業論文寫什麼——微博數據挖掘相關的論文》其中有一塊對微博數據挖掘相關論文的研究主題進行分析,下面就詳細講解一下對微博主題進行共詞分析的具體操作方法。

數據:知網微博數據挖掘的論文-"論文主題"字段數據

數據進行共享了,有興趣的話可以自己試驗一下。

先用GooSeeker分詞軟件提取詞頻統計表

進入GooSeeker分詞軟件,新建任務,將實驗數據導入進去。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

如下部分數據截圖所示,每篇論文主題關鍵詞之間其實已經通過空格進行分隔了,所以我希望分詞軟件能夠以空格為間隔,將這些關鍵詞分離出來。但不管通過哪個分詞軟件,它們本身是有一個詞庫的,如果通過軟件自身詞庫來切詞的話,切詞的粒度會更精細,這樣就破壞了一些詞語的完整性。比如"社會網絡分析"可能會切分成"社會"、"社會網絡"、"分析"等詞語,因為在這個分析場景下,主要是研究微博挖掘相關論文研究的主題,所以我更希望不進行切分,直接保留為"社會網絡分析"。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

用分詞軟件自身的切詞不能達到我的切詞目的,所以我事先用Excel的分列功能,將這些關鍵詞分離出來。部分截圖如下圖所示。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

回到GooSeeker分詞軟件,第一步"導入數據"之後,跳過第二步"篩選詞語",因為後面我的詞頻統計結果是基於我剛剛通過Excel分列得到的詞語, 而GooSeeker分詞軟件是支持自定義詞語手動補充的。所以直接來到第三步"選詞結果",點擊"添加詞語"。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

將Excel分列去重後的關鍵詞導入。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

然後點擊"下載",將結果文件導出。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

結果文件中,表名為"選詞結果"是後面我們將用到的。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

用Excel構建共詞矩陣表

第一個案例的共詞矩陣是自己隨機造的一個,現在第二個案例數據量較大,分出的詞語有四千多個,要形成共詞矩陣,我們要藉助Excel的公式來進行計算了。

先說下公式的原理,如下圖所示,左邊為樣例數據,右上為共詞矩陣,假設需要構造矩陣的詞組有("微時代"、"媒體"、"文化"、"微博"、"社交網絡"、"傳播"),詞組行和列相交的單元格填入公式

(=SUMIFS($B:$B,數據!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*")),公式理解:在A列表查找,看是否包含C2(微時代)和D1(微時代),如果有就統計該包含這兩個字符所在行的另外一列的數進行求和。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

回到案例二,新建一個Excel,將詞語粘貼至第一行和第一列,詞語相交的單元格套用剛剛的公式,其他單元格自動拉公式,然後讓Excel自行運行計算即可。共詞矩陣部分結果如下圖所示。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

合併同義詞和提取高頻詞

有了共詞矩陣表之後,不要著急將數據導入著手繪製。要知道這是一個4349*4349的共詞矩陣,可以設想,直接導入Ucinet和NetDraw繪製出來就是一團黑影,最重要的是,沒有必要將全部矩陣導入,因為很多詞語是沒有價值的,因為有些詞語作為論文的主題可能就少數出現過。所以在繪圖之前,先進行合併同義詞和提取高頻詞。

1) 合併同義詞

同義詞即詞語含義相同的,比如"微博"和"微博客",因為案例而的目的是論文研究主題,所以先創建一個同義詞組表。部分截圖如下:

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

根據同義詞組表,將共詞矩陣表中的同義詞進行合併計算處理,將同義詞組中每個詞的數字求和作為一組同義詞組的最終結果值,如下圖所示(部分截圖):

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

2) 提取高頻詞

用同樣的方法將同義詞處理完畢後,同時用根據同義詞組表更新最開始在GooSeeker分詞軟件下載的詞頻統計表。

接著根據詞頻統計表將高頻詞提取出來,本次實驗我提取了前100個,根據這100個高頻詞形成100*100的共詞矩陣表。

將共詞矩陣表導入Ucinet

完成上面的步驟之後就可以開始導入數據繪製了。第一個案例是通過Ucinet導入共詞矩陣Excel表,下面用另一種方法導入,就是直接複製。點擊Ucinet第二個表格圖標,如下圖紅框所示。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

彈出一個表格,然後將在上一步Excel裡完成的共詞矩陣表CRTL+C、CRTL+V直接複製進去,結果如下圖所示。記得點擊保存一份,一方面拿來接下來繪圖,另一方面防止以後調整數據的時候需要。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

通過Netdraw繪製微博主題關係圖

最後打開NetDraw打開.##h文件準備繪製並進行度中心性分析,不知道怎麼操作倒回去看案例一的操作過程。

繪製結果圖如下所示:

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

從NetDraw生成的可視化關鍵詞網絡結構圖可以看出,"社交網絡、爬蟲、輿情、話題、傳播、推薦、影響力、營銷、媒體"等關鍵詞的中心度較高,這些是人們比較關注的微博研究主題,處於邊緣位置主題表示對其研究的關注度較低,但從中可以看出微博數據挖掘多元話的研究方向。

假如說跳過前面合併同義詞的步驟,並且我只選取詞頻為前100的詞語形成共詞矩陣表,繪製的結果圖如下,可以看到密密密麻麻的一片。所以如果既不進行同義詞合併也不進行詞頻提取,那繪製出來的結果圖就可想而知了。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

拓展—詞雲圖製作

我用PPT的插件Pro Word Cloud製作中文詞雲,使用方法可以參看我原來的文章《 》。

結果圖如下:

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

微博數據挖掘的關鍵詞雲圖一目瞭然,最後吐槽一下,詞雲圖比NetDraw繪製的圖好看多了。當然,分析目的不一樣,用的工具自然不同。

在分析的過程中,數據的準備和處理是最花時間的,工欲善其事,必先利其器。有分析思路固然重要,利用好的工具進行數據處理則能夠事半功倍。

總的來說,上面兩個案例都比較簡單,本篇文章重點講解3個工具的操作過程,大家可以找一些其他數據進行分析。

常見問題:

1, Excel矩陣數據可以直接導入NetDraw中繪製嗎?

NetDraw支持兩種外部數據導入方式,一是導入描述有節點信息的記事本文件,另外一種是導入當前使用較為普遍的社會網絡分析軟件輸出的相應格式的文件(如:Ucinet、Pajek)。

我所使用的NetDraw版本不支持Excel文件直接導入,所以上面的案例中要先通過Ucinet輸出用於NetDraw分析的矩陣數據。

2, 社會網絡圖的儲存格式?

繪製完成的社會網絡圖,可以選擇兩種方式輸出,一是以圖片的形式導出,可以選擇jpeg、emf、bmp等三種圖元文件格式,無法再修改。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

另一種是以可以再修改的文件格式保存。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

3, 怎麼在Ucinet中查看之前保存的共詞矩陣?

點擊Ucinet第二個表格圖標,在彈出的窗口中選擇"文件>打開",選擇之前保存的.##h數據集文件即可。

利用GooSeeker分詞、Ucient和NetDraw進行社會網絡分析

軟件安裝包:

  • lUcinet:點擊下載安裝包

  • lhttps://www.gooseeker.com/doc/thread-11118-1-1.html

  • lNetDraw: 點擊下載安裝包

  • lhttps://www.gooseeker.com/doc/thread-11118-1-1.htm

參考文獻:

  • 社會網絡分析與可視化工具NetDraW的應用案例分析

  • https://wenku.baidu.com/view/ef95a6680b1c59eef8c7b4c1.html


分享到:


相關文章: