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 相关文章推荐
深入理解Python 代码优化详解
Oct 27 Python
理解python正则表达式
Jan 15 Python
详解python进行mp3格式判断
Dec 23 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
对python模块中多个类的用法详解
Jan 10 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
Python中关于浮点数的冷知识
Sep 22 Python
Python内置类型性能分析过程实例
Jan 29 Python
python与pycharm有何区别
Jul 01 Python
python代数式括号有效性检验示例代码
Oct 04 Python
Python实现随机生成迷宫并自动寻路
Jun 13 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默认安装产生系统漏洞
2006/10/09 PHP
浅析PHP绘图技术
2013/07/03 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
大专毕业生自我评价分享
2013/11/10 职场文书
给女朋友的道歉信
2014/01/10 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
学术会议通知
2015/04/15 职场文书
西游降魔篇观后感
2015/06/15 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python