Вернуть правильное количество цитат из Microsoft Academic API

Я пытаюсь получить количество цитирований нескольких авторов с помощью Microsoft Academic API. Однако я обнаружил, что мой ручной поиск дает другие результаты, чем вызов API. Например, автор Лоуренс ван дер Маатен имеет 40747 ссылок (см. Здесь ). Однако, когда я пытаюсь использовать вызов 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

Есть ли параметр или что-то, что мне не хватает? Спасибо.

1 ответ

Решение

Пройдя через документацию, я думаю, вам нужно использовать 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")
Другие вопросы по тегам