如何获取指定年份起的AuthorRetrieval数据并统计排除自引的被引文献数?
1. 先搞定AuthorRetrieval的年份筛选
你现在用kwds参数拼年份条件的方式不对,AuthorRetrieval的kwds是用来筛选作者发表的文献,而且这么写根本起不到年份过滤作用。要拿到2018-2022年的作者文献,直接用publication_start和publication_end参数就行:
AuthorRetrieval(author_id, refresh=True, publication_start=2018, publication_end=2022)
2. 统计排除自引的被引文献数
要统计过去5年排除自引的被引文献数量,得结合AuthorRetrieval和CitationOverview一起处理,步骤如下:
- 先通过
AuthorRetrieval拿到该作者2018-2022年所有文献的eid(或者doi)列表 - 调用
CitationOverview,把这些文献标识传进去,同时设置start和end为2018-2022,拿到所有引用数据 - 过滤掉引用来源是该作者自己文献的条目,然后对被引文献的标识去重(同一篇被引文献可能被多篇作者文献引用),最终的去重数量就是你要的结果
给你个简单的代码逻辑参考:
# 获取作者2018-2022年的文献 author_pubs = AuthorRetrieval(author_id, refresh=True, publication_start=2018, publication_end=2022) author_eid_list = [pub.eid for pub in author_pubs.publications] # 获取这些文献的引用数据 cite_data = CitationOverview(author_eid_list, start=2018, end=2022) # 收集非自引的被引文献,去重 unique_cited = set() for item in cite_data.citations: # 排除来自作者自己文献的引用 if item.source_eid not in author_eid_list: unique_cited.add(item.cited_eid) # 最终统计数 result_count = len(unique_cited)
要注意的地方
CitationOverview返回的是每一次引用记录,不是被引文献本身,所以必须去重,不然会把重复引用算成多个被引文献- 确认你用的API版本支持
publication_start和publication_end参数,老版本可能不兼容
内容的提问来源于stack exchange,提问作者Mike Vargas
相关产品推荐
相关产品推荐

