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

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

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


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 程序启动

Python 程序启动

  • 用户登录

用户登录

  • 协同过滤推荐

协同过滤推荐
协同过滤推荐2

  • 搜索歌曲

搜索歌曲

  • 播放歌曲

播放歌曲

  • CNN推荐结果

CNN推荐结果

相关资源推荐

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

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

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

  • 18
    点赞
  • 174
    收藏
    觉得还不错? 一键收藏
  • 78
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 78
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值