计算机毕业设计Hadoop+Spark知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 SpringBoot Vue.js 人工智能 机器学习

本文探讨了在互联网信息爆炸的背景下,如何利用大数据技术开发个性化音乐推荐系统,以解决音乐平台的信息过载问题。项目旨在提升学生对数据科学和大数据技术的应用能力,通过实际开发,实现基于Python和Spark的推荐算法,以及设计符合规范的毕业设计流程和成果形式。
部署运行你感兴趣的模型镜像
  1. 目标及基本要求(学术道德&规范、装订规范、数据要求、各阶段任务完成要求、撰写格式要求、正文&摘要&关键字要求等)

(1)目标

互联网在如今的爆发式发展已经改变了我们的生活方式,互联网上资源的爆发式增长让获取有效信息成为了新的难题[1]。用户接触到的信息非常有限。于是很多提出帮助用户快速精准找到所需信息的解决方案诞生了,例如搜索引擎,推荐系统等。

目前大型的音乐门户类网站的歌曲库规模往往包含上千万首的歌曲,这些歌曲被划分成不同的语种、流派、年代、主题、心情、场景等,包含的信息非常的丰富,存在着严重的信息过载[2]。对于系统中每一位音乐用户来说,都不可能去收听曲库内的每一首歌, 很多时候用户的需求往往是“一首或几首好听的歌曲”这种模糊的需求,如何根据用户在系统中产生的行为信息去庞大的歌曲库中挖掘出用户可能感兴趣的音乐,这就需要个性化音乐推荐系统综合考虑用户偏好、时间、地点、环境等各种复杂的特征[3],准确的从上千万的海量歌曲库中挑选出此时此刻最适合这个用户聆听的个性化音乐,给广大的用户带来美的享受,真正做到众口可调。

  通过毕业设计项目开发和实现,提高学生综合运用数据科学与大数据技术专业基础理论和专业知识的能力;经过科研训练,提高科学素养,提高学生的创新能力;通过项目开发实践,积累规范的系统开发经验;通过撰写论文,培养学生书面交流思想的能力;经过论文答辩,提高学生的沟通、归纳总结能力及口头表达能力;同时,还可以通过项目的合作,培养学生团队意识、合作技能与协调能力,为毕业后顺利进入工作角色打下坚实的基础。

(2)基本要求

①学术道德与规范

  毕业设计报告必须独立完成,不得请他人代做,不得抄袭,毕业设计报告应进行查重,重复率不超过25%。 

②数据要求

  数据应真实可靠,不能伪造数据。数值型数据不少于1万条、图像型数据应满足项目开发需求。

③撰写格式要求

  毕业设计报告应遵照重庆工程学院《本科设计(论文)撰写规范与范本》要求。

④毕业设计报告正文、摘要、关键字要求

  毕业设计报告正文应不少于10000字。

  摘要应具有独立性、完整性和自含性,即不阅读全文就能获得必要的信息。应包括四部分内容:从事这一设计(或研究)的目的和重要性;设计的主要内容,指明完成了哪些工作;获得的基本结论和设计成果,突出设计报告的新见解;结论或结果的意义。

  关键词一般列出3-5个高度反映论文主要内容的专业名词(或词组)。

(3)各阶段任务完成要求

①毕业设计开题阶段

  通过查找文献资料、调研考察等方法,按照毕业设计任务书要求,以及学校毕业设计开题报告要求,完成毕业开题报告的撰写工作,并完成毕业设计开题工作。开题报告中应重点给出基于大数据技术的音乐推荐系统的总体框架、涉及的主要关键技术、解决的具体路径等。

②主要关键技术研究与系统设计实现阶段

  1. 第一部分:爬虫爬取音乐数据(网易云音乐网站),作为课题的数据集
  2. 第二部分:离线推荐系统:python+机器学习离线推荐(基于物品的协同过滤算法,相似度衡量方法:皮尔逊相似度) ,必要时可以集成算法框架比如tensflow pytroch等,推荐结果通过pymysql写入mysql
  3. 第三部分:在线应用系统: springboot进行在线推荐 vue.js构建推荐页面(含知识图谱)
  4. 第四部分:使用Spark构建大屏统计

