计算机毕业设计hadoop+spark+hive漫画推荐系统 动漫视频推荐系统 漫画分析可视化大屏 漫画爬虫 漫画推荐系统 漫画爬虫 知识图谱 大数据

毕业设计(论文)课题申报表

课题名称

基于hadoop+spark的漫画推荐与可视化系统

课题类型

设计

课题性质

结合实际

课题来源

自拟

横、纵向项目名称

项目编号

项目来源

导师姓名

黄亮

职称

有否科研背景

有否实际工程背景

所在单位

数学与计算机学院

所学专业

上机时数

384(小时)

目的要求

  • 数据处理和分析:利用Hadoop和Spark的大数据处理能力,对大量的漫画数据进行处理和分析,包括用户行为数据、漫画内容数据等,以提取有用的信息。
  • 用户行为分析:通过对用户行为数据的分析,包括浏览、收藏、评价、分享等,挖掘用户的兴趣和需求,为推荐系统提供依据。
  • 漫画数据分析:对漫画内容进行深度分析,以提取其特征和关键信息,为推荐和可视化提供支持。
  • 推荐系统:基于用户行为分析和漫画内容分析的结果,构建一个高效的推荐系统,向用户推荐他们可能感兴趣的漫画作品。
  • 可视化系统:通过可视化的方式,将处理和分析的结果展示出来,包括用户行为分析结果、漫画内容分析结果等,以帮助用户更好地理解和分析数据。
  • 实时推荐:利用Spark的实时处理能力,实现实时推荐,能够及时向用户推荐他们可能感兴趣的漫画作品。
  • 性能优化:在整个系统的设计和实现过程中,需要考虑性能的优化,包括数据处理速度、推荐准确率、系统响应时间等。
  • 隐私保护:对用户数据进行脱敏处理,保护用户隐私。
  • 系统可扩展性:在设计时考虑系统的可扩展性,以便在未来的需求变化或数据增长时能够灵活地扩展系统。
  • 安全性:确保系统的安全性,包括数据安全、系统安全和用户隐私保护等方面。

主要内容

  • 前台系统:漫画推荐(提供四种算法模型分别实现,协同过滤算法的基于用户+基于物品、神经网络混合推荐算法、SVD)、漫画视频流量预测(卷积神经网络/线性回归算法进行预测)、漫画视频查询、漫画视频在线观看、模拟VIP充值观看(支付宝沙箱支付)、通过短信验证码修改密码、LSTM情感分析模型分析用户评论等;
  • 后台系统:用户管理、漫画视频管理、评论管理、订单管理、日志管理、权限管理、视频知识图谱(neo4j图数据库实现)等;
  • 可视化大屏系统:热门漫画视频分类、热门漫画话题饼图、漫画分享量Top10、每日漫画视频播放量折线图、漫画词云、漫画投币量排行榜等;
  • 爬虫:Python的selenium框架采集B站/知音漫客的漫画视频、评论等数据集;

预期

目标

(一)Selenium自动化Python爬虫工具采集漫画视频等约10万条存入.csv文件作为数据集;

(二)使用pandas+numpy或MapReduce对数据进行数据清洗,生成最终的.csv文件并上传到hdfs;

(三)使用hive数仓技术建表建库,导入.csv数据集;

(四)离线分析采用hive_sql完成,实时分析利用Spark之Scala完成;

(五)统计指标使用sqoop导入mysql数据库;

(六)使用Flask+echarts进行可视化大屏开发;

(七)使用机器学习、深度学习的算法进行个性化漫画视频推荐;

(八)使用卷积神经网络KNN、CNN实现漫画视频流量预测;

(九)搭建springboot+vue.js前后端分离web系统进行个性化推荐界面、漫画视频流量预测界面、知识图谱等实现;

教研室审查小组意见

本课题能否满足综合训练学生的教学要求

课题中有无基本工程训练内容,份量多大(限于理工专业)

本课题的要求、任务、内容是否明确、具体

进行本课题现有实施条件是否具备

工作量是否饱满,课题难度是否适中

进行本课题尚缺的条件本单位能否解决

对本课题的评审结论:

教研室主任(签字):

20   年  月  日

院系审定意见

院长(系主任)(签字):

                                           20   年  月  日

注:1、表内各项内容指导教师都必须认真填写。2、上机时数包括论文录入时数(统一计24小时)和设计(论文)中需上机时数。3、课题类型:设计或论文。4、课题性质:结合实际或理论研究。5、课题来源:纵向、横向或自拟课题,对于纵向和横向课题要求需将项目名称、项目编号、项目来源(单位)等3栏填写清楚。

