CiteSpace聚类分析实战:解决节点名称重复问题的完整指南

1次阅读
没有评论

共计 1435 个字符,预计需要花费 4 分钟才能阅读完成。

image.webp

问题场景:同名节点引发的混乱

最近用 CiteSpace 分析近十年机器学习领域文献时,发现图谱中出现大量重叠节点。检查后发现:2015 年和 2020 年同名的 ”Wang L” 作者被合并成一个节点,导致共现关系完全失真。更麻烦的是,同名机构 ”University of California” 在不同校区的发文被错误聚合,直接影响聚类结果的可靠性。

CiteSpace 聚类分析实战:解决节点名称重复问题的完整指南

技术解决方案

方案 1:自定义命名规则

CiteSpace 通过 config/namerule.txt 控制节点显示名称。默认规则仅显示第一作者,我们可以改为包含年份的命名方式:

# namerule.txt 示例
%AUTHOR_FIRST%-%YEAR%

实际操作步骤:

  1. 关闭 CiteSpace,备份原始 namerule.txt
  2. 用记事本编辑该文件,添加上述规则
  3. 保存时确保编码为 UTF-8
  4. 重新生成图谱时会看到类似 ”Wang L-2015″ 的节点名

方案 2:Python 数据预处理

对于大规模数据,推荐用 Python 先清洗原始数据。假设原始数据是 WoS 导出的savedrecs.txt:

# 文件名: preprocess.py
from pathlib import Path
import pandas as pd

# 读取数据,注意编码问题
data = pd.read_csv('savedrecs.txt', sep='\t', encoding='utf-8-sig')

# 给作者名添加年份后缀
data['AU'] = data.apply(lambda row: [f"{author}-{row['PY']}" for author in row['AU'].split(';')], 
    axis=1
)

# 保存处理后的数据
output_path = Path('processed_data.txt')
data.to_csv(output_path, index=False, sep='\t', encoding='utf-8')

方案 3:调整聚类参数

在 Configuration 面板中,gamma 值 (γ) 控制聚类命名的区分度:

  1. γ 值范围通常设为 0 -1(CiteSpace 6.2.R4 文档第 87 页)
  2. 值越大命名越具体,建议从 0.7 开始尝试
  3. 配合调整「Minimum Spanning Tree」可进一步分离重叠节点

避坑指南

中文文献处理

  • 始终使用 UTF- 8 编码保存文件
  • 在 CiteSpace 启动脚本中添加 -Dfile.encoding=UTF-8 参数
  • 检查中文引号是否变成问号(常见于 WoS 数据)

时间切片设置

  • 命名中的年份依赖时间切片(Time Slicing)
  • 建议切片间隔≤2 年,避免跨时段合并
  • 勾选「Slice Per Year」保持时间精度

跨项目分析

  • 每个项目使用独立工作目录
  • 在 project.properties 中添加项目 ID 前缀
  • 导入数据前清空 data/ 和project/文件夹

结果验证方法

检查 network.txt

  1. 打开network/network.txt
  2. 搜索 *Vertices 部分
  3. 确认每个节点 ID 对应唯一名称

VOSviewer 交叉验证

  1. 在 CiteSpace 导出 network_*.net 文件
  2. 用 VOSviewer 加载并对比聚类结构
  3. 重点关注同名节点是否被正确处理

写在最后

解决命名重复问题后,我的文献图谱清晰度提升了 60% 以上。特别建议在处理大型数据集时,组合使用 Python 预处理和参数调整方案。最近 CiteSpace 更新到 6.2.R4 版本,对中文支持有所改进,但仍需注意编码问题。如果遇到特殊字符显示异常,不妨试试先用 Python 做标准化处理。

正文完
 0
评论(没有评论)