コード例 #1
0
def journal_numberof_first_last_authorship(author_id):
    '''Input is author scopus id and get all publications 
     from Scopus database. Filter the journal publications and
     return the number of first, last authorship of the researcher
     
    Parameter
    ----------
    author_id : int or str 
                Scopus id of Author 
    
    Returns
    ----------
    first, last : obj                
               pandas dataframe object  
               number of first and last author in journals    
    '''
    assert isinstance(author_id, (str, int))

    au = AuthorRetrieval(author_id)
    publications = pd.DataFrame(au.get_document_eids(refresh=False))
    articles = publications[publications['aggregationType'] == 'Journal']

    first = articles[articles['author_ids'].str.startswith(author_id)]
    last = articles[articles['author_ids'].str.endswith(author_id)]

    n_first, n_last = len(first), len(last)

    return (n_first, n_last)
コード例 #2
0
            given_name = fisrtLetter
            authorSearch = AuthorSearch('AUTHLAST(' + family_name +
                                        ') and AUTHFIRST(' + given_name +
                                        ') and AFFIL(University)')
            authors = authorSearch.authors
        if authors == None:
            print("no result")
            continue
        author = authors[0]
        print(author[0])

        authorRetrieval = AuthorRetrieval(author[0])
        eid = authorRetrieval.eid
        first_name = authorRetrieval.given_name
        last_name = authorRetrieval.surname
        docs = ','.join(authorRetrieval.get_document_eids())
        citation_count = authorRetrieval.citation_count
        document_count = authorRetrieval.document_count
        orcid = authorRetrieval.orcid
        name_variants = authorRetrieval.name_variants
        coauthors = authorRetrieval.get_coauthors
        coauthors_count = authorRetrieval.coauthor_count
        new_row = [
            first_name, last_name, eid, orcid, citation_count, document_count,
            name_variants, docs, coauthors_count
        ]
        csvData.append(new_row)

with open('cis_academics.csv', 'w', encoding='utf-8') as csvFile:
    writer = csv.writer(csvFile)
    writer.writerows(csvData)
コード例 #3
0
for author, _ in df.groupby('CONTACT_SURNAME'):
    researcher = df.loc[(df['CONTACT_SURNAME']==author)]
    eids = researcher['SCOPUS_ID'].tolist()
    scopus_eids = [str(eid) for eid in eids if eid is not np.nan]
    row = {'Author': author, 'eids': scopus_eids}
    
    #finding the author scopus id from co-authors list of the publication
    #Evoke the scival abstract api get co-authors from eid_authorid function
    try:
        researchers = eid_authorid(row['eids'][0])
        author_scopus_id = researchers[row['Author']]
        #Call Scopus Author API and get pbulications EIDs match to authors
        au = AuthorRetrieval(author_scopus_id)
    
    
        #Retrive all publications of the retive author
        pubs = au.get_document_eids(refresh=False, cursor=False)
    #Get the subset which match to SCOPUS database and Central publication repos
        papers = set(pubs)
        match_publications = papers.intersection(row['eids'])
    
    #Validation scores for the authors
        match_score = len(match_publications)/len(row['eids'])
    
        data.loc[data['CONTACT_SURNAME']==author,'Scopus_id'] = author_scopus_id
        data.loc[data['CONTACT_SURNAME']==author,'publication_score'] = match_score 
    except:
        continue
    
    
data.to_csv('data/medicine_scopus_ids.csv', index=False)