开源java推荐系统Taste(1)-基本的Item-based推荐

简介: http://terryma.blog.sohu.com/58889892.html  关注推荐系统有好一阵了,居然没有任何的产出,惭愧、惭愧。

http://terryma.blog.sohu.com/58889892.html 

 

关注推荐系统有好一阵了,居然没有任何的产出,惭愧、惭愧。
这几天学习了一下开源的java推荐系统Taste,有一些心得,慢慢的贴出来。

如果产生Item-based推荐:
假设有4个用户 u1、u2、u3、u4
 产品有n个 c1、c2、c3
步骤:
1.找出用户对产品的打分。
2.找出产品之间的相似度。
3.可以对特定用户给予推荐。
其中需要人工做的就是对产品之间的相似度,给出评分,这个是个比较麻烦的事情,如果有n个产品,就需要N!个评分。
如果用Taste实现,需要的代码如下:

1。建立数据集,主要数据内容是用户对产品的打分:
DataModel model = new FileDataModel(new File("data.txt"));
2。建立item相似度,集合
例如:先建物(这里有三个物品)
        final Item item1 = new GenericItem<String>("0");
        final Item item2 = new GenericItem<String>("1");
        final Item item3 = new GenericItem<String>("2“);
再记录item的相似度
        final Collection<GenericItemCorrelation.ItemItemCorrelation> correlations =
            new ArrayList<GenericItemCorrelation.ItemItemCorrelation>(2);
        correlations.add(new GenericItemCorrelation.ItemItemCorrelation(item1, item2, 1.0));
        correlations.add(new GenericItemCorrelation.ItemItemCorrelation(item1, item3, 0.5));
3.生成推荐
        final ItemCorrelation correlation = new GenericItemCorrelation(correlations);
        final Recommender recommender = GenericItemBasedRecommender(dataModel, correlation);
4.最终生成推荐
        final List<RecommendedItem> recommended = recommender.recommend("test1", 1);
        final RecommendedItem firstRecommended = recommended.get(0);
目录
相关文章
|
3月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
3月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
25天前
|
机器学习/深度学习 数据采集 自然语言处理
打造个性化新闻推荐系统:机器学习与自然语言处理的结合Java中的异常处理:从基础到高级
【8月更文挑战第27天】在信息过载的时代,个性化新闻推荐系统成为解决信息筛选难题的关键工具。本文将深入探讨如何利用机器学习和自然语言处理技术构建一个高效的新闻推荐系统。我们将从理论基础出发,逐步介绍数据预处理、模型选择、特征工程,以及推荐算法的实现,最终通过实际代码示例来展示如何将这些理论应用于实践,以实现精准的个性化内容推荐。
|
1月前
|
机器学习/深度学习 存储 缓存
Java本地高性能缓存实践问题之阿里云机器学习团队开源社区的问题如何解决
Java本地高性能缓存实践问题之阿里云机器学习团队开源社区的问题如何解决
|
2月前
|
存储 数据采集 搜索推荐
使用Java实现智能推荐系统的关键技术
使用Java实现智能推荐系统的关键技术
|
2月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
96 0
|
3月前
|
存储 搜索推荐 算法
使用Java实现导购app实时推荐系统
使用Java实现导购app实时推荐系统
|
3月前
|
算法 Java 程序员
老程序员分享:Java开源
老程序员分享:Java开源
23 0
|
3月前
|
搜索推荐 算法 前端开发
计算机Java项目|基于协同过滤算法的体育商品推荐系统
计算机Java项目|基于协同过滤算法的体育商品推荐系统
|
3月前
|
搜索推荐 前端开发 小程序
计算机java项目|Springboot 智能菜谱推荐系统
计算机java项目|Springboot 智能菜谱推荐系统