显示“电影名称”而不是“电影ID”作为apache mahout的推荐

时间:2016-11-12 17:14:15

标签: mahout mahout-recommender

我正在开发一个简单的电影推荐系统,使用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;
     }
}

enter image description here

这会以电影ID的形式生成推荐。我想要的是显示名称而不是电影ID。我正在使用的数据集(生成id)具有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

1 个答案:

答案 0 :(得分:0)

你可能不能独自与Mahout一起。您需要使用CSV阅读器加载电影标题CSV文件,或将其导入数据库,然后自己将电影ID映射回名称。