网易云音乐推荐系统-Flask+KNN Baseline 协同过滤
项目描述 网易云音乐推荐系统
网易云音乐推荐系统,通过爬虫采集歌单数据,经预处理后格式化为 scikit-surprise 可接受的形式,构建基于协同过滤的音乐推荐服务,并提供 Flask Web 界面进行交互。
项目功能
– 歌单搜索与浏览(按名称检索,展示标签、订阅数)
– 相似歌单推荐(基于 KNN Baseline 模型取 Top-10 邻居)
– 歌单歌曲推荐(对该歌单未包含歌曲做全量预测,输出 Top-15)
– 个性化推荐(用户选多个歌单,按订阅数加权融合画像,输出 Top-15 歌曲)
– 歌单详情下钻(查看歌单内全部歌曲)
– 统计看板(歌单/歌曲/评分总数、热门标签 Top10、订阅数 Top5)
– 推荐结果缓存复用,降低重复计算开销
运行环境
– 操作系统:Windows
– Python 3.11
– 端口:5000(Flask debug 模式)
– 依赖:flask>=2.0、scikit-surprise>=1.1(实测 1.1.5)
项目技术
– 后端:Flask(路由 + JSON API)
– 推荐算法:scikit-surprise 框架
– KNN Baseline 协同过滤(歌单相似度推荐)
– NMF 矩阵分解(歌曲评分预测)
– 数据处理:pickle 序列化、pandas/自定义 Convertor 解析歌单-歌曲映射
– 模型持久化:surprise.dump 加载预训练模型
– 前端:Jinja2 模板 + 静态资源
– 数据来源:爬虫抓取的网易云歌单(popular.playlist、popular.song、popular_music_suprise_format.txt)
以上系统源码经过技术整理与调试,确保能正常运行


