Đang cố gắng tìm các cộng đồng trong dữ liệu tweet. Sự tương tự cosin giữa các từ khác nhau tạo thành ma trận kề. Sau đó, tôi tạo ra đồ thị ra khỏi ma trận kề. Hình ảnh biểu đồ là nhiệm vụ ở đây:Làm thế nào để phát tán biểu đồ cộng đồng được thực hiện bằng cách sử dụng gói igraph trong R
# Document Term Matrix
dtm = DocumentTermMatrix(tweets)
### adjust threshold here
dtms = removeSparseTerms(dtm, 0.998)
dim(dtms)
# cosine similarity matrix
t = as.matrix(dtms)
# comparing two word feature vectors
#cosine(t[,"yesterday"], t[,"yet"])
numWords = dim(t)[2]
# cosine measure between all column vectors of a matrix.
adjMat = cosine(t)
r = 3
for(i in 1:numWords)
{
highElement = sort(adjMat[i,], partial=numWords-r)[numWords-r]
adjMat[i,][adjMat[i,] < highElement] = 0
}
# build graph from the adjacency matrix
g = graph.adjacency(adjMat, weighted=TRUE, mode="undirected", diag=FALSE)
V(g)$name
# remove loop and multiple edges
g = simplify(g)
wt = walktrap.community(g, steps=5) # default steps=2
table(membership(wt))
# set vertex color & size
nodecolor = rainbow(length(table(membership(wt))))[as.vector(membership(wt))]
nodesize = as.matrix(round((log2(10*membership(wt)))))
nodelayout = layout.fruchterman.reingold(g,niter=1000,area=vcount(g)^1.1,repulserad=vcount(g)^10.0, weights=NULL)
par(mai=c(0,0,1,0))
plot(g,
layout=nodelayout,
vertex.size = nodesize,
vertex.label=NA,
vertex.color = nodecolor,
edge.arrow.size=0.2,
edge.color="grey",
edge.width=1)
Tôi chỉ muốn có thêm khoảng cách giữa các cụm/cộng đồng riêng biệt.
xin vui lòng giới thiệu g hoặc một ví dụ về nó –
Bạn đã thử thay đổi diện tích ô? Mặc định là 'area = vcount (graph)^2' (http://www.inside-r.org/packages/cran/igraph/docs/layout) –
Chỉ cần cập nhật với mã và đồ thị mới nhất. – magarwal