将作者隶属关系添加到 Microsoft Academic 评估 API 请求
Add author affiliation to Microsoft Academic evaluate API request
我有一个 Python 函数用于调用 Microsoft Academic API evaluate 方法。该函数当前接受作者姓名和 returns 引用计数:
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])
因为我知道我有兴趣查询的几位作者的隶属关系,所以我想在请求中添加 affiliation parameter。但是,我不太了解如何去做。我试过这个:
import requests
def get_author_CC(subscription_key, author_name, affiliation):
url = 'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate'
params = {
"expr": f"Composite(AA.AuN=='{author_name}', Ty==5, AfN=='{affiliation}')",
"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])
但是那个 returned 错误,所以显然这不太正确。
举个例子,我关注的一位作者是 laurens van der maaten,他的引用次数大约超过 40,000 次,隶属于 Facebook。所以新函数应该仍然 return 40,000+ 引用计数,但使用她在 Facebook 的事实来缩小搜索范围(对于更常见的名字特别有用)。
非常感谢这里的任何帮助。谢谢。
查看 MAG docs 中的查询表达式语法页面;他们涵盖了这个具体的例子。格式应如下所示:
Composite(And(AA.AuN='mike smith',AA.AfN='harvard university'))
我有一个 Python 函数用于调用 Microsoft Academic API evaluate 方法。该函数当前接受作者姓名和 returns 引用计数:
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])
因为我知道我有兴趣查询的几位作者的隶属关系,所以我想在请求中添加 affiliation parameter。但是,我不太了解如何去做。我试过这个:
import requests
def get_author_CC(subscription_key, author_name, affiliation):
url = 'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate'
params = {
"expr": f"Composite(AA.AuN=='{author_name}', Ty==5, AfN=='{affiliation}')",
"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])
但是那个 returned 错误,所以显然这不太正确。
举个例子,我关注的一位作者是 laurens van der maaten,他的引用次数大约超过 40,000 次,隶属于 Facebook。所以新函数应该仍然 return 40,000+ 引用计数,但使用她在 Facebook 的事实来缩小搜索范围(对于更常见的名字特别有用)。
非常感谢这里的任何帮助。谢谢。
查看 MAG docs 中的查询表达式语法页面;他们涵盖了这个具体的例子。格式应如下所示:
Composite(And(AA.AuN='mike smith',AA.AfN='harvard university'))