You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中绘制词聚类图?附相关数据示例

基于相关性矩阵的词聚类图绘制方案

核心思路

要实现相关性高的词聚集的聚类效果,我们可以基于词的相关性矩阵,将1 - 相关性作为距离度量(相关性越高,距离越小),再通过层次聚类算法对词进行分组,最后可视化聚类结果。

基础实现(仅树状图)

以下是用R基础包完成的代码:

# 加载数据
dat <- data.frame(word1=c(0.02, -0.1, 0.5, 0.06, -0.03, 0.8),
                  word2=c(0.7, 0.01, 0.05, -0.23, -0.06, 0.13),
                  word3=c(-0.52, 0.12, 0.46, 0.08, -0.01, -0.17),
                  word4=c(0.69, 0.34, -0.11, -0.58, -0.26, 0.35),
                  word5=c(0.04, 0.08, 0.21, -0.15, -0.04, -0.32),
                  word6=c(0.39, 0.15, -0.21, 0.59, 0.28, 0.19))

# 计算相关性矩阵
cor_matrix <- cor(dat)

# 将相关性转换为距离(1 - 相关性,确保高相关的词距离近)
dist_matrix <- as.dist(1 - cor_matrix)

# 层次聚类,这里用ward.D2方法(最小化组内方差)
hc <- hclust(dist_matrix, method = "ward.D2")

# 绘制聚类树状图
plot(hc, 
     main = "词相关性聚类树状图",
     xlab = "词",
     ylab = "聚类距离(1-相关性)",
     cex = 0.8) # 调整标签大小

进阶可视化(热图+聚类树)

如果需要同时展示相关性热图和聚类结果,使用pheatmap包更直观:

# 先安装并加载pheatmap包(首次使用需安装)
# install.packages("pheatmap")
library(pheatmap)

# 绘制热图,同时展示行(词)的聚类树
pheatmap(cor_matrix,
         clustering_distance_rows = as.dist(1 - cor_matrix),
         clustering_method = "ward.D2",
         main = "词相关性热图与聚类",
         treeheight_row = 50, # 调整行聚类树高度
         cellwidth = 30, cellheight = 30) # 调整单元格大小

说明

  • 聚类方法可以根据需求调整:比如complete(最长距离法)、average(平均距离法)等,ward.D2通常能得到更紧凑的聚类组。
  • 树状图中,分支越短的词,相关性越高;分支合并越早的组,整体相关性越高。

内容的提问来源于stack exchange,提问作者user21390049

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:39:59