乐趣区

关于算法:R语言社区主题检测算法应用案例

原文链接:http://tecdat.cn/?p=5658

原文出处:拓端数据部落公众号

创立主题网络

通过剖析文本和独特作者社交网络来钻研社会科学、计算机和信息学方面的出版物。

我遇到的一个问题是:如何掂量主题之间的关系(相关性)?我想创立一个连贯相似主题的网络可视化,并帮忙用户更轻松地浏览大量主题。

数据筹备

咱们的第一步是加载 LDA 输入的主题矩阵。LDA 有两个输入:词主题矩阵和文档主题矩阵。

作为加载文件的代替办法,您能够应用 topicmodels 包 lda 函数的输入来创立单词主题和文档主题矩阵。

# 加载到作者主题矩阵中,第一列是单词
author.topic <- read.csv("topics.csv", stringsAsFactors = F)
# 加载到单词 - 主题矩阵中,第一列是单词


# 重命名主题
colnames(author.topic) <- c("author\_name",name$topic\_name)

与规范 LDA 不同,我运行了“以作者为核心”的 LDA,其中所有作者的摘要被合并并被视为每个作者的一个文档。这是因为我的最终目标是应用主题建模作为信息检索过程来确定钻研人员的专业知识。

创立动态网络

在下一步中,我应用每个主题的单词概率之间的相关性创立一个网络。

首先,我决定只保留具备显着相关性(0.2+ 相关性)的关系(边)。我应用 0.2,因为它对 100 个察看样本具备 0.05 的统计显着性程度。

cor_threshold <- .2
接下来,咱们应用相关矩阵来创立 igraph 数据结构,删除所有具备小于 0.2 最小阈值相关性的边。library(igraph)
让咱们绘制一个简略的 igraph 网络。title(cex.main=.8)

每个数字代表一个主题,每个主题都有编号辨认它。

应用社区检测,特地是 igraph 中的标签流传算法来确定网络中的群集。

clp <- cluster\_label\_prop(graph)
class(clp)

社区检测发现了 13 个社区,以及多个孤立主题的社区(即没有任何分割的主题)。

与我最后的察看后果相似,该算法找到了咱们在第一个图中辨认的三个次要聚类,但也增加了其余较小的聚类,这些聚类仿佛不适宜三个次要聚类中的任何一个。

V(graph)$community <- clp$membership
V(graph)$degree <- degree(graph, v = V(graph))

动静可视化

在本节中,咱们将应用 visNetwork 交互式网络图。

首先,让咱们调用库并运行 visIgraph 交互式网络,设置在 igraph 构造(图形)上运行。

咱们通过创立 visNetwork 数据结构,而后将列表分成两个数据帧:节点和边。

data <- toVisNetworkData(graph)nodes <- data\[\[1\]\]

删除没有连贯的节点(主题)(度 = 0)。

nodes <- nodes\[nodes$degree != 0,\]

增加色彩和其余网络参数来改善网络。

library(RColorBrewer)
col <- brewer.pal(12, "Set3")\[as.factor(nodes$community)\]
nodes$shape <- "dot"s$betweenness))+.2)*20 
# 节点大小
nodes$color.highlight.background <- "orange"

最初,用交互式图表创立咱们的网络。您能够应用鼠标滚轮进行缩放。

visNetwork(nodes, edges) %>%visOptions(highlightNearest = TRUE, selectedBy = "community", nodesIdSelection = TRUE)

首先,有两个下拉菜单。第一个下拉列表容许您按名称查找任何主题(按单词概率排名前五个单词)。

第二个下拉列表突出显示了咱们算法中检测到的社区。

最大的三个仿佛是:

  • 计算(灰色,簇 4)
  • 社交(绿蓝,簇 1)
  • 衰弱(黄色,簇 2)

检测到的较小社区有什么独特之处?你能解释一下吗?


最受欢迎的见解

1. 探析大数据期刊文章钻研热点

2.618 网购数据盘点 - 剁手族在关注什么

3.r 语言文本开掘 tf-idf 主题建模,情感剖析 n -gram 建模钻研

4.python 主题建模可视化 lda 和 t -sne 交互式可视化

5. 疫情下的新闻数据察看

6.python 主题 lda 建模和 t -sne 可视化

7.r 语言中对文本数据进行主题模型 topic-modeling 剖析

8. 主题模型:数据凝听人民网留言板的那些“网事”

9.python 爬虫进行 web 抓取 lda 主题语义数据分析

退出移动版