R中使用Igraph的字图

问题描述

我有一个简单的问题。我有 2 个文本文档,我想通过 Igraph 或其他类似的库制作每个文档的图表。我实际上想制作一个大图,将两个文档的两个子图结合起来。我尝试了以下代码。但是,

> Topic1 = c("I love Pakistan")
> Topic2 = c("Pakistan played well")
> src = data.frame(Topic1,Topic2)
> mycorpus = Corpus(VectorSource(src))
> tdm = as.matrix(TermDocumentMatrix(mycorpus))

现在,不知道接下来该怎么办。 Topic1 的第一个图将有 3 个节点和 3 个边,类似地,第二个图 Topic2 将有 3 个节点和 3 个边。现在,我想将这两个图合并为一个图。大图现在将有 5 个节点和 6 条边,其中,节点巴基斯坦将有 4 条边。

有人可以帮我吗?

解决方法

最后,我自己得到了解决方案。首先,我们应该从 Topic1 制作一个术语图。我们将使用频率大于 0 的每个术语。

tdm = as.matrix(TermDocumentMatrix(my))
x = names(tdm[,1][tdm[,1]>0])
k = t(combn(x,2))
g = graph_from_edgelist(k,directed = FALSE)
plot(g)

x2 = names(tdm[,2][tdm[,2]>0])
k2 = t(combn(x2,2))
g2 = graph_from_edgelist(k2,directed = FALSE)
plot(g2)

E1 = get.edgelist(g)
E2 = get.edgelist(g2)
E3 = rbind(E1,E2)
g3 = graph_from_edgelist(E3,directed = FALSE)
plot(g3)
g3 = simplify(g3,remove.multiple = TRUE,remove.loops = TRUE)