详解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结合jieba和wordcloud实现词云效果
Sep 05 Python
Python实现k-means算法
Feb 23 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
Django 大文件下载实现过程解析
Aug 01 Python
解决pyshp UnicodeDecodeError的问题
Dec 06 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
python程序输出无内容的解决方式
Apr 09 Python
如何在scrapy中集成selenium爬取网页的方法
Nov 18 Python
class类在python中获取金融数据的实例方法
Dec 10 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 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/07/01 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
【消息提示组件】,兼容IE6/7&&FF2
2007/09/04 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
办理护照介绍信
2014/01/16 职场文书
满月酒邀请函
2015/01/30 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电