首页 热门歌手 正文

周杰伦孙燕姿演唱会谁更火爆?数据告诉你真相!

今天跟大家聊聊我最近折腾的“周杰伦 孙燕姿”这个小项目,别误会,不是要搞什么演唱会,就是想用 Python 捣鼓点好玩的,看看能不能把这两位大神级歌手的歌词数据给扒下来,然后分析分析,看看他们歌词里都爱用些啥词儿,风格有啥不一样。

我啥也没想,直接就上手了。先是找了个还算靠谱的歌词网站,然后就开始吭哧吭哧地写爬虫。结果,你猜怎么着?网站的反爬机制直接给我干懵了,各种验证码、IP 限制,搞得我焦头烂额。

没办法,只能曲线救国。我先是尝试用 requests 库加上 headers 伪装成浏览器,想着能蒙混过关。结果,还是不行。后来我发现了一些公开的 API,虽然不太全,但至少能搞到一部分歌词。我就赶紧调整策略,先用 API 搞到能搞到的,剩下的再想办法。

周杰伦孙燕姿演唱会谁更火爆?数据告诉你真相!

拿到数据之后,就开始清洗。这部分也挺烦的,因为歌词里有很多乱七八糟的符号、换行符什么的,得一个个处理掉。我用了正则表达式,把这些脏东西都给过滤掉,然后把歌词都转换成小写,方便后续分析。

清洗完数据,就开始分词。我用了 jieba 分词库,这玩意儿用起来还挺顺手的。先把歌词切成一个个词语,然后过滤掉一些停用词,比如“的”、“了”、“是”这些没啥意义的词。剩下就是一些实实在在的词语了。

我统计了周杰伦和孙燕姿歌词里出现频率最高的词语。你猜猜他们都爱用周杰伦的歌词里,“爱”、“你”、“我”这些词出现频率很高,毕竟是情歌王子嘛孙燕姿的歌词里,“世界”、“感觉”、“离开”这些词比较多,感觉她的歌更有一些哲理。

为了更直观地展示结果,我还用 matplotlib 库画了两个词云图。把出现频率高的词语放大显示,这样就能一眼看出他们的风格差异。周杰伦的词云图看起来比较活泼,孙燕姿的词云图则显得比较冷静。

我还尝试用了一些简单的机器学习算法,比如 LDA 主题模型,想看看能不能自动提取出他们歌词的主题。但是,效果不太理想,可能是数据量不够,也可能是我的算法调参能力还不够,还需要继续学习。

这回“周杰伦 孙燕姿”项目,虽然没搞出什么惊天动地的成果,但让我学到了很多东西。从爬虫到数据清洗,再到分词和可视化,整个流程都走了一遍,也算是对 Python 数据分析能力的一次小小的提升。以后有机会,再搞点更有意思的项目!

周杰伦孙燕姿演唱会谁更火爆?数据告诉你真相!

本文转载自互联网,如有侵权,联系删除

相关推荐