直接上代码
#导入需要的库
from wordcloud import WordCloud
import collections
import jieba
import matplotlib.pyplot as plt
#首先打开待处理文本
with open("政府工作报告.txt","r",encoding='utf-8') as f:
s = f.read()
f.close()
#进行文本的初步处理,主要是去除一些不用统计的符号
t = ''
x = ',。?、‘’“”;:)(——'
for i in s:
if i not in x:
t+=i
#将初步处理后的文本另存(看看处理效果,可去除这一步)
with open("政府工作报告_去除符号.txt",'w') as f:
f.write(t)
f.close()
#使用jieba进行分词
with open("政府工作报告_去除符号.txt",'r') as f:
deal_s = f.read()
f.close()
a = jieba.lcut(deal_s)
#对分词之后的结果进行简单筛选,比如很多的单字是没有意义的,直接排除在外
deal_a=[]
for i in a:
if len(i)>1:
deal_a.append(i)
#使用collections库的Counter函数进行词频统计
x = dict(collections.Counter(deal_a))
#绘制词云,以下r'C:\Windows\fonts\simfang.ttf'非常重要,这个是选择可以正常显示中文的字体,必须添加,不然结果会是一堆方块,后面的参数根据需求更改
wc = WordCloud(r'C:\Windows\fonts\simfang.ttf',max_words=500,background_color="white",width = 1500,height= 960,margin= 10)
#fit_words(参数)是WordCloud的子函数,用于根据词频绘制词云,这里的参数一般是字典类型变量
t = wc.fit_words(x)
t.to_image().save('政府工作报告词频词云.png')
print("词云绘制已完成。")
#以下是生成的词云显示测试:
plt.imshow(wc) # 显示词云
plt.axis('off') # 关闭坐标轴
plt.show() # 显示图像
结果如下:当然了这个绘制的有点粗糙,锦上添花自己加油啦hahaahh
另外有什么问题可以直接在评论区提出来,大家一起讨论。
完结撒花~~~