北理嵩天教授课程,生成中文词云及问题解决

1,需要下载的库

基本要求中文分词库jieba,词云库wordcloud。如需要生成有形状的图片则另外需要numpy库、PIL库(python3.5以后好像有自带的),亦可以只用一个imageio库。一般方式(pip 方式)下载不成功的话,可以试一下:

// 以下载numpy包为例,在命令行输入以下语句
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn numpy

2,实例分析

#引入库名
import jieba
import wordcloud
import numpy
from PIL import Image

#将文件取出,放入f,可能出错的地方,文件和编码方式不匹配,解决方案:
#方法一:找到文件正确的编码方式,有专门的库做这件事。方法二:把原来的文件打开另存为的时候,把编码方式改为“utf-8”,再保存用新文件操作。
file = open("C:\\Users\Administrator\Desktop\三国演义1.txt","r",encoding = "utf-8")
f = file.read()
file.close()

#在网上下载白色背景有形状的图片保存
mask = numpy.array(Image.open("C:\\Users\Administrator\Desktop\\1.png"))

#引号中有一个空格(分隔作用,与wordcloud的分词原理有关),不然相当于没有用jieba库
txts = jieba.lcut(f)
txt = " ".join(txts)

#font_path = “字体文件地址”,一定要下载一个中文字体库,不然显示结果会很尴尬
w = wordcloud.WordCloud(width = 1000,height = 800,mask = mask,font_path="C:\\Users\Administrator\Desktop\萝莉体 第二版.ttf")
w.generate(txt)
w.to_file("C:\\Users\Administrator\Desktop\\r.png")#最终词云文件储存地址

引入形状:
北理嵩天教授课程,生成中文词云及问题解决_第1张图片
运行结果:北理嵩天教授课程,生成中文词云及问题解决_第2张图片
如果不引入jieba库,和引号中没有空格一样,结果如下:

北理嵩天教授课程,生成中文词云及问题解决_第3张图片
不引入中文字体的下场:北理嵩天教授课程,生成中文词云及问题解决_第4张图片
一个库代替上面两个库提取图片:

from imageio import imread
mask = imread("图片位置")
创作不易,点个赞再走吧

你可能感兴趣的:(北理嵩天教授python课总结)