详解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 UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
Python单例模式实例详解
Mar 01 Python
python中import reload __import__的区别详解
Oct 16 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
windows下python安装pip图文教程
May 25 Python
python中字符串内置函数的用法总结
Sep 13 Python
python实现图片转字符小工具
Apr 30 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
python datetime中strptime用法详解
Aug 29 Python
Python3批量创建Crowd用户并分配组
May 20 Python
python语言实现贪吃蛇游戏
Nov 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
解析php多线程下载远程多个文件
2013/06/25 PHP
smarty实现多级分类的方法
2014/12/05 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
php和nginx交互实例讲解
2019/09/24 PHP
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
python合并多个excel文件的示例
2020/09/23 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
简历中的自我评价怎么写
2014/01/29 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
幼儿园见习报告
2014/10/30 职场文书
2014年团队工作总结
2014/11/24 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
创业计划书之寿司
2019/07/19 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS