摘" 要:网易云音乐评论数据作为用户对音乐作品的直接反馈,蕴含着丰富的信息价值。文章使用Python爬虫技术对评论数据进行采集,将采集的数据结果存储到SQLite数据库中,通过使用Python第三方库对评论数据进行处理和分析,使用Python的Flask框架搭建Web应用,实现评论数据的动态可视化展示。通过对网易云音乐评论数据深入挖掘,可以了解用户对不同歌曲评价、情感倾向、热门话题等信息,为音乐推荐系统的优化和舆情监测提供科学依据。此外,在数据可视化方面,网易云音乐评论数据分析系统采用了多种图表形式,如柱状图、饼图和词云图等,直观地展示分析结果。通过这些图表,用户可以轻松地了解评论数据的分布情况、趋势变化等信息。
关键词:网易云音乐;Python爬虫;情感分析
中图分类号:TP311" 文献标识码:A" 文章编号:2096-4706(2024)24-0072-05
Design and Implementation of NetEase Cloud Music Review Data Analysis System Based on Python
HUA Kangmin1, YIN Xusong2
(1.Laboratory and Equipment Management Office, Zhengzhou University of Aeronautics, Zhengzhou" 450046, China;
2.School of Computer Science, Zhengzhou University of Aeronautics, Zhengzhou" 450046, China)
Abstract: NetEase Cloud Music review data as the direct feedback of users to music works, contains rich information and value. In this paper, Python crawler technology is used to collect the review data, and the collected data results are stored in the SQLite database. By processing and analyzing the review data with the Python third-party database, the Flask framework of Python is used to build a Web application to realize the dynamic and visual display of the review data. Through the deep mining of NetEase Cloud Music review data, users comments of different songs, emotional tendencies and hot topics and other information can be known, which provides a scientific basis for the optimization and public opinion monitoring of the music recommendation system. In addition, in terms of data visualization, NetEase Cloud Music review data analysis system uses a variety of chart forms, such as bar charts, pie charts and word clouds and so on, to visually display the analysis results. Through these charts, users can easily understand the distribution situation, trend changes and other information of review data.
Keywords: NetEase Cloud Music; Python crawler; emotion analysis
0" 引" 言
随着互联网和数字技术的快速发展,在线音乐是一种新兴的文化形式和娱乐方式,它以互联网技术为基础,使用户能够通过网络随时随地访问和享受音乐内容。在线音乐平台如网易云音乐等的兴起,使得用户可以方便地享受到各种类型的音乐作品,同时也为用户提供了表达自己情感和观点的平台[1]。其中音乐评论作为用户对音乐作品的直接反馈,蕴含着丰富的信息和价值,对于理解用户喜好、分析音乐市场和优化音乐服务具有重要意义[2]。
1" 系统需求分析
基于Python的网易云音乐评论数据分析系统的设计与实现的需求分析主要包括以下几部分:
1)功能需求。评论数据的采集和存储,需要编写Python脚本,模拟用户代理,根据网易云音乐官方给的API接口,爬取网易云音乐评论数据。由于爬取的数据可能包含无效,使用正则表达式清洗错误或无效内容,以保证数据的准确性。将清洗后的数据存储到SQLite数据库中,以便后续分析。利用可视化工具,将数据处理、情感分析和可视化部分整合为一个Python程序,结合Flask等框架搭建Web应用,实现评论数据的动态可视化展示。
2)性能需求。系统性能需求包括系统的响应时间、吞吐量、稳定性等方面。在系统开发过程中,需要对系统以及系统功能的性能进行评估和优化,以确保系统能够满足用户的需求和期望。
3)用户界面需求。在进行用户界面设计时,应该考虑系统的布局、颜色、字体等方面。用户界面应该简单明了,易于使用,并且符合用户的使用习惯和偏好。
4)安全性需求。在采集用户评论数据时,需要遵守相关法律法规,在网易云音乐的合法权益合法范围内使用网易云音乐API接口,先对评论数据进行采集,再存储评论数据,确保数据不被泄露。
2" 相关技术
2.1" Python及第三方库
Python是一种高级的程序设计语言,它以简洁、易读的语法而闻名,被广泛应用于各种领域,包括软件开发、数据科学、人工智能、Web开发等[3]。本系统采用Python为主要开发语言正是因为其庞大而活跃的第三方库生态系统,主要使用以下Requests、Pandas、SnowNLP、WordCloud等库。
2.2" SQLite数据库
SQLite是一种轻量级的嵌入式关系型数据库管理系统,它是一个零配置的、无服务器的、开源的、自包含的数据库引擎。SQLite的设计目标是尽可能简单,使得它非常适合嵌入到各种应用程序中。
2.3" Flask框架
Flask是一个使用Python编写的轻量级Web应用框架,它基于WSGI工具箱采用Werkzeug和Jinja2模板引擎,提供了快速构建Web应用的能力[4]。Flask的优点在于其简单易用,适合小型到中型应用,同时它提供了丰富的扩展支持,可以方便地集成各种功能。
2.4" Echarts可视化库
Echarts是百度开源的一款基于JavaScript的数据可视化库,用于创建交互式的图表和地图[5]。它支持各种常见的图表类型,包括折线图、柱状图、饼图、散点图等,并提供丰富的配置选项和交互功能,可以轻松地实现数据的可视化展示。
3" 系统设计
3.1" 系统架构设计
本系统是基于B/S架构的数据可视化分析系统,本系统使用Python为主要编程语言,后端基于Python开源的Web框架Flask,前端页面采用LayUI框架以及Echarts图表。本系统采用三层架构模式,分为表示层、业务逻辑层和数据访问层[6],系统架构设计图如图1所示。
3.2" 系统功能模块设计
根据系统需求分析可知,本系统的功能模块分为数据采集和存储模块、数据处理和分析模块、可视化展示模块和系统管理模块。数据采集和存储模块主要负责从网易云音乐平台采集评论相关数据并将采集到的数据存储到SQLite数据库中;数据处理和分析模块负责将需要进行处理的数据从数据库中获取,进行脏数据的处理和数据格式的更改,并根据所需要求进行数据分析;可视化展示模块负责将数据处理和分析的结果根据具体要求使用不同的图表,词云进行可视化展示;系统管理模块负责本系统的用户管理、角色管理、权限管理、系统监控等功能模块[7]。
3.2.1" 数据采集和存储模块
首先初始化数据库,然后使用Python的Requests库,根据网易云音乐评论API接口,设置请求头Headers,发送Post请求获取全部评论。然后解析评论接口,获取评论用户ID、评论用户昵称、评论用户位置、评论用户评论内容等数据信息。最后将评论数据写入SQLite数据库。
3.2.2" 数据处理和分析模块
数据处理是数据可视化分析的一个重要前提,在进行数据分析时,若直接连接数据库,将获取的数据直接进行分析,可能因为脏数据和数据格式等问题,对后续的进行数据分析的结果造成很大的影响。因此需要使用re和replace对数据进行清洗和预处理。
数据分析功能主要分为情感分析、情感倾向、词云、用户活跃度、用户IP。情感分析使用Python的SnowNLP库进行情感分析,对每条评论内容进行打分,并统计各个分数段的占比,得到情感得分布图和情感倾向图。词云是使用WordCloud库,统计每个单词出现的频率,通过大小不同和单词颜色展示单词出现的频率。用户活跃度是通过统计用户每个小时参与评论数量,反应用户的活跃度,使用折线图展示[8]。
3.2.3" 可视化展示模块
本模块主要负责将经过数据分析的结果进行可视化分析,并展示在前端界面上。根据用户需求生成各种可视化图表,如情感得分分布图、情感倾向图、词云、折线图、柱状图等。使用Echarts和WordCloud生成所需的可视化图表和词云。
3.2.4" 系统管理模块
本模块旨在实现用户管理、角色分配、权限设定以及系统监控等功能。通过细致的用户管理,确保系统的安全性和用户信息的准确性;通过精准的角色管理,给不同用户分配相应的权限;通过严谨的权限管理,严格把控系统资源的访问与操作;而通过系统监控功能,实时监控系统的运行状态,确保系统的稳定与高效运行。
4" 系统实现
4.1" 数据采集和存储模块实现
网易云评论数据是通过AJAX方式加载数据,在XHR中找到动态加载的评论数据。网易云音乐界面每页最多20条评论,根据API接口http://music.163.com/api/v1/resource/comments/R_SO_4_97357?limit=20amp;offset=39请求下一页评论数据,循环写入limit和offset两个参数。使用Requests库发送Post请求,获取全部评论数据,获取的评论数据为JSON格式,需要使用json.loads()来解析JSON字符串,将JSON格式的字符串转化为Python对象,然后解析评论数据,得到所需要的数据。
本系统数据库使用SQLite数据库,在插入数据之前,应该先初始化数据库,根据所需要存储的数据内容创建表格,将获得的评论相关数据写入数据库,方便进一步进行数据分析。
4.2" 数据处理和分析模块实现
进行情感分析需要使用Python的SnowNLP库,SnowNLP是一个基于Python的中文自然语言处理库[9]。评论内容存储在数据库中,首先需要从数据库中读取评论内容,其次使用正则表达式re和replace做清洗和预处理操作,去除脏数据和特殊符号等。然后使用SnowNLP进行情感分析,对每条评论内容进行打分,得到每条评论的情感分数。
进行词云展示需要使用WordCloud库,首先将所需要从数据库中获取需要生成词云的内容,其次进行数据清洗来去除脏数据和特殊符号,然后使用WordCloud库,它根据文本内容中单词出现的频率生成不同大小和颜色的单词。最后生成词云图像,从而直观地展示评论内容的主题内容、关键词信息和评论内容特征等。
从数据库中读取用评论时间,评论时间在数据库中以字符串形式存在,使用Pandas库,将评论时间字符串转换为Pandas的datetime对象,然后提取每个小时信息,统计每小时出现频率,使用折线图展示每个时间段出现的次数,从而得到用户主要活跃在哪个时间段。
4.3" 可视化展示
此模块将数据处理、情感分析、词云、用户活跃度等数据处理和分析部分整合为Python程序,结合Python的Flask框架、LayUI框架、Echarts图表等搭建Web应用,将生成的图表嵌入到前端界面上进行展示,实现评论数据的动态可视化展示[10]。
数据采集界面,用户可以直接根据歌曲ID,爬取所需进行分析的评论数据也可以榜单中歌曲ID进行分析,数据采集界面如图2所示。
系统用户通过后台数据可以看到评论数据等相关信息,此评论数据功能可以根据歌曲ID展示该歌曲的所有评论数据。评论数据显示界面示例如图3 所示。
用户在数据词云可以直观看到根据歌曲ID采集到的评论数据中用户评论、用户IP、用户昵称生成的词云,从词云可以直观地展示该文本内容的主题内容、关键词信息和评论内容特征等,如图4所示。
根据情感分析,得到每条评论内容的得分,统计各个分数段,得到情感得分各个分数段的占比以及情感倾向。评论情感分布折线图和情感倾向饼图如图5所示。
根据每小时参与评论用户的数量,可以使用每小时评论数量折线图反映用户活跃度,从而直观地统计出用户主要活跃在哪个时间段。每小时评论数量折线图如图6所示。
5" 结" 论
网易云音乐评论数据分析系统基于Python编程语言,结合网络爬虫技术、自然语言处理技术和数据可视化技术,对网易云音乐评论进行全面的分析和探索。通过深入挖掘音乐评论数据,可以了解用户对不同歌曲的评价、情感倾向、热门话题等信息,为音乐推荐系统的优化和舆情监测提供科学依据。此外,在数据可视化方面,网易云音乐评论数据分析系统采用了多种图表形式,如柱状图、饼图和词云图等,直观地展示分析结果。通过这些图表,用户可以轻松地了解评论数据的分布情况、趋势变化等信息。未来该系统还将继续完善功能,提升性能,为音乐产业的发展贡献更多力量。
参考文献:
[1] 侯璐璐.网易云音乐APP市场发展探讨 [J].出版广角,2020(12):82-84.
[2] 方爱华,陆朦朦,朱静雯.用户评论视域下数字音乐信息分布规律探析——以网易云音乐热歌榜为例 [J].出版广角,2017(3):72-76.
[3] 王瑞梅.网络招聘数据可视化分析系统的设计与实现 [D].石家庄:河北师范大学,2020.
[4] 牛作东,李捍东.基于Python与flask工具搭建可高效开发的实用型MVC框架 [J].计算机应用与软件,2019,36(7):21-25.
[5] 王慧玲.招聘网站数据可视化分析平台的设计与实现 [D].曲阜:曲阜师范大学,2020.
[6] 孟含.网易云音乐华语流行音乐用户评论研究 [D].天津:天津音乐学院,2022.
[7] 钟恢虎.流行音乐app评论情感分类研究 [D].桂林:桂林电子科技大学,2022.
[8] 刘滨,刘增杰,刘宇,等.数据可视化研究综述 [J].河北科技大学学报,2021,42(6):643-654.
[9] 蔡增玉,韩洋,张建伟,等.基于SnowNLP的微博网络舆情分析系统 [J].科学技术与工程,2024,24(13):5457-5464.
[10] 华康民,冯桂林,元鲁艳.基于LNM P架构的“民航学派”学习考试系统的设计与实现 [J].科学技术创新,2021(5):69-71.
作者简介:华康民(1990.05—),男,汉族,河南滑县人,实验师,硕士,研究方向:教育信息化、计算机科学与技术、大数据应用;通信作者:殷旭颂(2001.10—),男,汉族,河南滑县人,本科在读,研究方向:软件工程。