Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef RECOMMENDER_INCLUDED
- #define RECOMMENDER_INCLUDED
- #include <string>
- #include <vector>
- #include <unordered_set>
- #include <unordered_map>
- #include "Movie.h"
- #include "User.h"
- #include "UserDatabase.h"
- #include "MovieDatabase.h"
- struct MovieAndRank
- {
- MovieAndRank(const std::string& id, int score)
- : movie_id(id), compatibility_score(score)
- {}
- std::string movie_id;
- int compatibility_score;
- };
- class Recommender
- {
- public:
- Recommender(const UserDatabase& user_database,
- const MovieDatabase& movie_database);
- ~Recommender() {};
- std::vector<MovieAndRank> recommend_movies(const std::string& user_email,
- int movie_count) const;
- private:
- const UserDatabase* m_user_database;
- const MovieDatabase* m_movie_database;
- const int SAME_DIRECTOR_POINTS = 20;
- const int SAME_ACTOR_POINTS = 30;
- const int SAME_GENRE_POINTS = 1;
- std::unordered_map<std::string, int> create_unordered_map_linking_movies_with_compatibility(const std::string &user_email, int moive_count) const;
- std::vector<MovieAndRank> create_descending_order_vector_given_unordered_map(const User* ¤t_user, int movie_count, std::unordered_map<std::string, int> possible_recommend_movies) const;
- bool compare_MovieAndRank(MovieAndRank& a, MovieAndRank& b) const;
- };
- #endif // RECOMMENDER_INCLUDED
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement