有关信息
电影推荐系统中运用的推荐算法是根据一起过滤算法(Collaborative Filtering Recommendation)。一起过滤是在信息过滤和信息系统中正便捷成为一项很受欢迎的技术。与传统的根据访问控制径直剖析始末进展推荐不同,一起过滤剖析用户兴趣。在用户群中找到指定用户的相像(兴趣)用户,综合该署相像用户对某一信息的品评,不辱使命系统对该指定用户对此信息的喜好程度预计。
电影推荐系统中圈定了Apache Mahout供给的一番一起过滤算法的推荐引擎Taste,它实现了最基本的根据用户和根据始末的推荐算法,并供给了推而广之接口,使用户方便的定义和实现本人的推荐算法。
电影推荐系统是根据用户的推荐系统,即当用户对某些电影评分从此,系统凭依用户对电影评分的分值,判断用户的兴趣,先运用UserSimilarity计算用户间的相像度.UserNeighborhood凭依用户相像度找到与该用户口味相像的邻居,最后由Recommender供给推荐个该用户可能感兴趣的电影详细信息。将用户评矫枉过正的电影信息和推荐给该用户的电影信息显示在网站结果页中,推荐完成。
Taste的布局结构:
Taste的布局结构一般来说图所示:
应用层
----------------------------------------------------------------------------------------




推荐系统层





---------------------------------------------------------------------------------------------------
数据存储层
Taste的布局结构图
Taste 由之下五个主要的组件粘结:
DataModel:DataModel 是用户喜好信息的抽象接口,它的具体实现赞同从任意类型的数据源连接数据库抽取用户喜好信息。Taste 公认供给 JDBCDataModel 和 FileDataModel,分别赞同从数据库和文件中读取用户的喜好信息。
UserSimilarity 和 ItemSimilarity:UserSimilarity 用于定义两个用户间的相像度。它是根据一起过滤的推荐引擎的核心部分,可以用来计算用户的“邻居”,这里吾辈将与当前用户口味相像的用户称为他的邻居。 ItemSimilarity类似的,计算始末之间的相像度。
UserNeighborhood:用于根据用户相像度的推荐方法中,推荐的始末是根据找到与当前用户喜好相像的“邻居用户”的抓挠发生的。UserNeighborhood 定义了确定邻居用户的方法,具体实现常备是根据 UserSimilarity 计算得到的。
Recommender:Recommender 是推荐引擎的抽象接口。Taste 中的核心组件。程序中,为它供给一番 DataModel,它可以计算出对不同用户的推荐始末。使用GenericUserBasedRecommender 或许 GenericItemBasedRecommender,分别实现根据用户相像度的推荐引擎或许根据始末的推荐引擎。
电影推荐系统的实现:
1. 数据下载:
到grouplens网站(http://www.grouplens.org/node/12)老人载Data Sets,在该电影系统中吾辈使用了将近900多用户为1683的电影评了近100000行的数据集。将下载的ml-data_0.zip里的评分数据和电影信息数据掏出。将评分文件转移成类似于csv文件格式的文本文件,CSV是逗号分隔值文件(Comma Separated value),是一种用来存储数据的纯文本文件格式,文件何谓rating.TXT。可以用会议室椅子带写字板打开,如图4.1:

图4.1 rating.txt透视图
将电影数据文件转移成movies.xml文件,推而广之标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据。如图4.2:

图4.2 movies.xml透视图
2. 周转
将以上两个文件放入C盘,用Myeclipse加载该web project—movies周转。在首页进口用户号userid以及推荐电影数countr。例如:进口userId:500 count:50.




