Advertisement
Cinestra

Recommender.h (Attempt 1)

Jun 20th, 2023
712
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #ifndef RECOMMENDER_INCLUDED
  2. #define RECOMMENDER_INCLUDED
  3.  
  4. #include <string>
  5. #include <vector>
  6.  
  7. #include <unordered_set>
  8. #include <unordered_map>
  9.  
  10. #include "Movie.h"
  11. #include "User.h"
  12. #include "UserDatabase.h"
  13. #include "MovieDatabase.h"
  14.  
  15. struct MovieAndRank
  16. {
  17.     MovieAndRank(const std::string& id, int score)
  18.      : movie_id(id), compatibility_score(score)
  19.     {}
  20.  
  21.     std::string movie_id;
  22.     int compatibility_score;
  23. };
  24.  
  25. class Recommender
  26. {
  27.   public:
  28.     Recommender(const UserDatabase& user_database,
  29.                 const MovieDatabase& movie_database);
  30.     ~Recommender() {};
  31.     std::vector<MovieAndRank> recommend_movies(const std::string& user_email,
  32.                                                int movie_count) const;
  33.  
  34.   private:
  35.       const UserDatabase* m_user_database;
  36.       const MovieDatabase* m_movie_database;
  37.  
  38.       const int SAME_DIRECTOR_POINTS = 20;
  39.       const int SAME_ACTOR_POINTS = 30;
  40.       const int SAME_GENRE_POINTS = 1;
  41.  
  42.       std::unordered_map<std::string, int> create_unordered_map_linking_movies_with_compatibility(const std::string &user_email, int moive_count) const;
  43.       std::vector<MovieAndRank> create_descending_order_vector_given_unordered_map(const User* &current_user, int movie_count, std::unordered_map<std::string, int> possible_recommend_movies) const;
  44.  
  45.       bool compare_MovieAndRank(MovieAndRank& a, MovieAndRank& b) const;
  46. };
  47.  
  48. #endif // RECOMMENDER_INCLUDED
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement