def recommend_users(probID, SVDNeighbourhood=False): if SVDNeighbourhood: svd2 = SVDNeighbourhood() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings_neigh')) else: svd2 = SVD() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings')) return svd2.recommend(probID)
def predict_rating(probID, userID, MIN_RATING, MAX_RATING, SVDNeighbourhood=False): if SVDNeighbourhood: svd2 = SVDNeighbourhood() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings_neigh')) else: svd2 = SVD() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings')) return svd2.predict(probID, userID, MIN_RATING, MAX_RATING)
def get_similar_problems(probID, SVDNeighbourhood=False): if SVDNeighbourhood: svd2 = SVDNeighbourhood() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings_neigh')) else: svd2 = SVD() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings')) return svd2.similar(probID)
def recommend_problems(userID, SVDNeighbourhood=False): if SVDNeighbourhood: svd2 = SVDNeighbourhood() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings_neigh')) else: svd2 = SVD() svd2.load_model(os.path.join(utils.get_add_dir(), 'ratings')) problems = svd2.recommend(userID, n=20, only_unknowns=False, is_row=False) ret = [] data = load_data() for problem in problems: found = False for t in data: # print t, problem if t[1] == problem[0] and t[2] == 45: found = True break if not found: # print problem ret.append(problem) return ret