计算机毕业设计hadoop+spark+hive知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习

黄河科技学院本科毕业设计 任务书

      学部   大数据与计算机应用   科教中心    计算机科学与技术 专业

 2018 普本1/专升本1班 学号           学生         指导教师    

毕业设计题目

                      基于实时音乐数据挖掘的个性化推荐系统设计与优化         

毕业设计工作内容与基本要求(目标、任务、途径、方法,应掌握的原始资料(数据)、参考资料(文献)以及设计技术要求、注意事项等)

一、设计的目标和任务                                                   

  • 第一部分:爬虫爬取音乐数据(网易云音乐网站),作为测试的数据集。
  • 第二部分:离线推荐系统:python+机器学习离线推荐(基于物品的协同过滤算法,相似度衡量方法:皮尔逊相似度) ,必要时可以集成算法框架比如tensflow pytroch等,推荐结果通过pymysql写入mysql。同时当出现算法精准度低、计算速度慢时可以优化参数、算法逻辑、数据库索引等提升推荐算法的效率。
  • 第三部分:在线应用系统: springboot进行在线推荐 vue.js构建推荐页面(含知识图谱)。
  • 第四部分:使用Spark构建大屏统计。

                                                                 

                                                                      

二、设计途径和方法                                                             

  •   Selenium自动化Python爬虫工具采集网易云音乐、评论数据约1000万条存入.csv文件作为数据集;
  • 使用pandas+numpy或MapReduce对数据进行数据清洗,生成最终的.csv文件并上传到hdfs;
  • 使用hive数仓技术建表建库,导入.csv数据集;
  • 离线分析采用hive_sql完成,实时分析利用Spark之Scala完成;
  • 统计指标使用sqoop导入mysql数据库;
  • 使用springboot+vue.js+echarts进行可视化大屏开发;
  • 使用基于物品的协同过滤算法,相似度衡量方法:皮尔逊相似度等算法实现个性化音乐推荐并进行参数优化、算法二次开发升级;
  • 使用卷积神经网络KNN、CNN实现音乐流量预测;
  • 搭建springboot+vue.js前后端分离web系统进行个性化推荐界面、流量预测界面、知识图谱等实现;

                                                            

                                                                       

三、应掌握的原始资料和技术                                                     

  • 前端技术方案:登录vue官网,效仿案例Demo完成基本语法的入门,熟悉后积累本系统需要的开发组件,封装成.vue文件来回复用。学习vue.js前端框架,寻找符合本系统的框架,引入后完成页面开发。
  • 后端技术方案:选用Springboot作为后端开发框架,相比SSM简洁高效,语法灵活,更适合小白新手快速入手,如Python开发中的Flask框架一样简单方便;
  • 数据库技术方案:去CSDN寻找音乐推荐系统相关的建表经验,以多个系统建表的方案为依托,安装mysql,学习mysql语法,把数据库完整创建好;
  • 爬虫技术方案:使用网易云代理站点完成数据爬取,包括音乐信息、评论、歌词等,主要运用Python爬虫技术,包括selenium、requests等;
  • 推荐算法技术方案:充分研究协同过滤算法基于用户、基于物品两种实现,以及算法冷却问题,使用Python熟悉算法的调用过程,把调用代码集成到系统中,实现个性化音乐推荐.同时对算法参数、工作逻辑进行优化提升推荐效率;

     (六)大数据技术方案:搭建hadoop、spark、hive大数据环境,进行数据可视化分析;                                                     

                                                                      

四、进度安排                                                          

    第1周:查阅相关资料,完成文献综述。                              

    第2周:结合课题要求,提交开题报告,并完成开题答辩。              

    第3~5周:进行系统分析、总体设计和详细设计。                    

    第6~9周:实现系统编码、调试及软件测试。撰写毕业设计。      

    10~12周:修改毕业设计至定稿,资格审查。                  

    第13~14周:毕业设计答辩及资料归档。                                                                                                                 

五、参考文献                                                             

[1]LAWRENCERD, ALMASIGS, KOTLYARV, et al. Personalization of supermarket product recommendations[ R]. IBM Research Report,2020(7):173-181

[2]徐小伟. 基于信任的协同过滤推荐算法在电子商务推荐系统的应用研究. 东华大学. 2023

[3] 吴正洋. 个性化学习推荐研究. 华南师范大学期刊.2021

[4]李雪. 基于协同过滤的推荐系统研究. 吉林大学. 2020

[5]《数据库系统概论》[M],高等教育出版社. 2020

[6]马建红.JSP应用与开发技术.第三版.清华大学出版社.2022

[7] JavaEE架构设计与开发实践[M],方巍著:清华大学出版社.2022.1

[8] Spring Boot编程思想核心篇[M],小马哥著:电子工业出版社.2023.4

[9] Spring Boot开发实战M].吴胜著:清华大学出版社.2023.6

[10]Oleg Sukhoroslov. Building web-based services for practical exercises in parallel and distributed computing[J]. Journal of Parallel and Distributed Computing.2023.

