Python電影推薦系統(tǒng) 爬蟲 Django框架 協(xié)同過濾推薦算法 數(shù)據(jù)分析 vue框架 計算機畢業(yè)設(shè)計

一、項目介紹:

本推薦系統(tǒng)采用的是分層模型設(shè)計思想,第一層為前端頁面模型設(shè)計,注重為實現(xiàn)頁面的展示效果,主用的編程語言為JavaScript,和前端主流框架bootstrap。

第二層為后端模型設(shè)計,編程語言選了簡單易懂的python,用Django作為后端框架進行開發(fā),此框架是python web系統(tǒng)開發(fā)的首選框架,簡單易用。

第三層為算法的設(shè)計與實現(xiàn)的邏輯,用協(xié)同過濾算法來實現(xiàn),第四層為數(shù)據(jù)庫表的設(shè)計,用SQLite數(shù)據(jù)庫。

本系統(tǒng)web端的功能模塊,主要實現(xiàn)影片顯示、影片分類顯示、熱門影片排序顯示、收藏影片排序顯示、時間排序顯示、評分排序顯示、算法推薦、影片搜索、影片信息管理等功能,并進行數(shù)據(jù)庫的詳細設(shè)計,完成設(shè)計階段的各項功能,并對此系統(tǒng)進行功能測試,最后,系統(tǒng)進行相關(guān)的實際應(yīng)用操作,通過系統(tǒng)的使用,用戶進入電影推薦系統(tǒng),此系統(tǒng)可以根據(jù)用戶對電影所打的標簽行為,給用戶推薦用戶所感興趣的電影,準確率在百分之75左右,用戶可以查看信息,觀看影片,給影片評分等操作,本系統(tǒng)基本上完成了預(yù)期的基本功能。

二、技術(shù)介紹:

前端: bootstrap3 + js+ jquery

后端: django 2.2.1 + ?django--rest-framework ?(MVC框架)

數(shù)據(jù)庫:?MySQL/sqlite3

算法:協(xié)同過濾推薦算法

豆瓣數(shù)據(jù)集

通過爬蟲去抓取豆瓣電影網(wǎng)站的電影信息,帶有圖片

id,title ,image-link ,country ,years ,director-description,leader,star ,

description,alltags,imdb,language,time-length

電影數(shù)量: 3000


三、功能介紹:

電影展示,標簽分類,詳情介紹,電影搜索

用戶的登錄,注冊,修改信息

用戶對電影的打分,收藏,評論

基于user和Item的協(xié)同過濾推薦算法

后臺管理系統(tǒng)








四、算法簡介

1、冷啟動問題解決

推薦值: 相似度*評分 根據(jù)用戶點贊過得商品來尋找相似度推薦。計算每個點贊過的物品和所有未點贊物品之間的得分。得分=相似度*打分值分越高表示越相似。 然后返回結(jié)果。

2、項目文件介紹

media/ 靜態(tài)文件存放處,圖片

movie/ Django的默認app,負責(zé)設(shè)置的配置還有url路由,部署等功能

static/ css文件和js文件的存放處

user/ 主app,程序的所有代碼基本都在這下面 user/migrations為自動生成的數(shù)據(jù)庫遷移文件 user/templates為前端頁面模板文件, user/admins.py 為管理員后臺代碼 user/forms.py為前端表單代碼 user/models.py為數(shù)據(jù)庫orm模型 user/serializers.py為restful文件,不用管。 user/urls為路由注冊文件。 user/views為負責(zé)處理前端請求和與后端數(shù)據(jù)庫交互的模塊,也就是controller模塊。

cache_keys.py為緩存的key值名稱存放文件,不用管。

db.sqlite3數(shù)據(jù)庫文件

douban_crawler.py 豆瓣爬蟲文件

manage.py 運行的主程序,從這里啟動

Populate movies script.py 填充電影數(shù)據(jù)到數(shù)據(jù)庫中

Populate user rate.py 隨機生成用戶評分

recommend_movies.py為推薦算法的部分

model: recommend模型存放的位置

3、后臺管理

通過創(chuàng)建管理員進入后臺,已經(jīng)自帶管理員用戶名和密碼均為admins。

同時可以通過python manage.py createsuperuser 在終端交互輸入用戶名和密碼即可

創(chuàng)建超級管理員, (密碼輸入時終端暫時顯示)

進入后臺: 127.0.0.1:8000/admin


五、各功能代碼位置介紹:

標簽分類: 數(shù)據(jù)庫設(shè)計Movie通過外鍵關(guān)聯(lián)Tags表,

電影搜索: 在views.py search方法中。通過電影名,導(dǎo)演名,介紹去進行關(guān)鍵字搜索。

后臺管理: 通過django自帶的admin后臺加插件 在admins.py中注冊數(shù)據(jù)庫模型

兩種推薦算法: 都在recommend_movies.py文件中。

推薦顯示的代碼:

前端: items.html

后端: views.py中 388行 user_recommend 傳遞數(shù)據(jù)到前端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或者其他的虛擬環(huán)境來安裝。

3.打開終端 輸入pip install -r requirements.txt 若提示無pip。去下載get-pip.py 運行python get-pip.py

4.安裝成功后, 使用pip list 查看已經(jīng)安裝好的package,和requirements.txt中的進行對比,確認安裝無誤。

有兩種運行方法:

1.通過命令行/cmd運行: python manage.py runserver

2.通過Pycharm專業(yè)版配置運行,右上角選中movie,一鍵運行,第一次運行時間可能比較長,因為需要將item_recommend的相似矩陣計算出來。將模型保存到本地。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容