Python3, Bio Entrez, PubMed: Можно ли узнать, сколько раз цитировалась статья? - PullRequest
0 голосов
/ 04 мая 2020

Я использую Entrez для поиска статей в Pubmed. Можно ли использовать Entrez для определения количества цитирований для каждой статьи, найденной с использованием моих параметров поиска? Если нет, могу ли я использовать альтернативный метод? Мой поиск в Google пока что не появлялся.

ПРИМЕЧАНИЕ: количество ссылок на цитирование (в моем контексте), количество раз, когда конкретная c статья цитируется в ДРУГИХ статьях.

Одна вещь, которую я обнаружил: https://gist.github.com/mcfrank/c1ec74df1427278cbe53, что может означать, что я могу получить номер цитирования для статей, которые также находятся в базе данных Pubmed, но было неясно (для меня), как я могу использовать это для определения количества цитирований для каждой article.

Ниже приведен код, который я использую в настоящее время (я хотел бы включить строку «print» с количеством цитирований):

#search pubmed

from Bio import Entrez
from Bio import Medline

search_string = r'("Blah Blah")'

Entrez.email = "hello_world@example.com" 
handle = Entrez.egquery(term=search_string)
record = Entrez.read(handle)
count = 0
for row in record["eGQueryResult"]:
        if row["DbName"]=="pubmed":
            print("Number of articles found with requested search parameters:", row["Count"])
            count = row["Count"]


handle = Entrez.esearch(db="pubmed", term=search_string, retmax=count)
record = Entrez.read(handle)
handle.close()
idlist = record["IdList"]

handle = Entrez.efetch(db="pubmed", id=idlist, rettype="medline", retmode="text")
records = Medline.parse(handle)

records = list(records)
x=1
for record in records:
    print("(" + str(x) + ")")
    print("Title:", record.get("TI", "?"))
    print("Authors: ", ", ".join(record.get("AU", "?")))
    print("Pub Date:", record.get("DP", "?"))
    print("Journal:", record.get("JT", "?"))
    print("DOI:", record.get("LID", "?")[:-6])
    #print("number of citations:", get.number_of_citations) #<--what I am requesting help about
    print("\n")
    x += 1

1 Ответ

0 голосов
/ 28 мая 2020

Я решил эту проблему, написав сценарий, который просматривает фактический веб-сайт, на котором размещена публикация (используя DOI для поиска веб-адреса), а затем сценарий извлекает количество цитирований из xmlx-данных сайта. Этот метод работает для конкретного журнала c, который, к сожалению, меня интересует (только).

Альтернативой является использование WebOfScience, если кому-то интересно. Он делает это и дает намного больше данных о цитировании, таких как количество цитирований за год, а также общее количество цитирований и намного больше данных. Обратной стороной является то, что WebOfScience не является бесплатным сервисом.

...