ircdl_data / scholarly.py
Eleonora Bernasconi
update
755a5e3
from habanero import counts
from habanero import Crossref
import pdb
from fuzzywuzzy import fuzz
def get_citation_count(doi):
try:
cit = counts.citation_count(doi = doi)
return str(cit)
except Exception as e:
# print(f"Error fetching data for DOI {doi}: {e}")
return None
def get_doi_from_title(title):
try:
cr = Crossref()
result = cr.works(query = title)
for item in result['message']['items']:
retrieved_title = item.get('title', [''])[0].lower() # Convert retrieved title to lowercase
similarity_score = fuzz.ratio(title.lower(), retrieved_title) / 100 # Calcola il punteggio di similarità
# soglia di similarità desiderata (75%)
similarity_threshold = 0.75
# print(retrieved_title, similarity_score)
if similarity_score >= similarity_threshold:
# pdb.set_trace()
return item.get('DOI', None)
except Exception as e:
return None