You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scopus多查询文献EID重叠分析:pascalTriangle矩阵与Venn图实现

Scopus多检索文献集交集统计与韦恩图绘制方案

数据预处理

  • 对每个Scopus检索导出的文献结果单独建表,仅需保留文献EID、题名字段,EID是Scopus分配的唯一文献标识,是跨集合匹配的核心依据,不要用题名、DOI匹配,避免空值、格式差异导致匹配误差
  • 为每个检索集按对应研究主题命名,方便后续图表标注
  • 单集合内先按EID去重,剔除EID为空的无效条目,避免干扰统计结果

基于帕斯卡三角逻辑生成交集矩阵

  • 逻辑依据:n个文献集合的非空子集总数为2ⁿ-1,数值刚好对应帕斯卡三角第n行的求和结果,遍历所有子集组合统计共有文献量,即可生成覆盖所有重叠场景的完整交集矩阵,无需手动核对区块数量
  • 最简Python实现代码:
import pandas as pd
from itertools import combinations
from collections import defaultdict

# 读取所有检索集数据,存储为字典格式:key为检索集名称,value为该集合的EID去重集合
set_dict = {}
# 替换为自身文件路径和对应检索集合名称
set_dict["研究主题1"] = set(pd.read_csv("scopus_search1.csv")["EID"].dropna().astype(str))
set_dict["研究主题2"] = set(pd.read_csv("scopus_search2.csv")["EID"].dropna().astype(str))
set_dict["研究主题3"] = set(pd.read_csv("scopus_search3.csv")["EID"].dropna().astype(str))
set_names = list(set_dict.keys())
set_count = len(set_names)

# 遍历所有集合组合,统计各组合的交集文献量
intersect_matrix = defaultdict(int)
for subset_size in range(1, set_count+1):
    for combo in combinations(set_names, subset_size):
        common_eids = set.intersection(*[set_dict[s] for s in combo])
        intersect_matrix[combo] = len(common_eids)

# 打印交集统计结果
for combo, num in intersect_matrix.items():
    print(f"组合{'&'.join(combo)} 重叠文献量:{num}")

注:如果需要提取具体的重叠文献明细,只需将上述代码中统计长度的逻辑调整为导出common_eids对应的题名字段即可,无需重复在Scopus中检索。

韦恩图绘制

  • 2-3个集合场景:直接调用对应绘图库传入EID集合即可生成标准韦恩图,每个区块自动标注对应重叠量,与常规学术论文中使用的韦恩图展示效果一致
    参考代码:
from matplotlib_venn import venn2, venn3
import matplotlib.pyplot as plt

# 绘制2集合韦恩图
plt.figure(figsize=(6,6))
venn2(
    subsets=[set_dict["研究主题1"], set_dict["研究主题2"]],
    set_labels=("研究主题1检索结果", "研究主题2检索结果")
)
plt.savefig("2set_venn.png", dpi=300, bbox_inches="tight")

# 绘制3集合韦恩图
plt.figure(figsize=(6,6))
venn3(
    subsets=[set_dict["研究主题1"], set_dict["研究主题2"], set_dict["研究主题3"]],
    set_labels=("研究主题1检索结果", "研究主题2检索结果", "研究主题3检索结果")
)
plt.savefig("3set_venn.png", dpi=300, bbox_inches="tight")
  • 4个及以上集合场景:换用支持多集合的韦恩图库,传入前一步生成的交集矩阵数值即可生成对应图表,无需手动调整区块布局。

注意事项

  • 从Scopus导出文献时,必须勾选EID字段,所有检索集的导出字段保持一致
  • 单集合内的重复文献一定要提前去重,否则会导致交集统计值偏大
  • 若需做后续的文献计量分析,可在匹配完交集后,给所有文献打所属集合标签,方便后续分组统计。

内容的提问来源于stack exchange,提问作者Shahin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:51:17