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的函数嵌套的使用方法
Jan 24 Python
在Python中测试访问同一数据的竞争条件的方法
Apr 23 Python
在Python中使用SQLite的简单教程
Apr 29 Python
在Django的视图中使用form对象的方法
Jul 18 Python
python清理子进程机制剖析
Nov 23 Python
Python地图绘制实操详解
Mar 04 Python
python中的Elasticsearch操作汇总
Oct 30 Python
python 实现让字典的value 成为列表
Dec 16 Python
用什么库写 Python 命令行程序(示例代码详解)
Feb 20 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
详解Django ORM引发的数据库N+1性能问题
Oct 12 Python
python 写一个性能测试工具(一)
Oct 24 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
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
php导出CSV抽象类实例
2014/09/24 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
php中define用法实例
2015/07/30 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
javascript 精粹笔记
2010/05/09 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
Python Map 函数的使用
2020/08/28 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
劳资人员岗位职责
2013/12/19 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL