package com.rcd.model.recommender;
import java.util.List;
import org.apache.mahout.cf.taste.impl.common.FastByIDMap;
import org.apache.mahout.cf.taste.impl.model.GenericDataModel;
import org.apache.mahout.cf.taste.impl.model.GenericUserPreferenceArray;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.model.PreferenceArray;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
public class RecommenderIntro {
public static void main(String[] args) throws Exception {
FastByIDMap<PreferenceArray> preferences = new FastByIDMap<PreferenceArray>();
PreferenceArray prefsForUser1 = new GenericUserPreferenceArray(3);// 注意这里的数字
// 这里是用来存储一个用户的元数据,这些元数据通常来自日志文件,比如浏览历史,等等,不同的业务场合,它的业务语义是不一样
prefsForUser1.setUserID(0, 1);
prefsForUser1.setItemID(0, 101);
prefsForUser1.setValue(0, 5.0f);//<1, 101, 5.0f> < 用户 ID, 物品 ID, 用户偏好 >
prefsForUser1.setItemID(1, 102);
prefsForUser1.setValue(1, 3.0f);//<1, 102, 3.0f>
prefsForUser1.setItemID(2, 103);
prefsForUser1.setValue(2, 2.5f);//<1, 103, 2.5f>
preferences.put(1l, prefsForUser1);// 在这里添加数据,userID作为key
PreferenceArray prefsForUser2 = new GenericUserPreferenceArray(4);
prefsForUser2.setUserID(0, 2);
prefsForUser2.setItemID(0, 101);//<2, 101, 2.0f>
prefsForUser2.setValue(0, 2.0f);
prefsForUser2.setItemID(1, 102);
prefsForUser2.setValue(1, 2.5f);//<2, 102, 2.5f>
prefsForUser2.setItemID(2, 103);
prefsForUser2.setValue(2, 5.0f);//<2, 103, 5.0f>
prefsForUser2.setItemID(3, 104);
prefsForUser2.setValue(3, 2.0f);//<2, 104, 2.0f>
preferences.put(2l, prefsForUser2);
PreferenceArray prefsForUser3 = new GenericUserPreferenceArray(4);
prefsForUser3.setUserID(0, 3);
prefsForUser3.setItemID(0, 101);
prefsForUser3.setValue(0, 2.5f);
prefsForUser3.setItemID(1, 104);
prefsForUser3.setValue(1, 4.0f);
prefsForUser3.setItemID(2, 105);
prefsForUser3.setValue(2, 4.5f);
prefsForUser3.setItemID(3, 107);
prefsForUser3.setValue(3, 5.0f);
preferences.put(3l, prefsForUser3);
PreferenceArray prefsForUser4 = new GenericUserPreferenceArray(4);
prefsForUser4.setUserID(0, 4);
prefsForUser4.setItemID(0, 101);
prefsForUser4.setValue(0, 5.0f);
prefsForUser4.setItemID(1, 103);
prefsForUser4.setValue(1, 3.0f);
prefsForUser4.setItemID(2, 104);
prefsForUser4.setValue(2, 4.5f);
prefsForUser4.setItemID(3, 106);
prefsForUser4.setValue(3, 4.0f);
preferences.put(4l, prefsForUser4);
PreferenceArray prefsForUser5 = new GenericUserPreferenceArray(6);
prefsForUser5.setUserID(0, 5);
prefsForUser5.setItemID(0, 101);
prefsForUser5.setValue(0, 4.0f);
prefsForUser5.setItemID(1, 102);
prefsForUser5.setValue(1, 3.0f);
prefsForUser5.setItemID(2, 103);
prefsForUser5.setValue(2, 2.0f);
prefsForUser5.setItemID(3, 104);
prefsForUser5.setValue(3, 4.0f);
prefsForUser5.setItemID(4, 105);
prefsForUser5.setValue(4, 3.5f);
prefsForUser5.setItemID(5, 106);
prefsForUser5.setValue(5, 4.0f);
preferences.put(5l, prefsForUser5);
DataModel model = new GenericDataModel(preferences);// DataModel的建立
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);//计算相似度
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,similarity, model);//计算邻居
// 创建推荐引擎
Recommender recommender = new GenericUserBasedRecommender(model,neighborhood, similarity);
//为用户1推荐2个
List<RecommendedItem> recommendations = recommender.recommend(1, 2);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java与协同过滤推荐算法实现电影推荐系统
共61个文件
java:16个
class:16个
js:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 152 浏览量
2022-06-23
23:42:44
上传
评论 1
收藏 17.98MB RAR 举报
温馨提示
基于Java与协同过滤推荐算法实现电影推荐系统
资源推荐
资源详情
资源评论
收起资源包目录
基于Java与协同过滤推荐算法实现电影推荐系统.rar (61个子文件)
基于Java与协同过滤推荐算法实现电影推荐系统
.project 2KB
item1.png 319KB
.settings
com.genuitec.eclipse.migration.prefs 382B
.jsdtscope 567B
org.eclipse.core.resources.prefs 234B
org.eclipse.wst.common.component 565B
org.eclipse.jdt.core.prefs 357B
org.eclipse.wst.common.project.facet.core.xml 356B
WebRoot
WEB-INF
web.xml 957B
classes
META-INF
MANIFEST.MF 40B
com
rcd
conn
ConnectToMySQL.class 929B
im
info
ImportRatings.class 3KB
DBUtil.class 1KB
ImportMovies.class 4KB
StringUtil.class 1KB
javabean
Movie.class 3KB
Rating.class 1KB
MovieInfo.class 1KB
servlet
RecomendServlet.class 3KB
model
MyDataModel.class 1KB
GetMovieInfo.class 4KB
DataBaseUtil.class 2KB
recommender
MyItemBasedRecommender.class 2KB
MyUserBasedRecommender.class 2KB
RecommenderIntro.class 4KB
MySlopeOneRecommender.class 2KB
index.jsp 1KB
image
p2969.jpg 414KB
recommendResult.jsp 2KB
js
jquery-1.11.1.min.js 94KB
jquery-1.11.1.js 276KB
jquery.backstretch.js 12KB
jquery.backstretch.min.js 4KB
scripts.js 709B
placeholder.js 126B
MANIFEST.MF 39B
movielens
ratings.dat 23.45MB
users.dat 131KB
movies.dat 167KB
slope1.png 340KB
user1.png 331KB
src
META-INF
MANIFEST.MF 40B
com
rcd
conn
ConnectToMySQL.java 415B
im
info
StringUtil.java 404B
ImportRatings.java 2KB
ImportMovies.java 2KB
DBUtil.java 816B
javabean
Movie.java 2KB
MovieInfo.java 700B
Rating.java 644B
servlet
RecomendServlet.java 2KB
model
GetMovieInfo.java 3KB
MyDataModel.java 1KB
DataBaseUtil.java 2KB
recommender
MyItemBasedRecommender.java 1KB
MyUserBasedRecommender.java 2KB
RecommenderIntro.java 4KB
MySlopeOneRecommender.java 1KB
desktop.ini 46B
.classpath 13KB
data.zip 11.16MB
共 61 条
- 1
资源评论
- qq_527774952023-04-24资源值得借鉴的内容很多,那就浅学一下吧,值得下载!
Sherry_shiry
- 粉丝: 2
- 资源: 1097
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功