Python生成词云(解决中文词云乱码)

第一:先准备生成词云要用户的文本以及图片
我这边是自己做了一个“洛神赋”三个字的图片,
以及从网上拷贝了《洛神赋》的正文


Python生成词云(解决中文词云乱码)_第1张图片
pic.png

第二:需要安装的第三方库 
Pillow、wordcloud、jieba、numpy

具体代码如下:

from PIL import Image
from wordcloud import WordCloud
import jieba
import numpy as np

#1:打开词云文本
txt = open("D:\\0000_2018_python_study\\1_programma\\source\\txt.txt","rb").read()
#2:用jieba进行分词
txtout = "".join( jieba.cut(txt,cut_all=False) )

#3:读取词云图片
mask_pic = Image.open("D:\\0000_2018_python_study\\1_programma\\source\\pic.png")
mask_pic_array = np.array(mask_pic)#将词云图片转换为数组

#4:设置词云的属性
font = "C:\\Windows\\Fonts\\STXINGKA.TTF"#词云的中文字体所在路径
wc = WordCloud(font_path = font,
               background_color="white",
               mask = mask_pic_array,
               contour_width=5, 
               contour_color="lightblue",
               )

#5:生成词云
wc.generate(txtout)

#6:存储词云
wc.to_file("D:\\0000_2018_python_study\\1_programma\\source\\cy.png")

最后的效果是这样的(哈哈,丑哭)


Python生成词云(解决中文词云乱码)_第2张图片
cy.png

备注:
需要在wordcloud中设置你使用到的中文字体,
也就是wordcloud的font_path属性不要漏掉,否则中文会产生乱码

font = "C:\\Windows\\Fonts\\STXINGKA.TTF"#词云的中文字体所在路径
wc = WordCloud(font_path = font,#这里要设置,否则中文会乱码
               background_color="white",
               mask = mask_pic_array,
               contour_width=5, 
               contour_color="lightblue",
               )

你可能感兴趣的:(Python生成词云(解决中文词云乱码))