book-recommendation-system / src /streamlit_app.py
MSK34's picture
Update src/streamlit_app.py
4c72b3c verified
Raw
History Blame Contribute Delete
1.32 kB
import streamlit as st
import pickle
import numpy as np
st.set_page_config(
page_title="Kitap Öneri Sistemi",
page_icon="📚"
)
st.title("📚 Kitap Öneri Sistemi")
st.write(
"Bu uygulama, kullanıcı puanlarına göre seçilen kitaba benzer kitaplar önerir."
)
@st.cache_resource
def load_files():
pivot_table = pickle.load(open("src/pivot_table.pkl", "rb"))
similarity_scores = pickle.load(open("src/similarity_scores.pkl", "rb"))
return pivot_table, similarity_scores
pivot_table, similarity_scores = load_files()
book_list = list(pivot_table.index)
selected_book = st.selectbox(
"Bir kitap seçin:",
book_list
)
def recommend_book(book_name):
if book_name not in pivot_table.index:
return []
book_index = np.where(pivot_table.index == book_name)[0][0]
similar_books = sorted(
list(enumerate(similarity_scores[book_index])),
reverse=True,
key=lambda x: x[1]
)[1:6]
recommendations = []
for book in similar_books:
recommendations.append(pivot_table.index[book[0]])
return recommendations
if st.button("Öneri Getir"):
recommendations = recommend_book(selected_book)
st.subheader("Önerilen Kitaplar")
for i, book in enumerate(recommendations, start=1):
st.write(f"{i}. {book}")