1. プロジェクトの紹介:
このレコメンデーション システムは、階層化モデル設計思想を採用しています。最初の層は、ページの表示効果に焦点を当てたフロントエンド ページ モデル設計です。主なプログラミング言語は JavaScript で、フロントエンド 主流フレームワーク ブートストラップです。
第 2 層はバックエンド モデルの設計です。プログラミング言語は理解しやすい Python で、開発用のバックエンド フレームワークとして Django が使用されます。このフレームワークは、Python Web システム開発で推奨されるフレームワークです。使いやすいです。
第 3 層は協調フィルタリング アルゴリズムによって実現されるアルゴリズムの設計と実装のロジックであり、第 4 層は SQLite データベースを使用するデータベース テーブルの設計です。
本システムのWeb側の機能モジュールは、主に動画表示、動画分類表示、人気動画分類表示、お気に入り動画分類表示、時間分類表示、評価分類表示、アルゴリズム推奨、動画検索、動画情報管理、データベース管理、詳細設計、設計段階での各種機能の完成、機能テストを経て、最終的に関連する実用化運用までを行う システムを利用することで、ユーザーは映画推薦システムに参入するラベル付け動作は、ユーザーが興味のある映画を約75%の正解率で推奨し、ユーザーは情報を閲覧したり、映画を視聴したり、映画を評価したりすることができ、システムは期待される基本機能をほぼ満たしています。
2. 技術的な紹介:
フロントエンド: bootstrap3 + js+ jquery
バックエンド: django 2.2.1 + django--rest-framework (MVC フレームワーク)
データベース: MySQL/sqlite3
アルゴリズム: 協調フィルタリング推奨アルゴリズム
Douban データセット
クローラーを使用して、Douban 映画サイトの映画情報を画像付きで取得します
id、タイトル、画像リンク、国、年、監督説明、リーダー、スター、
説明、すべてのタグ、imdb、言語、時間の長さ
動画数: 3000
3. 機能の紹介:
動画表示、タグ分類、詳細紹介、動画検索
ユーザーのログイン、登録、変更情報
映画に対するユーザーの評価、お気に入り、コメント
ユーザーとアイテムに基づいた協調フィルタリング推奨アルゴリズム
バックグラウンド管理システム
4. アルゴリズムの紹介
1、冷启动问题解决
推荐值: 相似度*评分 根据用户点赞过得商品来寻找相似度推荐。计算每个点赞过的物品和所有未点赞物品之间的得分。得分=相似度*打分值分越高表示越相似。 然后返回结果。
2、项目文件介绍
media/ 静态文件存放处,图片
movie/ Django的默认app,负责设置的配置还有url路由,部署等功能
static/ css文件和js文件的存放处
user/ 主app,程序的所有代码基本都在这下面 user/migrations为自动生成的数据库迁移文件 user/templates为前端页面模板文件, user/admins.py 为管理员后台代码 user/forms.py为前端表单代码 user/models.py为数据库orm模型 user/serializers.py为restful文件,不用管。 user/urls为路由注册文件。 user/views为负责处理前端请求和与后端数据库交互的模块,也就是controller模块。
cache_keys.py为缓存的key值名称存放文件,不用管。
db.sqlite3数据库文件
douban_crawler.py 豆瓣爬虫文件
manage.py 运行的主程序,从这里启动
Populate movies script.py 填充电影数据到数据库中
Populate user rate.py 随机生成用户评分
recommend_movies.py为推荐算法的部分
model: recommend模型存放的位置
3、后台管理
通过创建管理员进入后台,已经自带管理员用户名和密码均为admins。
同时可以通过python manage.py createsuperuser 在终端交互输入用户名和密码即可
创建超级管理员, (密码输入时终端暂时显示)
进入后台: 127.0.0.1:8000/admin
五、各功能代码位置介绍:
标签分类: 数据库设计Movie通过外键关联Tags表,
电影搜索: 在views.py search方法中。通过电影名,导演名,介绍去进行关键字搜索。
后台管理: 通过django自带的admin后台加插件 在admins.py中注册数据库模型
两种推荐算法: 都在recommend_movies.py文件中。
推荐显示的代码:
前端: items.html
后端: views.py中 388行 user_recommend 传递数据到前端template
算法:recommend_movies.py。
六、依赖包和框架版本
(venv) E:\movie>pip list
Package Version
aiohttp 3.7.4.
asgiref 3.3.4
async-timeout 3.0.1
attrs 21.2.0
beautifulsoup4 4.9.3
bs4 0.0.1
certifi 2020.12.5
chardet 4.0.0
crawler 0.0.2
Django 2.2.10
django-simpleui 2.1
djangorestframework 3.9.1
greenlet 1.1.0
idna 2.10
idna-ssl 1.1.0
importlib-metadata 4.0.1
lxml 4.6.3
multidict 5.1.0
七、安装运行方法
1.解压项目,解压的文件夹目录下有movie,用pycharm打开movie目录。
2.在pycharm配置python解释器,3.7及以下都可以。可以通过conda或者其他的虚拟环境来安装。
3.打开终端 输入pip install -r requirements.txt 若提示无pip。去下载get-pip.py 运行python get-pip.py
4.安装成功后, 使用pip list 查看已经安装好的package,和requirements.txt中的进行对比,确认安装无误。
有两种运行方法:
1.通过命令行/cmd运行: python manage.py runserver
2.通过Pycharm专业版配置运行,右上角选中movie,一键运行,第一次运行时间可能比较长,因为需要将item_recommend的相似矩阵计算出来。将模型保存到本地。