限时福利领取


一、为什么读图总踩坑:三个真实场景

第一次把 CiteSpace 跑完,看到五颜六色的大球小球,很多人直接截图写“某领域研究热点如图”。结果审稿人一句“聚类命名依据何在?”就把人问住。这种尴尬背后,其实是计量学基础缺位带来的“图谱误读综合征”。我把自己和身边同事踩过的坑浓缩成三个场景,看完就能对号入座。

  1. 场景 A:把“高频关键词”当成“研究热点”
    拿到图谱后,第一眼就看节点大小,直接写“人工智能”最大,所以它是热点。实际上,节点直径只反映共现频次,没考虑中介中心性(betweenness centrality)与突现值(burst),容易把“老掉牙”的宽泛词当成新潮流。

  2. 场景 B:聚类编号当排名
    软件默认把聚类按规模标为 #0、#1、#2……有人就在文章里写“#0 是核心聚类,#5 不重要”。其实编号只是规模序,与学术价值无关;真正该看的是 silhouette 值(>0.7 才有说服力)和 LLR 算法提取的命名短语。

  3. 场景 C:时间切片错位
    为了“图好看”,把切片调成 1 年,结果 2000—2023 年出现 24 个切片,网络稀疏得一塌糊涂;反过来设成 5 年,又把 2020 年后的爆发信号平均掉了。时间窗错位,演化路径直接失真。

场景痛点

二、CiteSpace vs VOSviewer:聚类算法与可视化差异

选工具前先问自己:到底想看“关系”还是“演化”?下面这张对照表把核心差异一次说清。

维度 CiteSpace 6.2.R4 VOSviewer 1.6.19
聚类算法 基于 LLR/LSI 的谱聚类 + Pathfinder 修剪 基于模块度(modularity)的 VOS 聚类
网络修剪 默认启用 Pathfinder,保持全局连通且去冗余边 主要靠共现阈值过滤,冗余边较多
可视化 时间线视图、突现视图、双图叠加 主要提供密度图、叠加图
交互性 可拖拽、节点可合并、可导出 NetDraw 拖拽较弱,侧重出版级矢量图
上手曲线 参数多、需调优 默认参数即可出图

一句话总结:想讲“故事”——谁突然爆发、谁连接不同阵营——用 CiteSpace;只想快速出一张“漂亮关系云”交差,VOSviewer 更轻量。

三、核心实现拆解:从原始矩阵到聚类命名

下面流程图把“黑箱”拆成 5 步,每步都给出可操作的检查点,照着做至少能保证图不会跑歪。

  1. 数据预处理
    从 Web of Science 导出“全记录与引文”纯文本,用 Python 去重、补全作者关键词,统一大小写,合并同义词(见下一节代码)。

  2. 构建共词矩阵
    CiteSpace 内部会生成 keyword_coocurrence.csv,行列都是关键词,值是共现次数。这里注意勾选“Term 来源”只选 Author Keywords,避免被 Keywords Plus 的泛化词带偏。

  3. Pathfinder 网络修剪
    该算法保留最大生成树并删减冗余边,使网络密度自动降到 1% 左右,既保持连通又提高可读性。Silhouette 值若低于 0.5,可适当调高 links strength 阈值再跑一次。

  4. LLR 算法聚类
    对数矩阵做谱分解,提取特征向量后按 cosine 相似度分组。LLR(log-likelihood ratio)对每个聚类计算短语频率,输出前 5 个术语作为候选命名。记得手动核对,把“student* learn*”这类通配符短语改成自然语言。

  5. 可视化与解读
    在“Timeline”视图里,横向坐标是年份,纵向是聚类;突现词用红色外圈标出。写论文时,先描述聚类演化,再对突现词做解释,最后把中介中心性 >0.1 的节点拎出来讨论“桥梁概念”。

流程示意

四、Python 数据清洗代码片段

以下脚本在 Python 3.10 下通过,依赖 pandas、nltk 和 pyspellchecker。核心任务三件套:去停用词、合并同义词、统一单复数。

# pip install pandas nltk spellchecker
import pandas as pd
from nltk.corpus import stopwords
from spellchecker import SpellChecker

stop = set(stopwords.words('english'))
spell = SpellChecker(language='en')

def normalize(word):
    word = word.lower().strip()
    # 单复数归并示例
    if word.endswith('ies'):
        word = word[:-3] + 'y'
    elif word.endswith('s'):
        word = word[:-1]
    return word