六、注意事项                                                          

    1对于开发过程中遇到的问题注重自己查阅资料寻找解决方案,同时,多和导师沟通交流解决。                                                          

    2寻找同类系统进行对比学习和参考,提高开发效率。                                                                       

毕业设计时间: 2022 12  19 日至 2023 5  13 

计划答辩时间: 2023  5  13

工作任务与工作量要求:原则上查阅文献资料不少于12篇,其中外文资料不少于2篇;文献综述不少于3000字;毕业论文或设计说明书不少于8000字(同时提交有关图纸和附件)毕业设计(论文)撰写规范及有关要求,请查阅《黄河科技学院本科毕业设计(论文)指导手册》。

专业教研室审批意见:

审批人(签字):

核心算法代码分享如下:

# -*- codeing = utf-8 -*-
# Author: Tesla Tech
# XX:  XXXX
# @Time: 2022/4/29 12:10
# @Author: Administrator
# @File: comment.py
# @Desc: 获取歌曲评论
import random
from time import sleep

import pandas as pd
from util import db, getLyric, getComment


def init():
    print('初始化爬取任务表')
    df = pd.read_sql("select songId, songName from tb_song where songId not in (select songId from tb_task)", con=db)
    df.to_sql(name="tb_task", con=db, if_exists='append', index=False)
    print('初始化完成,新增歌曲爬取任务:' + str(df.shape[0]))

def spider():
    print('开始评论爬取...')
    df = pd.read_sql("select songId from tb_task where status_comment='0' limit 1000", con=db)
    # print(df.values.tolist())
    # getComment('65766')
    i = 0
    for id in df.values.tolist():
        i = i+1
        print('index=',i,',songId=', id)
        sleeptime = random.randint(10, 20)
        sleep(sleeptime)
        getComment(id[0])
        if i%10 == 0:
            print('休息4分钟...')
            sleep(240)

    print('评论爬取结束...')

if __name__ == '__main__':
    # init()
    spider()
    # getLyric('66842')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/589500.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

频分复用系统设计及其MATLAB实现

引言 随着通信技术的飞速发展,通信系统的容量需求不断增长。频分复用(Frequency Division Multiplexing, FDM)作为一种重要的多路复用技术,被广泛应用于现代通信系统中。本文将介绍频分复用系统的设计原理,并展示如何…

【Docker学习】docker start深入研究

docker start也是很简单的命令。但因为有了几个选项,又变得复杂,而且... 命令: docker container start 描述: 启动一个或多个已停止的容器。 用法: docker container start [OPTIONS] CONTAINER [CONTAINER...] 别名&…

UE4_Niagara_两个模型之间的粒子幻化

学习笔记,仅供参考! 操作步骤: 1、新建niagara system,添加空的发射器,渲染改为网格体渲染器,网格体为1M_Cube. 2、创建粒子材质重载。 3、渲染网格体的材质设置: 4、在发射器属性面板&#x…

数据分析:基于DESeq2的转录组功能富集分析

介绍 DESeq2常用于识别差异基因,它主要使用了标准化因子标准化数据,再根据广义线性模型判别组间差异(组间残差是否显著判断)。在获取差异基因结果后,我们可以进行下一步的富集分析,常用方法有基于在线网站…

【二等奖水平论文】2024五一数学建模C题22页保奖论文+22页matlab和13页python完整建模代码、可视图表+分解结果等(后续会更新)

一定要点击文末的卡片,那是资料获取的入口! 点击链接加入群聊【2024五一数学建模】:http://qm.qq.com/cgi-bin/qm/qr?_wv1027&khoTDlhAS5N_Ffp-vucfG5WjeeJFxsWbz&authKey7oCSHS25VqSLauZ2PpiewRQ9D9PklaCxVS5X6i%2BAkDrey992f0t15…

Spark RDD的分区与依赖关系

Spark RDD的分区与依赖关系 RDD分区 RDD,Resiliennt Distributed Datasets,弹性式分布式数据集,是由若干个分区构成的,那么这每一个分区中的数据又是如何产生的呢?这就是RDD分区策略所要解决的问题,下面我…

音视频开发之旅——实现录音器、音频格式转换器和播放器(PCM文件转换为WAV文件、使用LAME编码MP3文件)(Android)

本文主要讲解的是实现录音器、音频转换器和播放器,在实现过程中需要把PCM文件转换为WAV文件,同时需要使用上一篇文章交叉编译出来的LAME库编码MP3文件。本文基于Android平台,示例代码如下所示: AndroidAudioDemo Android系列&am…

Golang | Leetcode Golang题解之第64题最小路径和

题目&#xff1a; 题解&#xff1a; func minPathSum(grid [][]int) int {if len(grid) 0 || len(grid[0]) 0 {return 0}rows, columns : len(grid), len(grid[0])dp : make([][]int, rows)for i : 0; i < len(dp); i {dp[i] make([]int, columns)}dp[0][0] grid[0][0]…

服务器IP选择

