Spaces:
Sleeping
Sleeping
File size: 1,554 Bytes
17d7d2e efda6d0 8970242 73a25a9 17d7d2e 9b3d9a6 17d7d2e 1303ac0 17d7d2e c077474 17d7d2e 56a13a2 17d7d2e bd80b62 7cdbd6f 73a25a9 011e348 73a25a9 1907c60 f68a5ef 1907c60 |
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 47 48 |
import streamlit as st
import pickle
import pandas as pd
import torch
import numpy as np
from streamlit_card import card
cosine_scores = pickle.load(open('cosine_scores.pkl','rb'))
coursedf = pd.read_pickle('course_df.pkl')
course_title_list = [i + ": " + j for i, j in zip(coursedf['ref'].to_list(), coursedf['title'].to_list())]
def get_random_course():
row=coursedf.sample(1)
return row['ref'], row['title']
def recommend(index):
pairs = {}
for i in range(len(coursedf)):
pairs[coursedf.iloc[i,1]]=cosine_scores[index][i]
sorttemp = sorted(pairs.items(), key=lambda x:x[1], reverse=True)
sorted_final = dict(sorttemp[1:31])
return list(sorted_final.keys())
st.set_page_config(page_title='DiscoverCourses', page_icon=':book:')
st.title('DiscoverCourses')
selected_course = st.selectbox('Please select a course',course_title_list)
if st.button('I want more like this!'):
output=recommend(np.where((coursedf['ref']+": "+coursedf['title']) == selected_course)[0][0])
for result in output:
index=np.where(coursedf['title'] == result)[0][0]
course_id=coursedf.iloc[index,0]
st.subheader(course_id+": "+result)
st.text(coursedf.iloc[index,2]) # Course description
st.write("[Explore Courses](https://explorecourses.stanford.edu/search?q="+course_id+": "+result+")")
st.divider()
# card(
# title=course_id,
# text=result,
# url="https://explorecourses.stanford.edu/search?q="+course_id+": "+result
# )
|