Taste开源项目简介

Taste项目路径:http://svn.mugshot.org/taste/vendor/current/src/main/com/planetj/taste/model/

 

 Taste是一个java开发的基于协同过滤的推荐引擎,利用用户对已接触内容的评价值来推测用户尚未接触的内容的评价值,并以此作为推荐的依据。Taste提供了一组丰富的组件和算法来让你根据自己项目的需要进行不同的组合,从而设置满足你项目的推荐功能。它基于java开发,但是并不止可以应用在基于java开发的应用系统中,还可以通过web services以及http等向不同的业务系统提供推荐逻辑。
Taste定义了五个基本的接口DataModel、PreferenceTransform、UserCorrelation、ItemCorrelation、UserNeitghborhood和Recommender。
Recommender是Taste的核心,给定一个DataModel,就可以通过Recommender获取推荐结果,通常应用程序使用将GenericUserBasedRecommender或者GenericItemBasedRecommender这两个实现类包装在CachingRecommender中进行推荐。
DataModel为用户对内容的评价矩阵模型,可以通过具体的实现类加载文件中或者数据库中的用户评价数据,评价数据的格式为{userId, itemId, preference}三字段。
PreferenceTransform用于改变(归一化或者扩大化)数据模型中的preference值。
UserCorrelation用户相似性计算组件,与Neighborhood一起使用;ItemCorrelation用于寻找内容(item)之间的相似性。
UserNeighborhood定义一种确定“邻居”的方法,因为基于用户的推荐中,要寻找与给定用户最相近的“邻居”,从而根据这些邻居对内容的评价来计算目标用户对内容的评价。
基于用户推荐的代码示例:
DataModel model = new FileDataModel(new File("data.txt")); //加载用户评价数据
model.addTransform(new ZScore()); //可选,用于数据模型里面的preference值变换(归一化)
model.addTransform(new CaseAmplification(1.5)); //同上(扩大化)
model.addTransform(new InverseUserFrequency(model)); //同上(倒转频率,现实意义为很少人评价<评价频率小>的内容影响度高于很多人评价的内容)
UserCorrelation userCorrelation = new CosineMeasureCorrelation(model);//可选,用户相似性算法设置,(余弦向量算法)
userCorrelation.setPreferenceInferrer(new AveragingPreferenceInferrer());//评价值预测算法
UserNeighborhood neighborhood = new NearestNUserNeighborhood(3, userCorrelation, model);//邻居确定算法设置
Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, userCorrelation);//构造Recommender
Recommender cachingRecommender = new CachingRecommender(recommender);//构造Recommender
List recommendations = cachingRecommender.recommend("1234", 10);//获取推荐列表
基于用户的推荐算法的中心思想是:根据目标用户的历史评价记录找到与目标用户相近的用户——即所谓的“邻居”,然后根据这些“邻居”对目标用户未评价的内容的评价值,推测出目标用户可能的推测值,进行排序从而给出靠前的列表作为推荐列表。

Taste下载:http://sourceforge.net/projects/taste/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值