用Python分析了波周杰伦,还做了数据可视化

Python爬虫项目分享一:《爬取周杰伦的歌曲清单》 python爬取周杰伦的歌曲清单 偶得一不错的爬虫教程,现博客分享,想要获取完整教程,加V:ff17328081445。文章为系列文章,持续更新,欢迎关注。 浏览器分析网页 #打开网址(首页搜索周杰伦) https://y.qq.com/portal/search.html#page=1&searchid=1&remoteplace=txt.yqq.top&t=song&a... 阅读详情

本案例中的歌词数据来自中文歌词数据库。

这个数据库提供了华语歌手的歌曲及歌词信息,数据以 JSON 格式存储。

为了尽量完整地呈现从原始数据到可视化的过程,接下来我们会先简单讲解数据的预处理过程,即如何将 JSON 数据转化为Excel 格式,以及如何对周杰伦的歌曲进行分词。

若你希望跳过数据预处理的过程,也可以在《数据可视化设计指南:从数据到新知》一书的下载文件中,直接使用分好词的 Excel 文件进行可视化练习。

数据预处理指的是将原始数据处理成我们希望的格式,并提取出我们需要的信息。

在本案例中,我们需要先从数据库中筛选出演唱者为周杰伦的歌曲,然后获得这些歌曲的歌词,并将它们存储到纯文本文档(.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 文件为基础,我们便可以进行词频统计了。

图1

以下附上一种在 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” )

由此,我们便获得了分词后的单词及词频(见表1)。使用这个文档,我们就可以开始制作可视化了。

表1

由于是文本类数据,我们首先想到的可视化形式可能是文字云。如果你使用 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()

绘制结果如图2所示。

图2

不过,在代码工具内绘制文字云,进行定制化设计相对比较复杂。因此,也可以借助一些在线工具帮助我们实现更好的可视化效果。

目前,许多中文的工具都可以专门用来制作文字云,如微词云、易词云、图悦等(相关总结可参考知乎专栏的一篇文章《词频统计工具哪家强,对比 8 款工具得出了结果》)。下面,我们以微词云为例进行演示。

进入微词云界面后,首先单击“导入单词”,进行数据导入。选择“从 Excel 中导入关键词”,然后上传我们刚才得到的包含单词和词频的 Excel 文档(需要注意的是,微词云目前对上传的 Excel 文件格式有一定要求,比如,列名必须叫“单词”和“词频”才能识别,详见其页面指引),即可生成文字云(见图3)。

图3

可以看到,微词云的页面上还有另外两种导入数据的选项。其中,“简单导入”支持用户输入用逗号隔开的单词。“分词筛词后导入”则支持用户粘贴长文本,然后由系统自动进行分词和词性判别。换句话说,如果你有一个文档文件,也可以直接粘贴进微词云进行分词。

接下来我们用周杰伦的歌词文档来尝试一下。选择“分词筛词后导入”,然后将图1 的 .txt 格式的文档粘贴进微词云。之后,单击“开始分词”,软件就会自动把词语切割出来,并按词性归类,结果如图4所示。

图4

可以看到,所有的词语被按照动词、名词、形容词、人名等归类。词语后面的括号标注了词频。同时,微词云还自动帮我们把高频的词汇勾选出来。我们也可以根据个人需求,在这个界面中进一步编辑,例如只显示名词、只显示动词等,然后单击“确定使用所选单词”按钮,即可生成词云。

之后,我们可以在“配置”栏中编辑词云的显示方式。其中,“计算模式”指的是字体的大小是否严格与词频匹配,因此我们选择“严格比例”。另外,我们还可以更改文字的颜色,以及文字云中单词的数量等。在本案例中,我们把单词数量调整到 200(见图5)。调整完毕后,单击右上角的“下载到本地”按钮即可。

图5

在左侧编辑区的“形状”中,可以替换词云的蒙版。其中既有内置的一些矢量形状, 也可以上传自己的图片(见图6,笔者上传了一张周杰伦的素材图片)。

图6

当然,虽然词云在视觉上比较有趣,但在展示数据上却不一定清晰。因此,我们也可以使用其他的图表来进行可视化。比如,可以用圆面积来展示最高频的词汇。

图7 是使用 AI 工具绘制的。首先,我们在“图表工具”中选择“饼图”,按竖直方向将数据粘贴进去,单击“确定”按钮,即可生成对应面积的一系列圆形。

图7

然后,选中所有圆形,取消分组,即可对它们进行单独编辑。之后,我们分别为它们加上文字,并调整颜色、背景等,即可得到一幅圆面积图。

以上,我们讲解了使用 Python 分词和使用在线工具分词的两种方法。

需要提醒的是,不同的分词途径,分词的结果可能不同(尤其是在语句比较复杂、生僻的情况下)。

因此,对分词质量比较看重的读者有必要对比不同方法分词的效果,选择最优的方案。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

点击免费领取《优快云大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

python爬虫——爬取周杰伦歌词 import requests import json # 引用requests,json模块 url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp' headers = { 'referer':'https://y.qq.com/portal/search.html', # 请求来源 'user-ag... 阅读详情

相关推荐

Python爬取周杰伦的200首歌+BI可视化分析

最近一直在听周杰伦的歌(可能是小编长大了,也有可能是春天快到了....),于是想拿Python分析一下周杰伦歌曲的各项数据。 可是熟悉的人应该知道,Python爬取简单,但是分析起来是很困难的,SQL语句、Pandas和Matplotlib齐上阵,一般人也不会,学起来也需要花不少时间。 于是我想到了一种新的方式,Python爬取+BI数据可视化分析,前者速度快,后者步骤简单直接拖拽,两者配合,简直...

wulishinian的博客 3075

Python+pyecharts研究周杰伦歌词中的 秘密

我的女朋友很喜欢周杰伦。 所以,前两天我跟别人去KTV,就唱的是“七里香”。 唱着唱歌,突然就好奇了起来。周杰伦的歌里,是不是还有很多的麻雀 后来发现,270首歌,140786个字,千言万语,说来说去,都是“我”,“的”,“你” 路人:咦,怎么没有你我他中的他 我:你我之间,没有他。 路人:不对啊,不是每首歌都是你呀我呀的吗这跟是不是周杰伦也没啥关系吧? 我:......我不听我...

xueaalei1的博客 1564

Python文本数据及其可视化

1.实验内容: 根据qq音乐获取的信息,对某一首歌曲的评论内容进行处理。 分析评论中的词性分布。 统计高频词,画出词云。 2.实验步骤: 1. 文本信息初处理: 根据实验二QQ音乐抓取周杰伦的前五首歌曲评论等信息筛查晴天这首歌的相关信息存为“晴天-周杰伦”的文本文件方便后续数据读取。 文本信息节选展示: 2. 编写词云绘制,词频统计以及词性分代码: 首先打开文件进行读取信息,去掉长度为一的词存下来并统计频率最高的三十个词打印输出词和词出现的次数。获取信息进行文...

qq_hua_xia的博客 7001

用python写一个爬取周杰伦所有歌词的爬虫

写一个爬虫爬一下周董的所有歌词看看这么多年他为啥这么火 唱的都是什么主题的歌可以这么经久不衰,他凭啥被称为流行歌曲天王。废话不多说 直接上代码 今天比较晚了 之后再慢慢完善讲解。代码比较low因为是编自学边完成的,所以只是实现了基本的功能,基本没怎么做优化。大家凑活着看吧先。 大概260多个文件,去完重后剩下一百多个。 第一个文件爬取所有歌名列表: import request...

BeautifulApple的博客 6853

使用Python绘制周杰伦歌词词云的全过程

通过本章的深入探讨,我们不仅学习了如何使用wordcloud库生成基础的词云图,还了解了如何通过参数调整词云的形状和样式。我们探索了如何从外部数据源导入数据,处理停用词和非英文文本,以及如何结合其他Python库来增强词云图的视觉效果。这些知识为创建既美观又实用的词云图打下了坚实的基础,并使得读者能够根据自己的需求定制和优化词云。在开始构建词云图之前,我们需要对文本数据进行词频分析,以便了解哪些词出现的频率最高。对于Python来说,可以使用库中的Counter类来完成这一任务。

weixin_29050829的博客 1118

Frida提取Cocos游戏XXTEA密钥的实战方法论

XXTEA是一种轻量级分组加密算法,广泛用于移动端游戏通信保护;其128位密钥的安全性直接决定网络协议逆向成败。在Cocos引擎生态中,密钥常以静态常量、JNI动态传递或Native运行时派生三种形态存在,导致传统静态分析失效。Frida凭借跨Java/Native注入能力与内存实时观测优势,成为捕获密钥‘出生瞬间’的关键工具——尤其适用于hook xxtea_encrypt函数入口、监控JNI参数传递、设置内存断点追踪派生过程等场景。本文聚焦Cocos2d-x与Cocos Creator项目,覆盖从密钥识

weixin_33509600的博客 418

jupyter notebook中绘制词云图教程

第一步:先打开Anaconda3下Anaconda Powershell Prompt命令行窗口,输入命令,安装wordcloud词云库。下载华文行楷字体文件,把" chinese.stxingka.ttf "文件上传到jupyter notebook同级目录下。运行结果可参考:词语越多,词云图越充实,每次运行后词云图的排列组合可能会有所不同。第二步:下载字体文件,显示中文词云图。

weixin_56122569的博客 4687

LabVIEW与MySQL的连接:软件下载与安装至UDL文件创建全过程

依据个人经验编辑的十分完备的使用教程

tiaowudexiaoyu的博客 5574

用Python分析周杰伦歌曲并进行数据可视化

接着,我们便可以在 Excel 中打开该数据,然后单击“数据→筛选”命令,选择歌手为“周杰伦”的歌曲。选择“从 Excel 中导入关键词”,然后上传我们刚才得到的包含单词和词频的 Excel 文档(需要注意的是,微词云目前对上传的 Excel 文件格式有一定要求,比如,列名必须叫“单词”和“词频”才能识别,详见其页面指引),即可生成文字云。在本案例中,我们需要先从数据库中筛选出演唱者为周杰伦的歌曲,然后获得这些歌曲的歌词,并将它们存储到纯文本文档(.txt 格式)中,以下提供两种方法。

csdn1561168266的博客 8729

​基于stm32的智能空气加湿器设计(含源代码和Proteus仿真)

课程设计分享

LoongSTUDIO的博客 2929

哈希拓展攻击CTF题做法

kali下载相关工具hash-ext-attack:hash拓展题目特征:2023楚慧杯upload_shell实验吧之让我进去:前言:具体怎么加密解密补位的原理我不懂,深入理解的部分我在文末挂了链接,以下也只是我做题的结论和通解,可能不准确(但是做题还挺准确),有错误欢迎指出:是在密码加密过程中引入的一个随机值,它与密码结合使用,目的是增加密码的复杂性和安全性。在密码加密中,常见的做法是将用户提供的密码进行哈希处理,然后存储哈希值而不是明文密码

2301_76690905的博客 2419

分析了波周杰伦,还做了数据可视化!

本案例中的歌词数据来自中文歌词数据库。前排提示:文末送可视化好书~这个数据库提供了华语歌手的歌曲及歌词信息,数据以 JSON 格式存储。为了尽量完整地呈现从原始数据到可视化的过程,接下来我们会先简单讲解数据的预处理过程,即如何将 JSON 数据转化为Excel 格式,以及如何对周杰伦的歌曲进行分词。若你希望跳过数据预处理的过程,也可以在《数据可视化设计指南:从数据到新知》一书的下载文件中,直接使用...

SeizeeveryDay的博客 909

避坑指南:Unity与Visual Studio开发环境配置中的5个常见问题及解决方案

本文针对Unity与Visual Studio开发环境配置中的5个常见问题,提供了详细的解决方案。重点解决了项目文件生成失败导致命名空间无法识别、调试器无法附加、包管理器与扩展安装混乱、脚本编译错误以及多版本环境冲突等核心痛点,帮助开发者构建稳定高效的开发调试环境。

weixin_27791839的博客 281

使用Python分析周杰伦《Mojito》豆瓣短评

源代码+数据集已上传至GitHub: 公众号博文:Python告诉你网友究竟如何看待周杰伦的《Mojito》 1.将数据集(包含我手动标注的情感倾向:{0:"不喜欢",1:"中立",2:"喜欢"})转为dataframe格式 #coding:utf-8 import pandas as pd fpath = "D://数据集大荟萃/周杰伦新歌《Mojito》豆瓣短评数据集/mojito6931/1Mojito豆瓣短评数据6.12.csv" df = pd.read_csv(fpath,en.

zoe9698的博客 680

YOLOv8改进 | Conv篇 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块,主要针对的是小目标检测,主要创新点可以总结如下:多尺度特征提取机制的深入研究和创新的DWR模块和SIR模块的提出这种方法使得网络能够更灵活地适应不同尺度的特征,从而更准确地识别和分割图像中的物体。通过本文你能够了解到DWRSeg的基本原理和框架,并且能够在你自己的网络结构中进行添加(DWRSeg需要增加一定的计算量一个DWR模块大概增加0.4GFLOPs)。

