哈喽大家好,因为上次有小伙伴问我,歌曲的歌词和评论怎么生成词云图,想买代码…
当时我就拒绝了,直接免费送给了他。
所以今天来分享给大家
我们以周董的《青花瓷》为例,要对《青花瓷》歌词生成词云图,需要采取以下步骤:
- 安装所需的库
要完成该任务,需要安装 jieba
和 wordcloud
库。可以在命令行下输入以下代码进行安装:
pip install jieba wordcloud
- 获取歌词数据
将周杰伦《青花瓷》歌词数据保存为文本文件,并将其读取到 Python
程序中。可以使用 Python
的文件操作等方法获得文本文件数据,例如:
with open('qhc.txt', 'r', encoding='utf-8') as f:
lyrics = f.read()
- 分词
使用 jieba
库进行中文分词,将歌词文本数据分解为一个个单词,统计每个单词的词频。
import jieba
lyrics = jieba.cut(lyrics)
word_freq = {}
for word in lyrics:
if len(word) > 1:
word_freq[word] = word_freq.get(word, 0) + 1
- 生成词云
使用 wordcloud
库生成词云图并将其保存到本地。
from wordcloud import WordCloud
import matplotlib.pyplot as plt
wc = WordCloud(background_color='white', width=800, height=600)
wc.generate_from_frequencies(word_freq)
plt.imshow(wc)
plt.axis('off')
plt.show()
# 将生成的词云保存为图片文件
wc.to_file('qhc_wordcloud.png')
完整代码如下所示:
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取歌词
with open('qhc.txt', 'r', encoding='utf-8') as f:
lyrics = f.read()
# 分词并计算词频
lyrics = jieba.cut(lyrics)
word_freq = {}
for word in lyrics:
if len(word) > 1:
word_freq[word] = word_freq.get(word, 0) + 1
# 生成词云并展示
wc = WordCloud(background_color='white', font_path='msyh', width=800, height=600)
wc.generate_from_frequencies(word_freq)
plt.imshow(wc)
plt.axis('off')
plt.show()
# 将生成的词云保存为图片文件
wc.to_file('qhc_wordcloud.png')
运行该代码后,会生成包含《青花瓷》歌词词云图的图片并保存到本地。需要注意的是,由于分词的准确性和歌词长度等因素的影响,该词云图可能需要经过调整和优化。
效果展示
对于想学好Python的小伙伴,我还准备了
Python软件工具+数百本Python电子书+Python基础教程+Python实战教程
直接在文末名片自取
图片不能发多了,仅做展示。
好了今天的分享就到这结束了,下次见!