大家好,今天我们用python分析下周杰伦歌曲。为了尽量完整地呈现从原始数据到可视化的过程,接下来我们会先简单讲解数据的预处理过程,即如何将 JSON 数据转化为Excel 格式,以及如何对周杰伦的歌曲进行分词。
本案例中的歌词数据来自中文歌词数据库,这个数据库提供了华语歌手的歌曲及歌词信息,数据以 JSON 格式存储。
数据预处理指的是将原始数据处理成我们希望的格式,并提取出我们需要的信息。
在本案例中,我们需要先从数据库中筛选出演唱者为周杰伦的歌曲,然后获得这些歌曲的歌词,并将它们存储到纯文本文档(.txt 格式)中,以下提供两种方法。
第一种方法,先把 JSON 文件转换为 Excel 可以打开的 .csv 文件或 .xlsx 文件格式。这可以借助一些在线的转换工具完成(如 JSON to CSV Converter)。一般而言,只需将文件拖入这些工具,选择好转换格式类型,即可转换完成。接着,我们便可以在 Excel 中打开该数据,然后单击“数据→筛选”命令,选择歌手为“周杰伦”的歌曲。之后,选中它们的歌词,并将其粘贴到纯文本文档中。
第二种方法,通过 Python 进行数据预处理。首先,需要引入 JSON 库(未安装者通过 pip install json 安装)。
import json
然后,读取我们下载的 JSON 文件,存储在名为 data 的变量中。
with open(‘ lyrics.json’ , ‘ r’ ) as f:
data = json.load(f)
接着,遍历 data 中的每一项,找出“歌手”=“周杰伦”的数据项,存到data_zjl 中。
data_zjl = [item for item in data if item[‘ singer’ ]==’ 周杰伦’ ]
print(len(data_zjl))
建立一个空列表 zjl_lyrics,用于存储歌词。遍历 data_zjl 中的每一首歌,将它们的歌词存到 zjl_lyrics 中。
Zjl_lyrics = []
for song in data_zjl:
zjl_lyrics = zjl_lyrics + song[‘ lyric’ ]
最后将 zjl_lyrics 写入一个新的 .txt 文件。
with open(“ zjl_lyrics.txt” , “ w” ) as outfifile:
outfifile.write(“ \n” .join(zjl_lyrics))
通过这几行代码,我们就获得了周杰伦所有歌曲的歌词数据(见图1)。以这个 .txt 文件为基础,我们便可以进行词频统计了。
以下附上一种在 Python 中分词的方法。首先引入 jieba 库(安装 :pip install jieba)、pandas 库(安装 :pip install pandas)、用于频次统计的 Counter 库,以及表单工具,代码如下:
import jieba
import jieba.analyse
import pandas as pd
from collections import Counter
事先准备好一个中文的停用词表(.txt 文件,里面包含一些常见的、需要过滤的中文标点和虚词,可在网上下载),代码如下:
with open(‘ chinese_stop_words.txt’ ) as f:
stopwords = [line.strip() for line in f.readlines()]
打开歌词文件,利用 jieba 库进行分词。分词之后,删除停用词、去除无用的符号等。用 Counter 库对清洗干净的词语进行频次统计。然后将统计结果用 pandas库转换为数据表单,存储为 Excel 文件,代码如下:
fifile = open(“ zjl_lyrics.txt” ).read()
words = jieba.lcut(fifile, cut_all=False, use_paddle=True)
words = [w for w in words if w not in stopwords]
words = [w.strip() for w in words]
words = [w for w in words if w != ‘ ’ ]
words_fifilter = [w for w in words if len(w) > 1]
df = pd.DataFrame.from_dict(Counter(words_fifilter), orient=’ index’ ).
reset_index()
df = df.rename(columns={‘ index’ :’ words’ , 0:’ count’ })
df.to_excel(“ 周杰伦分词结果 .xlsx” )
由此,如下表所示,我们便获得了分词后的单词及词频。使用这个文档,我们就可以开始制作可视化了。
由于是文本类数据,我们首先想到的可视化形式可能是文字云。如果你使用 Python,则可以直接基于刚才的分析结果,调用wordcloud库绘制文字云,代码如下:
from wordcloud import WordCloud
# 注 :这里需要引入一个中文字体,否则会乱码
wc = WordCloud(font_path = ‘ Alibaba-PuHuiTi-Regular.ttf’ ,
background_color=” white” ,
max_words = 2000)
wc.generate(‘ ‘ .join(words_fifilter))
import matplotlib.pyplot as plt
plt.imshow(wc)
plt.fifigure(fifigsize=(12,10), dpi = 300)
plt.axis(“ off” )
plt.show()
绘制结果如图所示:
不过,在代码工具内绘制文字云,进行定制化设计相对比较复杂。因此,也可以借助一些在线工具帮助我们实现更好的可视化效果。下面,我们以微词云为例进行演示。
进入微词云界面后,首先单击“导入单词”,进行数据导入。选择“从 Excel 中导入关键词”,然后上传我们刚才得到的包含单词和词频的 Excel 文档(需要注意的是,微词云目前对上传的 Excel 文件格式有一定要求,比如,列名必须叫“单词”和“词频”才能识别,详见其页面指引),即可生成文字云。
可以看到,微词云的页面上还有另外两种导入数据的选项。其中,“简单导入”支持用户输入用逗号隔开的单词。“分词筛词后导入”则支持用户粘贴长文本,然后由系统自动进行分词和词性判别。换句话说,如果你有一个文档文件,也可以直接粘贴进微词云进行分词。
接下来我们用周杰伦的歌词文档来尝试一下。选择“分词筛词后导入”,然后将之前的 .txt 格式的文档粘贴进微词云。之后,单击“开始分词”,软件就会自动把词语切割出来,并按词性归类,结果如下图所示。
可以看到,所有的词语被按照动词、名词、形容词、人名等归类。词语后面的括号标注了词频。同时,微词云还自动帮我们把高频的词汇勾选出来。我们也可以根据个人需求,在这个界面中进一步编辑,例如只显示名词、只显示动词等,然后单击“确定使用所选单词”按钮,即可生成词云。
之后,我们可以在“配置”栏中编辑词云的显示方式。其中,“计算模式”指的是字体的大小是否严格与词频匹配,因此我们选择“严格比例”。另外,我们还可以更改文字的颜色,以及文字云中单词的数量等。在本案例中,我们把单词数量调整到 200。调整完毕后,单击右上角的“下载到本地”按钮即可。
当然,虽然词云在视觉上比较有趣,但在展示数据上却不一定清晰。因此,我们也可以使用其他的图表来进行可视化。比如,可以用圆面积来展示最高频的词汇。
以上,我们讲解了使用 Python 分词和使用在线工具分词的两种方法,大家可以根据本案例进行学习。
接着,我们便可以在 Excel 中打开该数据,然后单击“数据→筛选”命令,选择歌手为“周杰伦”的歌曲。选择“从 Excel 中导入关键词”,然后上传我们刚才得到的包含单词和词频的 Excel 文档(需要注意的是,微词云目前对上传的 Excel 文件格式有一定要求,比如,列名必须叫“单词”和“词频”才能识别,详见其页面指引),即可生成文字云。在本案例中,我们需要先从数据库中筛选出演唱者为周杰伦的歌曲,然后获得这些歌曲的歌词,并将它们存储到纯文本文档(.txt 格式)中,以下提供两种方法。
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、
python
、web、C#等语言的项目开发与学习资料
硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等
操作系统:LInux、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。
网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。
云计算与大数据:包括云计算平台、大数据
分析
、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件
资源
和
信息
可以按需提供给计算机和其他设备。
Python
机器学习与数据
分析
全文共5页,当前为第1页。
Python
机器学习与数据
分析
全文共5页,当前为第1页。
Python
机器学习与数据
分析
Python
机器学习与数据
分析
全文共5页,当前为第1页。
Python
机器学习与数据
分析
全文共5页,当前为第1页。
Python
机器学习与数据
分析
的发展历程与现状 随着
信息
技术和互联网的快速发展,大量的数据被累积,并且呈指数级增长。对于这些数据的处理和
分析
已经成为了一个全新的领域——数据科学。数据科学已经成为了在IT产业中增长最快的领域之一。随着对数据的需求和处理能力的提升,机器学习和人工智能也开始迅速发展起来。
Python
机器学习与数据
分析
作为现代机器学习算法的先锋之一,一方面为解决数据
分析
中的问题提供了更强大和全面的工具,另一方面使得机器学习模型的开发更为简单和容易。
Python
是一种诸多优点和应用广泛的编程语言,而且具备与其他编程语言相比较不可媲美的优势——
Python
是一种开源语言,拥有大量的库和工具,其社区庞大,对
Python
的机器学习和数据
分析
的开发提供了极大的支持和帮助。其丰富的库和工具包括:NumPy(处理数值数据的工具)、P
基于
python
的电商产品评论数据情感
分析
源码+项目说明(课程大作业).zip
【
资源
说明】
该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载
使用
。
该项目
资源
主要针对计算机、自动化等相关专业的学生或从业者下载
使用
,也可作为期末课程设计、课程大作业、毕业设计等。
具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。
## 运行:
`streamlit run ./Comment_analysis/Streamlit/streamlitEXP.py`
分工:<br>
## 必须考虑的点:
挑选合适的商品(好差评都多,并且评论多)
GitHub
class
参数(类型啥的,命名方式)
统一规范(代码格式,数据库,完善注释,log)
结合到谁的电脑上谁演示,何种形式ppt/代码
文件夹框架
数据测试集训练集划分
不同的产品(不同特点的卖点,特有的关键词),不同品牌的产品(用来比较售后服务优劣等卖点)
评论分数和评论内容的不吻合问题
评论的具体关键词(外形外观等)
开发文档开发文档:
明确产品功能
分析
某一功能点的流程
整合各个功能点--明确分工
流程图(可以单独作为一份文件可以作为附件附在文档中)
情感分数(情感倾向
分析
,结合score)
装饰器(计时、log)@注解
可视化
结果,图形化界面(见4)
config
decorator
## 可以考虑的点:
同一个热水器的评论内容随时间变化
算法优化与提升(比如用不同的包,还可以用多种方法来处理,
进行
比较
分析
)
判断优劣coherence/主观判断/通过
数据可视化
来大致判断,参数优化(主题数/)
找到一个网站据说可以
wordcloud
可视化
词云
bert情感分类
## 扩展提升的点:
texthero
可视化
pyLDAvis
可视化
,通过网页来展示
streamlit+heroku
不用snownlp
机器学习/深度学习
注释掉的代码最后删掉,或者说写明什么时候开启调用
引 言
ACG为英文Animation Comic Game的缩写,是动画、漫画、游戏的总称。ACG
音乐
并不是一种特定的
音乐
类别,而是一种基于
音乐
出处所在的分类类别,我们可以把ACG
音乐
理解为动画、游戏及衍生的舞台剧、广播剧中,所
使用
的
音乐
曲目,更广泛的角度上说,任何与这三者相关的
音乐
都可以归属于其中。
动漫作品的魅力除了剧情作画外,在很大程度上依靠
音乐
支撑,让动漫作品的节奏和视听上升到艺术的高度,成就了诸如宫崎骏系列作品等里程碑。对比业界内各国发展,日本整个ACG
音乐
领域可以说已经完成工业化,但是国
[01:57.70][00:39.77]有没有口罩一个给我
[02:03.38][00:45.53]释怀说了太多就成真不了
[02:10.30][00:52.43]也许时间是一种解药
[02:1
本文档旨在详细介绍基于
Python
的电影数据
分析
系统的设计和功能。该系统旨在帮助用户通过
分析
电影数据来了解电影产业的趋势和市场需求,以便做出更明智的决策。
2. 系统概述
该系统主要由以下几个模块组成:
- 数据采集模块:负责从不同的数据源(如IMDB、豆瓣电影等)采集电影数据,并存储在本地数据库中。
- 数据清洗和处理模块:对采集到的电影数据
进行
清洗和处理,包括去除重复数据、填补缺失值等。
- 数据
分析
模块:
使用
各种统计和机器学习算法对电影数据
进行
分析
,包括电影票房预测、观众评分预测、电影类型
分析
等。
-
可视化
模块:将
分析
结果以图表和
可视化
形式展示,方便用户更直观地理解和
分析
数据。
- 用户界面模块:为用户提供一个友好的图形界面,使其能够方便地
使用
系统的功能,并
进行
自定义查询和
分析
。
3. 功能需求
系统应具备以下功能:
- 数据采集:支持从各种数据源采集电影数据,如电影名称、上映时间、票房、评分等。
- 数据清洗和处理:提供数据清洗和处理功能,确保数据的准确性和完整性。
- 数据
分析
:支持各种电影数据的
分析
和预测功能,如票房预测、观众评分预测等。
-
可视化
展示:将
分析
结果以图表和
可视化
形式展示,便于用户理解和
分析
数据。
- 用户界面:提供一个友好的图形界面,用户可以方便地
使用
系统功能,并
进行
查询和
分析
。
4. 性能需求
为了保证系统的性能和响应速度,需要具备以下性能需求:
- 数据采集速度快:系统应能够快速从不同的数据源采集数据,以便用户能够及时获取最新的电影
信息
。
- 数据处理效率高:系统应具备高效的数据清洗和处理算法,能够迅速处理大规模的电影数据。
- 数据
分析
速度快:系统应支持快速的数据
分析
和预测功能,以便用户能够快速获得结果。
- 用户界面交互流畅:系统应具备良好的界面设计和用户体验,保证用户能够流畅地
使用
系统。
5. 非功能需求
系统还应满足以下非功能需求:
- 可扩展性:系统应具备良好的可扩展性,能够方便地添加新的数据源和功能模块。
- 安全性:系统应具备良好的安全性,保护用户数据不受未授权访问和篡改。
- 可靠性:系统应具备良好的可靠性,能够在各种情况下正常运行,并及时处理异常情况。
- 易用性:系统应具备良好的易用性,用户界面简洁明了,操作方便。
6. 结论
基于
Python
的电影数据
分析
系统能够帮助用户深入了解电影产业的趋势和市场需求。本文档详细介绍了系统的设计和功能,并描述了系统的功能和性能需求。通过该系统,用户可以方便地
进行
电影数据的采集、清洗、
分析
和
可视化
展示,以便做出更明智的决策。