赞
踩
做的比较粗糙,只花了3个晚上的时间赶工出来的,大家稍微参考一下。
网易云音乐主打歌单,社交,发现和分享,除了能够了解自己的好友以及周围人的喜好之外,应用还会通过用户的使用习惯推荐给用户一定量的歌曲,在算法的助力下,推荐功能的质量尚可。
网易云音乐区别于传统音乐软件的最大特点就是将社交属性融合了进去并拥有优质的评论区。让用户在听音乐之外还有一些额外的享受。如果用户想知道自己认识的人都在使用网易云音乐听什么歌曲以及自己所在地什么歌曲受欢迎都可以通过网易云音乐来查询。如果她或他是用户所关心的人,除了通过朋友圈之外,网易云音乐的社交途径也是一个很好的了解渠道,一个人喜欢的歌曲往往可以映照出她或者他的心境 。
网易云音乐的网红广告文案来源就是网易云音乐的优质评论区。翻看一下网易云音乐的评论区,很能够将用户带入其中。下面截取《后来的我们》主题曲评论区的部分精彩评论。
从中不难发现网易云音乐的评论区能够很好的让用户感受到歌曲的意境,评论区中几乎没有与歌曲的内容完全无关的东西,也没有大多数评论区存在的语言谩骂等行为。使用网易云音乐的时候一边听歌区一边翻看歌曲的评论区是一种独特的享受。
但是对于一位普通用户来说,没有足够的时间去翻看过多的评论,所以用一个本地的的可视化平台来进行网易云用户与评论数据分析,帮助用户进行更加形象、数据更具体地了解一首歌曲的受众和类型。
豆瓣网起初是以评价书刊、电影、音乐为网友参考选择的一个网站。后逐渐发展扩大,吸引音乐人、影评人、各行各业的怪才等驻扎此网站。其简洁独特的站内风格被很多文艺青年所推崇。 豆瓣网是一个社区网站,它通过用户自我创造与分享内容,形成无数个具有共同话题的小圈子,进而形成一个庞大的好友社区。目前,涉及的领域以个性的书评、影评和音乐评论等,为广大用户提供了一个互动交流的平台。
豆瓣用户常被冠以“文艺”、“小清新”的头衔,看完电影去豆瓣写写影评或许已经成为一种习惯,当时间久了,有时就想要回忆一下自己写过的影评,一定会“往事历历在目”吧。
看影评是高频、用户量大的需求,但是对于一位普通用户来说,没有足够的时间去翻看过多的评论,所以用一个本地的的可视化平台来进行豆瓣用户数据与评论数据的分析,帮助用户进行更加形象、数据更具体地了解一部影片的受众和类型。
开发一个音乐影视数据分析系统,首先需要确定该系统要实现的功能是什么,也就是用户想要该系统所能做的工作。用户希望通过查询一首歌的听众信息和评论信息来了解该首歌是否是自己喜欢的类型,系统应该具备:显示歌曲排行榜,查询对应歌曲的用户年龄、等级、性别,显示影片排行榜。
系统应该具备:用显示对应歌曲的用户年龄、等级、性别的条形图,显示对应歌曲评论的词云图、散点图、条形图、折线图、饼状图。显示对应影片评论的词云图、散点图、条形图、折线图、饼状图。
系统使用python爬虫技术获取影音网站的最新的评论信息,实现“词云”对电影和音乐网站网络文本中出现频率较高的关键词予以视觉上的突出,形成关键词云层或关键词渲染,经过数据清理和词频统计之后对评论信息进行词云展示,从而过滤掉大量的文本信息,使浏览网页者一眼扫过文本即可领略文本主旨。
基于上述对系统的功能分析,定于该系统由如下几个功能实现:
本系统由主要有两个部分组成,分别是网易云音乐用户信息、热评的爬取和词云展示以及杭州城区豆瓣热评的爬取和词云展示。
并添加了如下工具栏:折线图等统计图形的选择丰富了用户的选择,图形显示区兼顾到了用户的体验可以由用户来自定义输出,做到了较好的人机交互性。
通过代码获取音乐排行榜信息并分析音乐排行榜网页,爬取音乐列表爬取歌曲单独网页热评信息后进行处理与词频统计后进行词云显示。
与音乐榜单类似,电影榜单网页信息爬取是通过获取电影评论信息后经过处理与词频统计进行词云显示。
系统业务流程则用流程图表示,如下所示:
设置header之后,使用requests库代替原本的request,以便顺利爬取网页html资源resp,对源文本转码之后获取文本信息,使用beautifulSoup进行网页解析,然后找到排行榜的各个资源id,并将a标签收集整理成列表。之后使用for循环遍历列表,通过观察列表中的元素资源的id,元素的content内容是资源的名字,按照这个规律将元素强制转换成字符串截取获得id,使用.text获得资源名,存入列表并返回。
使用for循环遍历列表,通过观察可知,列表中每个元素第19-29个字符是歌曲的id,元素的content内容是歌曲的名字,按照这个规律将元素强制转换成字符串截取获得id,使用.text获得歌名,存入nowplaying_list并返回。
同时根据歌曲的id和爬取评论的页数来爬取评论,先根据歌曲的id配合前缀域名得到歌曲评论存储信息地址,再根据页数爬取,每隔十页爬一次评论。
进入评论信息地址之后无需UTF-8转码直接获取文本,beautifulSoup解析代码后强制转换成字串,然后根据内容关键词进行分割得到列表,观察可得截取列表元素中引号前面的部分,即用户评论的内容。
通过for循环遍历将评论加入列表eachCommentList,并作为函数值返回,用于主函数的调用。同理可以进行用户ID、年龄、等级和性别的分析。
调用分析网页函数获得网页内容,然后指定列表中某一资源,for循环调用评论爬取函数爬取该资源的其中若干页评论,然后将评论的数据转换为字串。然后使用正则表达式去掉标点后使用jieba进行中文分词,然后for循环遍历删除本地准备好的停用词。
图27-结巴分词
正则表达式去掉标点后使用jieba进行中文分词,然后for循环遍历删除本地准备好的停用词。之后根据爬取的评论分辨电影是剧情、动作、科幻 喜剧、动画等类型,如果根据所获得的内容无法分辨,则将该电影归类为其他。
最后调用WordCloud库得到词云图,然后使用matplotlib库进行词云图展示。
词云图、条形图、散点图、折线图、饼图、热力值图等。
QtCore:包含了核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程。
QtGui包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本。
Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类。
通过sqlite3实现与数据库的连接同时将获得的信息存储到数据表中,通过执行insert into music values()的sql语句将获得的评论各项信息以一定的顺序存储到数据库中,conn.commit()这句来提交事务。
该系统使用了窗口化布局,简洁明了。对初次使用该系统的用户有着良好的交互性。
用户首先观察到的模块是canvas画布,用户所要生成的图像会在这里进行显示,显示完成后用户可通过画布上面的工具栏进行各种个性化操作。
通过代码获取音乐排行榜信息并分析音乐排行榜网页,爬取音乐列表爬取歌曲单独网页热评信息后进行处理与词频统计后进行词云显示。
折线图等统计图形的选择丰富了用户的选择,图形显示区兼顾到了用户的体验可以由用户来自定义输出,做到了较好的人机交互性。
其次除了基本的散点图、折线图、条形图、饼状图外,我还选择了pyechart来生成听众所在地的热力图。
同时,数据库语言SQL的运用也是本程序的一大亮点。本程序通过DB navigator在Pycharm中的插件,以及sqlite3库的使用,实现了数据库的可视化,给日后对数据进行更新、使用都有着极大的方便。
本次课程设计采用python的PyQt5界面设计库和matplotlib数据可视化展示库,词云图生成的wordcloud库,以及SQL语言实现数据库存入。多个库函数的配合关系众多,本次实验的大体思路是建立GUI的类代码,然后在主函数中建立调用类,实例化GUI类的对象,并引入music和movie两个py代码中的数据爬取和评论分析函数,然后获取内容存入shu据库中方便使用,整个系统需要五个代码库的配合运行,调度复杂性高。
链接: https://pan.baidu.com/s/1UYCemHAp24BEi900-N_OnQ
提取码: whm9
拿走的话点个赞叭!谢谢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。