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