drmurataltun's picture
Upload 3 files
14f53db verified
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)