Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. def similar_recommendation(model, interaction_matrix, user_id, user_dikt,
  2. item_dikt,threshold = 0,number_rec_items = 15):
  3. client=pymongo.MongoClient('mongodb://110.34.31.28:27017/')
  4. mydb=client['majorProject']
  5. mycol=mydb['bookDataset']
  6. #Function to produce user recommendations
  7. try:
  8. n_users, n_items = interaction_matrix.shape
  9. user_x = user_dikt[user_id]
  10. scores = pd.Series(model.predict(user_x,np.arange(n_items)))
  11. scores.index = interaction_matrix.columns
  12. scores = list(pd.Series(scores.sort_values(ascending=False).index))
  13.  
  14. known_items = list(pd.Series(interaction_matrix.loc[user_id,:][interaction_matrix.loc[user_id,:] > threshold].index).sort_values(ascending=False))
  15.  
  16. scores = [x for x in scores if x not in known_items]
  17. print(len(scores))
  18. score_list = scores[0:number_rec_items]
  19.  
  20. known_items = list(pd.Series(known_items).apply(lambda x: item_dikt[x]))
  21. scores = list(pd.Series(score_list).apply(lambda x: item_dikt[x]))
  22. scores1 = list(pd.Series(score_list))
  23.  
  24. # jsonScores = json.dumps(scores)
  25. # print(jsonScores)
  26.  
  27. # return json.dumps(scores)
  28. client=pymongo.MongoClient('mongodb://110.34.31.28:27017/')
  29. mydb=client['majorProject']
  30. mycol=mydb['bookDataset']
  31. w=mycol.aggregate([{"$match":{"ISBN":{"$in":scores1}}},
  32. {"$project":{'_id':0,'ISBN':'$ISBN','bookTitle':'$Book-Title','bookAuthor':'$Book-Author','imageURL':'$Image-URL','averageRating':'$average_rating','publicationYear':'$publication_year','description':'$description'} }])
  33. y=list(w)
  34. except:
  35. w=mycol.aggregate([{"$match":{"average_rating":{"$gt":4}}},{"$sample":{"size":15}},
  36. {"$project":{'_id':0,'ISBN':'$ISBN','bookTitle':'$Book-Title','bookAuthor':'$Book-Author','imageURL':'$Image-URL','averageRating':'$average_rating','publicationYear':'$publication_year','description':'$description'} }])
  37. y=list(w)
  38.  
  39.  
  40.  
  41. return y
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement