基于协同过滤算法和深度学习的音乐推荐

协同过滤 音乐推荐 深度学习 音乐检索


文章目录

  • 基于协同过滤算法和深度学习的音乐推荐
    • Github 地址
    • 微信小程序版实现
    • 介绍
    • 参考项目
    • 技术栈
    • Docker 部署 (如用此方式部署,后面的手动安装步骤请忽略)
    • 安装
      • Pyhton 版本
      • Python 环境安装:
      • Web 环境:
      • 音频处理软件 —— SOX
        • 可能会出现的报错
    • 数据库--- MySQL
    • 运行
    • 默认用户
    • 运行界面
    • 相关资源推荐

Github 地址

项目 Github 地址

微信小程序版实现

本项目的微信小程序版: LE7ELS/music_recommendation_miniapp

介绍

项目主要工作在 Million Song Dataset 数据集下基于 Pythonscikit-surprise 库实现了基于协同过滤的音乐推荐,还有用 CNN (卷积神经网络) 实现相似音乐推荐。

其中,协同过滤主要基于 Python scikit-surprise 库的 文档(Documents) 写的协同过滤算法, 所采用的数据集的原因,协同过滤出来的指标比较低,系统中协同过滤的结果采用三个算法输出的结果投票。

另外就是参照下面的参考项目做了基于深度学习的音乐推荐,该项目主要实现相似相似旋律的音乐推荐。其主要通过 CNN 对音乐音频信息进行特征提取,然后对提取后的特征向量与实现保存好的一些音乐特征向量进行相似度匹配,将相似度最高的几首音乐作为推荐结果。该方法可以用于音乐检索音乐防抄袭等领域。

本项目特有的部分是,将上述两种方法融合,并写了个 web 展示效果。由于 Million Song Dataset 数据集没有歌曲内容信息,本人找了某易云的爬虫代码,建立 Million Song Dataset 数据集中的音乐 id 与 某易云的音乐 id 的映射(期间被封过 IP)。然后将音乐的内容进行时频转换后,送入卷积神经网络,得到歌曲特征向量,通过特征向量的相似度匹配,找出相似的音乐信息。

参考项目

  1. 中文地址

    私人定制——使用深度学习Keras和TensorFlow打造一款音乐推荐系统

  2. 英文地址

    building a music recommender with deep learning

技术栈

  • Python-Flask
  • Python-keras
  • Pyhton-surprise
  • PHP/MySQL
  • HTML/CSS/JQuery

Docker 部署 (如用此方式部署,后面的手动安装步骤请忽略)

已支持 Docker 部署,方便复现及修改代码。Docker 部署版见 docker-config 分支,github readme 中有详细步骤。

安装

以下的步骤都针对手动部署方式,代码应该为 master 分支的,此方式与 docker 部署二选一

Pyhton 版本

Python 3.6.5

Python 环境安装:

切换到 recommend_service 目录,pip install -r requirements.txt

Web 环境:

需要安装 LAMP or WAMP 环境,即 Appache ,MySQL,PHP 服务器

音频处理软件 —— SOX

安装 sox 软件(sox 是开源的音频处理软件)
SOX 安装教程
SOX 下载链接
加入系统环境

可能会出现的报错

windowsUnable to load MAD decoder library (libmad) function

解决方法可参考 参考教程

此报错只需下载相应的两个库文件,放到 sox 安装目录下

数据库— MySQL

数据库名: music_recommender
用户名: music_system
密码: music_system
然后,导入 music_recommender.sql 文件中的数据

运行

  1. 先运行 recommend_service 目录下的 recommend_service.py 文件,python recommend_service.py,Linux 下也可以运行命令 nohup python recommend_service.py 2>&1 >dataOut.txt &,让其后台执行
  2. 将项目文件部署到 Apache www 目录下
  3. 在浏览器中访问该网站

默认用户

  1. 用户名: admin, 密码: admin123
  2. 用户名: root, 密码: root1234

运行界面

  • Python 程序启动

  • 用户登录

  • 协同过滤推荐


  • 搜索歌曲

  • 播放歌曲

  • CNN推荐结果

相关资源推荐

  1. 提供免费音乐的音乐库网站

  2. 推荐系统研究中的九大数据集

  3. 推荐系统基础知识 — Github

