Skip to main content

A Python interface to histcite.

Project description

HistCite工具的Python实现

由于原引文分析工具 HistCite 已停止维护,目前国内普遍使用的为国科大某位同学在原程序基础上进行修复的版本 HistCite Pro,仅能在 Windows 平台上运行,存在诸多限制。借助 pandas 2.0 和可视化工具 Graphviz,本工具复刻了原 HistCite 的大部分功能,同时拓展了对其他数据源的支持,可以跨平台使用。

最近更新:

  • v0.3.0 增加了对 Scopus 数据库题录数据的支持;
  • v0.2.0 增加了对 CSSCI 数据库题录数据的支持;

核心功能:

  • 生成引文网络图;
  • 生成包含文献、作者、机构、期刊、关键词等分析单元的统计数据;

术语说明:

  • GCS, Global Citation Score, 表示一篇文献在 Web of Science核心合集中的总被引次数;
  • LCS, Local Citation Score,表示一篇文献在本地论文集中的被引次数;
  • GCR, Global Cited References,表示一篇文献所有参考文献的数量;
  • LCR, Local Cited References,表示一篇文献所有本地参考文献的数量;
  • T*, Total,表示给定作者、机构、期刊等相应分数之和。例如TLCS = 总本地引文分数;
  • Recs, 记录数;
  • Web of Science 题录数据 字段说明
  • 其他来源的题录数据会沿用 Web of Science 的字段命名格式;

快速开始

# 需要 Python3.8 或以上版本
pip install histcite-python

数据准备

数据来源 下载说明
Web of Science 核心合集,格式选择 Tab delimited file/制表符分隔文件,导出内容选择 Full Record and Cited References/全记录与引用的参考文献 或者是 Custome selection/自定义选择项,全选字段;
CSSCI CSSCI数据库 正常导出即可;
Scopus 格式选择 CSV 文件,导出字段需要额外勾选 Author keywordsInclude references,或者直接全选字段。取消勾选 Truncate to optimize for Excel

⚠️ 文件下载之后不要改名(会根据文件名识别有效的题录数据文件),下载完成后放在一个单独的文件夹内。

使用方法

1、使用命令行工具,可用参数如下:

参数 说明
-f --folder_path 下载的题录数据存放的文件夹路径,必须指定
-t --source_type 题录数据来源,可选 woscssciscopus,必须指定
-n --node_num 引文网络图中包含的节点数量,默认为 50,即 LCS 最高的 50 篇文献
-g --graph 是否仅生成图文件,指定该参数表示 True,无需传值
$ 假设文件夹路径为/Users/.../downloads/dataset,来源为web of science, 引文网络图节点数设置为100
$ histcite -f /Users/.../downloads/dataset -t wos -n 100

结果保存在指定的 folder_path 下的 result 文件夹内,包含 statistics.xlsx, graph.node.xlsx, graph.dot 三个文件,第一个是描述统计表,第二个是引文网络图节点信息表,最后一个为引文网络图的数据文件,可以使用 Graphviz在线编辑器 或本地的 Graphviz工具 生成引文网络图。具体内容可以参考 examples文件夹

生成的引文网络图:

对应的文献节点信息:

AU PY SO VL BP LCS GCS
31 Iyer R 1997 IEEE SIGNAL PROCESSING LETTERS 4 221 5 24
58 Iyer RM 1999 IEEE TRANSACTIONS ON SPEECH AND AUDIO PROCESSING 7 30 10 55
68 Iver R 1999 COMPUTER SPEECH AND LANGUAGE 13 267 7 14
77 Bellegarda JR 2000 IEEE TRANSACTIONS ON SPEECH AND AUDIO PROCESSING 8 76 7 43
82 Bellegarda JR 2000 PROCEEDINGS OF THE IEEE 88 1279 15 210

2、函数调用,相比命令行工具,函数调用更加灵活,可以自定义更多参数,参考 demo.ipynb

import os
import pandas as pd
from histcite.process_file import ProcessFile
from histcite.compute_metrics import ComputeMetrics
from histcite.network_graph import GraphViz

# 读取数据,解析引文
folder_path = '/Users/.../downloads/dataset' # 下载的题录数据存放的文件夹路径
source_type = 'wos'
process = ProcessFile(folder_path, source_type)
process.concat_table() # 合并多个文件
process.process_citation() # 识别引文关系
docs_table = process.docs_table
reference_table = process.reference_table

# 基本描述统计
cm = ComputeMetrics(docs_table, reference_table, source_type)
cm.write2excel(os.path.join(folder_path,'result','statistics.xlsx'))

# 生成引文网络图文件
graph = GraphViz(docs_table, source_type)
doc_indices = docs_table.sort_values('LCS', ascending=False).index[:100] # 选取LSC最高的100篇文献
graph_dot_file = graph.generate_dot_file(doc_indices, allow_external_node=False)

# 保存引文网络图文件
with open(os.path.join(folder_path,'result','graph.dot'), 'w') as f:
    f.write(graph_dot_file)

# 保存引文网络图节点文件
graph_node_file = graph.generate_graph_node_file()
graph_node_file.to_excel(os.path.join(folder_path,'result','graph.node.xlsx'),index=False)

⚠️ generate_dot_file 函数的 allow_external_node 参数表示引文网络节点中是否允许出现 doc_indices 之外的节点文献,doc_indices 一般为 LCS 比较高的文献,这些文献同样会参考低 LCS 的文献,或被低 LCS 的文献引用,因此如果将 allow_external_node 设置为 True,引文网络图中将会出现这些低 LCS 的文献节点,默认为 False
⚠️ 没有边的节点不会出现在引文网络图中,文献节点数量可能会低于 doc_indices 的数量。

工具对比:

对比项 histcite-python histcite pro
是否跨平台 否,仅限 Windows
是否开源
是否支持其他数据源 否,仅限 Web of Science
是否提供前端界面
引文网络图 矢量图,比较细腻 位图,比较粗糙

Q&A

Web of Science CSSCI Scopus
如何识别引文关系 如果存在 DOI,则优先使用 DOI 进行匹配;否则通过 一作发表年份文献来源开始页 进行判断 通过 一作 题名 进行判断 通过 一作 题名 进行判断
如何去重 根据 UT 入藏号进行去重 根据 一作题名 字段进行去重 根据 EID 字段进行去重

TODO

  • 支持 CSSCI 题录数据
  • 支持 Scopus 题录数据
  • 支持 PubMed 题录数据

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

histcite-python-0.3.1.tar.gz (18.1 kB view hashes)

Uploaded Source

Built Distribution

histcite_python-0.3.1-py3-none-any.whl (16.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page