0
点赞
收藏
分享

微信扫一扫

python词云制作--三步制作属于和对象的聊天专属词云

 

import jieba   #将句子分词
# pip install jieba 终端输入下载
from matplotlib import pyplot as plt#绘图,数据可视化
from wordcloud import WordCloud     #词云
from PIL import Image               #图片处理
import numpy as np
from wordcloud import STOPWORDS,ImageColorGenerator                  #矩阵运算



f = open('Kobe.txt','r',encoding='utf-8')
text = f.read()
f.close()
# 分词
cut = jieba.cut(text)
string = '  '.join(cut)
print(string)
print(len(string))

img = Image.open('Kobe.jpg')
img_array = np.array(img)#将图片转换为数组
wc = WordCloud(
    background_color='white',
    mask = img_array,
    font_path = 'STZHONGS.TTF' #字体所在位置C:\Windows\Fonts
)
wc.generate_from_text(string)

#绘制图像
fig = plt.figure(1)
plt.imshow(wc)
plt.axis('off')#是否显示坐标轴
plt.show()#显示生成的词云图片
# 输出词云图片到文件
plt.savefig('word.jpg')#dpj清晰度默认为400
color = np.array(Image.open('together.png'))
# stopwords = set(STOPWORDS)
# stopwords.add('said')

wc = WordCloud(background_color = 'white',max_words = 2000,mask = color,
            font_path = 'STZHONGS.TTF',max_font_size = 40,random_state = 42 )
wc.generate(text)

image_colors =ImageColorGenerator(color)

fig,axes = plt.subplots(1,3)
axes[0].imshow(wc,interpolation = 'bilinear')
axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
axes[2].imshow(color, cmap=plt.cm.gray, interpolation="bilinear")
for ax in axes:
    ax.set_axis_off()
plt.show()

插件下载可以win+r 输入cmd 回车 pip install~

qq微信的聊天内容都可以进行下载txt文件

选取一张照片用ps将你不想变词云部分换上白色

jieba自动分词

下面是分词结果

 

 词语出现频率越高词云中照片文字越大

举报

相关推荐

0 条评论