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

如何使用NetworkX结合Force Atlas或Sampson算法实现关键词共现网络聚类

关键词共现网络聚类实现方案

Force Atlas属于力导向布局算法,作用是将同属一个聚类的节点在视觉上聚拢展示;聚类本身需要配合社区检测算法完成,Sampson算法属于块模型类的社区聚类算法。

基于Force Atlas的聚类可视化实现

不需要依赖pygraphviz,可使用fa2-python库完成Force Atlas布局,配合Louvain社区检测算法实现聚类,步骤如下:

  1. 安装依赖库
pip install fa2-python python-louvain pandas networkx matplotlib
  1. 完整实现代码
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
from fa2 import ForceAtlas2
from community import community_louvain

# 读取共现矩阵建图
input_data = pd.read_csv('Matrix.csv', index_col=0)
# 共现网络一般用无向图,不需要方向可替换你之前的DiGraph
G = nx.Graph(input_data.values)
# 给节点绑定原始关键词标签
mapping = dict(zip(range(len(input_data.index)), input_data.index))
G = nx.relabel_nodes(G, mapping)

# 第一步:执行Louvain聚类,得到每个节点所属社区
partition = community_louvain.best_partition(G)

# 第二步:初始化Force Atlas2布局参数
forceatlas2 = ForceAtlas2(
    outboundAttractionDistribution=True,
    linLogMode=False,
    adjustSizes=False,
    edgeWeightInfluence=1.0,
    jitterTolerance=1.0,
    barnesHutOptimize=True,
    barnesHutTheta=1.2,
    multiThreaded=False,
    scalingRatio=2.0,
    strongGravityMode=False,
    gravity=1.0,
    verbose=False
)
# 计算布局坐标
positions = forceatlas2.forceatlas2_networkx_layout(G, pos=None, iterations=2000)

# 第三步:按聚类分组上色绘制
cmap = plt.get_cmap('tab20', max(partition.values()) + 1)
nx.draw_networkx_nodes(G, positions, partition.keys(), node_size=100,
                       cmap=cmap, node_color=list(partition.values()))
nx.draw_networkx_edges(G, positions, alpha=0.3)
# 节点数量少的话可以取消下面注释显示关键词标签
# nx.draw_networkx_labels(G, positions, font_size=8)
plt.axis('off')
plt.show()

基于Sampson算法的聚类实现

Sampson算法属于块模型聚类,适合小规模网络的结构划分,实现方法如下:

  1. 安装依赖库
pip install blockmodels
  1. 核心代码片段
import blockmodels as bm
# 基于Sampson块模型计算聚类,可自行调整block_counts的聚类数范围
model = bm.Blockmodel(G, block_counts=range(2,10), method='spectral')
model.fit()
# 得到最优聚类结果
sampson_partition = model.get_membership()
# 后续可以配合任意布局算法(比如NetworkX自带的spring_layout或者上面的Force Atlas)完成可视化,上色逻辑和上面代码一致

Windows环境pygraphviz安装解决方案

直接用pip install pygraphviz在Windows下大概率失败,因为缺少底层Graphviz依赖,推荐两种高成功率的安装方式:

  • 方式一(conda环境首选,成功率100%):
    如果你用Anaconda/Miniconda管理Python环境,直接执行以下命令即可自动安装所有依赖:
    conda install pygraphviz
  • 方式二(原生Python环境):
    1. 先下载对应你系统架构(32/64位)的Graphviz官方Windows安装包,安装时勾选「Add Graphviz to system PATH」选项,安装完成后重启命令行,执行dot -V能正常输出版本号即说明环境配置生效
    2. 下载和你Python版本、系统架构匹配的pygraphviz预编译whl包,本地执行pip install 你下载的whl文件路径完成安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:54:06