毕业设计-基于大数据的电影推荐系统-python

目录

前言

课题背景和意义

实现技术思路

实现效果图样例


前言


    大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

对毕设有任何疑问都可以问学长哦!

大家好,这里是海浪学长毕设专题,本次分享的课题是

毕业设计-基于大数据的电影推荐系统

课题背景和意义

随着现代科技生产力的发展, 人们在空闲时间中逐渐开 始追求更高要求的娱乐活动, 而电影就是最为普遍的娱乐方 式之一。 不管是喜剧还是悲剧,都能勾起你纯真的眼泪;不管 是动作片还是恐怖片,都能让你的肾上腺大开大合;不管是科 幻片还是纪录片,都能让你云游古今中外。 不管是去电影院, 或是购买影碟,或是在网上观赏影片前,人们总是有选择性地 去寻找一些更符合自己喜好的、内容精致的、更受欢迎的电影 去观看。 但是,如今影片的拍摄逐渐走向高产化,佳片许多,烂 片也层出不穷,如果采用人工方法,在大量电影影片中找到自 己真正喜欢的电影是一个耗费精力的事情。 本文通过大数据挖掘技术构建了一个智能的电影推荐系 统,针对不同用户,提供多个与其过去的观影信息相似度较高 的符合该用户喜好的电影,满足用户的观影需求。 本文使用了 kaggle 网站中 TMDB 5000 Movie Dataset 的电影数据集, 主要 结合应用分类统计(Class Statistics)、样本相似度(Correlation) 分析等经典数据挖掘算法,剖析数据间的关系,从而完成电影 推荐系统的相关功能。 用户为系统提供一个电影的名称,该系 统提供与这部电影在类型、内容、受欢迎程度、年代等综合程 度最相似的五部影片。

实现技术思路

数据预处理

本文所使用的电影数据集,包含:电影类型(genres)、关键 字(keywords)、导 演(director)、演 员(actor)、发 行 公 司(company)、电影评分(IMDB)、成 本(budget)、评 分 人 数(count)、电 影 的发行年份(year)、发行国(country)、语 言(language)等 字 段, 共计 5000 多部电影详细信息。 本文的智能推荐系统主要依赖电影和电影之间的 “相似 度”(similarity)来为用户推荐电影,在计算相似度的过程中会 使用描述该电影的“关键字”(keywords)作为计算的主要因素 之一。 但是在这些关键字中有大量的低频词,会对计算过程产 生噪音影响; 关键词中还有大量的同义词, 如 “shadow”和 “dark”,同 根 词 ,如 “music”和 “musical”、 “train” 和 “training”、 “apple”和“apples”,在计算相似度应该被视为同一个词。因此, 我们使用以下的预处理方法对关键字进行了清洗。 ①本文应 用 python 的 NLTK package 合并了同义词和同根词。②本文对 频次小于五次或出现在少于三个电影的关键字进行了过滤。 数据集中有一些属性需要进行离散化处理, 如发行年份 (release date),本文应用了 EXCEL 的 YEAR()函数和ROUNDDOWN()函数以 10 年为间隔,将其分为了 1930s、1940s 一 直 到 2010s(代表 2010 年及以后)的年代制

电影推荐系统的设计

不同的人在挑选电影的时候往往有不同的选择, 但是大抵都会考虑以下几个方面。 电影的导演和演员以及制作公司 可能是观众会着重考虑的部分。 著名导演例如姜文、James Cameron,作品虽少但精品居多,他们的电影上映后可能会吸 引大量观众。 演员也是电影的一个重要载体,如 Robert Downey 这样拥有优秀的演技、 帅气外表的演员收揽了众多的狂热粉 丝,带来了票房大卖。 电影公司也在观众的选择中有着重要的 影响, 像 Marvel Studios、DC Entertainment 这类公司靠超级英 雄系列吸引了许多观众, 该系列的每一部新片上映都会快速 引起观影热潮。 我们称这部分因素为创作(cast)因素。 电影内 容、电影类型、发型年份、语言在不同程度上也是影响观众选 择电影时的因素之一,观众会优先去看符合自己口味的电影。 换句话说,一个喜欢看动作片的人,会在众多电影中选择如敢 死队、警察故事这类以动作取胜的影片;而一个人若喜欢爱情 片,泰坦尼克号这样唯美的作品将成为其首选。 我们称这部分 属性为内容(content)因素。 影片在同档期中的受欢迎程度、电 影评分、 评分人数也是决定观众是否选择这个电影的原因之 一。 我们称这部分因素为口碑(popularity)因素。 为了探究这些因素对于观众在选择电影时的影响, 本文 首先对某几个因素进行了定量分析。

