详解Python如何生成词云的方法


Posted in Python onJune 01, 2018

前言

今天教大家用wrodcloud模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果图:

效果图一:

详解Python如何生成词云的方法

效果图二:

详解Python如何生成词云的方法

详解Python如何生成词云的方法

根据效果图分析的还是比较准确的,小说中的主人公就是“程理”,所以出现次数最多。图中有两种模式,一种是默认的模式,另一种是自己添加图片作为背景。下面我就带大家一起来学习怎样去生成词云!

wordcloud的安装

对于新人来说安装wordcloud模块就是一大关,我们一般都是通过Pycharm或者PIP安装的,但是在安装wordcloud时会提示错误,如下:

详解Python如何生成词云的方法

我的解决方法是直接访问下面的网址,根据你的电脑和py版本下载对应的whl文件

https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

详解Python如何生成词云的方法

下载完成后,把whl文件放在pip路径下,输入下面的代码,记住代码的whl文件名一定是适合你的文件名,我只是举例:

pip install wordcloud-1.4.1-cp36-cp36m-win32.whl

运行后会显示安装成功

详解Python如何生成词云的方法

wordcloud的简单用法

wordcloud的基本方法,看源码如下:

详解Python如何生成词云的方法

各个参数大家应该一看就明白,另外wordcloud还有几个其他方法,比如fit_words,generate(text),to_file(filename)等等都是非常好理解的。

wordcloud生成词云

效果图一的代码:

from wordcloud import WordCloud
import matplotlib.pyplot as plt #绘制图像的模块
import jieba     #jieba分词

path_txt='C://Users/Administrator/Desktop/all.txt'
f = open(path_txt,'r',encoding='UTF-8').read()

# 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(f))

wordcloud = WordCloud(
 #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
 font_path="C:/Windows/Fonts/simfang.ttf",
 #设置了背景,宽高
 background_color="white",width=1000,height=880).generate(cut_text)

plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()

运行后:

详解Python如何生成词云的方法

效果图二,给词云加上图片背景,代码如下:

from PIL import Image
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy as np
import jieba
def GetWordCloud():
 path_txt = 'C://Users/Administrator/Desktop/all.txt'
 path_img = "C://Users/Administrator/Desktop/timg.jpg"
 f = open(path_txt, 'r', encoding='UTF-8').read()
 background_image = np.array(Image.open(path_img))
 # 结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云,感兴趣的朋友可以去查一下,有多种分词模式
 #Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
 cut_text = " ".join(jieba.cut(f))

 wordcloud = WordCloud(
  # 设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
  font_path="C:/Windows/Fonts/simfang.ttf",
  background_color="white",
  # mask参数=图片背景,必须要写上,另外有mask参数再设定宽高是无效的
  mask=background_image).generate(cut_text)
 # 生成颜色值
 image_colors = ImageColorGenerator(background_image)
 # 下面代码表示显示图片
 plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
 plt.axis("off")
 plt.show()

if __name__ == '__main__':
 GetWordCloud()

运行后:

详解Python如何生成词云的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用items()方法返回字典元素对的教程
May 21 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
python模块之time模块(实例讲解)
Sep 13 Python
python机器学习之决策树分类详解
Dec 20 Python
Python中常用信号signal类型实例
Jan 25 Python
使用Python写一个小游戏
Apr 02 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 Python
Python实现的个人所得税计算器示例
Jun 01 #Python
Python模拟登录的多种方法(四种)
Jun 01 #Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 #Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 #Python
python操作mysql代码总结
Jun 01 #Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 #Python
python的格式化输出(format,%)实例详解
Jun 01 #Python
You might like
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
用cssText批量修改样式
2009/08/29 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
Django url 路由匹配过程详解
2021/01/22 Python
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
民事二审代理词
2015/05/25 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis