Here's two functions, one called
get_recommendations(watched_movies)
for getting movie recommendations, where watched_movies is a dictionary
def get_recommendations(watched_movies):
print(watched_movies)
similar_movies = pd.DataFrame()
for movie_id,movie in watched_movies.items():
similar_movies = similar_movies.append(get_similar_movies(movie["title"],movie["rating"]),ignore_index=True)
all_recommend = similar_movies.sum().sort_values(ascending=False)
recommended_movies = []
for movie,score in all_recommend.iteritems():
if not check_seen(movie,watched_movies):
recommended_movies.append(movie)
if len(recommended_movies) > 100:
recommended_movies = recommended_movies[0:100]
return recommended_movies
and another function called get_similar_movies which takes movie_name and user_rating as parameters
def get_similar_movies(movie_name,user_rating):
try:
similar_score = item_similarity_df[movie_name]*(user_rating-2.5)
similar_movies = similar_score.sort_values(ascending=False)
except:
print("don't have movie in model")
similar_movies = pd.Series([])
#similar_movies = similar_movies.to_frame().reset_index()
# print("similar_movies variable type : ", type(similar_movies))
#print("similar_movies variable data : \n", similar_movies)
return similar_movies
The problem is in the for loop when appending a Pandas Series to a Pandas Dataframe inside the get_recommendations(watched_movies).
I don't see anything being appended and don't have a clue where the underlying problem is.
I believe that there may be something wrong with the append() function. So please kindly provide some guidelines on how to debug this.
I tried printing the output of the get_similar_movies(movie_name,user_rating) function and got the output on the prompt as shown in this
screenshot.