详解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 PIL模块与随机生成中文验证码
Feb 27 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
python numpy 显示图像阵列的实例
Jul 02 Python
详解Python装饰器
Mar 25 Python
Python动态语言与鸭子类型详解
Jul 01 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
基于python实现上传文件到OSS代码实例
May 09 Python
Python验证码截取识别代码实例
May 16 Python
Python docutils文档编译过程方法解析
Jun 23 Python
python 简单的调用有道翻译
Nov 25 Python
python 6种方法实现单例模式
Dec 15 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
php数据库连接
2006/10/09 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
点评js异步加载的4种方式
2015/12/22 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
js实现随机抽奖
2020/03/19 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
python中的字典使用分享
2016/07/31 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
python中的colorlog库使用详解
2019/07/05 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
python 通过exifread读取照片信息
2020/12/24 Python
python绘图模块之利用turtle画图
2021/02/12 Python
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
酒店前台岗位职责
2015/04/16 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
Python机器学习之基础概述
2021/05/19 Python
php png失真的原因及解决办法
2021/10/24 PHP
分享几种python 变量合并方法
2022/03/20 Python
Java实现简单小画板
2022/06/10 Java/Android
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript