• Stars
    star
    182
  • Rank 209,942 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎥 豆瓣电影推荐系统(Douban Movie Recommendation System)根据豆瓣电影数据以及豆瓣用户的观影和影评数据,使用基于物品的协同过滤算法对用户进行个性化推荐,并设计GUI进行用户交互。

DoubanMovieRecommendationSystem

📘 Introduction

豆瓣电影推荐系统——通过爬取电影数据和用户数据,再利用所爬取的数据设计并实现相关推荐算法对用户进行电影推荐。然后设计出图形用户界面(GUI)进行交互,封装成电影推荐软件,针对数据集中的用户推荐相关电影。

主要分为三大模块:

1️⃣ 爬虫模块:request 库、json 库、MySQL

2️⃣ 推荐系统模块:基于物品的协同过滤算法(ItemCF 算法)

3️⃣ GUI 模块:PyQt5

开发环境:Python 3.7.7

👉 Instruction

运行 GUI 文件夹中的 main.py 文件即可。

😄 Information

开发者:许继元

联系邮箱:[email protected]

项目开发时间:2020-05-01至 2020-05-13

版本号:1.0.0

🔎 ​Algorithm

ItemCF 算法不利用物品的内容属性计算物品之间的相似度,而是通过分析用户的行为记录计算物品之间的相似度。ItemCF 算法认为,物品 A 和物品 B 具有很大的相似度是因为喜欢物品 A 的用户大都也喜欢物品 B。

ItemCF 算法步骤:

- 计算物品之间的相似度。

- 根据物品的相似度和用户的历史行为给用户生成推荐列表。

简单来说,ItemCF 算法给用户推荐那些和他们之前喜欢的物品相似的物品。

举个例子:
用户/物品 物品 A 物品 B 物品 C
用户 A
用户 B
用户 C 与物品 A 相似,推荐

💡 ​Features

1.登录注册界面

登录注册界面是经典的用户图形界面,在 QQ 等平台都有类似的界面,在 users_info.csv 数据集中随便选取一名用户的用户名和密码输入,即可成功登录。

登录注册界面.png

2.用户主界面

登录成功后进入用户主界面,界面的左边是个性化推荐板块,右边是热门电影板块。

用户主界面.png

3.电影搜索界面

进入用户主界面之后,通过点击“电影搜索”按钮,可以进入电影搜索界面,该搜索界面支持模糊搜索。例如输入复仇者联盟,即可看到复仇者联盟这一系列的电影。

电影搜索界面.png

4.电影详情界面

在用户主界面中,通过点击“电影详细页面”按钮,可以进入电影详细信息的搜索界面,通过输入完整的电影名称(例如:千与千寻),我们可以了解电影的详细信息,如导演、编剧、主演、电影简介等信息都可以看到。

电影详情界面.png

5.用户个人界面

进入主界面后,有一个“个人主页”按钮,点击之后,简单的个人信息显示如下。

用户个人界面.png

🔆 Optimization

用户的冷启动问题

用户新注册时,会弹出一个窗口,询问用户喜欢的电影类型,此处输入“喜剧”进行测试,可以看到,根据用户喜欢的电影类型给用户进行了个性化推荐。

注册界面.png

成功注册.png

用户的冷启动问题.png

用户的冷启动问题(测试).png

❗ License

本软件仅供学习与参考,请勿用于商业用途

Copyright 许继元

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More Repositories

1

DataMiningVisualizationSystem

🌀 数据挖掘可视化系统(Data Mining Visualization System)通过数据挖掘理论、机器学习算法以及数据可视化等信息技术,并基于 Flask 框架搭建 Web 服务器,实现数据挖掘可视化。
Python
95
star
2

MathematicalModelingAlgorithm

📊 数学建模算法及 Python 代码实现。​
Python
77
star
3

LiveChat

