Python词云的正确实现方法实例


Posted in Python onMay 08, 2021

一、相关模块

jieba:中文分词

wordcloud :Python词云库

imageio:读取图形数据

安装:

pip install jieba
pip install wordcloud
pip install imageio

二、wordcloud四大类

功能
WordCloud([font_path, width, height, …]) 生成和绘制词云对象
ImageColorGenerator(image[, default_color]) 基于图片的色彩
random_color_func([word, font_size, …]) 随机生成颜色
get_single_color_func(color) 创建一个颜色函数,它返回一个色调和饱和度

三、wordcloud类

1、WordCloud类

class wordcloud.WordCloud(
    font_path=None, width=400, height=200, margin=2, 
    ranks_only=None, prefer_horizontal=0.9, mask=None, 
    scale=1, color_func=None, max_words=200, min_font_size=4, 
    stopwords=None, random_state=None, background_color='black', 
    max_font_size=None, font_step=1, mode='RGB', relative_scaling='auto', 
    regexp=None, collocations=True, colormap=None, normalize_plurals=True, 
    contour_width=0, contour_color='black', repeat=False, include_numbers=False, 
    min_word_length=0, collocation_threshold=30)

2、WordCloud参数详解

参数 详解
font_path 词云图的字体路径(OTF或TTF格式)
width 画布的宽度、默认为400,如果mask不为空时,设置为mask获取图片的大小
height 画布的高度,默认为200,如果mask不为空时,设置为mask获取图片的大小
prefer_horizontal 默认值0.9;当值<1时,遇到不合适的地方时,算法将词体自动旋转
mask 默认为None;如果不为空,指定了画布的图形,则width和height值不生效,使用提供的图形的大小
contour_width 如果mask不为空,并且contour_width>0,将描绘出mask获取图片的轮廓,值越大,轮廓的线越粗
contour_color 使用Mask时,描绘图片轮廓的颜色
scale 图片生成后放大缩小时的分辨率
min_font_size 词云图显示的最小字体,默认为4
max_font_size 词云图显示的最大字体
max_words 词云显示的最大词数
font_step 字体步长
stopwords 不显示的词,如果没有设置,则使用默认的内置的STOPWORdS列表;如果使用generate_from_frequencies参数,则忽略
background_color 背景颜色
mode 默认为"RGB",当mode="RGBA"并且background_color为None时,将会显示透明背景
relative_scaling 字体大小与词频的关系,默认值为auto
color_func 默认为None,color_func=lambda *args, **kwargs:(255,0,0)词云的字体颜色将这设置为红色
regexp 使用正则切分,默认为r"\w[\w']+",如果使用generate_from_frequencies则此参数不生效
collocations 是否包含两个词的搭配,默认为True,如果使用generate_from_frequencies则此参数不生效
colormap 设置颜色的参数,默认为"viridis",如果使用color_func参数,则此参数不生效
normalize_plurals 是否删除尾随的词,比如's,如果使用generate_from_frequencies参数,则此参数不生效
repeat 是否重复词组直到设置的最大的词组数
include_numbers 是否包含数字,默认我False
min_word_length 最小数量的词,默认为0
collocation_threshold 默认为30,整体搭配的评分等级

3、WordCloud类方法详解

方法 功能
fit_words() 根据词频生成词云
generate_from_frequencies() 根据词频生成词云
generate() 根据文本生成词云
generate_from_text() 根据文本生成词云
process_text() 将长文本分词,并去除屏蔽词
recolor() 对输出颜色重新着色
to_array() 转换为numpy数组
to_file() 保存为图片文件
to_svg() 保存为SVG(可缩放矢量图形)

四、实例

1、简单图案

Python词云的正确实现方法实例

代码:

import wordcloud

# 词云使用的文字
text = "lemon"

# 使用wordcloud.WordCloud类,并传入相关的参数
wc = wordcloud.WordCloud(background_color="white", repeat=True)
wc.generate(text)

# 保存图片
wc.to_file('test1.png')

2、自定义图片

Python词云的正确实现方法实例

代码:

import wordcloud

# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("333.jpg")

# 词云使用的文字
text = "lemon"

# 使用wordcloud.WordCloud类,并传入相关的参数
wc = wordcloud.WordCloud(background_color="white", repeat=True,mask=mk)
wc.generate(text)

# 保存图片
wc.to_file('test1.png')

3、从文本读取

Python词云的正确实现方法实例

代码:

import wordcloud
import jieba

# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("chen.jpg")

# 使用wordcloud.WordCloud类,并传入相关的参数
wc = wordcloud.WordCloud(background_color="white",
                         prefer_horizontal=0.5,
                         repeat=True,
                         mask=mk,
                         font_path='/System/Library/Fonts/STHeiti Light.ttc',
                         contour_width=2,
                         contour_color='pink',
                         collocation_threshold=100,
                         )

# 对来自外部文件的文本进行中文分词,得到string
f = open('gong.txt', encoding='utf-8')
txt = f.read()
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)

# 将string变量传入w的generate()方法,给词云输入文字
wc.generate(string)

# 保存图片
wc.to_file('test.png')

总结

到此这篇关于Python词云的正确实现方法的文章就介绍到这了,更多相关Python词云实现内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Django框架中编写Context处理器的方法
Jul 20 Python
python监控进程脚本
Apr 12 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
Python实现合并两个列表的方法分析
May 28 Python
python取均匀不重复的随机数方式
Nov 27 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
python 绘制场景热力图的示例
Sep 23 Python
python 爬虫如何正确的使用cookie
Oct 27 Python
Python实现生活常识解答机器人
Jun 28 Python
Python实现打乒乓小游戏
Sep 25 Python
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 #Python
python实战之用emoji表情生成文字
May 08 #Python
python实现过滤敏感词
You might like
php adodb分页实现代码
2009/03/19 PHP
PHP 判断变量类型实现代码
2009/10/23 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
javascript 动态创建表格
2015/01/08 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
详解Python map函数及Python map()函数的用法
2017/11/16 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
聊聊python中的循环遍历
2020/09/07 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
精彩的广告词
2014/03/19 职场文书
高一学生评语大全
2014/04/25 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书