python⾳乐推荐系统_基于协同过滤的⾳乐推荐系统
毕业设计--基于Django的歌曲推荐系统和论坛
说明
注册普通⽤户通过web界⾯来设置,创建创建⽤户通过creeatsuperuser创建。下⽂有详细命令
导⼊歌曲信息通过insert_movies_script.py来操作 (会删除已有的所有信息!)
前端展⽰ 浏览最多,评分最多,收藏最多,写的⽐较直⽩,你可以改的委婉点: 最热歌曲,⽕爆排⾏...之类的。每种有10条。
我猜你喜欢为基于⽤户推荐,item推荐为基于项⽬推荐。两种推荐思路下⽂有介绍
系统采⽤的技术
前端: bootstrap3 css 框架 后端: django 2.2.1 + sqlite3数据库 (MVC框架) 数据: python异步爬⾍从⾖瓣top250抓取数据,保存到本地csv⽂件中 主要功能: 录⼊图书信息,⽤户打分,歌曲标签分类,歌曲推荐,歌曲分享,歌曲收藏,后台管理系统。 整体采⽤MVC架构,前端页⾯通过django template模板来实现,实现了模板的复⽤功能。同时前端页⾯的组织结构较为清晰。
推荐算法思路
通过协调过滤计算和其他⽤户的距离,然后进⾏筛选。如果⽤户数量不⾜,推荐数⽬不够15条,就会⾃动从 所有未打分的歌曲中按照浏览数降序选⼀部分填充进去。
基于⽤户的推荐
⽤户需要给歌曲打分。通过⽤户已打分的部分来计算相似度,如果⽤户未打分,或者没有其他⽤户,则按照浏览数降序返回。
通过pearson算法来计算⽤户之间的距离,到距离最近的N个⽤户。将这些⽤户中已打分的歌曲(且要推荐的⽤户未看过的部分)返回。
基于item的推荐
遍历当前⽤户已打分的item,计算和未打分的item的相似距离。
对相似距离进⾏排序 返回
主要实现的功能
登录注册页⾯
基于协同过滤的歌曲的分类,排序,搜索,打分,排序功能。
基于协同过滤的周推荐和⽉推荐
观影分享会等活动功能,⽤户报名功能 (需要额外添加)
发帖留⾔论坛功能 (要额外添加)
基于spark的ALS算法 (要额外添加)前端页面模板
Mysql适配
movielens数据集适配
参考链接
fixed
⾸页导航栏链接错误
⾸页⾯为空
登录注册页⾯
推荐跳转登录
周推荐⽤户没有评分时随机推荐
按照收藏数量排序
重新设计了 action 和UserAction model,拆分出了UserAction
歌曲模型
浏览量 每次刷新页⾯的浏览数
收藏量 user manytomany field 每个⽤户收藏⼀次
评分 rate 每个⽤户评分⼀次
在歌曲下⾯的评论加点赞功能
安装运⾏⽅法
安装依赖
将项⽬导⼊pycharm, 在pycharm配置python解释器,3.7及以下都可以。可以通过conda或者其他的虚拟环境来安装
打开终端 输⼊pip install - 若提⽰⽆pip。去下载get-pip.py 运⾏python get-pip.py
安装成功后,进⼊运⾏阶段
运⾏
运⾏服务器: python manage.py runserver
如果⽆数据,运⾏项⽬根⽬录下的数据迁移脚本 populate开头。
python manage.py createsuperuser 创建超级管理员, (密码输⼊时终端暂时看不到)
进⼊后台: 127.0.0.1:8000/admin
需要获得永久更新和维护⽀持请联系我 其他问题请联系我
各⽂件功能
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 随机⽣成⽤户评分
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论