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

本文主要是介绍计算机毕业设计Python+Vue.js知识图谱音乐推荐系统 音乐爬虫可视化 音乐数据分析 大数据毕设 大数据毕业设计 机器学习 深度学习 人工智能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发技术
协同过滤算法、机器学习、LSTM、vue.js、echarts、django、Python、MySQL


创新点
协同过滤推荐算法、爬虫、数据可视化、LSTM情感分析、短信、身份证识别


补充说明
适合大数据毕业设计、数据分析、爬虫类计算机毕业设计


介绍

  • 音乐数据的爬取:爬取歌曲、歌手、歌词、评论
  • 音乐数据的可视化:数据大屏+多种分析图【十几个图】
  • 深度学习之LSTM 音乐评论情感分析
  • 交互式协同过滤音乐推荐: 2种协同过滤算法、通过点击歌曲喜欢来修改用户对歌曲的评分
  • 歌词、乐评的词云
  • 登录、注册、修改个人信息等【集成身份证识别、短信验证码等】

核心算法代码分享如下:

# coding = utf-8# 基于项目的协同过滤推荐算法实现
import randomimport math
import pymysql                          #数据库
from operator import itemgetterfrom config import cnnclass ItemBasedCF():# 初始化参数def __init__(self):# 找到相似的8个,为目标用户推荐4个self.n_sim_movie = 8self.n_rec_movie = 4# 将数据集划分为训练集和测试集self.trainSet = {}self.testSet = {}# 用户相似度矩阵self.movie_sim_matrix = {}self.movie_popular = {}self.movie_count = 0print('Similar movie number = %d' % self.n_sim_movie)print('Recommneded movie number = %d' % self.n_rec_movie)# 从数据库得到“用户-物品”数据def get_dataset(self, pivot=0.75):trainSet_len = 0testSet_len = 0cnn.ping(reconnect=True)cursor = cnn.cursor()sql = ' select * from tb_rate'cursor.execute(sql)for item in cursor.fetchall():user, movie, rating = item[1:]self.trainSet.setdefault(user, {})self.trainSet[user][movie] = ratingtrainSet_len += 1self.testSet.setdefault(user, {})self.testSet[user][movie] = ratingtestSet_len += 1cursor.close()# cnn.close()print('Split trainingSet and testSet success!')print('TrainSet = %s' % trainSet_len)print('TestSet = %s' % testSet_len)# 读文件,返回文件的每一行def load_file(self, filename):with open(filename, 'r') as f:for i, line in enumerate(f):if i == 0:  # 去掉文件第一行的titlecontinueyield line.strip('\r\n')print('Load %s success!' % filename)# 计算物品之间的相似度def calc_movie_sim(self):for user, movies in self.trainSet.items():for movie in movies:if movie not in self.movie_popular:self.movie_popular[movie] = 0self.movie_popular[movie] += 1self.movie_count = len(self.movie_popular)print("Total movie number = %d" % self.movie_count)for user, movies in self.trainSet.items():for m1 in movies:for m2 in movies:if m1 == m2:continueself.movie_sim_matrix.setdefault(m1, {})self.movie_sim_matrix[m1].setdefault(m2, 0)self.movie_sim_matrix[m1][m2] += 1print("Build co-rated users matrix success!")# 计算物品之间的相似性 similarity matrixprint("Calculating movie similarity matrix ...")for m1, related_movies in self.movie_sim_matrix.items():for m2, count in related_movies.items():# 注意0向量的处理,即某物品的用户数为0if self.movie_popular[m1] == 0 or self.movie_popular[m2] == 0:self.movie_sim_matrix[m1][m2] = 0else:self.movie_sim_matrix[m1][m2] = count / math.sqrt(self.movie_popular[m1] * self.movie_popular[m2])print('Calculate movie similarity matrix success!')# 针对目标用户U,找到K部相似的物品,并推荐其N部物品def recommend(self, user):K = self.n_sim_movieN = self.n_rec_movierank = {}if user>len(self.trainSet):user = random.randint(1, len(self.trainSet))watched_movies = self.trainSet[user]for movie, rating in watched_movies.items():for related_movie, w in sorted(self.movie_sim_matrix[movie].items(), key=itemgetter(1), reverse=True)[:K]:if related_movie in watched_movies:continuerank.setdefault(related_movie, 0)rank[related_movie] += w * float(rating)return sorted(rank.items(), key=itemgetter(1), reverse=True)[:N]# 产生推荐并通过准确率、召回率和覆盖率进行评估def evaluate(self):print('Evaluating start ...')N = self.n_rec_movie# 准确率和召回率hit = 0rec_count = 0test_count = 0# 覆盖率all_rec_movies = set()for i, user in enumerate(self.trainSet):test_moives = self.testSet.get(user, {})rec_movies = self.recommend(user)for movie, w in rec_movies:if movie in test_moives:hit += 1all_rec_movies.add(movie)rec_count += Ntest_count += len(test_moives)precision = hit / (1.0 * rec_count)recall = hit / (1.0 * test_count)coverage = len(all_rec_movies) / (1.0 * self.movie_count)print('precisioin=%.4f\trecall=%.4f\tcoverage=%.4f' % (precision, recall, coverage))def rec_one(self,userId):print('推荐一个')rec_movies = self.recommend(userId)# print(rec_movies)return rec_movies# itemCF 推荐算法接口
def recommend(userId):itemCF = ItemBasedCF()itemCF.get_dataset()itemCF.calc_movie_sim()reclist = []recs = itemCF.rec_one(userId)return recs# for movie, rate in recs:#     # print(movie, rate)#     reclist.append(dict(item=movie, rate=rate))# # itemCF.evaluate()# return reclist# 测试
if __name__ == '__main__':print(recommend(1))

这篇关于计算机毕业设计Python+Vue.js知识图谱音乐推荐系统 音乐爬虫可视化 音乐数据分析 大数据毕设 大数据毕业设计 机器学习 深度学习 人工智能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071633

相关文章

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用