Fatser commited on
Commit
c73b8bf
·
verified ·
1 Parent(s): 751bce2

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +57 -0
app.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pickle
3
+ import pandas as pd
4
+ from sklearn.metrics.pairwise import cosine_similarity
5
+
6
+ # Uygulama başlığı
7
+ st.title("Kitap Tavsiye Modeli :book:")
8
+
9
+ # Model dosyalarını yükleyin
10
+ with open('tfidf_vectorizer.pkl', 'rb') as f:
11
+ tfidf = pickle.load(f)
12
+
13
+ # Kitap verilerini yükleyin
14
+ sss = pd.read_csv('books_data.csv')
15
+
16
+ # Benzerlik matrisini yükleme (eğer daha önce kaydedilmişse)
17
+ # Burada cosine_sim'in nereden yükleneceğine dikkat edin.
18
+ # Eğer cosine_sim dosyasını kaydetmediyseniz, bunu hesaplamanız gerekiyor.
19
+ # Örneğin, TF-IDF matrisinden cosine benzerliğini hesaplayabilirsiniz.
20
+
21
+ # TF-IDF matrisini hesaplayın (veya önceden hesaplanmışsa yükleyin)
22
+ tfidf_matrix = tfidf.transform(sss['title'])
23
+ cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix)
24
+
25
+ def recommend_books(title):
26
+ # Verilen başlığa karşılık gelen indeks
27
+ if title not in sss['title'].values:
28
+ return "Kitap bulunamadı. Lütfen doğru bir başlık girdiğinizden emin olun."
29
+
30
+ idx = sss.index[sss['title'] == title].tolist()[0]
31
+
32
+ # Benzerlik puanlarını al
33
+ sim_scores = list(enumerate(cosine_sim[idx]))
34
+ sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
35
+
36
+ # En benzer 5 kitabı al
37
+ sim_scores = sim_scores[1:6] # En benzer 5 kitabı al
38
+
39
+ # Eğer sim_scores'da yeterli kitap yoksa
40
+ if len(sim_scores) == 0:
41
+ return "Yeterli benzer kitap bulunamadı."
42
+
43
+ book_indices = [i[0] for i in sim_scores]
44
+
45
+ # Kitapların bilgilerini al
46
+ recommendations = sss.iloc[book_indices].copy()
47
+ recommendations['similarity'] = [sim_scores[i][1] for i in range(len(sim_scores))]
48
+
49
+ # Sonuçları döndür
50
+ return recommendations[['title', 'average_rating', 'similarity']]
51
+
52
+ kitap = st.text_input("Lütfen Bir kitap giriniz:")
53
+
54
+ if st.button("Öner"):
55
+ recommendations = recommend_books(kitap)
56
+ st.write("Önerilen Kitaplar:")
57
+ st.dataframe(recommendations)