1. 快捷導航

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

            2018-5-12 15:56| 發布者: Fuller| 查看: 26089| 評論: 12

            摘要: 社會網絡是一個關系與關系之間的網絡,進行社會網絡分析,我們要弄清楚的是網絡中包含哪些具有相互聯系的節點,這些節點之間又具有怎樣的關系,以及每個節點在整個網絡中占有何種地位。準備數據需要用到GooSeeker集 ...

            注意:生成共詞矩陣表、社交網絡圖、詞云圖都可以用集搜客分詞和分析平臺自動生成,本文講解另一種方法:用Excel生成共詞矩陣表的方法,目的是為了讓大家清楚計算原理。

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

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

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

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

            • Ucinet:輸出用于NetDraw分析的矩陣數據
            • NetDraw:繪制社會網絡

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

            案例一:社交網分析

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

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

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

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

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

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

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

            社會網絡圖繪制完畢。

            然后NetDraw會進行繪制,繪制的社會網絡圖如下:

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

            在NetDraw選擇analysis>centrality measures。

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

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

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

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

            對度中心性計算原理感興趣的同學可以自行去了解,從結論來說,節點越大就意味著越重要。另外,度中心性只是衡量節點中心性的指標之一,還有三個衡量節點中心性的主要指標有

            • 接近中心性(Closeness Centrality)、
            • 中介中心性/中間中心性(Between Centrality)和
            • 特征向量中心性(Eigenvector Centrality)。

            這里就不進行贅述了。


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

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

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

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


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

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

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

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

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

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

            然后點擊“下載”,將結果文件導出。

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


            2,用Excel構建共詞矩陣表

            注釋:GooSeeker分詞和文本分析軟件有一鍵導出共詞矩陣的功能,這里講解用Excel函數構建共詞矩陣的目的是展示共詞矩陣的計算原理。

            第一個案例的共詞矩陣是自己隨機造的一個,現在第二個案例數據量較大,分出的詞語有四千多個,要形成共詞矩陣,我們要借助Excel的公式來進行計算了。
            先說下公式的原理,如下圖所示,左邊為樣例數據,右上為共詞矩陣,假設需要構造矩陣的詞組有(“微時代”、“媒體”、“文化”、“微博”、“社交網絡”、“傳播”),詞組行和列相交的單元格填入公式

                      (=SUMIFS($B:$B,數據!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*"))

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

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


            3,合并同義詞和提取高頻詞

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

            1)    合并同義詞

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

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


            2)    提取高頻詞

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

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


            4,將共詞矩陣表導入Ucinet

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

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


            5,通過Netdraw繪制微博主題關系圖

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

            繪制結果圖如下所示:

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

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


            6,拓展—詞云圖制作

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

            結果圖如下:

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

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

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


            常見問題:

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

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

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

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

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

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

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


            軟件安裝包

            參考文獻


            19

            鮮花

            握手

            雷人

            路過

            雞蛋

            剛表態過的朋友 (19 人)

            相關閱讀

            發表評論

            最新評論

            評論 Fuller 2022-3-19 17:58
            如果一個excel文件中有多張表,那么可以跨表選取單元格。Excel界面上最下面顯示每張表的名字。這個例子說明其中有張表的名字是“數據”
            czq0504: =SUMIFS($B:$B,數據!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*") 請問可否告知“數據!”是什么意思?謝謝! ...
            評論 czq0504 2022-3-19 17:06
            =SUMIFS($B:$B,數據!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*") 請問可否告知“數據!”是什么意思?謝謝!
            評論 Fuller 2020-8-20 15:51
            綠皮大甜梨: 社會網絡圖能做出來,但中心度做不出來,圓心都是一樣大小。很郁悶。無法分析啊,也看不出來線的粗細。
            導出的矩陣表,列的數量和行的數量是一樣的,對角線的數字是詞出現的文檔數,非對角線的數字是兩個不同詞同時出現的文檔數,觀察一下這張表,數字應該有大有小,而且基于對角線對稱的。你導出的矩陣數字有變化嗎?
            評論 綠皮大甜梨 2020-8-20 15:23
            社會網絡圖能做出來,但中心度做不出來,圓心都是一樣大小。很郁悶。無法分析啊,也看不出來線的粗細。
            評論 綠皮大甜梨 2020-8-20 15:20
            是導出來的,導出來的是社會網絡excel表
            評論 Fuller 2020-8-20 11:21
            綠皮大甜梨: n您好,剛才做中心度分析,為啥顯示Centrality measures calculated and added to node attribute database。不明白是什么意思,請指教 ...
            現在分詞軟件可以直接導出矩陣表了,你使用的是導出的矩陣表?還是自己統計出來的?
            評論 內容分析應用 2020-8-20 11:21
            綠皮大甜梨: n您好,剛才做中心度分析,為啥顯示Centrality measures calculated and added to node attribute database。不明白是什么意思,請指教 ...
            這個信息應該是正常執行完成后的提示信息。我確認一下
            評論 綠皮大甜梨 2020-8-20 10:57
            n您好,剛才做中心度分析,為啥顯示Centrality measures calculated and added to node attribute database。不明白是什么意思,請指教
            評論 ym 2020-3-26 17:28
            Fern_7: 請問為什么我把GooSeeker 導出的共詞矩陣表輸入進Ucinet 的時候失敗了,彈出“不能轉換(Dispatch)類型變量到類型(Double)”的窗口? ...
            矩陣表的單元格值不能有null或空字符串,你從分詞平臺里重新下載一遍共詞矩陣表就可以了
            評論 Fuller 2020-3-26 17:17
            Fern_7: 請問為什么我把GooSeeker 導出的共詞矩陣表輸入進Ucinet 的時候失敗了,彈出“不能轉換(Dispatch)類型變量到類型(Double)”的窗口? ...
            輸入前編輯過數據表嗎?檢查一下數據表中有沒有空的單元格。建議加入集搜客qq群:645638422 ,把你要導入的表格發給管理員,我們檢查一下這個數據文件中是否有無效數據。也可以發email: info@gooseeker.com
            評論 Fern_7 2020-3-26 16:55
            請問為什么我把GooSeeker 導出的共詞矩陣表輸入進Ucinet 的時候失敗了,彈出“不能轉換(Dispatch)類型變量到類型(Double)”的窗口?
            評論 Fuller 2019-12-24 21:50
            因為大家覺得自己用excel的函數生成共詞矩陣有些麻煩,所以,GooSeeker文本分析軟件增加了社交網絡分析功能,可以一鍵導出共詞矩陣。請訪問:http://www.laborcompanion.com/res/softdetail_13.html

            查看全部評論(12)

            GMT+8, 2022-11-23 09:56

            欧美一级午夜福利免费区