详解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系列之教你如何根据图片生成字符画
May 23 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
pandas删除指定行详解
Apr 04 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
学习Django知识点分享
Sep 11 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
python中如何设置代码自动提示
Jul 15 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
python实现批量移动文件
Apr 05 Python
浅谈Python列表嵌套字典转化的问题
Apr 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中处理模拟rewrite 效果
2006/12/09 PHP
PHP代码优化技巧小结
2015/09/29 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Python单元测试实例详解
2018/05/25 Python
django 自定义过滤器的实现
2019/02/26 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
使用python实现画AR模型时序图
2019/11/20 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
电台实习生求职信
2014/02/25 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
民主评议党员总结
2014/10/20 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
创业计划书之宠物店
2019/09/19 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