import streamlit as st import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # Veri setini yükle df = pd.read_csv('books_data.csv') # ratings sayıya çevir df['average_rating'] = pd.to_numeric(df['average_rating'], errors='coerce') # kitap içeriği df['book_content'] = df['title'] + ' ' + df['authors'] # Tfid Vectorizer vektörlere çevir tfidf = TfidfVectorizer(stop_words='english') tfidf_matrix = tfidf.fit_transform(df['book_content']) # Cousine Similarity benzerlikleri hesapla cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix) def recommend_books(book_title, cosine_sim=cosine_sim): # etiketleri eşleşen kitabın indexini al idx = df[df['title'] == book_title].index[0] # verilen kitabın diğer kitaplarla coisine benzerliklerini al sim_scores = list(enumerate(cosine_sim[idx])) # benzerlik skorlarına göre sırala sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True) # Top 10 kitabı al sim_scores = sim_scores[1:11] # indexlerini al book_indices = [i[0] for i in sim_scores] # indexleri verilen kitapları getir return df['title'].iloc[book_indices] # Streamlit başlığı st.title('Kitap Öneri Sistemi') # Kullanıcıdan kitap seçmesini iste book_title = st.selectbox('Kitap Adı Seçin:', df['title'].unique()) if book_title: recommended_books = recommend_books(book_title) st.write(f"Önerilen Kitaplar {book_title} için:") for book in recommended_books: st.write(book)