③答辩阶段

 完成答辩PPT及演示视频的编制工作,完成毕业答辩。

2.主要任务

(1)调研了解音乐推荐系统的业务背景和现状,明确要解决的问题和实现技术,制定合理的实施路线,撰写开题报告。

(2)数据采集和处理

  根据音乐推荐系统的目标确定采集数据项,从网易云音乐网站采集音乐数据,进行数据清洗后入库到MySQL数据库中。

(3)数据仓库设计

  结合系统业务目标,设计数据库表,完成系统业务构建。

(4)系统实现功能

  • 音乐大屏幕展示端:用户来源分布统计、歌手排行、歌手数量、歌曲数量、用户数量、播放数量、收藏数量、下载数量、充值金额排行、歌曲排行榜、数据统计图、播放量统计图。
  • PC端功能:用户注册、短信验证、用户登录、音乐库列表、最热歌曲列表展示、推荐歌曲列表、相似用户列表、收藏列表、金额充值、沙箱支付、知识图谱。
  • 数据爬虫:Python爬虫+机器学习离线分析数据。

(6)毕业设计报告

  在关键技术和原型系统实现基础上,按照学校要求,在规定期间内完成毕业设计报告撰写工作。

3.成果形式

(1)开题报告;

(2)毕业设计报告;

(3)程序源代码含爬虫、前端Vue代码、后端Java代码、虚拟机带组件等;

(4)答辩PPT及项目演示视频(需要展示数据源)。

核心算法代码分享如下:

package com.sql

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types._
import org.junit.Test

import java.util.Properties

class MusicSpark2024_FixBug {
  val spark = SparkSession.builder()
    .master("local[6]")
    .appName("音乐数据实时计算V1.0")
    .getOrCreate()
  //歌曲数仓CSV 模式
  val ods_songs_Schema = StructType(
    List(
      StructField("id", IntegerType),
      StructField("songId", StringType),
      StructField("songName", StringType),
      StructField("alia",StringType),
      StructField("pic", StringType),
      StructField("singerId", StringType),
      StructField("singerName",StringType),
      StructField("albumId", StringType),
      StructField("albumName", StringType),
      StructField("dt", StringType),
      StructField("pop", IntegerType),
      StructField("fee", IntegerType),
      StructField("mv", StringType),
      StructField("cd", IntegerType),
      StructField("no", IntegerType),
      StructField("originCoverType", IntegerType),
      StructField("publishTime", StringType)

    )
  )

  val ods_songs_Df = spark.read.option("header", "false").schema(ods_songs_Schema).csv("hdfs://bigdata:9000/music2024/songs/songs.csv")



  @Test
  def init(): Unit = {
    //school_province_score_Df.show()
    //ods_courses_Df.show()
    //ods_songs_Df.show()
    ods_songs_Df.show()
    //school_special_score_Df.show()
    //school_Df.show()
    //ruanke_rank_Df.show()
    //qs_world_Df.show()
  }



//  ----剩余使用spark_sql完成
//--指标9:Spark完成词云


  @Test
  def tables09(): Unit = {
    ods_songs_Df.createOrReplaceTempView("ods_songs")
    val df2 = spark.sql(
      """

      select songName,pop
      from ods_songs
      order by pop desc,publishTime desc
      limit 10



    """)
    df2
      //      .show(50)
      .coalesce(1)
      .write
      .mode("overwrite")
      .option("driver", "com.mysql.cj.jdbc.Driver")
      .option("user", "root")
      .option("password", "123456")
      .jdbc(
        "jdbc:mysql://bigdata:3306/hive_music2024?useSSL=false",
        "table09",
        new Properties()
      )
  }







}







您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B站计算机毕业设计大学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值