30Kanika's picture
add files
4c5ec2d
import streamlit as st
from pickle import load
import pandas as pd
st.title("Which song should I :blue[Listen Next]? 🎡")
data = load(open("songs.pkl", 'rb'))
similarity = load(open("similarity.pkl", 'rb'))
data = pd.DataFrame(data)
path = "files/poster.jpg"
def recommended_song(song):
idx = data[data["Song-Name"] == song].index[0]
corr = similarity[idx]
rec = sorted(list(enumerate(corr)), reverse=True, key=lambda x: x[1])[1:11]
name, artist, movie = [], [], []
for i in rec:
inx = i[0]
name.append(data['Song-Name'].iloc[inx])
artist.append(data['Singer/Artists'].iloc[inx])
movie.append(data['Album/Movie'].iloc[inx])
return name, artist, movie
# song, artist, genre, movie = recommended_song("Ghoomar")
# print(song[0],
# movie[0],
# artist[0])
choice= st.selectbox(label="Song I liked :", options=data['Song-Name'])
st.write("You Like: ", choice)
if st.button("Search"):
st.header(":blue[You Might Like: ]")
song, artist, movie = recommended_song(choice)
col1, col2,col3, col4, col5= st.columns(5)
with col1:
st.image(path)
st.subheader(song[0])
st.write(f":blue[{movie[0]}]")
st.write(f":blue[{artist[0]}]")
st.image(path)
st.subheader(song[5])
st.write(f":blue[{movie[5]}]")
st.write(f":blue[{artist[5]}]")
with col2:
st.image(path)
st.subheader(song[1])
st.write(f":blue[{movie[1]}]")
st.write(f":blue[{artist[1]}]")
st.image(path)
st.subheader(song[6])
st.write(f":blue[{movie[6]}]")
st.write(f":blue[{artist[6]}]")
with col3:
st.image(path)
st.subheader(song[2])
st.write(f":blue[{movie[2]}]")
st.write(f":blue[{artist[2]}]")
st.image(path)
st.subheader(song[7])
st.write(f":blue[{movie[7]}]")
st.write(f":blue[{artist[7]}]")
with col4:
st.image(path)
st.subheader(song[3])
st.write(f":blue[{movie[3]}]")
st.write(f":blue[{artist[3]}]")
st.image(path)
st.subheader(song[8])
st.write(f":blue[{movie[8]}]")
st.write(f":blue[{artist[8]}]")
with col5:
st.image(path)
st.subheader(song[4])
st.write(f":blue[{movie[4]}]")
st.write(f":blue[{artist[4]}]")
st.image(path)
st.subheader(song[9])
st.write(f":blue[{movie[9]}]")
st.write(f":blue[{artist[9]}]")