基于Django2.2+MySQL+spark的在线电影智能推荐系统的设计与实现

项目源码地址:https://download.csdn.net/download/lijunhcn/88463157

本项目实现在线电影推荐系统的前后端开发,使用Django2.2+MySQL+spark。其中MySQL部分支持在线计算,spark支持离线计算。

目录

安装指南

环境配置

本项目基于ubuntu18.04运行。

如下安装好Django2.0+和最新的xadmin

pip3 install --upgrade pip;
pip3 install git+git://github.com/sshwsfc/xadmin.git@django2;
pip3 install django;
pip3 install Pillow;
pip3 show xadmin;
pip3 show django;

还需要安装MySQL8.0+,具体过程可参考MySQL8.0环境搭建

项目清理

Django框架需要通过migrate命令自动构建数据库,但是会生成相应的缓存文件,这里清空所有的缓存文件并保留应有的结构。

cd MovieRecOnline;
rm -r ./apps/movies/__pycache__
rm -r ./apps/operation/__pycache__
rm -r ./MovieSizer/__pycache__
​
rm -r ./apps/movies/migrations/*
rm -r ./apps/user/migrations/*;
rm -r ./apps/operation/migrations/*;
​
touch ./apps/movies/migrations/__init__.py
touch ./apps/user/migrations/__init__.py
touch ./apps/operation/migrations/__init__.py

配置MySQL数据库

首先修改MovieRecOnline/MovieSizer/settings.py文件的mysql数据库连接:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'MovieSizer',
        'USER': 'root',
        'PASSWORD': '你的密码',
        'HOST': 'master',
        'PORT': '3306'
    }
}

然后在MySQL shell中建立数据库MovieSizer

mysql -u root -p

use mysql;
create database MovieSizer;

启动项目

执行migrate自动建表:

cd MovieRecOnline;
chmod +x manage.py;
python3 manage.py makemigrations;
python3 manage.py migrate;

输出如下

Migrations for 'operation':
  MovieSizer-final/apps/operation/migrations/0001_initial.py
    - Create model Top5Recommend_2
    - Create model Top5Recommend
    - Create model Review
    - Create model Rating
    - Create model Default5Recommend
.
.
.
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, movies, operation, sessions, user, xadmin
Running migrations:
  Applying operation.0001_initial... OK
.
.
.
  
  

最后创建管理员用户

python3 manage.py createsuperuser

启动项目

python3 manage.py runserver 0.0.0.0:8000

成功则输出如下

Watching for file changes with StatReloader
Performing system checks...
​
System check identified no issues (0 silenced).
May 15, 2019 - 00:47:32
Django version 2.2, using settings 'MovieSizer.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[15/May/2019 00:47:37] "GET /movieinfo/7641 HTTP/1.1" 200 47740
^C

数据导入

本项目提供爬取的猫眼电影网站数据作为DEMO,共1000条,字段对应movies_movieinfo表,SQL文件,复制到MySQL shell中即可插入数据。

接着使用我们编写的cal_similar_gry.py文件计算电影相似度,存入movies_moviesimilar表。注意需要使用pip3 install distance安装依赖,并将MySQL账号密码的参数设置正确。

到这里我们已经计算好了movies_movieinfo表和movies_moviesimilar表,主页已经能显示。

算法说明

本项目计算两张电影相似度表,分别是movies_moviesimilarmovies_moviesimilar_fromspark,对应两张推荐表operation_top5recommendoperation_top5recommend_2。第二张相似表由spark计算得出,详情可见'calculate_similarity_mch.ipynb'。spark分布式的安装可以参考Spark全分布式安装

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辣椒种子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值