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中的元组概念
May 21 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
Python 实现一行输入多个值的方法
Apr 21 Python
零基础使用Python读写处理Excel表格的方法
May 02 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
django重新生成数据库中的某张表方法
Aug 28 Python
pytorch SENet实现案例
Jun 24 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
matplotlib更改窗口图标的方法示例
Feb 03 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
十大使用PHP框架的理由
2015/09/26 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
python远程登录代码
2008/04/29 Python
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python检测是文件还是目录的方法
2015/07/03 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python多进程编程常用方法解析
2020/03/26 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
如何让python的运行速度得到提升
2020/07/08 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
表达自我的市场:Society6
2018/08/01 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
超市总经理岗位职责
2014/02/02 职场文书
社会学专业求职信
2014/02/24 职场文书
森林防火标语
2014/06/23 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis