def test_index_query(self): movies_index = os.path.join(dir_test_files, 'complex_contents', 'index/') filter_list = ['tt0114319', 'tt0114388'] recs_number = 3 # Test prediction and ranking with the Index Query algorithm alg = IndexQuery({'Plot': ['index_original', 'index_preprocessed']}) rs = ContentBasedRS(alg, ratings, movies_index) # Prediction should raise error since it's not a ScorePredictionAlg with self.assertRaises(NotPredictionAlg): rs.fit_predict('A000') result_rank = rs.fit_rank('A000') self.assertGreater(len(result_rank), 0) # Test prediction and ranking with the IndexQuery algorithm on specified items, prediction will raise exception # since it's not a PredictionAlgorithm with self.assertRaises(NotPredictionAlg): rs.fit_predict('A000', filter_list=filter_list) result_rank_filtered = rs.fit_rank('A000', filter_list=filter_list) self.assertGreater(len(result_rank_filtered), 0) # Test top-n ranking with the IndexQuery algorithm result_rank_numbered = rs.fit_rank('A000', recs_number=recs_number) self.assertEqual(len(result_rank_numbered), recs_number)
def test_classifier_recommender(self): recs_number = 3 # Test prediction and ranking with the Classifier Recommender algorithm alg = ClassifierRecommender({'Plot': ['tfidf', 'embedding']}, SkSVC()) rs = ContentBasedRS(alg, ratings, self.movies_multiple) # Prediction should raise error since it's not a ScorePredictionAlg with self.assertRaises(NotPredictionAlg): rs.fit_predict('A000') # Test ranking with the Classifier Recommender algorithm on specified items result_rank_filtered = rs.fit_rank('A000', filter_list=self.filter_list) self.assertEqual(len(result_rank_filtered), len(self.filter_list)) # Test top-n ranking with the Classifier Recommender algorithm result_rank_numbered = rs.fit_rank('A000', recs_number=recs_number) self.assertEqual(len(result_rank_numbered), recs_number)
def test_linear_predictor(self): recs_number = 3 # Test prediction and ranking with the Classifier Recommender algorithm alg = LinearPredictor({'Plot': ['tfidf', 'embedding']}, SkLinearRegression()) rs = ContentBasedRS(alg, ratings, self.movies_multiple) # Prediction result_pred_filtered = rs.fit_predict('A000', filter_list=self.filter_list) self.assertEqual(len(result_pred_filtered), len(self.filter_list)) # Test ranking with the Classifier Recommender algorithm on specified items result_rank_filtered = rs.fit_rank('A000', filter_list=self.filter_list) self.assertEqual(len(result_rank_filtered), len(self.filter_list)) # Test top-n ranking with the Classifier Recommender algorithm result_rank_numbered = rs.fit_rank('A000', recs_number=recs_number) self.assertEqual(len(result_rank_numbered), recs_number)