详解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实现ftp客户端示例分享
Feb 17 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
python机器人行走步数问题的解决
Jan 29 Python
Python生成器以及应用实例解析
Feb 08 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
Python标准库shutil模块使用方法解析
Mar 10 Python
python 字典item与iteritems的区别详解
Apr 25 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 Python
Python扫描端口的实现
Jan 25 Python
python爬虫利用代理池更换IP的方法步骤
Feb 21 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 数组二分法查找函数代码
2010/02/16 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
javascript面向对象之二 命名空间
2011/02/08 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
js闭包用法实例详解
2016/12/13 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
three.js 入门案例详解
2018/01/23 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
React实现todolist功能
2020/12/28 Javascript
Python中str.format()详解
2017/03/12 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
什么是python类属性
2020/06/10 Python
Python实现自动签到脚本功能
2020/08/20 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
教师开学感言
2014/02/14 职场文书
团代会主持词
2014/04/02 职场文书
推广普通话演讲稿
2014/05/23 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
党的群众路线调研报告
2014/11/03 职场文书