CSDN AI内容发布关停终极清单,含浏览器控制台强制拦截、开发者工具绕过及人工审核通道申请
2026/6/6 22:19:59
| 维度 | CiteSpace | VOSviewer |
|---|---|---|
| 共现权重 | 支持 TF-IDF、突现(Burst Detection)、中介中心性(Betweenness Centrality) | 主要用共现频次,TF-IDF 需手动外挂 |
| 网络修剪 | Pathfinder、MST、Pruning Slice 混合策略 | 仅 MST+聚类,参数少 |
| 时间动态 | 可以生成时区演化动画,捕捉研究前沿 | 静态图为主,时间轴需手动切片 |
| 上手曲线 | 参数多、易踩坑,但可玩性高 | 拖拽式操作,5 分钟出图 |
| 适合场景 | 想发 SCI,需要“故事线”与“突现词” | 快速做组会汇报,图好看即可 |
一句话总结:想写论文深挖热点——CiteSpace;临时做文献综述——VOSviewer。
import pandas as pd import re def load_wos_txt(path): """一次性读入 WOS 全记录 txt,返回 DataFrame""" with open(path, 'r', encoding='utf-8') as f: txt = f.read() # 用 ER 标记拆每条记录 records = [r.strip() for r in txt.split('ER\n') if r.strip()] rows = [] for rec in records: row = {} for line in rec.split('\n'): if line.startswith('DE '): row['DE'] = line[3:].strip() # 作者关键词 if line.startswith('ID '): row['ID'] = line[3:].strip() # 增补关键词 if line.startswith('PY '): row['PY'] = int(line[3:].strip()) rows.append(row) return pd.DataFrame(rows) def merge_keywords(df): """合并 DE 与 ID,统一分隔符""" df['keywords'] = (df['DE'].fillna('') + '; ' + df['ID'].fillna('')) df['keywords'] = df['keywords'].str.lower().str.split(r'[;\s]+') return df def synonym_map(kw_list, mapping): """同义词归并,mapping 为 dict: {'covid-19':'covid19'}""" return [mapping.get(k, k) for k in kw_list] # 示范:读数据 -> 合并 -> 去重 df = load_wos_txt('wos.txt') df = merge_keywords(df) syn_dict = {'machine learning':'ml', 'artificial intelligence':'ai'} df['keywords'] = df['keywords'].apply(lambda x: synonym_map(x, syn_dict)) df.to_csv('clean.csv', index=False, encoding='utf-8-sig')经验:先跑 MST 看热点骨架,再跑一次 Pathfinder 做补充,对比两次图谱,能发现被 MST 误剪的“桥梁关键词”。
import numpy as np from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # 1. 构造语料:每篇文献的关键词用空格拼接 docs = df['keywords'].apply(lambda x: ' '.join(x)).tolist() # 2. TF-IDF 向量化 vectorizer = TfidfVectorizer(token_pattern=r'\b\S+\b', lowercase=False) tfidf_mat = vectorizer.fit_transform(docs) terms = vectorizer.get_feature_names_out() # 3. 共现权重 = 余弦相似度 * 共现频次 co_mat = (tfidf_mat.T @ tfidf_mat) co_mat.setdiag(0) # 去掉自连 np.save('tfidf_co_matrix.npy', co_mat.toarray())把生成的tfidf_co_matrix.npy在 CiteSpace 里用 “Import Matrix” 功能直接读入,即可得到带权网络,节点大小反映 TF-IDF 重要性,而非单纯频次。
中介中心性(Betweenness Centrality)衡量一个节点作为“桥梁”的能力。在 CiteSpace 里,勾选 “Compute Centrality” 后,节点外圈会出现紫色圈,圈越厚,跨界潜力越大。
实操小技巧:
案例:笔者在“碳中和”领域发现“carbon pricing”兼具高中心性+突现,追踪后发现该词 2023 年突然出现在能源政策与金融学期刊,顺势设计交叉课题,成功拿到校级跨学科培育基金。
CiteSpace 像一台手动挡赛车,参数多、离合难踩,但熟悉之后,弯道超车的感觉真香。把数据清洗、网络修剪、TF-IDF 权重、中心性解读这几步跑通,你会发现关键词共现图谱不再是一堆五颜六色的“毛线球”,而是一张能讲故事的“研究地形图”。下次组会,当导师问“你怎么证明这是热点?” 你大可以放大紫色圈,再甩出 Q 值和突现条——有理有据,就这么简单。祝各位新手都能早日把 CiteSpace 玩成自己的“科研导航仪”。