欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用Python词云展示周董唱过的歌,发现内含秘密

程序员文章站 2022-04-19 13:38:11
马上开始了,你准备好了么 准备工作 环境:Windows + Python3.6 IDE:根据个人喜好,自行选择 模块: Matplotlib是一个 Python 的 2D数学绘图库 1 pip install matplotlib 2 import matplotlib.pyplot as plt ......

用Python词云展示周董唱过的歌,发现内含秘密

马上开始了,你准备好了么

准备工作

环境:Windows + Python3.6
IDE:根据个人喜好,自行选择
模块:
Matplotlib是一个 Python 的 2D数学绘图库

1 pip install matplotlib
2 import matplotlib.pyplot as plt

jieba中文分词库

1 pip install jieba
2 import jieba

wordcloud词云库

1 pip install wordcloud
2 from wordcloud import WordCloud

实战具体步骤:

1、读入txt文本数据。
2、结巴中文分词,生成字符串默认精确模式,如果不通过分词,无法直接生成正确的中文词云。
3、生成词云图,这里需要注意的是WordCloud默认不支持中文,所以这里需已下载好的中文字库。
(无自定义背景图:需要指定生成词云图的像素大小,默认背景颜色为黑色,统一文字颜色:mode='RGBA'和colormap='pink')
4、显示图片。

总体而言只有四个步骤还是比较简单的那咱们先看一下实现的效果图吧!

用Python词云展示周董唱过的歌,发现内含秘密
用Python词云展示周董唱过的歌,发现内含秘密
看到效果图后发现里面的秘密没?
 
完整代码
 1 # Matplotlib是一个 Python 的 2D数学绘图库
 2 # 安装:pip install matplotlib
 3 import matplotlib.pyplot as plt
 4 # jieba中文分词库
 5 # 安装:pip install jieba
 6 import jieba
 7 # wordcloud词云库
 8 # 安装pip install wordcloud
 9 from wordcloud import WordCloud
10 
11 # 1.读入txt文本数据
12 text = open(r'.\jay.txt', "r").read()
13 #print(text)
14 
15 # 2.结巴中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成正确的中文词云
16 cut_text = jieba.cut(text)
17 # print(type(cut_text))
18 # print(next(cut_text))
19 # print(next(cut_text))
20 # print(next(cut_text))
21 # 必须给个符号分隔开分词结果来形成字符串,否则不能绘制词云
22 result = " ".join(cut_text)
23 #print(result)
24 
25 # 3.生成词云图,这里需要注意的是WordCloud默认不支持中文,所以这里需已下载好的中文字库
26 # 无自定义背景图:需要指定生成词云图的像素大小,默认背景颜色为黑色,统一文字颜色:mode='RGBA'和colormap='pink'
27 wc = WordCloud(
28         # 设置字体,不指定就会出现乱码
29         font_path=r'.\simhei.ttf',
30         # 设置背景色
31         background_color='white',
32         # 设置背景宽
33         width=500,
34         # 设置背景高
35         height=350,
36         # 最大字体
37         max_font_size=50,
38         # 最小字体
39         min_font_size=10,
40                )  # max_words=1000 ),mode='RGBA',colormap='pink')
41 # 产生词云
42 wc.generate(result)
43 # 保存图片
44 wc.to_file(r".\wordcloud.png")  # 按照设置的像素宽高度保存绘制好的词云图,比下面程序显示更清晰
45 
46 # 4.显示图片
47 # 指定所绘图名称
48 plt.figure("jay")
49 # 以图片的形式显示词云
50 plt.imshow(wc)
51 # 关闭图像坐标系
52 plt.axis("off")
53 plt.show()
54 print('Python学习交流群:125240963,群内每天分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎各位小伙伴入群学习交流')