开源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
全网首发!Java界的四大名著之一:Java编程思想最新中文版已开源
老版《Java编程思想》(原书名《Thinking in Java》)得益作者开放深度研讨的创作方式,受到了全世界读者的追捧,被译为了十几种语言。但遗憾的是,在经历了 4 个版本的更新后,其最后一版发布于 2007 年,之后再无更新。
|
5月前
|
Java Maven
开源一套原创文本处理工具:Java+Bat脚本实现自动批量处理对账单工具
这款工具是笔者在2018年初开发完成的,时隔两载,偶然想起这款小工具,于是,决定将其开源,若有人需要做类似Java批处理实现整理文档的工具,可参考该工具逻辑思路来实现。
25 0
|
5月前
|
设计模式 Java 数据库
持续霸榜GitHub的面试神器:字节跳动Java面试参考手册,限时开源
最近又赶上跳槽的高峰期(招聘旺季),好多读者都问我有没有面试字节的神器,我苦苦寻到了一份内部资料《2023字节跳动Java面试参考手册(第二期)》。
|
1月前
|
存储 机器学习/深度学习 搜索推荐
用Java代码打造信息推荐系统
用Java代码打造信息推荐系统
27 2
|
3月前
|
设计模式 Java 程序员
感动哭了!Java界的四大名著之一:Java编程思想最新中文版已开源
还记得这本书吗?是不是已经在你的桌上铺满厚厚的一层灰了?随着 Java 8 的出现,这门语言在许多地方发生了翻天覆地的变化。最新版已经出来了,在新的版本中,代码的运用和实现上与以往不尽相同。
|
3月前
|
算法 Java 程序员
阿里P8大佬终于把春招面试必备的神级Java面试手册给开源了!
先说说Java Java 作为国人编程开发语言中的 NO.1,已经占比半壁江山,选择入行做 IT 做编程开发的人,基本都把它作为首选语言,进大厂拿高薪也是大多数小伙伴们的梦想。 以前Java 岗位人才的空缺,而需求量又大,所以这种人才供不应求的现状,就是 Java 工程师的薪资待遇相对优厚的原因所在。 但是随着这个从事行业的人数逐渐增多,行业竞争也越来越大,招聘的企业和程序员们都想招聘到自己需要的人才/找到自己理想的岗位,国内大厂尤其是阿里招聘Java岗位居多,导致现在 Java 面试越来越难,内卷早就是大势所趋,万物皆可卷,卷的我们都见怪不怪了。 那么,阿里Java面试难度大吗?
|
3月前
|
JSON fastjson 数据库
字符编码导致Rapidjson(腾讯开源的json解析库)到Fastjson(阿里开发的Java json解析库)转换失败的原因分析
最近在客户端的开发的过程中,使用到了RapidJson,公司的开发是客户端和数据库端都由不同的人进行开发,我负责的客户端的逻辑开发(使用c++),开发工具同时使用了VS2017和QT的编译环境,使用QT主要是为了客户端界面开发方便,而使用了VS环境主要是维护公司开发的数据库接口库,这个库的唯一作用就是作为一个中间桥梁,使用Rapidjson将数据库接口的json数据格式解析为结构体数据,从而在客户端界面进行展示,或者接收客户端的数据,使用Rapidjson将其转换为json数据,发送给数据库接口以保存数据使用 。不太明白的可以参考我上一篇文章说明Rapidjson的使用过程-Parse解析数组
51 0
|
3月前
|
设计模式 算法 NoSQL
阿里巴巴官方上线!号称国内Java八股文天花板(终极版)首次开源
真正有意义的就业与跳槽,是要进入到一个有绝对潜力的行业或者薪资能实现爆炸式增长的。这件事不容易,但也没有想象的遥不可及,现在大环境不好,机会也不如以前多,除了让自身技术能力过硬,面试更是要好好准备! 如何准备? 除了平时的技术积累与沉淀之外,剩下的就只能背八股了(虽然工作用不到,但面试就是要问,不背是不行的)。
81 0
|
4月前
|
消息中间件 小程序 Java
暹罗点餐开源啦,一款java多门店点餐系统-连锁门店如蜜雪冰城瑞幸咖啡
暹罗点餐是一款Java餐饮点餐系统,适用于多门店的连锁品牌,对标蜜雪冰城、瑞幸咖啡。系统包含用户端、商家端、配送端以及总管理后台; * 前端使用uni-app开发,可打包部署到微信小程序、APP、H5 * Web端使用vue + Element开发 * 服务端使用java语言开发,技术栈:Spring Boot + Redis + RocketMQ + WebSocket + ElasticSearch + ELK + SpringBoot Admin
84 1
暹罗点餐开源啦,一款java多门店点餐系统-连锁门店如蜜雪冰城瑞幸咖啡
|
4月前
|
小程序 JavaScript Java
暹罗外卖开源啦,一款java多商户外卖系统-商家入驻如美团饿了么
暹罗外卖是一款Java外卖配送系统,适用于多商户入驻,对标美团外卖、饿了么。系统包含用户端、商家端、配送端以及总管理后台; 前端使用uni-app开发,可打包部署到微信小程序、APP、H5 Web端使用vue + Element开发 服务端使用java语言开发,技术栈:Spring Cloud & Alibaba + Redis + RocketMQ + WebSocket + ElasticSearch + ELK + Sentinel + Seata + SkyWalking + SpringBoot Admin + Promethues + Grafana
80 2
暹罗外卖开源啦,一款java多商户外卖系统-商家入驻如美团饿了么