отображать название фильма вместо идентификатора фильма в качестве рекомендации от apache mahout

Я разрабатываю простую систему рекомендаций фильмов, используя 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

person techvigil    schedule 12.11.2016    source источник


Ответы (1)


Скорее всего, вы не сможете использовать только Mahout. Вам нужно будет загрузить CSV-файл с названием фильма с помощью программы для чтения CSV или импортировать его в базу данных и самостоятельно сопоставить идентификаторы фильмов с именами.

person Michael Ekstrand    schedule 13.11.2016
comment
да, у меня есть movie_title.csv, кроме rating.csv. Я думал объединить эти два файла в один csv, а затем использовать его в качестве набора данных вместо моего текущего набора данных (rating.csv). Это будет работать? Пожалуйста, уточните немного, я пробую это в первый раз. rating.csv содержит только movie_id, тогда как movie_title.csv сопоставляет movie_id с title. - person techvigil; 13.11.2016
comment
Я недостаточно знаю об API и модели данных Mahout, чтобы знать, позволит ли он вам моделировать данные таким образом. Сомневаюсь, но вполне могу ошибаться. Многие из этих систем используют рейтинговую матрицу, и вам нужно самостоятельно искать метаданные элемента. - person Michael Ekstrand; 13.11.2016