基于协同过滤算法和深度学习的音乐推荐相关推荐

  1. 基于协同过滤算法为电视产品制订个性化推荐

    1 绪论 1.1 背景 在互联网技术日益发展和进步的时代,各种数据呈现井喷式增长状态,仅2017 年"双十一"天猫旗下购买物品所产生的交易额最终定格在 1682 亿元,其中,无线成 ...

  2. 基于协同过滤算法的在线视频学习答题自动化批改平台 习题问答系统

    1 简介 今天向大家介绍一个计算机专业毕业设计项目,基于协同过滤算法的在线视频学习答题自动化批改平台 习题问答系统. 使用协同过滤算法完成习题推荐,在线视频学习,试卷自动化组卷,批改评分 在网络技术的 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 基于协同过滤算法的推荐 (本实验选用数据为真实电商脱敏数据,仅用于学习,请勿商用) 数据挖掘的一个经典案例就是尿布与啤酒的例子 ...

  4. 毕业设计之基于协同过滤算法的电影推荐系统设计(一) - 项目简介

    由于本人今年毕业,为完成毕设特地想着实现一个简单的推荐系统设计,思来想去,小电影不就是很好的切入点嘛! 于是诞生该项目,将会一步步带着大家实现一个自己的电影推荐系统. 1 研究目标 从应用场景来看,基 ...

  5. 计算机毕业设计ssm基于协同过滤算法的甜品推荐系统uhnk3系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于协同过滤算法的甜品推荐系统uhnk3系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于协同过滤算法的甜品推荐系统uhnk3系统+程序+源码+lw+远程部署 本源码技术栈 ...

  6. 【机器学习项目实战】Python基于协同过滤算法进行电子商务网站用户行为分析及服务智能推荐

    说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 电子商务网站数量迅速上升,将电子商务网站浏览者变为实际消费者,满 ...

  7. 基于协同过滤算法的书籍推荐 毕业设计-附源码101555

    摘  要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准 ...

  8. (附源码)python+mysql+基于协同过滤算法的书籍推荐 毕业设计101555

    摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确 ...

  9. 基于协同过滤算法的商品推荐购物电商系统

    一.介绍 商品推荐是针对用户面对海量的商品信息而不知从何下手的一种解决方案,它可以根据用户的喜好,年龄,点击量,购买量以及各种购买行为来为用户推荐合适的商品.在本项目中采用的是基于用户的协同过滤的推荐 ...

最新文章

  1. mysql 数据范围总结
  2. 微型计算机普遍使用的编码是,微型计算机中普遍使用的字符编码是什么吗
  3. Win7系统电脑修改不了文件属性怎么办
  4. 社招 | 腾讯天天P图 定义视频新科技~base上海
  5. 【Spark-core学习之六】 Spark资源调度和任务调度
  6. 微星主板黑苹果_黑苹果安装教程:准备磁盘+主板BIOS设置——墨涩网
  7. PS教程:通道抠图美女发丝
  8. 2016 server win 假死_win10程序假死无响应的两种解决办法
  9. Emlog模板fee2.0主题商业版
  10. 悠漓带你玩转C语言(数组)
  11. wangeditor修改-修改上传视频大小
  12. 香农采样定理和奈奎斯特采样定理
  13. 微信小程序开发(三)入门之创建打卡活动
  14. “数说”四十年春运交通变迁
  15. 软件测试笔记——如何测试一支笔?
  16. HNUST-OJ-1806-图的遍历——广度优先搜索
  17. 成都爱尔樊映川:视网膜上视觉最敏锐部位,出问题怎么办
  18. oo,aop,ioc概念详解
  19. Topic 2 “软硬结合”到底是什么?
  20. RHCE-Day10-Apache

热门文章

  1. MMORPG - 战斗系统,计算伤害
  2. 迭代器与生成器原理及关系
  3. 《Go语言圣经》笔记(1-4章)
  4. c语言稀疏矩阵运算器,数据结构:稀疏矩阵运算器
  5. 云梦四时歌服务器维护,云梦四时歌 - 服务退换中心 - 腾讯游戏
  6. R525万全服务器重装系统,联想万全R525 G3服务器不认硬盘修复记。
  7. SpringBoot2.0集成WebSocket,实现后台向前端推送信息
  8. 长牌 算法 算包(不包含癞子)
  9. 红米5刷原生Android8,红米5Plus 魔趣OS 安卓8 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
  10. 四川512 7.8级 地震图片