基於Spark的電影推薦系統(電影網站)


第一部分-電影網站:

軟件架構: SpringBoot+Mybatis+JSP
項目描述:主要實現電影網站的展現 和 用戶的所有動作的地方

技術選型:

技術 名稱 官網
Spring Boot 容器 https://projects.spring.io/spring-boot/
Spring MVC MVC框架 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis Generator 代碼生成 http://www.mybatis.org/generator/index.html
PageHelper MyBatis物理分頁插件 http://git.oschina.net/free/Mybatis_PageHelper
Druid 數據庫連接池 https://github.com/alibaba/druid
Redis (后期) 分布式緩存數據庫 https://redis.io/
Elasticsearch(后期) 分布式全文搜索引擎 http://lucene.apache.org/solr/ https://www.elastic.co/
Logback 日志組件 https://logback.qos.ch/
Swagger2 接口測試框架 http://swagger.io/
Maven 項目構建管理 http://maven.apache.org/

主要開發工具:

  • MySql: 數據庫
  • Tomcat: 應用服務器
  • Git: 版本管理
  • IntelliJ IDEA: 開發IDE

開發環境

  • JDK 1.8+
  • Maven 3.3.9
  • Mysql 5.7.20+
  • Lombok , 需要開發環境(IDEA或eclipse)支持

項目架構

項目流程圖

數據表設計

ps:推薦指的是spark推薦模型進行處理的表

  • alstab 個人用戶的推薦強度表 推薦 ps:用戶登陸后,選取用戶id關聯的電影id 進行電影推薦
    - similartab 相似的電影 推薦*
    - topdefaultmovies 默認電影
    - rectab 用戶評價的時候將相似的電影寫入此表
    - browse 1. 新用戶注冊時喜歡的電影 2. 點擊喜歡按鈕的電影
    - review 評價過的電影
所有數據表
admin 管理員表
	id name password role
	role 0代表超級管理員,1代表普通

alstab 強度表===推薦系統得到
	userid movieid rating(評分)

browse  瀏覽表
	id userid movieids browsetime (瀏覽時間)

category 電影類型
	id category
	
movie 電影詳情 50581條數據
	movieid 
	moviename 電影名稱
	showyear上映時間
	nation 國家
	director 導演
	leadactors 主演
	screenwriter 編劇
	picture 電影海報
	averating 平均評分
	numrating 多少人看過
	description 描述
	typelist 電影類型
	backpost 電影背景圖片
	
moviecategory 電影所屬類型 88870條數據
	id
	movieid 
	categoryid

rectab
	userid
	movieids
	
review 用戶對電影的評分,和評價
	id
	userid
	movieid
	content
	star
	reviewtime
	
similartab 類似度 68908條數據
	itemid1
	itemid2
	similar 

topdefaultmovies 默認的top
	id
	movieid
	moviename

user 用戶表
	userid
	username
	password
	email
	registertime 
	lastlogintime
用戶流程分析
步驟1:
	開始直接從topdefaultmovies表中取出前五部電影
		- 使用top表的movieid去關聯查詢movie表的數據
步驟2:
	登錄:
		- 從ALS強度表中查詢推薦強度8以上的電影
		(這個是每個用戶來說的,也就是說,帶上userid去查詢的強度表的)

更多文章:基於Spark的電影推薦系統:https://blog.csdn.net/liuge36/column/info/29285


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM