大数据计算机毕业设计hadoop+spark+hive知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习 人工智能
大数据计算机毕业设计hadoop+spark+hive知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习 人工智能
一、本课题研究的主要背景、目的和意义 |
互联网在如今的爆发式发展已经改变了我们的生活方式,互联网上资源的爆发式增长让获取有效信息成为了新的难题。用户接触到的信息非常有限。于是很多提出帮助用户快速精准找到所需信息的解决方案诞生了,例如搜索引擎,推荐系统等。 目前大型的音乐门户类网站的歌曲库规模往往包含上千万首的歌曲,这些歌曲被划分成不同的语种、流派、年代、主题、心情、场景等,包含的信息非常的丰富,存在着严重的信息过载。对于系统中每一位音乐用户来说,都不可能去收听曲库内的每一首歌, 很多时候用户的需求往往是“一首或几首好听的歌曲”这种模糊的需求,如何根据用户在系统中产生的行为信息去庞大的歌曲库中挖掘出用户可能感兴趣的音乐,这就需要个性化音乐推荐系统综合考虑用户偏好、时间、地点、环境等各种复杂的特征,准确的从上千万的海量歌曲库中挑选出此时此刻最适合这个用户聆听的个性化音乐,给广大的用户带来美的享受,真正做到众口可调。 |
二、本课题研究已有的工作基础,附证书、报告、文献翻译 |
经过河南工学院两年的培养,掌握基础Mysql语言外,另外学习了基础的Python、Java、Android、Html/CSS、JavaScript等编程语言,可设计一些由上述所需要的语言所完成的基础软件系统。此外可熟练使用Java语言进行编程工作,对于完成该系统所使用的Intellij IDEA编程软件以及NavicatPremium15数据库软件可以灵活运用,以及对于Tomcat、maven、 SpringBoot的环境的搭建等也有应用能力并且使其运用到所做的项目当中去。通过学习清楚了解其分析方法,并使用Java语言编程实践了过一些项目。在学习Java开发的过程中,曾与同学多次合作参与Java有关的项目,比如基于JavaEE的油画商城、基于JavaEE的通讯录管理系统等。 本课题主要是通过spring boot框架来完成整个设计工作。音乐推荐系统的前台设计主要使用的Vue + Vue-Router + Vuex + Axios + ElementUI技术来添加进入整体页面所需要的元素和整体页面的框架,使用CSS技术对原来的页面进行一些修饰与调整,最后使用JS与jQuery技术来实现基础页面的呈现与效果。后台设计则是使用Java技术来实现每个页面模块的响应与实现,以及数据库之间的搭建,然后使用数据库技术来实现每个页面模块数据的操作,最后通过SpringBoot架构来实现每个模块应实现的功能。从而从用户偏好、时间、地点、环境等各种复杂的特征,准确的从上千万的海量歌曲库中挑选出此时此刻最适合这个用户聆听的个性化音乐,给广大的用户带来美的享受,真正做到众口可调。 |
三、研究的内容和可行性论证 |
论文主要研究的是基于多模式协同过滤算法而开发的音乐推荐系统。设计思路是用户通过登陆进入系统,根据用户选择至少5位艺人进行收藏,以此来初步确定用户欣赏音乐的倾向。另外,用户还可以从大家的推荐中搜索自己 喜爱的音乐,或者从品味相似的好友中找到适合自己的音乐。在不同需求下,完成用户信息的管理、歌曲打分的管理、歌曲推荐的管理、等功能。 通过详细的需求分析和成功经验的借鉴,采集到足够的信息。采用先进科学和适合需求的设计方法,有助于实现对系统进行科学、严谨、全面、完整的设计,简化设计流程,降低出错率。本系统是利用NavicatPremium15创建了数据库,NavicatPremium15是一个功能强大、高性能的数据库管理系统软件,提供了一整套数据库管理体系结构,功能可靠。给音乐推荐系统提供了一个良好的技术保障。Intellij IDEA是一种基于Windows的优秀的计算机程序开发语言软件,它采用可视化的开发方法,是一种易用、快速、高效的应用软件开发工具。自问世以来经历了多个版本的更新,日渐完善,它强大的功能为实现用户的要求提供保证。Intellij IDEA为开发人员提供了强大的兼容应用程序的有效工具,从而将Java程序设计语言提高到了一个新境界,已经成为程序开发人员的最佳选择,而且也是方便快捷的开发功能完善的数据库应用程序的出色工具。 对本系统从以下三个方面进行可行性论证: 1、技术可行性 该平台的开发需要掌握Java、Mysql、Html/Css、JavaScript等基础语言的应用以及Tomcat、Maven、SpringBoot框架的使用,由于有些语言是开过课程的,关于这方面的编程书也有很多,学习与使用起来也更方便一点。 2、操作可行性 该软件系统开发操作虽然有一定难度,但是只要克服框架这一些难点,其余的大部分还是跟平常自己所使用技术相关。 3、经济可行性 在经济方面,所用到的软件编译环境都能从网上下载,并且可以免费安装到自己的电脑上,所以在经济可行性方面,完全没有问题,符合经济的可行性。 |
四、拟解决的关键问题及难点 |
|
五、拟采取的研究方法(方案、技术路线等) |
本课题根据人们的需求随着数据量的不断增大在不断的增加,而且人们对音乐的追求也随着也随着这些不断的增多。个性化推荐系统的产生顺从了时代的发展,在不远的将来,个性化推荐系统必能大放异彩。 1、本课题实施的技术路线 (1)掌握 java基础语言的应用,实现对 SpringBoot 框架的应用。 (2)研究分析这项新技术的研发,可以有效避免音乐推荐的商业化行为。因为它完全不用比较音乐的点击率、用户关注度和评价信息,因此不会产生冷启动、稀疏性和扩展性问题,而对于用户心理或情绪上的波动又具有明显的针对性,不失为一种人性化的音乐推荐技术。 2、针对本课题研究的内容,确定使用如下方案。 (1)根据课题要求查阅资料,查阅文献。 (2)根据查询的相关资料,结合任务书需求,进行需求分析。 (3)合理的系统设计。 (4)各模块正常实现。 (5)测试功能实现是否正常 |
六、研究进度安排 |
2022.02.21~2022.03.11:学生完成外文翻译、文献综述、开题报告; 2022.03.07~2022.03.18:学生完成需求、可行性分析,并对系统进行总体设计,毕业设计(论文)初期检查; 2022.04.04~2022.04.15:学生完成系统详细的设计和功能的实现,并进行测试,毕业设计(论文)中期检查; 2022.04.25~2022.05.13:完成毕业设计(论文)初稿,毕业论文查重,指导者评阅; 2022.05.16~2022.05.20:毕业设计(论文)答辩; 2022.05.23~2022.06.03:提交毕业设计(论文)终稿。 |
七、毕业设计(论文)研制报告或撰写提纲(初步) |
引言 第1章 概述 1.1 研究背景 1.2 研究现状 1.3 发展趋势 第2章 相关技术介绍 2.1环境搭建 2.2 数据获取与处理 2.3 前端 第3章 数据采集 3.1 数据源确定 3.2 数据库设计 3.3 数据获取 第4章 系统分析 4.1 业务分析 4.2 系统功能分析 4.3 系统可行性分析 4.4 数据字典 第5章 系统设计 5.1 系统总体模块结构设计 5.2 局部模块设计 5.3 系统角色功能设计 5.4 推荐系统数据库设计 5.5 平台搭建设计 5.6 推荐算法设计 第6章 系统实现 6.1 用户界面 6.2 管理员界面 结论与展望 致谢 参考文献 |
八、主要参考文献 |
[1]LAWRENCERD, ALMASIGS, KOTLYARV, et al. Personalization of supermarket product recommendations[ R]. IBM Research Report,2000(7):173-181 [2]徐小伟. 基于信任的协同过滤推荐算法在电子商务推荐系统的应用研究. 东华大学. 2013 [3] 吴正洋. 个性化学习推荐研究. 华南师范大学期刊.2021 [4]李雪. 基于协同过滤的推荐系统研究. 吉林大学. 2010 [5]《数据库系统概论》[M],高等教育出版社 [6]马建红.JSP应用与开发技术.第三版.清华大学出版社.2018 [7] JavaEE架构设计与开发实践[M],方巍著:清华大学出版社.2018.1 [8] Spring Boot编程思想核心篇[M],小马哥著:电子工业出版社.2019.4 [9] Spring Boot开发实战M].吴胜著:清华大学出版社.2018.6 [10]Oleg Sukhoroslov. Building web-based services for practical exercises in parallel and distributed computing[J]. Journal of Parallel and Distributed Computing.2018. |
九、审核意见 |
小四,宋体,打印,首行缩进2个字符,1.5倍行距 指导教师对开题的意见: (对学生拟选题目的难易程度、涉及范围及与学校办学定位的吻合度等方面做出评价,要求具体意见,并对前8项进行评价,结论:通过,不通过) 指导教师签字: 年 月 日 |
开题报告指导小组意见 (要求具体意见,对前8项进行评价,结论:通过,不通过) 指导教师小组负责人: 年 月 日 |
学院审核意见: (要求具体意见,对前8项进行评价,结论:通过,不通过) 审核人签字: 年 月 日 |
核心算法代码分享如下:
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()
)
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)