详解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抓取电影天堂电影信息的代码
Apr 07 Python
深入理解python中的atexit模块
Mar 07 Python
深入学习Python中的上下文管理器与else块
Aug 27 Python
python实现基于SVM手写数字识别功能
May 27 Python
将python代码和注释分离的方法
Apr 21 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
django之自定义软删除Model的方法
Aug 14 Python
python上selenium的弹框操作实现
Jul 13 Python
python运算符之与用户交互
Apr 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
apache rewrite_module模块使用教程
2008/01/10 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python中循环引用(import)失败的解决方法
2018/04/22 Python
python try 异常处理(史上最全)
2019/03/07 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
用python制作个视频下载器
2021/02/01 Python
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
客服专员岗位职责
2014/02/28 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
合作合同协议书范本
2015/01/27 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
面试通知单大全
2015/04/20 职场文书
毕业设计工作总结
2015/08/14 职场文书
亲情作文之母爱
2019/09/25 职场文书
POST提交数据常见的四种方式
2022/01/18 HTML / CSS