Kullanıcı profiline göre öneriler

Python ile Öneri Motorları Geliştirme

Rob O'Callaghan

Director of Data

Öğeden öğeye öneriler

Benzer öğeleri bularak oluşturulan önerileri gösteren görsel.

Python ile Öneri Motorları Geliştirme

Kullanıcı profilleri

tfidf_summary_df:

Kitap Macera Fantezi Trajedi Toplumsal eleştiri
The Hobbit 1 1 0 0
Macbeth 0 0 1 0
... ... ... ... ...

Kullanıcı Profili:

Kullanıcı Profili Macera Fantezi Trajedi Toplumsal eleştiri
User_001 ??? ??? ??? ???
Python ile Öneri Motorları Geliştirme

Kullanıcı verilerini çıkarma

list_of_books_read = ['The Hobbit', 'Foundation', 'Nudge']

user_books = tfidf_summary_df.reindex(list_of_books_read)
print(user_books)
               age   ancient   angry   brave   battle   fellow    ...
 The Hobbit   0.21      0.53    0.41    0.64     0.01     0.02    ...
 Foundation   0.31      0.90    0.42    0.33     0.64     0.04    ...
      Nudge   0.61      0.01    0.45    0.31     0.12     0.74    ...
Python ile Öneri Motorları Geliştirme

Kullanıcı profilini oluşturma

user_prof = user_movies.mean()

print(user_prof)
age      0.376667
ancient  0.480000
angry    0.426667
brave    0.256667
             ...
print(user_prof.values.reshape(1,-1))
[0.376667, .480000, 0.426667, 0.256667, ...]
Python ile Öneri Motorları Geliştirme

Bir kullanıcı için öneriler bulma

# Create a subset of only the non read books
non_user_movies = tfidf_summary_df.drop(list_of_movies_seen, axis=0)

# Calculate the cosine similarity between all rows user_prof_similarities = cosine_similarity(user_prof.values.reshape(1, -1), non_user_movies)
# Wrap in a DataFrame for ease of use user_prof_similarities_df = pd.DataFrame(user_prof_similarities.T, index=tfidf_summary_df.index, columns=["similarity_score"])
Python ile Öneri Motorları Geliştirme

En iyi önerileri alma

sorted_similarity_df = user_prof_similarities.sort_values(by="similarity_score",
                                                         ascending=False)

print(sorted_similarity_df)
                                similarity_score
Title                                           
The Two Towers                          0.422488
Dune                                    0.363540
The Magicians Nephew                    0.316075
...                                     ...
Python ile Öneri Motorları Geliştirme

Hadi pratik yapalım!

Python ile Öneri Motorları Geliştirme

Preparing Video For Download...