Как получить DOI научной статьи c, используя точное название, имя автора и год публикации, используя API - PullRequest
0 голосов
/ 09 января 2020

У меня есть названия, имена авторов и годы публикации около 100 научных c статей. Моя цель - получить DOI для каждой статьи. Моя идея состояла в том, чтобы использовать пакет crossref api и crossrefapi . К сожалению, я не могу заставить это работать.

Вот пример, где я хотел бы получить DOI для статьи под названием 'Корковые и подкорковые аномалии серого вещества при шизофрении, определяемые с помощью структурной магнитной c резонансной томографии с оптимизированным объемом c воксель морфометрия ". Автора зовут Анант, и статья была опубликована в 2002 году:

import numpy as np
import pandas as pd
from crossref.restful import Works

works = Works()

author = 'Ananth'
paper_title = 'Cortical and subcortical gray matter abnormalities in schizophrenia determined through structural magnetic resonance imaging with optimized volumetric voxel-based morphometry.'

w = works.query(author=author).query(container_title=paper_title).filter(from_online_pub_date='2002',until_online_pub_date='2002')

w_size = w.count()
paper_list = np.empty(shape=(w_size,1),dtype=object)

for idx,item in enumerate(w):
    if 'title' in item:
        paper_list[idx] = item['title']
    else:
        paper_list[idx] = 'NaN'

for title in paper_list:
    print(title)

Это дает мне следующий вывод:

['Pregnancy outcomes in women treated with elective versus ultrasound-indicated cervical cerclage']
['Revisiting sonographic abdominal circumference measurements: a comparison of outer centiles with established nomograms']
['Cervical length and spontaneous prematurity: laying the foundation for future interventional randomized trials for the short cervix']
['A comparison of sonographic cervical parameters in predicting spontaneous preterm birth in high-risk singleton gestations']
['Algebraic Techniques for Analysis of Large Discrete-Valued Datasets']

У всех этих работ есть один автор по имени Анант , но названия не имеют никакого отношения, и некоторые из этих документов также не относятся к 2002 году.

Кто-нибудь знает, как это исправить?

Если я просто использую GUI из перекрестной ссылки и введу заголовок, первая запись в выходных данных будет правильной бумагой. Я думал, что crossref API будет работать аналогично.

Я прочитал это сообщение , но мне бы хотелось иметь автоматизированную версию с использованием API, чтобы вам не приходилось каждый раз загружать файл .csv или. xml. , Я также прочитал это обсуждение на GitHub , но я не уверен, связано ли это с моей проблемой.

...