核心算法代码分享如下:

from flask import Flask, request
import json
from flask_mysqldb import MySQL
import io, sys
# 创建应用对象
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'bigdata'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = '123456'
app.config['MYSQL_DB'] = 'hive_zymk'
mysql = MySQL(app)  # this is the instantiation
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')

@app.route('/tables01')
def tables01():
    cur = mysql.connection.cursor()
    cur.execute('''select * from (SELECT * FROM tables01 order by ctime desc limit 7) tt order by tt.ctime asc ''')
    row_headers = [x[0] for x in cur.description]  # this will extract row headers
    rv = cur.fetchall()
    json_data = []
    print(json_data)
    for result in rv:
        json_data.append(dict(zip(row_headers, result)))
    return json.dumps(json_data, ensure_ascii=False)


@app.route('/tables05')
def tables05():
    cur = mysql.connection.cursor()
    cur.execute('''select * from tables05 limit 5''')
    #cur.execute('''SELECT * FROM tables05 ''')
    row_headers = [x[0] for x in cur.description]  # this will extract row headers
    rv = cur.fetchall()
    json_data = []
    print(json_data)
    for result in rv:
        json_data.append(dict(zip(row_headers, result)))
    return json.dumps(json_data, ensure_ascii=False)

@app.route('/tables06')
def tables06():
    cur = mysql.connection.cursor()
    cur.execute('''select * from tables06 limit 5''')
    #cur.execute('''SELECT * FROM tables05 ''')
    row_headers = [x[0] for x in cur.description]  # this will extract row headers
    rv = cur.fetchall()
    json_data = []
    print(json_data)
    for result in rv:
        json_data.append(dict(zip(row_headers, result)))
    return json.dumps(json_data, ensure_ascii=False)


@app.route('/tables03')
def tables03():
    cur = mysql.connection.cursor()
    cur.execute('''select * from tables03 ''')
    row_headers = [x[0] for x in cur.description]  # this will extract row headers
    rv = cur.fetchall()
    json_data = []
    print(json_data)
    for result in rv:
        json_data.append(dict(zip(row_headers, result)))
    return json.dumps(json_data, ensure_ascii=False)


@app.route('/tables02')
def tables02():
    cur = mysql.connection.cursor()
    cur.execute('''SELECT * FROM tables02''')
    row_headers = [x[0] for x in cur.description]  # this will extract row headers
    rv = cur.fetchall()
    json_data = []
    print(json_data)
    for result in rv:
        json_data.append(dict(zip(row_headers, result)))
    return json.dumps(json_data, ensure_ascii=False)


@app.route('/tables04')
def tables04():
    cur = mysql.connection.cursor()
    cur.execute('''SELECT * FROM tables04''')
    #row_headers = [x[1] for x in cur.description]  # this will extract row headers
    row_headers = ['title', 'book_reads']
    rv = cur.fetchall()
    json_data = []
    print(json_data)
    for result in rv:
        json_data.append(dict(zip(row_headers, result)))
    return json.dumps(json_data, ensure_ascii=False)












if __name__ == "__main__":
    #app.run(debug=True)
    app.run(host="0.0.0.0", port=8080, debug=False)

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
大数据基于用户画像电影推荐系统是一个涉及Python、SparkHadoop等技术的复杂项目。在这个毕业源码案例设计中,源代码包含了多个部分的实现。 首先,Python作为主要的编程语言之一,负责数据的处理和分析。通过Python的数据处理库,我们可以对用户的个人画像数据进行清洗和整合,包括用户的年龄、性别、观影习惯等信息。同时,Python也可以用来编写推荐算法和模型评估的代码。 其次,Spark作为大数据处理和分析的引擎,在这个项目中起着重要的作用。我们可以利用Spark来处理海量的用户观影行为数据,进行分布式计算和数据处理,快速生成用户画像和推荐模型。Spark机器学习库也可以用来构建推荐系统模型,根据用户的画像特征为其推荐电影。 最后,Hadoop作为大数据存储和管理的平台,负责存储用户的个人画像数据、电影信息数据以及用户观影行为数据。通过Hadoop分布式文件系统(HDFS)和MapReduce计算框架,可以实现数据的高效存储和处理。 在这个毕业源码案例设计中,源代码会包括数据预处理的代码、推荐算法的实现、模型评估的代码,以及与HadoopSpark的交互代码等。这些源代码的编写将涉及到Python的数据处理和建模技术,Spark的分布式计算和机器学习技术,以及Hadoop的数据存储和管理技术。通过这些源代码的设计和实现,可以构建一个完整的大数据用户画像电影推荐系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

B站计算机毕业设计大厂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值