Я разрабатываю простую систему рекомендаций фильмов, используя apache mahout, ссылаясь на короткое видео здесь: https://www.youtube.com/watch?v=yD40rVKUwPI. Код для рекомендателя
public class App
{
public static List<RecommendedItem> getRecommend(int k) throws Exception
{
ClassLoader classLoader = App.class.getClassLoader();
DataModel model = new FileDataModel(new File(classLoader.getResource("data/dataset.csv").getFile()));
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
List<RecommendedItem> recommendations = recommender.recommend(k, 3);
return recommendations;
}
}
Это генерирует рекомендации в виде идентификатора фильма. Я хочу отображать имена вместо идентификатора фильма. Набор данных, который я использую (который генерирует идентификаторы), имеет следующие столбцы в форме csv.
user_id movie_id rating
но так как есть набор данных MovieLens, который имеет два файла - один с полями
user_id movie_id rating
и второе с
movie_id movie_name
Как я могу использовать вышеуказанные ресурсы, чтобы получить movie_names вместо id. Возможно ли это с классом DataModel или есть какой-то другой выход. Я хочу рекомендации как
movie_name value
вместо настоящего
movie_id value