Rekommendationer baserade på användarprofil

Bygga rekommendationsmotorer i Python

Rob O'Callaghan

Director of Data

Objekt-till-objekt-rekommendationer

Bild som visar rekommendationer baserade på att hitta liknande objekt.

Bygga rekommendationsmotorer i Python

Användarprofiler

tfidf_summary_df:

Bok Äventyr Fantasy Tragedi Samhällskritik
The Hobbit 1 1 0 0
Macbeth 0 0 1 0
... ... ... ... ...

Användarprofil:

Användarprofil Äventyr Fantasy Tragedi Samhällskritik
User_001 ??? ??? ??? ???
Bygga rekommendationsmotorer i Python

Extrahera användardata

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    ...
Bygga rekommendationsmotorer i Python

Bygg användarprofilen

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, ...]
Bygga rekommendationsmotorer i Python

Hitta rekommendationer för en användare

# 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"])
Bygga rekommendationsmotorer i Python

Hämta de bästa rekommendationerna

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
...                                     ...
Bygga rekommendationsmotorer i Python

Nu kör vi en övning!

Bygga rekommendationsmotorer i Python

Preparing Video For Download...