共计 1435 个字符,预计需要花费 4 分钟才能阅读完成。
问题场景:同名节点引发的混乱
最近用 CiteSpace 分析近十年机器学习领域文献时,发现图谱中出现大量重叠节点。检查后发现:2015 年和 2020 年同名的 ”Wang L” 作者被合并成一个节点,导致共现关系完全失真。更麻烦的是,同名机构 ”University of California” 在不同校区的发文被错误聚合,直接影响聚类结果的可靠性。

技术解决方案
方案 1:自定义命名规则
CiteSpace 通过 config/namerule.txt 控制节点显示名称。默认规则仅显示第一作者,我们可以改为包含年份的命名方式:
# namerule.txt 示例
%AUTHOR_FIRST%-%YEAR%
实际操作步骤:
- 关闭 CiteSpace,备份原始 namerule.txt
- 用记事本编辑该文件,添加上述规则
- 保存时确保编码为 UTF-8
- 重新生成图谱时会看到类似 ”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 值 (γ) 控制聚类命名的区分度:
- γ 值范围通常设为 0 -1(CiteSpace 6.2.R4 文档第 87 页)
- 值越大命名越具体,建议从 0.7 开始尝试
- 配合调整「Minimum Spanning Tree」可进一步分离重叠节点
避坑指南
中文文献处理
- 始终使用 UTF- 8 编码保存文件
- 在 CiteSpace 启动脚本中添加
-Dfile.encoding=UTF-8参数 - 检查中文引号是否变成问号(常见于 WoS 数据)
时间切片设置
- 命名中的年份依赖时间切片(Time Slicing)
- 建议切片间隔≤2 年,避免跨时段合并
- 勾选「Slice Per Year」保持时间精度
跨项目分析
- 每个项目使用独立工作目录
- 在
project.properties中添加项目 ID 前缀 - 导入数据前清空
data/和project/文件夹
结果验证方法
检查 network.txt
- 打开
network/network.txt - 搜索
*Vertices部分 - 确认每个节点 ID 对应唯一名称
VOSviewer 交叉验证
- 在 CiteSpace 导出
network_*.net文件 - 用 VOSviewer 加载并对比聚类结构
- 重点关注同名节点是否被正确处理
写在最后
解决命名重复问题后,我的文献图谱清晰度提升了 60% 以上。特别建议在处理大型数据集时,组合使用 Python 预处理和参数调整方案。最近 CiteSpace 更新到 6.2.R4 版本,对中文支持有所改进,但仍需注意编码问题。如果遇到特殊字符显示异常,不妨试试先用 Python 做标准化处理。
正文完
发表至: 未分类
近一天内
