问题描述
我正在尝试使用 Microsoft Academic API 获取多位作者的引用计数。但是,我发现我的手动搜索检索的结果与 API 调用不同。例如,作者 Laurens van der Maaten 似乎有 40,747 次引用(参见 here)。但是,当我尝试使用如下所示的 API 调用(使用 Python)时,得到的结果较少。
import requests
def get_author_CC(subscription_key,author_name):
url = 'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate'
params = {
"expr": f"Composite(AA.AuN=='{author_name}')","attributes": "CC"
}
headers = {'Ocp-Apim-Subscription-Key': subscription_key}
r = requests.get(url,params=params,headers=headers).json().get('entities')
return sum([ld.get('CC') for ld in r])
get_author_CC(subscription_key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",author_name="laurens van der maaten")
>>> 26545
是否有参数或我遗漏了什么?谢谢。
解决方法
阅读文档后,我认为您需要使用 ECC
,这是估计的引用计数。此外,您需要在 count
中提供 params
,因为默认值为 count=10
import requests
def get_author_CC(subscription_key,author_name):
url = 'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate'
params = {
"expr": f"Composite(AA.AuN=='{author_name}')","attributes": "ECC,CC",'count': 10000
}
headers = {'Ocp-Apim-Subscription-Key': subscription_key}
r = requests.get(url,params=params,headers=headers).json().get('entities')
return sum([ld.get('ECC') for ld in r])
get_author_CC(subscription_key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",author_name="laurens van der maaten")