import pandas as pd | |
from pyalex import Works, Authors, Sources, Institutions, Concepts, Publishers, Funders | |
import pyalex | |
pyalex.config.email = "theo.alvesdacosta@ekimetrics.com" | |
class OpenAlex(): | |
def __init__(self): | |
pass | |
def search(self,keywords,n_results = 100,after = None,before = None): | |
works = Works().search(keywords).get() | |
for page in works.paginate(per_page=n_results): | |
break | |
df_works = pd.DataFrame(page) | |
return works | |
def make_network(self): | |
pass | |
def get_abstract_from_inverted_index(self,index): | |
# Determine the maximum index to know the length of the reconstructed array | |
max_index = max([max(positions) for positions in index.values()]) | |
# Initialize a list with placeholders for all positions | |
reconstructed = [''] * (max_index + 1) | |
# Iterate through the inverted index and place each token at its respective position(s) | |
for token, positions in index.items(): | |
for position in positions: | |
reconstructed[position] = token | |
# Join the tokens to form the reconstructed sentence(s) | |
return ' '.join(reconstructed) |