Shubhx0 commited on
Commit
25e5478
·
1 Parent(s): e5b6527

Upload 7 files

Browse files
Files changed (7) hide show
  1. .gitattributes +0 -34
  2. Procfile +1 -0
  3. app.py +89 -0
  4. movie_dict.pkl +3 -0
  5. pyvenv.cfg +3 -0
  6. requirements.txt +2 -0
  7. setup.sh +8 -0
.gitattributes CHANGED
@@ -1,35 +1 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
  *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  *.pkl filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Procfile ADDED
@@ -0,0 +1 @@
 
 
1
+ web: sh setup.sh && streamlit run app.py
app.py ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pickle
2
+ import datetime
3
+ import streamlit as st
4
+ import pandas as pd
5
+ import requests
6
+
7
+ st.set_page_config(
8
+ page_title="Movie Recommender System App",
9
+ page_icon="🧊",
10
+ layout="wide",
11
+ initial_sidebar_state="expanded",
12
+ )
13
+ # d = st.date_input(
14
+ # "When\'s your birthday",
15
+ # datetime.date(2019, 7, 6))
16
+ # st.write('Your birthday is:', d)
17
+
18
+ st.title('Movie Recommender System')
19
+ movies_dict = pickle.load(open('movie_dict.pkl','rb'))
20
+ similarity = pickle.load(open('similarity.pkl','rb'))
21
+ movies = pd.DataFrame (movies_dict)
22
+
23
+ hide = """
24
+ <style>
25
+ div[data-testid="stConnectionStatus"] {
26
+ display: none !important;
27
+ </style>
28
+ """
29
+
30
+ st.markdown(hide, unsafe_allow_html=True)
31
+
32
+ def fetch_poster(movie_id):
33
+ response = requests.get('https://api.themoviedb.org/3/movie/{}?api_key=263cccc7902c444e5a0231f11b54d71f&language=en-US'.format(movie_id))
34
+ data = response.json()
35
+ return "https://image.tmdb.org/t/p/w500/" + data['poster_path']
36
+
37
+ def recommend(movie):
38
+ movie_index = movies[movies['title']== movie ].index[0]
39
+ distances = similarity[movie_index]
40
+ movie_list = sorted(list(enumerate(distances)),reverse = True,key= lambda x:x[1])[1:11]
41
+ recommended_movies = []
42
+ recommended_movies_posters = []
43
+
44
+ for i in movie_list:
45
+ movie_id = movies.iloc[i[0]].movie_id
46
+
47
+ recommended_movies.append(movies.iloc[i[0]].title)
48
+ # fetch poster from API
49
+ recommended_movies_posters.append(fetch_poster(movie_id))
50
+ return recommended_movies,recommended_movies_posters
51
+
52
+ selected_movie_name = st.selectbox("Type or select a movie from the dropdown", movies['title'].values)
53
+
54
+ if st.button('Recommend'):
55
+ names,posters = recommend(selected_movie_name)
56
+ c1, c2, c3, c4, c5 = st.columns(5)
57
+ with c1:
58
+ st.image(posters[0])
59
+ st.info(names[0])
60
+ with c2:
61
+ st.image(posters[1])
62
+ st.info(names[1])
63
+ with c3:
64
+ st.image(posters[2])
65
+ st.info(names[2])
66
+ with c4:
67
+ st.image(posters[3])
68
+ st.info(names[3])
69
+ with c5:
70
+ st.image(posters[4])
71
+ st.info(names[4])
72
+
73
+ st.header("Some other Movies")
74
+ c6, c7, c8, c9, c10 = st.columns(5)
75
+ with c6:
76
+ st.image(posters[5])
77
+ st.info(names[5])
78
+ with c7:
79
+ st.image(posters[6])
80
+ st.info(names[6])
81
+ with c8:
82
+ st.image(posters[7])
83
+ st.info(names[7])
84
+ with c9:
85
+ st.image(posters[8])
86
+ st.info(names[8])
87
+ with c10:
88
+ st.image(posters[9])
89
+ st.info(names[9])
movie_dict.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a2cb397bf04eb7f72d05e56aa452b176bd3e3efc2ec89f7b1d472271b24f2f99
3
+ size 2166675
pyvenv.cfg ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ home = /Library/Developer/CommandLineTools/usr/bin
2
+ include-system-site-packages = false
3
+ version = 3.9.6
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ streamlit
2
+ requests
setup.sh ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mkdir -p ~/.streamlit/
2
+ echo "\
3
+ [server]\n\
4
+ port = $PORT\n\
5
+ enableCORS = false\n\
6
+ headless = true\n\
7
+ \n\
8
+ " > ~/.streamlit/config.toml