Michael-Geis
fixed import error
210de55
import streamlit as st
import arxiv
import pandas as pd
from model import get_recs
# Function to extract the details of the paper
def arxiv_search(input_id):
paper = next(arxiv.Search(id_list=[input_id]).results())
return paper
if __name__ == "__main__":
st.set_page_config(layout="wide")
# Title for the dashboard
st.title("ArXiv recommender")
# Input article; currently only one input
input_arxiv_id = st.text_input("Insert arXiv id here: ")
if input_arxiv_id:
# Details of the extracted paper are stored
input_data = arxiv_search(input_arxiv_id)
# Dropdown for the input article
with st.expander("%s" % input_data.title):
st.write("Abstract: ", input_data.summary)
if st.button("Show Abstract"):
st.write("Abstract: ", input_data.summary)
# Loading the stored corpus and embeddings and topics
embeddings = pd.read_feather(
"./data/libraries/APSP_50_allenai-specter/embeddings.feather"
).values
# # Initializing the model
# model = sentence_transformers.SentenceTransformer("allenai-specter")
# # Encoding the title and summary of the input article
# input_embedding = model.encode(input_data.summary)
# # Top 5 recommendations from the corpus
# reco = sentence_transformers.util.semantic_search(
# query_embeddings=input_embedding, corpus_embeddings=embeddings, top_k=5
# )
# reco_id = [recs["corpus_id"] for recs in reco[0]]
# # Loading the metadata
# corpus = pd.read_feather(
# "./data/libraries/APSP_50_allenai-specter/metadata.feather"
# )
recs = get_recs(id_list=[input_arxiv_id])
st.write("Top 5 similar articles")
for i in range(5):
with st.expander("%s" % recs.title.tolist()[i]):
st.write("Abstract: ", recs.abstract.tolist()[i])
else:
pass