# MovieRecommend
一个电影推荐系统(本科毕业设计)——实现用户登录、评分、推荐,采用协同过滤算法。:cherry_blossom: <br/>
***
<!-- `2020.4.10 作者序`:<br/>
居然发现某二手交易app上出现了好几个卖家公然盗取我的项目及论文明码标价进行买卖。这个开源项目大家可以拿去用,但是买卖就造成侵权,望周知!
-->
## 作者序
<!-- 希望大家不要copy到本地修改后直接当做自己的毕业设计,最好自己学一遍`python+django+mysql`的基础知识。<br/> -->
我完成毕业设计的时间线可以参考README末尾的<a href="#note">笔记</a>,请注意`笔记`中所记载的内容和最后的实际成果有所出入,只做为本人完成毕业设计的过程记录。<br/>
本毕设为2018年所做,和当前主流技术有所出入,大家可以利用深度学习算法来改进推荐结果。<br/>
下面贴出我收藏的部分资料链接,希望对大家有帮助。
[Window 下 MySQL 5.6.15 下载安装及使用](https://blog.csdn.net/wtfmonking/article/details/17467399)
[Python3 MySQL 数据库连接](http://www.runoob.com/python3/python3-mysql.html)
[协同过滤算法](https://blog.csdn.net/acdreamers/article/details/44672305)
[django](https://www.cnblogs.com/fengbo1113/p/8547302.html)
## 系统流程
用户注册、登录系统,对看过的电影进行评分,点击提交评分按钮,再点击查看推荐按钮即可看见推荐的电影列表。项目主页以及推荐结果如下:<br/>
![img](https://github.com/JaniceWuo/MovieRecommend/blob/master/img/home.jpg)
![img](https://github.com/JaniceWuo/MovieRecommend/blob/master/img/recommend.jpg)
## 如何使用
1.首先将项目克隆到本地,用Pycharm打开movierecommend文件夹,并install<a href="#env">项目依赖</a> <br/>
2.将用到的csv文件导入mysql数据表中,详见<a href="#database">数据库建表</a> ,配置好数据库;注意数据库相关代码(settings.py、views.py)可能都要进行修改以符合实际情况;(本项目端口号为3307,用户为root,密码为admin,database为MovieData);<br/>
3.命令行执行:
```Python
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
```
点击http://127.0.0.1:8000/ 即可查看注册登录以及评分页面。<br/>
**注意登录后点击电影海报下面的星星对该电影评分,之后还要点击左上角的“提交评分”按钮才能将该评分数据存入mysql中,否则代码会报错。**
***
<span id="env">项目依赖</span><br/>
1.Python3.6+django1.11 (python3.5亦可)<br/>
2.MySQL5.6<br/>
3.Jquery+CSS3+Html5
<span id="database">数据库建表处理</span><br/>
1.在MySQL中创建一个database,取好名字,比如`MovieData`;<br/>
2.在该数据库中创建`moviegenre3`和`users_resulttable`两张表,建表命令行如下:
```mysql
CREATE TABLE moviegenre3(imdbId INT NOT NULL PRIMARY KEY,title varchar(300),poster varchar(600));
```
```mysql
CREATE TABLE users_resulttable(userId INT NOT NULL,imdbId INT,rating DECIMAL(3,1));
```
3.通过命令行或者navicat等工具将项目`data`文件夹下的两张csv表分别导入上面创建好的两张table中。由于moviegenre3.csv中的超链接较复杂,建议使用navicat工具导入;users_resulttable表可以使用下面命令行导入:
```mysql
load data infile "E:/MovieRecommend/data/users_resulttable.csv" into table users_resulttable fields terminated by ',' lines terminated by '\n' (userId,imdbId,rating);
```
注意,此表没有主键,增加主键操作为:
```mysql
alter table users_resulttable add column id int auto_increment PRIMARY KEY;
```
## 问题
1.由于在`views.py`的查询推荐结果的代码中直接将查询sql写死为`select * from users_resulttable WHERE userId = 1001`,可能会报keyerror:1001的错误。如果报错请检查`users_resulttable`表的末尾是否存入了userId=1001的用户评分记录,如果没有,很可能是用户没有点击`提交评分`按钮将数据插入数据表造成的。如果要进行第二个用户的注册和登录推荐,要将sql改为userId=1002或者先将user表中所存用户信息删除。<br/>
2.如果通过命令行将csv导入数据库表报错‘The MySQL server is running with the --secure-file-priv option so it cannot execute this statement’,则是mysql版本问题,建议使用5.6版本。如果使用5.7版本出现此问题,修改mysql文件夹下的my.ini文件,增加`secure_file_priv=`语句,并且在service服务里面重启mysql即可。<br/>
3.执行迁移时出现问题建议删除迁移文件重新迁移。<br/>
4.如有其他问题可邮件致信我:<mahappyending@gmail.com>
<!-- ## 论文
本科毕业论文已上传,关于推荐系统的介绍、展示都在论文中,有需要者可阅读 -->
***
<span id="note"></span>
**笔记**
2018年2月18日<br/> 寒假过的好快啊,前一阵子准备用flask,但是后面进一步了解之后决定用django+mysql+python完成这个推荐系统,现在就在懵懵懂懂的学django
2018/4/5<br/>
UserCF是给用户推荐和他有共同兴趣爱好的用户喜欢的电影,ItemCF是给用户推荐那些和他之前喜欢的电影类似的电影。
目前已经实现UserCF部分算法,模拟了用户-电影矩阵数据,对已有用户里的某一位用户进行电影推荐。之后的工作就是要从csv中获取数据。
看了《推荐系统实践》这本书,后期可能用基于标签,但是基于标签算法涉及更多,每部电影都需要多个标签,不能用movielens数据集。
2018/4/7<br/>
今天尝试用了pycharm,之前一直用的sublime,但是文件管理的比较混乱。用pycharm的时候遇到坑了,我系统按安装的是django1.11,
但是pycharm里面安装的是最新版本2.0,导致项目文件自带的代码有错误。后来又卸了重新安装,统一成了1.11.0版本。
接下来是mysql,项目迁移如下:
```Python
python manage.py makemigrations
```
这只是生成了迁移文件,还要执行迁移文件
```python
python manage.py migrate
```
***
2018/4/8
进行一下流程梳理:
1.先启动mysql:net start mysql;mysql -u root -p;
2. create database [数据库名字];<br/>
3.pycharm直接创建一个django项目,然后进入这个项目下<br/>
4.在settings.py 中,数据库代码为:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '[数据库名字]',
'PASSWORD': '[自己设置一个密码]',
'HOST': '127.0.0.1',
'USER': 'root',
'PORT': '',
}
}
```
5.在_init_.py中: import pymysql; pymysql.install_as_MySQLdb()
6.models.py:加入模型类,属性等。
7.生成迁移文件:python manage.py makemigrations;执行迁移:python manage.py migrate;
8.在mysql>中:use [数据库名]; show tables;
在项目文件下,python manage.py runserver 浏览器中输入127.0.0.1:8000
9.在templates下写html文件,然后和views.py视图文件、urls.py文件进行匹配
2018/4/10
今天搭建了django的虚拟开发环境,安装了virtualenv,一定要保证整个项目都在虚拟环境中运行。 django1.11.1
关于html文件调用js、css等文件:首先在建的app目录下建一个static文件,分支如下
├─migrations
│ └─__pycache__
├─static
│ ├─css
│ ├─img
│ └─js
└─__pycache__
注意migrations和static文件同级。html文件开头要加上 {% load staticfiles %},引入css的语句为:
```python
<link rel="stylesheet" href="{% static 'css/Test.css' %}">
```
如果纯粹像写前端那样调用css、js是不能成功的。
输入'http://127.0.0.1:8000/us
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
电影推荐系统 主要实现 实现用户登录、评分、推荐,采用协同过滤算法 系统流程 用户注册、登录系统,对看过的电影进行评分,点击提交评分按钮,再点击查看推荐按钮即可看见推荐的电影列表。 使用方法 1.首先将项目克隆到本地,用Pycharm打开movierecommend文件夹,并install项目依赖 2.将用到的csv文件导入mysql数据表中,详见数据库建表 ,配置好数据库;注意数据库相关代码(settings.py、views.py)可能都要进行修改以符合实际情况;(本项目端口号为3307,用户为root,密码为admin,database为MovieData); 3.命令行执行: python manage.py makemigrationspython manage.py migratepython manage.py runserver 点击http://127.0.0.1:8000/ 即可查看注册登录以及评分页面。 注意登录后点击电影海报下面的星星对该电影评分,之后还要点击左上角的“提交评分”按钮才能将该评分数据存入mysql中,否则代码会报错。
资源推荐
资源详情
资源评论
收起资源包目录
电影推荐系统源码.zip (2000个子文件)
Abidjan 170B
Accra 842B
Acre 662B
ACT 2KB
activate 2KB
Adak 2KB
Addis_Ababa 285B
Adelaide 2KB
Aden 187B
Alaska 2KB
Aleutian 2KB
Algiers 760B
Almaty 1KB
Amman 2KB
Amsterdam 3KB
Anadyr 1KB
Anchorage 2KB
Andorra 2KB
Anguilla 170B
Antananarivo 285B
Antigua 170B
Apia 1KB
Aqtau 1017B
Aqtobe 1KB
Araguaina 910B
Arizona 353B
Aruba 212B
Ashgabat 651B
Ashkhabad 651B
Asmara 285B
Asmera 285B
Astrakhan 1KB
Asuncion 2KB
Athens 2KB
Atikokan 345B
Atka 2KB
Atlantic 3KB
Atyrau 1KB
Auckland 2KB
Azores 3KB
Baghdad 1004B
Bahia 1KB
Bahia_Banderas 2KB
Bahrain 225B
BajaNorte 2KB
BajaSur 2KB
Baku 1KB
Bamako 170B
Bangkok 220B
Bangui 171B
Banjul 170B
Barbados 344B
Barnaul 1KB
activate.bat 607B
deactivate.bat 347B
Beirut 2KB
Belem 602B
Belfast 4KB
Belgrade 2KB
Belize 978B
Berlin 2KB
Bermuda 2KB
Beulah 2KB
Bishkek 1KB
Bissau 208B
Blanc-Sablon 307B
Blantyre 171B
Boa_Vista 658B
Bogota 271B
Boise 2KB
Bougainville 296B
Bratislava 2KB
Brazzaville 171B
Brisbane 452B
Broken_Hill 2KB
Brunei 229B
Brussels 3KB
Bucharest 2KB
Budapest 2KB
Buenos_Aires 1KB
Buenos_Aires 1KB
Bujumbura 171B
Busingen 2KB
Cairo 2KB
Calcutta 312B
Cambridge_Bay 2KB
Campo_Grande 2KB
Canary 2KB
Canberra 2KB
Cancun 816B
Cape_Verde 284B
Caracas 289B
Casablanca 2KB
Casey 311B
Catamarca 1KB
Catamarca 1KB
Cayenne 224B
Cayman 203B
Center 2KB
Central 4KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- Zerosaki72024-04-05资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
小正太浩二
- 粉丝: 219
- 资源: 5915
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功