YAMITEK's picture
Update app.py
afc0915 verified
import streamlit as st
import numpy as np
from joblib import load
st.title("Book Recommendation System")
# Load models and data
model = load("model.pkl")
books_name = load("book_names.pkl")
final_rating = load("final_rating.pkl")
book_pivot_tale = load("book_pivot_tale.pkl")
# Book selection
select_book = st.selectbox("Select a book", options=books_name)
# Recommendation function
def recommended_book(book_name):
book_id = np.where(book_pivot_tale.index == book_name)[0][0]
distances, suggestions = model.kneighbors(
book_pivot_tale.iloc[book_id, :].values.reshape(1, -1), n_neighbors=6
)
recommended_books = []
for i in suggestions[0][1:]: # Skipping the first as it's the input book itself
recommended_books.append(book_pivot_tale.index[i])
return recommended_books
# On button click
if st.button("Recommend"):
books_list = recommended_book(select_book)
st.success("Recommended books are:")
for i, book in enumerate(books_list):
st.write(f"{i+1}. {book}")