详解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 相关文章推荐
web.py获取上传文件名的正确方法
Aug 26 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
Python中collections模块的基本使用教程
Dec 07 Python
python进阶之自定义可迭代的类
Aug 20 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
Python文件操作函数用法实例详解
Dec 24 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 Python
matplotlib相关系统目录获取方式小结
Feb 03 Python
Python实现天气查询软件
Jun 07 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去除字符串中空字符的常用方法小结
2015/03/17 PHP
php实现可运算的验证码
2015/11/10 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
Python命名空间详解
2014/08/18 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
python追加元素到列表的方法
2015/07/28 Python
python中kmeans聚类实现代码
2018/02/23 Python
python获取代码运行时间的实例代码
2018/06/11 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
期末自我鉴定
2014/02/02 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
Python torch.flatten()函数案例详解
2021/08/30 Python