技术

  • 前端: bootstrap3 + vue + jquery
  • 后端: django 2.2.1 +djangorestframework (MVC框架)
  • 数据库: mysql
  • 数据集:
  • 1. 豆瓣数据集+豆瓣电影爬虫+csv存储
  • 2. movielens数据集+图片+用户数据和评分数据+csv存储

功能介绍

  1. 录入电影信息
  2. 用户打分
  3. 电影标签分类
  4. 电影推荐
  5. 电影分享
  6. 电影收藏
  7. 后台管理系统。

算法

基于用户的协同过滤

算法: 协同过滤, 根据用户的打分来进行推荐。从所有打分的用户中找出和当前用户距离最近的n用户,然后从n个用户打分的电影中找15个当前用户未看过的电影。 最近距离算法通过协同过滤来实现。 推荐算法—协同过滤 - 简书 此项目采用的是皮尔逊相关系数来计算相似度。采取基于用户模型的的协同过滤(Neighbor-based Collaborative Filtering)。 皮尔森距离公式:

基于物品的协同过滤

计算物品之间的相似度,然后根据相似度来推荐

物品间的共现矩阵,两个物品同时被n个用户购买 物品间的相似度

相似度:共现值/N的点赞值M的点赞值 开根号 推荐值: 相似度评分 根据用户点赞过得商品来寻找相似度推荐。 计算每个点赞过的物品和所有未点赞物品之间的得分。得分=相似度*打分值 得分越高表示越相似。 然后返回结果

基于tensorflow/文本卷积网络的推荐

通过movielens所提供的用户信息: 年龄—性别—职业。这三个数据维度来刻画用户数据信息。然后构造文本卷积网络来生成模型。 用户可以根据自己的年龄/性别等特征信息来得到个性化的推荐。

基于交互式的推荐

交互式的推荐为通过问答选择的形式来为用户推荐电影,根据回答的问题不同,得到的推荐电影也不同。

各文件功能

  1. media/ 静态文件存放处,图片
  2. movie/ Django的默认app,负责设置的配置还有url路由,部署等功能
  3. static/ css文件和js文件的存放处
  4. 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模块。
  5. cache_keys.py为缓存的key值名称存放文件,不用管。
  6. db.sqlite3数据库文件
  7. douban_crawler.py 豆瓣爬虫文件
  8. manage.py 运行的主程序,从这里启动
  9. populate_movies_script.py 填充电影数据到数据库中
  10. populate_user_rate.py 随机生成用户评分

github链接

https://github.com/Colaplusice/movie_recommend​github.com

参考文档

协同过滤和基于内容推荐有什么区别?​www.zhihu.com

tensorflow 协同过滤_基于django和协同过滤/cnn的电影推荐系统相关推荐

  1. 电影推荐系统 python简书_基于django和协同过滤/cnn的电影推荐系统

    技术前端: bootstrap3 + vue + jquery 后端: django 2.2.1 +djangorestframework (MVC框架) 数据库: mysql 数据集: 1. 豆瓣数 ...

  2. python协同过滤可以预测吗_基于用户的协同过滤推荐算法原理-附python代码实现...

    在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单.该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤.一直到2000年,该算法都是 ...

  3. 协同过滤算法_基于Mahout的协同过滤推荐算法

    1协同过滤 基于物品的协同过滤 对物品进行相似度计算,然后再进行推荐. 基于用户的协同过滤 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢,并对这些喜好进行度量和打分.根据不 ...

  4. 协同过滤算法_基于用户的协同过滤推荐算法原理和实现

    (给算法爱好者加星标,修炼编程内功) 来源:Create Chen's Blog https://www.cnblogs.com/technology/p/4467895.html 在推荐系统众多方法 ...

  5. java 用户协同过滤算法_基于用户的协同过滤推荐算法java实现(UserCF)

    UserCF的核心思想即为根据用户数据模拟向量相似度,我们根据这个相似度,来找出指定用户的相似用户,然后将相似用户买过的而指定用户没有买的东西推荐给指定用户,推荐度的计算也是结合了相似用户与指定用户的 ...

  6. 基于内容的推荐java代码_三种推荐算法简介:基于用户的协同过滤、基于物品的协同过滤、基于内容的推荐...

    1.推荐算法 1.1.协同过滤 协同过滤是目前应用最广泛的推荐算法,它仅仅通过了解用户与物品之间的关系进行推荐,而根本不会考虑到物品本身的属性. 可分成两类: 1.基于用户(user-based)的协 ...

  7. 协同过滤:基于用户的协同过滤itemCF

    基于用户的协同过滤算法也被称为最近邻协同过滤或KNN (K.Nearest-Neighbor,K最近邻算法).其核心思想就是,首先根据相似度计算出目标用户的邻居集合,然后用邻居用户评分的加权组合来为目 ...

  8. 基于用户的协同过滤与基于物品的协同过滤比较

      基于用户的协同过滤 基于物品的协同过滤 性能 用于用户少的情形,用户太多时用户相似度矩阵计算代价大 用于物品数小于用户数的场景 领域 时效性强,用户个性化兴趣不明显 长尾物品丰富,用户个性化需求强 ...

  9. 创建一个delete触发器_基于 Django 信号机制实现类似触发器的效果

    我们都知道,在关系数据库中,为了保证数据完整性,我们都会使用一个叫做触发器的玩意.今天我就基于Django信号机制实现类似触发器的效果,在此之前我先简单介绍一下触发器. 触发器 触发器(trigger ...

最新文章

  1. 微信小程序——获取openGid
  2. 傲腾内存 可以用ghost系统_玩机小贴士:Intel傲腾内存你用过没有?
  3. ThreadLocal的重要方法介绍
  4. ${project.build.directory}
  5. 真的,太多人辜负了.NET5!
  6. [css] 你用过outline属性吗?它有什么运用场景
  7. java 截取byte数组_2020年的秋招已经开始了!最新Java面试题大全(文末附参考答案)送给大家...
  8. Python实现蒙特卡罗方法仿真模拟求解圆周率Pi值
  9. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_7 ModelAttribute注解
  10. 爆强!将 exe 文件反编译成 Python 脚本!
  11. BOS v2.0后台管理系统 JQuery Easyui 相关知识讲解
  12. c语言制作单片机人机界面,基于51单片机自制触摸屏
  13. java中:统计字符串大串中小串出现的次数,代码实现
  14. ps如何做出动态火焰燃烧效果
  15. Vanishing Point Constrained Lane DetectionWith a Stereo Camera (IEEE 2017)
  16. 手机照片局部放大镜_怎样发照片才能惊艳朋友圈?
  17. JavaSE代码阅读题
  18. php-java-net-python-爱心公益网站()计算机毕业设计程序
  19. Laravel实现dingo+JWT api接口之实战篇
  20. 树莓派模拟Switch手柄(amiibo)

热门文章

  1. Linux中的文件复制:cp和scp
  2. 12C expdp issue
  3. Nginx PHP 使用 limit_req,limit_conn 限制并发,外加白名单
  4. Print Model SQL
  5. 在页面中控制媒体流的起播点和播放长度
  6. 以太坊Geth几种同步模式
  7. vlookup示例_VLOOKUP示例–如何在Excel中执行VLOOKUP
  8. 工业革命前数千年人口经济_我们已经进行了数千年的编程
  9. Nagios的安装和基本配置(一:知识点总结及环境准备)
  10. Python 数据库操作 psycopg2