豆瓣电影推荐系统——通过爬取电影数据和用户数据,再利用所爬取的数据设计并实现相关推荐算法对用户进行电影推荐。然后设计出图形用户界面(GUI)进行交互,封装成电影推荐软件,针对数据集中的用户推荐相关电影。
主要分为三大模块:
1️⃣ 爬虫模块:request 库、json 库、MySQL
2️⃣ 推荐系统模块:基于物品的协同过滤算法(ItemCF 算法)
3️⃣ GUI 模块:PyQt5
开发环境:Python 3.7.7
运行 GUI 文件夹中的 main.py
文件即可。
开发者:许继元
联系邮箱:[email protected]
项目开发时间:2020-05-01至 2020-05-13
版本号:1.0.0
ItemCF 算法不利用物品的内容属性计算物品之间的相似度,而是通过分析用户的行为记录计算物品之间的相似度。ItemCF 算法认为,物品 A 和物品 B 具有很大的相似度是因为喜欢物品 A 的用户大都也喜欢物品 B。
- 计算物品之间的相似度。
- 根据物品的相似度和用户的历史行为给用户生成推荐列表。
简单来说,ItemCF 算法给用户推荐那些和他们之前喜欢的物品相似的物品。
用户/物品 | 物品 A | 物品 B | 物品 C |
---|---|---|---|
用户 A | √ | √ | |
用户 B | √ | √ | √ |
用户 C | √ | 与物品 A 相似,推荐 |
登录注册界面是经典的用户图形界面,在 QQ 等平台都有类似的界面,在 users_info.csv
数据集中随便选取一名用户的用户名和密码输入,即可成功登录。
登录成功后进入用户主界面,界面的左边是个性化推荐板块,右边是热门电影板块。
进入用户主界面之后,通过点击“电影搜索”按钮,可以进入电影搜索界面,该搜索界面支持模糊搜索。例如输入复仇者联盟,即可看到复仇者联盟这一系列的电影。
在用户主界面中,通过点击“电影详细页面”按钮,可以进入电影详细信息的搜索界面,通过输入完整的电影名称(例如:千与千寻),我们可以了解电影的详细信息,如导演、编剧、主演、电影简介等信息都可以看到。
进入主界面后,有一个“个人主页”按钮,点击之后,简单的个人信息显示如下。
用户新注册时,会弹出一个窗口,询问用户喜欢的电影类型,此处输入“喜剧”进行测试,可以看到,根据用户喜欢的电影类型给用户进行了个性化推荐。
本软件仅供学习与参考,请勿用于商业用途
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.