共计 1841 个字符,预计需要花费 5 分钟才能阅读完成。
问题场景:同名节点引发的图谱混乱
最近用 CiteSpace 分析 2010-2022 年人工智能领域的文献时,发现一个典型问题:图谱中『Wang, Y』这个节点竟然合并了来自 12 篇不同论文的作者(实际是不同单位的同名研究者)。更麻烦的是,当这些同名作者的研究方向差异较大时,会导致聚类结果完全失真——比如把医学影像和机器人控制的文献强行归为一类。

通过检查 network/network.txt 文件,发现 CiteSpace 默认的命名规则是 姓氏 + 名字首字母,这在高频姓氏(如中文的王、张,英文的 Smith、Johnson)中尤其致命。
解决方案一:自定义命名规则
CiteSpace 允许通过 config/namerule.txt 文件定义节点命名规则。我们在项目目录下新建该文件,示例内容如下:
# 命名规则优先级:1. 机构缩写_姓氏_年份 2. 姓氏_名字首字母_年份
$InstitutionAbbr_$LastName_$Year
$LastName_$FirstNameInitial_$Year
实际操作步骤:
- 关闭 CiteSpace
- 在 config 文件夹创建 namerule.txt
- 按需编写规则(每行一个规则,从上到下尝试匹配)
- 重新生成图谱时勾选
Use Custom Naming Rules
注意:需要确保原始数据包含机构信息(建议从 WoS/CNKI 导出时选择全字段)。
解决方案二:Python 数据预处理
对于大规模文献数据,推荐先用 Python 清洗。以下是使用 pandas 的示例代码:
# -*- coding: utf-8 -*-
from pathlib import Path
import pandas as pd
# 读取原始数据
data_path = Path("input/raw_data.txt")
df = pd.read_csv(data_path, sep='\t', encoding='utf-8')
# 生成唯一作者标识:机构前两位 + 姓氏 + 年份
def gen_unique_name(row):
inst = row['机构'][:2] if pd.notna(row['机构']) else 'NA'
return f"{inst}_{row[' 作者 '].split(';')[0]}_{row[' 年份 ']}"
df['唯一标识'] = df.apply(gen_unique_name, axis=1)
# 保存处理结果
output_path = Path("output/cleaned_data.txt")
df.to_csv(output_path, index=False, encoding='utf-8')
解决方案三:调整聚类参数
在 CiteSpace 6.2.R3 版本中,gamma 参数(路径:Configuration > Cluster > Gamma)直接影响命名去重:
- 较低值(如 0.3):倾向保留原始名称
- 较高值(如 0.8):强制合并相似节点
建议首次分析时设置为 0.5,然后根据 cluster_summary.txt 中的 Silhouette 值调整。
避坑指南
中文编码问题
处理中文文献时,务必:
- 确认 Python 脚本添加
# -*- coding: utf-8 -*- - CiteSpace 导入数据时选择
UTF-8编码 - 避免在 namerule.txt 中使用中文标点
时间切片设置
如果设置了时间切片(Time Slicing),需在命名规则中加入 $Slice 变量,例如:
$LastName_$Year_$Slice
跨项目分析
不同项目建议:
- 使用独立文件夹存放数据
- 在命名规则中添加项目标识(如
$ProjectID) - 清理旧缓存(
data/和project/文件夹)
结果验证方法
检查 network.txt
用文本编辑器打开network/network.txt,搜索重复名称确认是否已消除。标准格式应为:
节点 ID\t 唯一名称 \t 频次 \t...
VOSviewer 交叉验证
- 在 CiteSpace 导出
network_edges.tsv和network_nodes.tsv - 用 VOSviewer 导入并检查聚类分布
- 对比两者聚类相似度(理想情况应 >85%)
结语
通过这三种方法的组合应用,我的最新图谱终于能清晰区分清华大学的 Wang_Y_2020 和加州大学的 Wang_Y_2022 了。建议大家在长期项目中建立标准化命名体系(如包含机构缩写 + 年份),这会显著提升后续 meta-analysis 的准确性。如果遇到特殊案例,可以到 CiteSpace 官方论坛(版本 6.2.R3+)查阅 Naming Convention 专题讨论。
