# MovieRecommendSystem **Repository Path**: warger/MovieRecommendSystem ## Basic Information - **Project Name**: MovieRecommendSystem - **Description**: 本项目总体上可分为业务模块和推荐模块两个大的部分,推荐模块又可分为数据加载模块,离线统计模块,离线推荐模块,在线推荐模块等子模块,Scala开发,在IDEA平台下使用了Spark,MongoDB,Elasticsearch,Redis,Kafka,Flume等开发技术,实现了分布式电影推荐功能 - **Primary Language**: Scala - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-03-09 - **Last Updated**: 2022-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电影推荐系统 #### 介绍 本项目总体上可分为业务模块和推荐模块两个大的部分,本人独立完成整个项目推荐模块的后台开发,该部分又可分为数据加载模块,离线统计模块,离线推荐模块,在线推荐模块等子模块,Scala开发,在IDEA平台下使用了Spark,MongoDB,Elasticsearch,Redis,Kafka,Flume等开发技术,实现了分布式电影推荐功能。 #### 软件架构 离线统计功能(SparkSQL+MongoDB):如近期热门电影推荐,分类别高分电影推荐等; 离线推荐功能(SparkMlib+MongoDB+Elasticsearch):如基于隐语义模型的协同过滤推荐(user-item矩阵分解),Item-CF等; 实时推荐功能(Flume+kafka+SparkStreaming+SparkMllib+Redis+MongoDB):找出用户最近看的上一部电影的K部相似电影(余弦相似度),结合用户近期的观影情况和评分情况,实时推出用户当前最可能看到的电影。用户每看完或评价完一部电影,实时推荐列表可能都会根据用户的偏好变化。 基于内容的推荐(MongoDB+SparkMllib):根据电影的标签提取电影A的内容特征,选取与A特征相似的电影推出,用TF-IDF的方法来进行特征提取,即:对每部电影Embedding。用余弦相似度衡量相似性。 #### 数据源解析 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0112/195913_49ea61ce_1639644.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0112/195947_bc44f90c_1639644.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0112/195955_dd90423a_1639644.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0112/200005_a58c7740_1639644.png "屏幕截图.png") #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request