电影类型

数据集中一部影片可能为多种电影类型, 本文统计了不 同类型电影的受欢迎程度。 首先,使用 EXCEL 的计数功能,统 计不同电影类型的样本数量。 统计结果显式,本数据集中主要 的电影类型有剧情片 (drama)(2297 部)、 喜 剧 片(comedy) (1722 部)、惊 悚 片(thriller)(1274 部 )、动 作 片 (action) (1154 部)、爱情片(romance)(894 部),除此之外还有冒险片(adventure)(790 部)、科幻 片(science fiction)(506 部)、动 画 片(animation)(234 部)等等。 然后,本文又使用了 EXCEL 的“分类汇 总”功能,将电影类型作为“分类字段”,将“电影评分”作为“汇 总方式”,使用“平均值”作为汇总项。 根据统计结果,受欢迎程度最高的三类影片是冒险片、动 画 片、科 幻 片;然 而,数 量 最 多 的 影 片 类 型——剧 情 片、喜 剧 片、惊悚片并不是最受欢迎的;反观,虽然奇幻片(fantasy)、推 理片(mystery)等类电影的数量并不占优势,但其受欢迎程度 依然较高。 因此,在电影市场中,并不是出现频率越高的电影 类型,就越受大众喜爱。 3.2 电影年代和电影成本 本文使用同 3.1 相似的统计方法,依据数据集,生成了从 1930~2017 年不同年代电影的平均预算以及受欢迎程度的折 线图,如图 1 所示。 根据图 1 可知,电影成本与受欢迎程度在 21 世纪前并没 有太大的关联性,而到了 21 世纪后便出现相当明显的正相关

关系。 结合实际情况分析可知, 早期的电影拍摄技术较为简 单,布景、道具也并不复杂,更多是以剧情表演展现其魅力。 因 此,影片投资金额并不会成为影响电影观感的重要影响因素。 加上 20 世纪战争偏多, 尤其 40 年代二战过后全球经济整体 倒退,娱乐方面的投资相对也低很多,所以成本都偏低。 纵观 21 世纪,随着计算机技术的蓬勃发展,观众也更爱看满屏特 效的大片, 这类电影的受欢迎程度自然上升且远超过去的作 品。 但特效的制作都需要许多的资金,换句话说,投入的资金 越多,特效的制作便越真实、酷炫,影片的观影体验越好,受欢 迎程度也会随之增长。 于是成本便和受欢迎程度不可割舍了, 也说明了成本在不同年代也体现了不同的价值.

相似度(similarity)

(1)用户给推荐系统提供一个自己喜欢的电影 j,取出电 影 j 的导演、三位最重要的演员、电影所属的各个电影类型、 各个预处理后的关键字。 (2)计算电影数据库中的每个电影和电影 j 的距离值,取 距离值最小的前 30 个电影。 在计算推荐候选电影 i 和用户所 选电影 j 的距离值 dij 时,首先我们根据 i 和 j 是否有相同的导 演、演员、制作公司、电影类型、关键 字,得到各个 a 的值。 举 例:如果 i 和 j 的导演相同,那 ai1 值为 1,否则 ai1 值值为 0;同 理其他属性的距离值 ai2,ai3,...,aik 也是这么求得。 然后使用欧几里得距离公式计算 dij,公式如下:

电影的综合质量

2 电影的综合质量(Quantity) 在得到于创作和内容上与用户所选电影 j 最相似的 Top 30 个电影之后,我们认为评判一个电影是否能带给用户最好 的享受,更取决于电影自身的优秀程度。 在本文中,我们使用 电影评分(IMDB)和打分人数(count),以及发行年代(year)作 为综合质量(Quantity)来表示进一步筛选电影,缩小范围。 首先,电影评分 IMDB 作为最具官方性的评分,其所占比 例自然最大, 我们函数中给予的影响也应最多,COUNT 所表 示的打分次数影响次之。 最后,发行年代在不同时期有着不同 价值,本文将利用高斯函数公式(3)来进行处理,用 YEAR 表 示这部分值。

其中,σ1=20,c 为所选电影 j 的发行年份。 从第一步中得到的 30 个电影中,找出 Quantity 得分最大 的 5 个电影,然后作为最终推荐给用户的电影。

 

实现效果图样例

 

毕业设计-基于大数据的电影推荐系统-python_第1张图片

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后

你可能感兴趣的:(数据挖掘,人工智能,算法,python,大数据)