def clean_keywords(keyword_str):
    if pd.isna(keyword_str):
        return ''
    kw_list = [normalize(k) for k in keyword_str.split(';')]
    kw_list = [k for k in kw_list if k and k not in stop and len(k) > 2]
    # 同义词映射表,按需扩充
    synonym = {'machine learning': 'ml', 'artificial intelligence': 'ai'}
    kw_list = [synonym.get(k, k) for k in kw_list]
    return ';'.join(list(set(kw_list)))

df = pd.read_csv('wos_raw.csv')
df['Author_Keywords_Clean'] = df['Author Keywords'].apply(clean_keywords)
df.to_csv('wos_clean.csv', index=False)

跑完脚本再把 wos_clean.csv 喂给 CiteSpace,共词网络会干净不少。

五、参数调优实战:g-index、时间切片与阈值

  1. g-index(引文增益指数)
    默认 k=25,意思是只保留年度被引前 25 的文献节点。若领域小众,可把 k 降到 15;热门领域则可提到 50。判断标准:跑完后节点数控制在 300–500,既保证覆盖又避免过拟合。

  2. 时间切片(Time Slicing)
    跨度 20 年以上建议 2–3 年一切片;10 年以内可 1 年一切片。每一切片最少文献量(Select Citers)≥ 50 篇,否则网络太稀疏。可在 Project 参数里勾选 Prune slice networksPrune merged network 双保险。

  3. 共现阈值(Top N/Top L%)
    关键词网络常用 Top N=50 或 Top 10%,按出现频次截断。若出现“孤岛”节点过多,改用 g-index 模式,让引文权重介入,网络连通度会明显提升。

  4. 网络修剪强度
    如果 silhouette <0.5,把 Pathfinder 关掉再跑一次,对比两图,选聚类更紧凑的一张。多数情况下 Pathfinder 能提升 0.1–0.2 的 silhouette,但极端稀疏数据会适得其反。

六、避坑指南:五个高频报错与急救方案

  1. 节点重叠到看不清
    VisualizationsLayout 里把 Repulsion 从 0.1 提到 0.3,或导出 .net 文件到 Gephi 用 ForceAtlas2 重新布局。

  2. 聚类命名全是“algorithm、model、system”
    说明 LLR 没抓到短语。解决:回数据源检查是否只勾了 Keywords Plus,改回 Author Keywords;或在 ClusterLabel ClustersLSI 再跑一遍,通常能挖出长短语。

  3. silhouette 值全灰
    聚类内部相似度不足,网络还太粗。提高 links 阈值,或把 Pruning 选为 Minimum Spanning Tree 先简化。

  4. 突现词(Burst)检测为零
    年份跨度太短或切片内文献量太少,导致 Poisson 检验不显著。把最小持续时间(Minimum Duration)从 2 降到 1,再试。

  5. 导出图片发虚
    CiteSpace 默认 PNG 分辨率 96 dpi。正式出版请 FileSave AsSVG,再丢进 Illustrator 改 600 dpi。

七、延伸思考:时序网络与突变检测的进阶玩法

当你已经能熟练解释“聚类 #3 在 2018 年突然爆发”之后,可以往两个方向再深挖:

  • 时序网络(Temporal Network)
    把共词边加上“首次共现时间戳”,用 Python 的 networkx 构建动态图,计算边权重随时间衰减,看哪些连接从短暂爆红到长期沉淀,从而区分“炒作”与“基石”概念。

  • 突变检测(Burst Detection)
    不只做关键词,还可以对期刊、机构、国家做 burst。结合突现强度与持续时间,能发现“哪些国家在 2020 年后突然加大投入”,为团队选址或合作提供情报。

欢迎在评论区分享你遇到的奇葩聚类命名,或者晒出你用 Python 处理的动态网络截图,一起把“看图说话”升级成“看图说故事”。

参考文献

[1] Chen C. Science mapping: A systematic review of the literature[J]. Journal of Data and Information Science, 2017, 2(2): 1-28.
[2] Van Eck N J, Waltman L. Software survey: VOSviewer, a computer program for bibliometric mapping[J]. Scientometrics, 2010, 84(2): 523-538.
[3] 李杰, 陈超美. 科技文本挖掘及可视化[M]. 北京: 科学出版社, 2022.

限时福利领取


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