Spaces:
Build error
Build error
| import streamlit as st | |
| import pickle | |
| import requests | |
| def fetch_poster(movie_id): | |
| url = "https://api.themoviedb.org/3/movie/{}?api_key=c7ec19ffdd3279641fb606d19ceb9bb1&language=en-US".format(movie_id) | |
| data=requests.get(url) | |
| data=data.json() | |
| poster_path = data['poster_path'] | |
| full_path = "https://image.tmdb.org/t/p/w500/"+poster_path | |
| return full_path | |
| movies = pickle.load(open("movies_list.pkl", 'rb')) | |
| similarity = pickle.load(open("similarity.pkl", 'rb')) | |
| movies_list=movies['title'].values | |
| st.header("Movie Recommender System") | |
| st.text('The movie recommendation application is a content-based filtering system. The attributes of user watched movies which include the title and tags, are used to recommend movies. Cosine similarity is used as a degree of similarity in the vector space') | |
| import streamlit.components.v1 as components | |
| imageCarouselComponent = components.declare_component("image-carousel-component", path="frontend/public") | |
| imageUrls = [ | |
| fetch_poster(1632), | |
| fetch_poster(299536), | |
| fetch_poster(17455), | |
| fetch_poster(2830), | |
| fetch_poster(429422), | |
| fetch_poster(9722), | |
| fetch_poster(13972), | |
| fetch_poster(240), | |
| fetch_poster(155), | |
| fetch_poster(598), | |
| fetch_poster(914), | |
| fetch_poster(255709), | |
| fetch_poster(572154) | |
| ] | |
| imageCarouselComponent(imageUrls=imageUrls, height=200) | |
| selectvalue=st.selectbox("Select movie from dropdown", movies_list) | |
| def recommend(movie): | |
| index=movies[movies['title']==movie].index[0] | |
| distance = sorted(list(enumerate(similarity[index])), reverse=True, key=lambda vector:vector[1]) | |
| recommend_movie=[] | |
| recommend_poster=[] | |
| for i in distance[1:6]: | |
| movies_id=movies.iloc[i[0]].id | |
| recommend_movie.append(movies.iloc[i[0]].title) | |
| recommend_poster.append(fetch_poster(movies_id)) | |
| return recommend_movie, recommend_poster | |
| if st.button("Show Recommendations"): | |
| movie_name, movie_poster = recommend(selectvalue) | |
| col1,col2,col3,col4,col5=st.columns(5) | |
| with col1: | |
| st.text(movie_name[0]) | |
| st.image(movie_poster[0]) | |
| with col2: | |
| st.text(movie_name[1]) | |
| st.image(movie_poster[1]) | |
| with col3: | |
| st.text(movie_name[2]) | |
| st.image(movie_poster[2]) | |
| with col4: | |
| st.text(movie_name[3]) | |
| st.image(movie_poster[3]) | |
| with col5: | |
| st.text(movie_name[4]) | |
| st.image(movie_poster[4]) |