Я разрабатываю простую систему рекомендаций для воспроизведения, используя apache mahout, обращая короткое видео здесь https://www.youtube.com/watch?v=yD40rVKUwPI. Код для рекомендателя являетсяДисплей «название фильма» вместо «movie id» в качестве рекомендации от apache mahout
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;
}
}
Это создает рекомендации в виде фильма id's.What Я хочу, чтобы отобразить имена вместо идентификатора фильма. Набор данных Я использую (который генерирует идентификаторы) имеет следующие столбцы в виде CSV
user_id movie_id rating
, но так как существует MovieLens набор данных, который имеет два files- один с полями
user_id movie_id rating
и второй с
movie_id movie_name
Как я могу использовать вышеуказанные ресурсы, чтобы получить имена movie_names вместо id. Возможно ли это с помощью класса DataModel или есть другой выход. Я хочу рекомендации
movie_name value
вместо нынешних
movie_id value
Да У меня также есть movie_title.csv, кроме rating.csv. То, о чем я думал, состоит в том, чтобы объединить эти два файла так или иначе в один csv, а затем использовать это как набор данных вместо моего нынешнего набора данных (rating.csv). Это будет работать? Пожалуйста, немного уточните, я пробовал это в первый раз. rating.csv содержит только movie_id, тогда как movie_title.csv отображает movie_id с заголовком. – techvigil
Я недостаточно разбираюсь в API и модели данных Mahout, чтобы узнать, сможет ли он моделировать данные таким образом. Я сомневаюсь в этом, но вполне может ошибаться. Многие из этих систем используют рейтинговую матрицу, и вам нужно самостоятельно искать метаданные элементов. –