python歌词统计_GitHub - zhouxingbang2019/mayday_lyric_analyze: 五月天104首歌曲的分词词频统计以及可视化...

该项目从千千音乐爬取五月天的104首歌曲歌词,进行分词统计和可视化。通过去除广告和标题信息,使用Counter统计词频,并排除常见停词。分析结果显示,肯定词、'我'的使用频率较高,以及与青春相关的词语如'世界'、'如果'、'人生'等频繁出现。此外,还生成了词云图来直观展示结果。
摘要由CSDN通过智能技术生成

mayday_lyric_analyze

五月天104首歌曲的分词词频统计以及可视化

歌词数据爬取

从千千音乐爬取『五月天』的歌词,存入 lyric 文件夹中

启动

python spider.py

介绍

# 详细请参考 spider.py 文件

if __name__ == "__main__":

for page in range(25):

search_url = lyric_search_template.format('五月天', 20 * page)

html = get_page(search_url)

song_urls = parse_search_page(html)

for song in song_urls:

song_html = get_page(taihe_host + song['url'])

lyric_url = get_lyric_url(song_html)

print('page: %d | name: %s | url: %s' % (page, song['name'], lyric_url))

download_file(lyric_url, song['name'])

time.sleep(0.5)

歌词分词

对歌词文件进行简单处理

我们平常听歌时候看到的歌词都是这样的 时间+文字 的lrc格式,但是文件中的广告,如下。会影响到我们对词频统计的判断,故先去除。然后就是歌曲的标题信息等也要去除,只保留时间和歌词文本。(时间可以用正则表达式过滤)

5b7b8882c4b13e006f55faab99d8c9c0.png

读取各个lrc文件并分词统计词频

使用了 from collections import Counter 来统计词频,这部分比较简单,参考代码 lyric.py

查看初步统计结果

看到统计结果确实统计出了各个词语在不同歌曲出现的次数,但是 的|我|是|你 这种常见停词的出现次数并不是我们关心的重点,换句话说 "什么歌都有这些词好吗!"

6cf38e3dbbc596efbbd55e63ab6f28b3.png

8eac28e2fb2dfcf02c685e199203eaac.png

于是我们用一些规则去筛选掉这些停词,比如我们只关心长度大于等于2的词语,频数大于10的词语,然后我们能看到大概想要的结果了。

(基于新数据)

a4e136e98cb00c28d4ebd21535e2d743.png

简单分析

可以看出

肯定词 是|能 等比其否定形式 不是|不能 出现的次数多

我 比 你 出现的次数多

世界、如果、人生 这种与青春挂钩的词语出现的概率也很高

所以说如果你想写一首 五月天风格的歌曲的话,不妨尝试一下用 世界|人生|回忆|最后|后来|未来|眼泪|梦 这些词语

词云生成

python word_cloud.py

8f907a1c2d13f265195e299899bf2613.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值