【发布时间】:2017-03-26 17:11:40
【问题描述】:
我正在使用 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;
}
}
这会以电影 ID 的形式生成推荐。我想要的是显示名称而不是电影 ID。我正在使用的数据集(生成 id)具有 csv 格式的以下列
user_id movie_id rating
但由于存在一个包含两个文件的 MovieLens 数据集 - 一个带有字段
user_id movie_id rating
其次是
movie_id movie_name
我如何使用上述资源来获取电影名称而不是 id。是否可以使用 DataModel 类或有其他出路。 我想要推荐
movie_name value
而不是现在
movie_id value
【问题讨论】: