文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Filter
Filter 可以在评估时根据一定规则来过滤掉部分数据。 Filter 的过滤对象是由 recommender 产生的 recommendedList,recommendedList 由一组 recommendedItem 构成,每个 recommendedItem 表示为一个三元组:(userId itemId value)。 目前支持的过滤器为 GenericRecommendedFilter,其功能是返回 recommendedList 中包含指定 userId 或 itemId 的 recommendedItem,指定的 userId 和 itemId 在 GenericRecommendedFilter 中以列表的形式提前设置。 目前 Filter 仅支持在 Java 代码中使用。
GenericRecommendedFilter 过滤效果:
userIdList = {"1", "2"}
recommendedList = {
{userId:1 itemId:1 value:1.0},
{userId:1 itemId:2 value:2.0},
{userId:1 itemId:3 value:3.0},
{userId:2 itemId:1 value:4.0},
{userId:2 itemId:2 value:5.0},
{userId:2 itemId:3 value:6.0},
{userId:3 itemId:1 value:7.0},
{userId:3 itemId:2 value:8.0},
{userId:3 itemId:3 value:9.0}
}
filtered recommendedList = {
{userId:1 itemId:2 value:2.0},
{userId:2 itemId:3 value:6.0},
{userId:1 itemId:1 value:1.0},
{userId:2 itemId:1 value:4.0},
{userId:2 itemId:2 value:5.0},
{userId:1 itemId:3 value:3.0}
}
GenericRecommendedFilter 使用示例:
// specify the userIds and itemIds for filter
userIdList = new ArrayList<>();
itemIdList = new ArrayList<>();
for (int i=1; i<=2; i++) {
userIdList.add(Integer.toString(i));
itemIdList.add(Integer.toString(4-i));
}
// generate recommendedList by recommender
Configuration conf = new Configuration();
Resource resource = new Resource("rec/cf/userknn-test.properties");
conf.addResource(resource);
DataModel dataModel = new TextDataModel(conf);
dataModel.buildDataModel();
RecommenderContext context = new RecommenderContext(conf, dataModel);
RecommenderSimilarity similarity = new PCCSimilarity();
similarity.buildSimilarityMatrix(dataModel);
context.setSimilarity(similarity);
Recommender recommender = new UserKNNRecommender();
recommender.setContext(context);
recommender.recommend(context);
List<RecommendedItem> recommendedItemList = recommender.getRecommendedList();
// filter the recommendedList with GenericRecommendedFilter
GenericRecommendedFilter filter = new GenericRecommendedFilter();
filter.setUserIdList(userIdList);
filter.setItemIdList(itemIdList);
recommendedItemList = filter.filter(recommendedItemList);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论