0

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

但是,我找不到这样做的方法。有可能做到这一点吗?如果是这样,您能否给我一个提示或想法,我该如何实现这一目标? 

4

1 回答 1

0

遗憾的是,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()andupdate()代替。

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

此外,可能会有差距。我建议将其yearly_affs转换为 pandas DataFrame,选择每年的主要隶属关系,然后向前或向后填补空白。

于 2021-04-12T11:27:56.250 回答