File size: 1,171 Bytes
4ed18a3
4314e20
 
64bade6
 
4ed18a3
4314e20
1b6713e
98b3c4f
9ccddbe
98b3c4f
 
1aac8ff
9ccddbe
 
 
 
2be0626
9ccddbe
4314e20
98b3c4f
1aac8ff
9ccddbe
 
 
 
a491d3c
9ccddbe
a491d3c
98b3c4f
1aac8ff
9ccddbe
 
 
1b6713e
9ccddbe
64bade6
365cc9e
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import streamlit as st
import pickle
import pandas
from sentence_transformers import SentenceTransformer, util
import torch

st.title('Arxiv Paper Recommendation')
paper_you_like = st.text_input(
        "Enter the title of any paper you like 👇",
    placeholder  = None
    )

# @st.cache_resource
def get_sentences_data():
    with open('sentences.pkl', 'rb') as f:
        sentences = pickle.load(f)
    return sentences

sentences = get_sentences_data()


# @st.cache_resource
def get_embeddings_data():
    with open('embeddings.pkl', 'rb') as f:
        embeddings = pickle.load(f)
    return embeddings

embeddings = get_embeddings_data()


# @st.cache_resource
def get_model():
    model = SentenceTransformer('all-MiniLM-L6-v2')
    return model

model = get_model()

if paper_you_like: # if its not NONE
    # Calculating the similarity between titles
    cosine_scores = util.cos_sim(embeddings, model.encode(paper_you_like))
    top_similar_papers = torch.topk(cosine_scores,dim=0, k=5,sorted=True)
    # top_similar_papers

    st.subheader('Recommended Papers are :scroll: ')
    for i in top_similar_papers.indices:
        st.write(sentences[i.item()])