Snu77的博客 9571

华为OD机试新系统真题-谁没交卷(Java /Py/C++/Go/C/Js)

华为OD机试 新系统真题【谁没交卷】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【谁没交卷】多语言题解。

qq_45776114的博客 421

爬取微博用户公开信息,分析为周杰伦打榜的夕阳红老年团,告诉你他们真实年龄!

前段时间为“周杰伦打榜”话题迅速登上微博热搜榜 因为cxk的粉丝们质疑周杰伦微博没有数据 (周杰伦没有开通微博) 于是,无数隐匿江湖多年 看不下去的周杰伦老年粉开始被迫营业 于是一场周杰伦中老年粉VS蔡徐坤铁军 微博打榜大战拉响 为听了那么多年的周杰伦 粉丝们纷纷拉下老脸 和00后的微博饭圈小年轻们 从零学习如何做数据 一、需求背景 iKun们都说周杰伦的粉丝是夕阳红老年团 今天我们就用他们...

猪哥 1万+

基于多头注意力时间卷积网络(MATCN)的虚拟电厂短期功率预测模型

​时空特征解耦​:TCN负责时间模式,注意力捕捉空间关联​动态门控机制​:自适应调整两种特征的融合比例​多尺度感知​:膨胀卷积覆盖5分钟到24小时的时间跨度​轻量化设计​:参数量比传统Transformer减少52%

hasakie的博客 322

周杰伦的《说好不哭》,20万点评Python来分析

作者|菜鸟小编来源 | 菜鸟学Python(ID:cainiao_xueyuan)最近几天,小编被周杰伦的新歌刷屏了,朋友圈纷纷晒出周杰伦的新歌,即便不是周杰伦的歌迷...

Python大本营的博客 375

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

适用于Python入门者的爬虫和数据可视化案例

本篇文章适用于Python小白的教程篇,如果有哪里不足欢迎指出来,希望对你帮助。 本篇文章用到的模块: requests,re,os,jieba,glob,json,lxml,pyecharts,heapq,collection 首先 我们先进入到需要抓取的内容的地址:http://music.163.com/# 本文我们的目的 抓取周杰伦的所有歌曲, 歌词, 以及评论 ...

python学习者的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

周杰伦在唱什么?数据可视化告诉你!

????点击“博文视点Broadview”,获取更多书讯本案例中的歌词数据来自中文歌词数据库。这个数据库提供了华语歌手的歌曲及歌词信息,数据以 JSON 格式存储。为了尽量完整地呈现从原始数据到可视化的过程,接下来我们会先简单讲解数据的预处理过程,即如何将 JSON 数据转化为Excel 格式,以及如何对周杰伦的歌曲进行分词。若你希望跳过数据预处理的过程,也可以在《数据可视化设计指南:从数据到新知》一书...

pdcfighting的博客 486

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

词云分析属于python的什么功能_Python 词云分析周杰伦《晴天》

pip install wordcloud ,jiebaimport jieba,wordcloud#选取周杰伦的《晴天》歌词mytext = """故事的小黄花从出生那年就飘着童年的荡秋千随记忆一直晃到现在ㄖㄨㄟ ㄙㄡ ㄙㄡ ㄒ一 ㄉㄡ ㄒ一ㄌㄚRe So So Si Do Si Laㄙㄡ ㄌㄚ ㄒ一 ㄒ一 ㄒ一 ㄒ一 ㄌㄚ ㄒ一 ㄌㄚ ㄙㄡSo La Si Si Si Si La Si La ...

weixin_39921689的博客 157

python爬取qq音乐周杰伦_Python爬取20万条评论,告诉你周杰伦为啥弄崩QQ音乐?

作者 | 哈哈浩责编 | 伍杏玲9 月 16 日晚间,周董在朋友圈发布了最新单曲《说好不哭》。发布后,真的让一波人哭了,一群想抢鲜听的小伙伴直接泪奔。因为 QQ 音乐直接被搞崩了!没想到干翻 QQ 音乐的不是网易云音乐,也不是虾米音乐,而是周董!周董成成功地凭一己之力干翻了 QQ 音乐!那么听过周董新歌后的小伙伴都是怎么评价的呢?这里,我们获取了 QQ 音乐的近 20W 条评论数据进行分析,看看其...

weixin_42515739的博客 561
上一篇: Python办公神器:教你如何快速分拆、删页、合并PDF文件
下一篇: Python能否成为大型游戏开发的利器?
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值