2017-09-06 4 views
0

주제 이상의 단어 배포판 네트워크 (주제 관련)를 플로팅하려고합니다. 이 코드 [source]를 사용하여 :인접 주제 그래프

post <- topicmodels::posterior(ldaOut) 

cor_mat <- cor(t(post[["terms"]])) 
cor_mat[ cor_mat < .05 ] <- 0 
diag(cor_mat) <- 0 

graph <- graph.adjacency(cor_mat, weighted=TRUE, mode="lower") 
graph <- delete.edges(graph, E(graph)[ weight < 0.05]) 

E(graph)$edge.width <- E(graph)$weight*20 
V(graph)$label <- paste("Topic", V(graph)) 
V(graph)$size <- colSums(post[["topics"]]) * 15 

par(mar=c(0, 0, 3, 0)) 
set.seed(110) 
plot.igraph(graph, edge.width = E(graph)$edge.width, 
    edge.color = "orange", vertex.color = "orange", 
    vertex.frame.color = NA, vertex.label.color = "grey30") 
title("Strength Between Topics Based On Word Probabilities", cex.main=.8) 

샘플의 cor_mat 데이터 :

  1   2   3   4   5   6   7  ... 
1 0.00000000 0.00000000 0.00000000 0.09612831 0.00000000 0.17248020 0.00000000 
2 0.00000000 0.00000000 0.07206496 0.00000000 0.00000000 0.05755187 0.00000000 
3 0.00000000 0.07206496 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
4 0.09612831 0.00000000 0.00000000 0.00000000 0.08459681 0.00000000 0.06895900 
5 0.00000000 0.00000000 0.00000000 0.08459681 0.00000000 0.00000000 0.00000000 
6 0.17248020 0.05755187 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
7 0.00000000 0.00000000 0.00000000 0.06895900 0.00000000 0.00000000 0.00000000 
8 0.00000000 0.00000000 0.00000000 0.00000000 0.54849308 0.00000000 0.00000000 
9 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.09745720 0.00000000 
10 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
11 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
12 0.00000000 0.00000000 0.00000000 0.10329825 0.00000000 0.14057310 0.00000000 
13 0.14664201 0.00000000 0.00000000 0.00000000 0.05803984 0.00000000 0.00000000 
14 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
15 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
16 0.00000000 0.00000000 0.10290656 0.00000000 0.00000000 0.00000000 0.06293238 
17 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
18 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
19 0.00000000 0.00000000 0.00000000 0.00000000 0.33483481 0.00000000 0.00000000 
20 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
21 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 
22 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.27720724 0.00000000 
23 0.12487435 0.14806837 0.00000000 0.10355990 0.00000000 0.05086977 0.00000000 
24 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.06622769 0.00000000 

불행하게도, 줄거리는 다음과 같습니다 enter image description here

더 우아한 주제의 네트워크를 만드는 방법에 대한 어떤 생각 주제를 서로 겹치게하기보다는 주제를 연결하는 것을 보여 주는가?

+0

포스트 예제 데이터'ldaOut'이

... E(graph)$edge.width <- E(graph)$weight* 5 V(graph)$label <- paste("Topic", V(graph)) V(graph)$size <- colSums(post[["topics"]]) * 2 ... 

그리고 그 결과 같은 수 있습니다. – PoGibas

+0

데이터 샘플로 질문을 업데이트했습니다. – Sultan

+0

'post' 란 무엇입니까? – PoGibas

답변

0

간단한 해결책은 중복 문제를 피하기 위해 숫자 w eight*20colSums(post[["topics"]])*15을 작은 수로 변경하는 것입니다. 코드는 당신의 enter image description here