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}")