目录
前言
课题背景和意义
实现技术思路
实现效果图样例
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯基于大数据动画电影推荐系统
课题背景和意义
随着大数据(BigData)时代的到来,网络信息呈现出爆炸式增长的趋势,用户面临着信息过载的难题. 为了让用户能够从海量信息中高效地获取自己所需的信息,推荐系统应运而生.推荐系统是大数据在互联 网领域的典型应用,是自动联系用户和物品的一种工具,它通过分析用户的历史记录来了解用户的喜好, 主动为用户推荐其感兴趣的信息,从而满足用户的个性化推荐需求. 2016年初,艾漫数据与中视互动 联合组建了中国首个大数据应用平台———“中国动漫数据平台”.该平台以“大数据+动漫”为模式,以先进 的“自然语言处理”和“大数据挖掘”为核心技术,以实时演算生成的“动作、表情捕捉”为生产力,进行自主 优秀的动漫IP孵化,并为国内其他希望深耕动漫产业的企业提供动漫立项、动漫IP评估、动漫市场分析、 动漫虚拟人物评估、动漫周边衍生产品评估、动漫受众分析等大数据服务. 笔者拟梳理和归纳大数据技 术应用及相关研究成果,并探索和实践大数据在动漫产业链各个环节中的技术应用.
实现技术思路
大数据简介
大数据,是指需要新处理模式才能具有更强的决策力、洞察力和流程优化能力来适应海量、高增长率 和多样化的信息资产.大数据的5V 模型是海量(Volume)、快速(Velocity)、多样化(Variety)、真实性 (Veracity)、价值密度低(Value).大数据技术主要包括数据采集、数据存储和管理、数据处理和分析、数据 安全和隐私保护等层面的内容.大数据计算模式主要有批处理计算、流计算、图计算和查询分析计算等.大 数据的处理流程可以定义为:在适当工具的辅助下,对广泛异构的数据源进行抽取和集成,从中提取出关 系和实体,经过关联和聚合等操作,结果按照一定的标准统一存储,再利用合适的数据分析技术分析存储 的数据,从中提取有益的知识并利用恰当的方式将结果展示给终端用户.大数据处理的基本流程如图所示.
在大数据时代背景下,动漫产业与网络大数据 处理技术进一步融合,推动了动漫产业进入快速发 展的新时期.为了提高动漫产业信息化水平,改善动 漫产业综合决策,确保动漫产业大数据采集的可靠 性、高效性。
动画电影推荐系统架构模型
一套完整的动画电影推荐系统(图3)通常包括3个组成模块:用户建模模块、推荐对象建模模块、推荐 算法模块.动画电影推荐系统首先对用户进行建模,根据用户的行为数据和属性数据来分析用户对动画电 影的兴趣、需求和评分,同时也对推荐对象进行建模;接着,基于用户特征和动画电影特征,采用ItemCF (基于物品的协同过滤)推荐算法,计算得到用户可能感兴趣的对象;最后,根据推荐场景对推荐结果进行 一定的过滤和调整,并将推荐结果展示给用户.
数据处理
选择以 MovieLens[14]作为实验数据,采用ItemCF算法,通过分析用户的行为记录来计 算物品之间的相似度,使用 Python语言编程实现简易的动画电影推荐系统.MovieLens数据集中除了评 分记录外,还包括用户信息数据和电影信息数据,可用于实现更精准的推荐.为简化实现过程,本例仅使用 数据集中用户计算动画电影评分数据,同时使用动画电影的基本信息数据来辅助输出推荐结果.在数据集 中,用户对动画电影的评分数据文件为u.data,动画电影的信息数据文件为u.item.将所需数据读入并进行 预处理,主要是将用户对动画电影的评分信息存入集合user_movie.
计算相似度矩阵.采用ItemCF算法计算动画电影之间的相似度,并根据动画电影的相似度和用户 的历史行为,对用户生成推荐列表(图4).基于图4的数据建立用户到动画电影倒排表,并计算动画电影的 余弦相似度矩阵,如图5所示.对每个用户u 喜欢的动画电影列表,建立对应的动画电影相似度矩阵 Mu. 例如,用户a 喜欢动画电影A 和动画电影C,则 Ma[A][C]和 Ma[C][A]都加1,依次类推,得到每个用户 的动画电影相似度矩阵.将所有用户的动画电影相似度矩阵相加,得到最终的动画电影相似度矩阵R.其中, R[i][j]记录了同时喜欢动画电影i和j的用户数.将矩阵R 归一化,便可得到动画电影间的余弦相似度矩阵 W.得到动画电影相似度后,再度量用户u 对动画电影j的兴趣程度。
defItemSimilarity(user_movie):
C={}
N={}
foruser,itemsinuser_movie.items():
foriinitems.keys():
N.setdefault(i,0)
N[i]+=1
C.setdefault(i,{})
forjinitems.keys():
ifi==j:continue
C[i].setdefault(j,0)
C[i][j]+=1
W={}
fori,related_itemsinC.items():
W.setdefault(i,{})
forj,cijinrelated_items.items():
W[i][j]=cij/(math.sqrt(N[i]*N[j]))
returnW
计算推荐结果.动画电影余弦相似度矩阵计算完成后,就可以对用户进行推荐.
defRecommend(user,user_movie,W,K,N):
rank={}
action_item=user_movie[user]
foritem,scoreinaction_item.items():
forj,wjinsorted(W[item].items(),key=lambdax:x[1],reverse=True)[0:k]:
ifjinaction_item.keys():
continue
rank.setdefault(j,0)
rank[j]+=score*wj
returndict(sorted(rank.items(),key=lambdax:x[1],reverse=True)[0:N])
实现效果图样例
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!