是否可以将隶属关系历史与研究人员在特定机构服务的年份配对,如 scopus 网站上显示的那样?

Is it possible to pair the affiliation history with a year in which a researcher served in given institution, as it appears in the scopus website?

我使用 au.affiliation_history 从作者 ID 列表中获取从属关系历史。它工作得很好,但现在我正在尝试将隶属关系历史与研究人员在隶属关系历史结果中出现的机构服务的年份配对。

但是,我找不到执行此操作的方法。有可能这样做吗?如果是这样,请给我一个提示或想法,我怎样才能做到这一点?

遗憾的是,Scopus 在 scopus.com 上分享的作者简介信息与他们通过作者检索 API 分享的信息不同。我认为获得年度隶属关系的唯一方法是从您从 Scopus 搜索中获得的出版物中提取它们 API.

from collections import defaultdict

from pybliometrics.scopus import ScopusSearch

AUTHOR = "7004212771"

q = f"AU-ID({AUTHOR})"
s = ScopusSearch(q)

yearly_affs = defaultdict(lambda: list())
for pub in s.results:
    year = pub.coverDate[:4]
    auth_idx = pub.author_ids.split(";").index(AUTHOR)
    affs = pub.author_afids.split(";")[auth_idx].split("-")
    yearly_affs[year].extend(affs)

yearly_affs 然后包含一个 列表 ,其中包含当年出版物中记录的所有隶属关系。

自然地,该列表将包含重复项。如果您不喜欢那样,请改用 set()update()

affs.split("-") 部分用于多个从属关系(当研究人员在一篇论文中报告多个从属关系时。您可能想使用第一个报告的代替。然后使用 [0]在末尾和下一行 append()

此外,可能会有差距。我建议将 yearly_affs 变成 pandas DataFrame,select 代表每年的主要从属关系,然后向前或向后填补空白。