Spaces:
Sleeping
Sleeping
| 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) | |