👬 本项目基于 Java 的 Swing 包实现了一个带图形用户界面的基于数据加密算法的即时聊天系统。实现了用户登录及验证、在线聊天、好友管理、文件传输、聊天记录管理和数据传输加密等功能。
Java
30
star
4

CUMCM2020C

📈​ 2020 年全国大学生数学建模竞赛 C 题广东省分赛一等奖的代码和相关数据。
Python
14
star
5

SafetyFirstAidSystem

⛑️ 安全急救系统(Safety First Aid System)由智能安全帽、定位基站、边缘运算盒、云端服务器以及移动端 APP 组成,采用自主设计的安全急救方法,结合 UWB 定位以及多传感器融合技术,实现当危险发生时,能够及时向外界发送求救信息,精准定位险情地点,以达到缩短黄金救援时间的目的。
Python
13
star
6

PythonScraper

🕷️ Python 网络爬虫的案例,爬取的网站有豆瓣、美团、哔哩哔哩、图片资源、古诗词、广东工业大学官网等。
Python
13
star
7

RedBlackTree

🌲 ​基于 C 语言实现了红黑树(Red-Black Tree)以及用户测试程序。其中红黑树的实现基于二叉树、二叉排序树和平衡二叉树的接口。用户测试程序实现了初始化、销毁、插入、删除、查找、遍历、打印红黑树信息等功能。
C
7
star
8

MachineLearningAlgorithm

⚙️ 机器学习算法
Jupyter Notebook
5
star
9

MCMICM2020C

📒 Here is the process of solving the C problem of the 2020 MCM/ICM.
Jupyter Notebook
5
star
10

LightChat

💬 LightChat —— 一个微博客社交平台,用户可以发布动态、查看他人动态、关注或取关他人。另外可以通过上传图片的形式修改头像,且可以通过接收邮件的形式修改密码。
Python
5
star
11

Toutiao

📹 本项目使用 Objective-C 语言实现了一个短视频 APP。主要功能有短视频上下滑动播放、搜索页面、分类导航栏和个人主页等。
Objective-C
4
star
12

AWDP

📃 In this paper, we propose a probability distribution model named AWDP (Adaptive grid-based Weighted Differential Privacy) for publishing sequential trajectory dataset with differential privacy guarantee and high utility.
Python
4
star
13

ElevatorSimulation

🏬 基于栈和队列实现的电梯模拟程序。电梯系统是乘客和电梯等“活动体”构成的集合,它们彼此交互作用,但它们的行为是基本独立的。以模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。
C++
3
star
14

DataStructureADT

🌏 基于 C 语言实现的链表、栈、队列、排序算法以及二叉树的ADT。
C
3
star
15

QGDataMiningGroupTraining

🕵️‍♀️ ​Here recording the training process in QGDataMiningGroup.
Jupyter Notebook
2
star
16

Giyn

2
star
17

QGTrainingCamp

​🚴‍♂️​ Here recording the training process in QGTrainingCamp.
C
2
star
18

TinyWeb

☸️ 本项目使用 Golang 实现了一个 Web 框架,路由设计基于前缀树实现,核心功能包括动态路由解析、 路由分组控制、中间件机制、错误处理机制等。
Go
2
star
19

QG2020SummerTraining

🌱 QG工作室大一暑期培训
Jupyter Notebook
2
star
20

AddressBook

📒 一个简单的通讯录软件。
Objective-C
2
star
21

LeetCode-Giyn

Go
2
star
22

CreditCardFraudDetection

💳 Credit Card Fraud Detection | Kaggle
Jupyter Notebook
1
star
23

DesignAndAnalysisOfAlgorithms

1
star
24

BikeSharingDemand

🚲 Bike Sharing Demand | Kaggle
Jupyter Notebook
1
star
25

QG2021DMGroupMidExam

Jupyter Notebook
1
star
26

TomCat

😼 一个简单的汤姆猫软件。
Objective-C
1
star
27

MCMICM2021C

🐝 Here is the process of solving the C problem of the 2021 MCM/ICM.
Jupyter Notebook
1
star