Python词云绘制


在这里插入图片描述

效果展示以及准备工作:

效果展示图:
在这里插入图片描述
准备工作

  • pycharm安装第三方库numpy,jieba,wordcloud
  • 词云文本的准备(.txt)
  • 背景图的准备(我是用的PS

利用pycharm安装第三方库的讲解:
(个人感觉比在终端pip下载更方便)

在这里插入图片描述
背景图准备

  • 百度随便找一张
  • 利用PS把背景调成纯白色,其人物图形涂改为其他任意纯色
    如下:
    在这里插入图片描述

进入代码书写

首先把其文本和背景图片放入该Python文件中
在这里插入图片描述

文本和图片放入的方法步骤:
在这里插入图片描述
在这里插入图片描述
点击复制该文件的路径,在文件管理粘贴打开其文件,把文本和图片复制粘贴到其对应文件就行了

在这里插入图片描述

思路:

  • 打开文本
  • 利用正则对其进行特殊符号删除
  • 利用jieba对其文本进行分词
  • 统计词语的出现次数,并sorted排序
  • 利用字典,del过滤不想要的词
  • 最后利用wordcloud库进行词云制作

调用的库操作

import string
import jieba
import numpy as np
from PIL import Image
from matplotlib import colors
import re
import matplotlib.pyplot as plt
from wordcloud import  WordCloud

文件操作

mask=np.array(Image.open('1.png')) # 导入图片

txt=open(r'新时代中国特色社会主义.txt',mode='r',encoding="utf-8")
#打开文本,编码格式为utf-8
txt1=txt.read()#原始文本
txt2=re.sub(r'[^\u4e00-\u9fa5]','',txt1)
# 利用正则,删除特殊符号
txt3=jieba.cut(txt2)#可迭代对象  分词
txt4={
    
    }
for i in txt3:
    if i not in txt4:
        txt4[i]=1
    else:
        txt4[i]+=1
txt5=sorted(txt4.items(),key=lambda x:x[0],reverse=True)
# 统计词语出现次数,并排序
txt6={
    
    }
for word,count in txt5:
    txt6[word]=count
list=["的","是","和"]# 过滤器
for i in list:
    del txt6[i]

wordcloud

wordcloud=WordCloud(
    background_color='white',#背景
    font_path='simsun.ttc',#字体
    max_words=400,#最大数量
    mask=mask,
    max_font_size=90,#最大字号
    width=400,#宽
    height=400,#高
).generate_from_frequencies(txt6)
plt.figure(figsize=(8,8))
plt.imshow(wordcloud,interpolation='bilinear')
plt.axis('off')#关闭坐标轴
plt.show()
wordcloud.to_file('词云.png')

之后就可以正常制作词云了

猜你喜欢

转载自blog.csdn.net/weixin_72138633/article/details/131025351