共计 1929 个字符,预计需要花费 5 分钟才能阅读完成。
背景痛点
在文献计量分析中,使用 CiteSpace 进行关键词或文献聚类是常见操作。但单次聚类常常面临两大问题:

- 主题混杂 :当研究领域交叉性强时,单个聚类可能包含多个子主题。比如在 ” 机器学习 ” 聚类中,可能混杂着 ” 深度学习 ”、” 强化学习 ” 等不同分支
- 粒度不均 :受算法参数限制,部分聚类过大(如包含 50+ 节点)而另一些过小(仅 3 - 5 个节点),影响后续分析
典型场景示例:分析人工智能领域文献时,首次聚类得到 ” 自然语言处理 ” 这个大类别,实际需要进一步拆分为 ” 机器翻译 ”、” 文本生成 ” 等细分方向
技术验证
经测试 CiteSpace6.2.R4 版本,发现其原生界面不支持直接对聚类结果二次操作,但可通过数据导出 + 外部处理 + 重新导入实现:
- 算法对比 :
- 首次聚类默认使用 Louvain 算法(适合快速发现社区结构)
-
二次聚类推荐 Leiden 算法(改进社区划分质量,尤其适合处理小规模网络)
-
效果差异 :
| 指标 | 直接聚类 | 二次聚类 |
|—————|———-|———-|
| 模块度 (Q 值) | 0.72 | 0.68 |
| 轮廓系数 | 0.55 | 0.62 |
| 聚类大小方差 | 高 | 低 |
实现方案
步骤 1:数据导出与预处理
从 CiteSpace 导出两种关键数据:
cluster_membership.csv(包含节点 - 聚类归属关系)cooccurrence_matrix.csv(共现矩阵)
使用 Python 进行数据清洗:
import pandas as pd
import numpy as np
# 读取聚类数据
df_cluster = pd.read_csv('cluster_membership.csv')
# 筛选需要细分的聚类(示例:处理第 5 号聚类)target_cluster = df_cluster[df_cluster['cluster'] == 5]
# 加载共现矩阵并过滤
matrix = pd.read_csv('cooccurrence_matrix.csv', index_col=0)
sub_matrix = matrix.loc[target_cluster['node'], target_cluster['node']]
# 处理缺失值
sub_matrix = sub_matrix.fillna(0)
步骤 2:二次聚类实施
关键参数配置建议:
- 相似度阈值 :通常设为原始矩阵的 75% 分位数
- 最小节点数 :建议≥5 以保证统计意义
- 分辨率参数 :Leiden 算法中 1.0 为默认值,增大可获更多小聚类
from leidenalg import find_partition
import igraph as ig
# 转换为 igraph 对象
g = ig.Graph.Weighted_Adjacency(sub_matrix.values.tolist())
# 执行 Leiden 聚类
partition = find_partition(g, partition_type='RBConfiguration',
resolution_parameter=1.2)
# 保存结果
for i, community in enumerate(partition):
target_cluster.loc[community, 'new_cluster'] = f'5_{i}'
可视化优化
二次聚类后的可视化挑战主要来自:
- 标签重叠(特别是子聚类间距过近时)
- 颜色区分度不足
Gephi 解决方案 :
- 使用 ”Multilevel” 布局先定位主聚类
- 对每个主聚类启用 ”Expansion” 插件进行局部展开
- 颜色编码采用:
- 一级聚类:色相差异(如红 / 蓝 / 绿)
- 二级聚类:饱和度差异(如深红 / 浅红)
避坑指南
过度聚类预防
- 监控模块度 Q 值:当 <0.3 时应停止继续细分
- 设置最小聚类规模(建议不少于原始节点的 5%)
术语歧义处理
- 同义词合并 :建立领域术语表提前归一化
- 词义消歧 :
# 示例:区分 "transformer" 的两种含义 context_keywords = {'电力': ['voltage', 'power'], 'NLP': ['bert', 'attention'] } - 人工校验 :对边界节点进行专家复核
内存管理
- 处理大型矩阵时使用稀疏矩阵格式:
from scipy import sparse sparse_matrix = sparse.csr_matrix(sub_matrix) - 分块处理超过 10,000 节点的网络
测试资源
示例数据集与配置文件已上传: 下载链接
包含:
– 预处理好的 AI 领域文献数据
– 参数模板(含注释说明)
– Gephi 样式配置文件
通过这种二次聚类方法,我们在新冠文献分析中成功将 ” 治疗 ” 大类细分为 ” 药物研发 ”、” 疫苗临床试验 ” 等子类,使研究热点演化路径更加清晰。建议首次使用时先在小数据集(<500 节点)上验证参数效果,再扩展到全量分析。
正文完
发表至: 未分类
近一天内
