VOSviewer is a software tool for constructing and visualizing bibliometric networks.
这一篇文主要聊VOSviewer的安装与使用。当然,VOSviewer并不是唯一可以实现文本的聚类分析与可视化以梳理文献的软件,还有比如Histcite、CiteSpace等也可以,这就不在本文要讲的范围内了。
安装步骤
- VOSviewer需要在Java环境下运行,因此首先安装Java
- 下载VOSviewer,各系统均有对应安装包,下载解压后如下图所示
双击VOSviewer即可运行程序。
基于Web of Science数据的使用
需要在校园网内网或者从外部通过校园网访问Web of Science的条件下使用。
- 进入Web of Science网站,按需检索想要知道的信息(选择不同数据库可以检索到的信息会不同,比如有的库就无法检索
所有字段
,只能检索主题
、关键词
之类的):
- 导出制表符分隔文件(RIS、Excel(csv)等格式也可以,具体详情可查看VOSviewer的手册,下载的文件中那个pdf就是)
- 记录内容也是按需选择,最后会导出一个叫savedrecs.txt的文件
- 打开VOSviewer软件,点击左侧create,基于文献信息的分析内容,选based on bibliographic data:
VOSviewer支持的文件格式里就有Web of Science:
选择导入刚刚的制表符分隔文件(如果从Web of Science下载了多个saverecs文件,可以都选上导入多个文件):
比如做一个关键词的分析,可以选择Co-occurrence:
设定至少出现2次才认为是需要分析的关键词:
显示其中与其他词汇关联最多的20个:
可以再手动筛选以下想要分析的词汇:
得到聚类图谱:
可选的图谱有Network Visualization、Overlay Visualization、Density Visualization三种,Density Visualization又分为Item desity和Cluster density两种,三种图谱的各种参数可以在右侧设置。如上图的Network Visualization圆的大小代表关键词权重,两个圆之间的距离越短表示关键词关联性越强。圆的颜色代表了各自的聚类。
回到第4步,如果要基于论文title、abstract等文本信息的词共现分析,就选择based on text data,前面的设置大同小异,counting method指同一篇文献多次出现的词语是算一遍还是算多遍。
其他设置也大同小异,最后得到:
基于Semantic ScholarCrossref数据的使用
Semantic Scholar的报错
Semantic Scholar的数据需要通过API的调用导出JSON格式的文件。比如关键词near space hypersonic cruise vehicles的搜索,在Semantic Scholar网站有549条信息,将其中101-200条导出JSON文件,在浏览器地址栏输入:
https://api.semanticscholar.org/graph/v1/paper/search?query=near+space+hypersonic+cruise+vehicles&offset=100&limit=100&fields=externalIds,title,abstract,authors
理论上,保存下来即可得到JSON格式的文本文件。然而,放到VOSviewer里报错了:
暂时没有搞清楚为什么,所以尝试另辟蹊径。除了JSON文件,VOSviewer也可以读取DOI,因此稍稍处理以下我们下载下来的JSON文件,提取出里面的DOI并导入:
华丽地再一次报错了。
博主桃感觉自己找不出什么原因,网上也没有什么相关信息,想要解决大概得给开发者写邮件问问了。
换Crossref
大同小异,需要用API,而且每次能够导出的条数是有限制的,不过,随便写个循环就可以解决了。
from urllib.request import urlopen,Request
import json
#从url获得json文件
def getAndSaveJSON(offset):
#
fullurl = "https://api.crossref.org/works?query=near+space+hypersonic+cruise+vehicles&sort=relevance&filter=from-pub-date:2012-01-01,type:journal-article&rows=1000&offset="+offset
#
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}
req=Request(fullurl,headers=header)
rawtext=urlopen(req).read()
jsonStr = json.loads(rawtext.decode('utf8'))
json.dump(jsonStr, open(offset+'.json', 'w'))
return offset+'.json'
for i in range(0,10000,1000): #每次获取的信息条数有限,因此写个循环
getAndSaveJSON(str(i))
以下是在Crossref网站搜索near space hypersonic cruise vehicles得到的期刊名分布:
总结
以上Web of Science和Semantic Scholar只是两个例子,基于什么网站什么数据库其实不重要,只要能够得到VOSviewer可读的文件格式,都可以导入进行分析,比如Mendeley之类的文献管理系统,都可以导出RIS格式。
ʅ(´◔౪◔)ʃ 重点是,你从图中得到了什么呢?