close

網絡圖在文獻計量學領域應用比較廣泛,比如我們想看哪些詞語在同一個文檔中出現,這說明這兩個詞語可能有一定的關聯性。使用自帶數據進行網絡圖的繪製。

1.首先進行準備數據和清洗數據,成為了兩列帶有標籤和對應詞語的tibble
# 加載需要的包library(tidyverse)library(akc)library(tidytext)library(widyr)library(ggraph)library(igraph)# 準備數據data <- bibli_data_table%>% # 選擇id和keyword列 select(id,keyword)%>% # 數據的整理 unnest_tokens(output = keyword, input = keyword, token = strsplit, split=";")data

2.接下來對上述整理好的文本進行匯總,拿第一行來說,關鍵詞austerity和community capacity共同出現的頻次為1
# 通過widyr包的pairwise_count函數# 進行同一個文檔的所有關鍵詞進行匯總total_data <- data%>%pairwise_count(keyword,id,upper=FALSE)

3.接下來就是對這些數據進行網絡的構建,也就是使用igraph包的graph_from_data_frame()函數將數據框轉化為圖結構

# 對上述信息進行網絡構建network <- total_data%>% # directed = FALSE表明無方向 graph_from_data_frame(directed = FALSE)%>% as_tbl_graph()

4.最後就是進行網絡的可視化,由於數據較多,所以只能截取一部分來進行繪圖。引入degree的概念,也就是如果一個節點和n個節點相連,他的度就是n。
# 網絡的可視化vis_network <- network%>% mutate(degree = centrality_degree())

5.最後將節點數據和邊的數據進行繪圖即可
vis_network%>% arrange(-degree)%>% slice(1:50)%>% ggraph(layout = "fr")+ geom_edge_link(aes(edge_alpha = n),show.legend = FALSE)+ geom_node_point(aes(color=name,size = degree))+ geom_node_text(aes(label = name),repel = TRUE)+ theme_void()+ theme(legend.position = "none")

6.怎麼樣,還行嗎?

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()