可以去https://ip.ping0.cc/查看IP的具体情况 1.IP位置--如果是国内用&#xff0c;国外服务器的话建议选择日本&#xff0c;香港这些比较好&#xff0c;因为它们离这里近&#xff0c;一般延时低&#xff08;在没有绕一圈的情况下&#xff09;。 不过GPT的话屏蔽了香港IP 2. 企…

Mac 安装John the Ripper 破解rar(zip)压缩文件

注&#xff1a;仅以此篇记录我满足好奇心所逝去的十几个小时。&#xff08;自娱自乐&#xff09; 1、首先利用 brewhome 包管理工具 安装john the ripper &#xff1a; brew install john-jumbo 如果没有安装brewhome 利用如下命令安装&#xff1a; /bin/zsh -c "$(c…

LeetCode-网络延迟时间(Dijkstra算法)

每日一题 今天刷到一道有关的图的题&#xff0c;需要求单源最短路径&#xff0c;因此使用Dijkstra算法。 题目要求 有 n 个网络节点&#xff0c;标记为 1 到 n。 给你一个列表 times&#xff0c;表示信号经过 有向 边的传递时间。 times[i] (ui, vi, wi)&#xff0c;其中 …

【跟马少平老师学AI】-【神经网络是怎么实现的】(七-1)词向量

一句话归纳&#xff1a; 1&#xff09;神经网络不仅可以处理图像&#xff0c;还可以处理文本。 2&#xff09;神经网络处理文本&#xff0c;先要解决文本的表示&#xff08;图像的表示用像素RGB&#xff09;。 3&#xff09;独热编码词向量&#xff1a; 词表&#xff1a;{我&am…

OpenVINO安装教程 Docker版

从 Docker 映像安装IntelDistribution OpenVINO™ 工具套件 本指南介绍了如何使用预构建的 Docker 镜像/手动创建镜像来安装 OpenVINO™ Runtime。 Docker Base 映像支持的主机操作系统&#xff1a; Linux操作系统 Windows (WSL2) macOS(仅限 CPU exectuion) 您可以使用预…

【跟马少平老师学AI】-【神经网络是怎么实现的】(八)循环神经网络

一句话归纳&#xff1a; 1&#xff09;词向量与句子向量的循环神经网络&#xff1a; x(i)为词向量。h(i)为含前i个词信息的向量。h(t)为句向量。 2&#xff09;循环神经网络的局部。 每个子网络都是标准的全连接神经网络。 3&#xff09;对句向量增加全连接层和激活函数。 每个…

I2C接口18路LED呼吸灯驱动IS31FL3218互相替代SN3218替换HTR3218

I2C接口18路LED呼吸灯控制电路IC 该型号IC为QFN24接口&#xff0c;属于小众产品&#xff0c;IS31FL3218、SN3218、HTR3218S管脚兼容&#xff0c;需要注意的是HTR3218管脚与其他型号不兼容。 I2C接口可实现多个LED灯的呼吸灯控制&#xff0c;可实现单色控制18个LED灯&#xff0…

【ARM Cache 系列文章 11.2 -- ARM Cache 组相联映射】

请阅读【ARM Cache 系列文章专栏导读】 文章目录 Cache 组相联映射组相联映射原理多路组相连缓存的优势多路组相连缓存的代价关联度&#xff08;Associativity&#xff09; 上篇文章&#xff1a;【ARM Cache 系列文章 11.1 – ARM Cache 全相连 详细介绍】 Cache 组相联映射 A…

笔记1--Llama 3 超级课堂 | Llama3概述与演进历程

1、Llama 3概述 https://github.com/SmartFlowAI/Llama3-Tutorial.git 【Llama 3 五一超级课堂 | Llama3概述与演进历程】 2、Llama 3 改进点 【最新【大模型微调】大模型llama3技术全面解析 大模型应用部署 据说llama3不满足scaling law&#xff1f;】…

Deep learning Part Five RNN--24.4.29

接着上期&#xff0c;CBOW模型无法解决文章内容过长的单词预测的&#xff0c;那该如何解决呢&#xff1f; 除此之外&#xff0c;根据图中5-5的左图所示&#xff0c;在CBOW模型的中间层求单词向量的和&#xff0c;这时就会出现另一个问题的&#xff0c;那就是上下文的单词的顺序…

Redis Zset的底层原理

Redis Zset的底层原理 ZSet也就是SortedSet&#xff0c;其中每一个元素都需要指定一个score值和member值&#xff1a; 可以根据score值排序后member必须唯一可以根据member查询分数 因此&#xff0c;zset底层数据结构必须满足键值存储、键必须唯一、可排序这几个需求。之前学…

ZooKeeper知识点总结及分布式锁实现

最初接触ZooKeeper是之前的一个公司的微服务项目中&#xff0c;涉及到Dubbo和ZooKeeper&#xff0c;ZooKeeper作为微服务的注册和配置中心。好了&#xff0c;开始介绍ZooKeeper了。 目录 1.ZooKeeper的基本概念 2.ZooKeeper的节点&#xff08;ZNode&#xff09; 3. ZooKeep…
最新文章