天天看點

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

1.概要

本系統是一個以Mysql為資料庫,利用Java servlet開發的基于B/S結構的電影推薦網站。伺服器是Apache Tomcat,推薦庫是Apache Mahout,在Eclipse環境下進行開發。采用的資料集是明尼蘇達大學雙子城計算機科學與工程系的研究實驗室GroupLens研究實驗室收集的電影資料。

2.需求分析

本系統的使用者分為普通使用者和管理者,普通使用者的功能主要包含三個部分,分别是:登入檢視所有電影,檢視自己評分的電影并進行管理,點選檢視由系統推薦的電影。管理者的功能包含兩部分:登入管理使用者資訊和管理電影資訊。用例圖分别如下:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)
基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

3.資料庫設計

資料來源:

資料來源:http://www.grouplens.org/node/12

資料庫設計:

資料表分為三張主要表,一是存儲使用者評分資料集的電影評分表,二是儲存電影資訊的電影資訊表,三是存儲使用者資訊的使用者表。

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

邏輯設計:

本系統的資料集的關系為:使用者的資訊和電影的資訊通過電影評分表來進行聯系,使用者根據使用者Id來和正在檢視的電影的Id來在電影評分表中确定其對目前電影的評分。

資料集中的關系模型:

電影(電影Id,電影名稱,發行日期,類型)

電影評分(使用者Id,電影Id,評分時間)

使用者(使用者Id,密碼,使用者類型)

資料集中資料的實體關系圖如圖:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

4.功能子產品設計與實作

1.首頁

網站首頁在使用者正确登入後可見,其功能是顯示所有的電影。由背景代碼擷取到資料庫中Movies表中的資訊後,将其顯示出來,電影海報在系統檔案夾中以電影名稱命名,首頁需要将電影海報讀取顯示出來。由于有的海報資料的缺失,有的電影海報不能顯示。

2.我的電影

我的電影頁面包含在電影評分表中目前使用者評過分的所有電影資訊以及評分,使用者在此頁面可以對自己評分過的電影修改自己以前的評分,也可以删除此電影。

3.推薦子產品的設計

利用mahout的推薦算法,分别實作了基于使用者的推薦,基于内容的推薦和基于SlopeOne的推薦,部分代碼如圖:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

4.管理子產品

管理者登入後預設跳轉到此頁面,在此頁面管理者可以對電影資訊和使用者資訊進行管理。

系統整體的架構圖如圖:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

5.項目截圖

登入:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

首頁:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

我的電影頁:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

推薦頁:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)
基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

管理頁:

基于Mahout的電影推薦網站的設計與實作(JAVA語言實作)

6.項目源碼

源碼私聊,有償。