详解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使用htpasswd实现基本认证授权的例子
Jun 10 Python
python处理文本文件并生成指定格式的文件
Jul 31 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
Django 路由控制的实现代码
Nov 08 Python
django项目简单调取百度翻译接口的方法
Aug 06 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
使用Keras预训练好的模型进行目标类别预测详解
Jun 27 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 Python
Django视图、传参和forms验证操作
Jul 15 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 Python
你需要掌握的20个Python常用技巧
Feb 28 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中call_user_func_array的作用
2013/06/07 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
php中数组最简单的使用方法
2020/12/27 PHP
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
python3中bytes和string之间的互相转换
2017/02/09 Python
Django验证码的生成与使用示例
2017/05/20 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
在线课程:Skillshare
2019/04/02 全球购物
工作决心书范文
2014/03/11 职场文书
旅游管理毕业生自荐信范文
2014/03/19 职场文书
机关保密承诺书
2014/06/03 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