详解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通过wxPython打开一个音频文件并播放的方法
Mar 25 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
python3实现磁盘空间监控
Jun 21 Python
在Python中实现替换字符串中的子串的示例
Oct 31 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
python 串行执行和并行执行实例
Apr 30 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
Python可视化工具如何实现动态图表
Oct 23 Python
python解包用法详解
Feb 17 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
python基础练习之几个简单的游戏
2017/11/10 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
基于Python的PIL库学习详解
2019/05/10 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
学前教育专业毕业生自荐信
2013/10/03 职场文书
幼师自荐信
2013/10/26 职场文书
给老师的检讨书
2014/02/11 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
办公用房租赁协议书
2014/11/29 职场文书
毕业实习单位意见
2015/06/04 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python
java设计模式--原型模式详解
2021/07/21 Java/Android