Python100个库分享第23个—wordcloud(词云图)

2024-05-15 10:36

本文主要是介绍Python100个库分享第23个—wordcloud(词云图),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 专栏导读
  • 库的介绍
  • 库的安装
  • 基础使用1:将TXT文本转为词云图
  • 基础使用2:使用自定义字体和形状
  • 基础使用3:中文词云图+停用词(中英文版)-代码是中文版
  • 总结

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

库的介绍

  • wordcloud 是一个在 Python 中广泛使用的第三方库,主要用于根据文本数据生成词云(Word Clouds)。词云是一种可视化技术,它能够有效地展示文本数据中各个词汇的重要性或频率,通常通过字体大小来表示每个词在文本中出现的次数多少,形成类似云彩的图形,从而帮助用户快速识别出文本的主题或者高频词汇。

库的安装

pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple/

基础使用1:将TXT文本转为词云图

  • 先百度一篇英文美文,或者中文美文

  • 常用属性

wc = WordCloud(

width=800, 词云图宽

height=400, 词云图高

background_color='white', 词云图背景色

font_path='C:/Windows/Fonts/simhei.ttf' 词云图使用系统字体)

配置项类型默认值含义
font_pathstring字体路径
widthint400画布宽度
heightint200画布高度
marginint2词云图像的边距大小,以像素为单位
prefer_horizontalfloat0.9词语水平排列的偏好程度,>=1 水平排列
masknd-array or NoneNone词云的形状遮罩,使得词云图像能够按照指定的形状排列词语
contour_widthfloat0轮廓线的宽度
contour_colorcolor value“black”轮廓线的颜色
scalefloat1词云图像的缩放比例,即词云图像计算出来的大小相对于形状遮罩或者画布的大小的比例
min_font_sizeint4最小字体大小
font_stepint1字体的步长,关系词语间大小间隔
max_wordsnumber200词语最大数量
stopwordsset of strings or NoneSTOPWORDS要排除的词语
random_stateintNone随机数生成器的种子
background_colorcolor value”black”背景颜色
max_font_sizeint or NoneNone最大字体大小
modestring”RGB”主要有"RGB",“RGBA”,后者可以控制透明度
relative_scalingfloat‘auto’单词频率对字体大小影响,较大的值将增加词语之间的大小差异
color_funccallableNone自定义的颜色函数,该函数决定了词云中每个词语的颜色
regexpstring or NoneNone从输入文本中提取满足正则的词语,可选
collocationsboolTrue是否考虑词组
colormapstring or matplotlib colormap”viridis”词云的颜色映射,即词云中每个词语的颜色分布。常见的颜色映射包括单色映射(如灰度"gray")、渐变映射(“viridis”、“magma” 和 “inferno”)
normalize_pluralsboolTrue通过结尾为s 判断复数形式是否被视为同一个词
repeatboolFalse词语是否重复出现
include_numbersboolFalse是否包含数字
min_word_lengthint0单词必须包含的最小字母数
collocation_thresholdint30词语搭配(Collocations)的显示阈值
import os
from wordcloud import WordCloud# 获取当前py文件路径# 读取文本
text = open("./test.txt").read()wordcloud = WordCloud().generate(text)wordcloud.to_file('1.jpg')
image = wordcloud.to_image()
image.show()

在这里插入图片描述

from wordcloud import WordCloud
import matplotlib.pyplot as plt# 假设我们有一个字符串变量包含文本数据
text = open('test2.txt', 'r',encoding='utf-8').read()# 创建词云对象
wc = WordCloud(width=800, height=400, background_color='white',font_path='C:/Windows/Fonts/simhei.ttf')# 生成词云
wc.generate(text)# 显示词云
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")  # 不显示坐标轴
plt.show()

在这里插入图片描述

基础使用2:使用自定义字体和形状

2.1,先通过一张普通图片制作mask

需安装 【opencv】

ip install opencv-python==4.3.0.38 

转msk代码

import cv2
import numpy as np
from PIL import Image# 读取普通照片
image = cv2.imread('background.png')# 将图像转换为灰度图
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 二值化图像,将图像转换为黑白二值图像
_, mask_image = cv2.threshold(gray_image, 250, 255, cv2.THRESH_BINARY)# 保存生成的蒙版图像
cv2.imwrite('mask_image.png', mask_image)import matplotlib.pyplot as pltplt.figure(figsize=(10, 5))# 显示第一张图片
plt.subplot(1, 2, 1)
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.title('Color Image')
plt.axis('off')# 显示第二张图片
plt.subplot(1, 2, 2)
plt.imshow(cv2.cvtColor(mask_image, cv2.COLOR_BGR2RGB))
plt.title('Mask Image')
plt.axis('off')# 显示图片
plt.show()

在这里插入图片描述

# -*- coding: UTF-8 -*-
'''
@Project :wordclound 
@File    :wordclund.py
@IDE     :PyCharm 
@Author  :一晌小贪欢(278865463@qq.com)
@Date    :2024/4/17 20:57 
'''from PIL import Image
import numpy as np
from wordcloud import WordCloud, STOPWORDStext = open('txt1.txt', encoding='utf-8').read()alice_mask = np.array(Image.open( "mask_image.png"))stopwords = set(STOPWORDS)
stopwords.add("said")wc = WordCloud(background_color="white", max_words=2000, mask=alice_mask,stopwords=stopwords, contour_width=3, contour_color='steelblue')wc.generate(text)wc.to_file("alice.png")image = wc.to_image()
image.show()
  • 图片处理的不是很好

在这里插入图片描述

基础使用3:中文词云图+停用词(中英文版)-代码是中文版

  • 中英文停用词下载:https://pan.baidu.com/s/1K-fbpcbHJzM67Jq1O4YLZQ

时光不停地向前流去,天气渐渐地凉爽起来,吵人的蝉声被秋天吹散
了,代替它的是晚间阶下石板缝里蟀的悲鸣。啊!那可爱的秋天终于来了。
秋天,比春天更有欣欣向荣的景象,花木灿烂的春天固然美丽,然而
硕果累累的秋色却透着丰收的喜悦;秋天,比夏天更有五彩缤纷的景象,枝叶茂密的夏天虽然迷人,可是,金叶满树的秋色却更爽气宜人:秋天,比冬天更有生机勃勃的景象,白雪的冬天固然可爱,但是,瓜果飘香的金秋却更富有灿烂绚丽的色彩。秋天来到了树林里,从远处看,黄叶纷落好似成群结对的金色的蝴蝶,它们飞累了,落到了我的肩膀上、头上、脚上。把我的思绪从绿色的夏日带到了金色的秋季。我一转身,一片桃叶又落在我身
旁,我弯腰拾起,捧在手上,细细地端详,好特别地一片秋叶呀!它还没来得急完全退去绿色,仍散发着一股浓浓的香气。秋天来到了果园里,柿子弯下腰鞠了一个躬就压得枝头快要折断了,荔枝妹妹太胖了,撑破了衣裳,露出了鼓鼓、白白的肚皮。硕大的苹果挂满了枝头,露出甜甜的笑容,或羞
涩,或豪放。秋姑娘来到农田里,玉米可高兴了,它特意换了一件金色的新衣,开嘴笑了,露出满口金黄的牙齿;西红柿为了让自己更漂亮,便把口红涂在了脸上;土豆的兴奋也许太高了,把它那绿色的嘴巴笑破了,露出了黄色的舌头。秋天来到了花园里,这儿成了菊花的乐园。它们也许是喜欢这
沉甸甸的金色,才选择在秋天里绽放自己的美丽。菊花的颜色真不少:黄色、粉红色、白色那大大的花朵,卷曲的花瓣,像一个卷发的小姑娘。流连菊园或独自欣赏一盆艳菊,慢慢地陶醉在那股股清香里。秋天,给大地带来一片金黄,给蓝天送去棉花似的云朵。秋凤,清凉如水,带着一丝寒意染黄了世界。
我喜欢这秋高气爽的季节!
我喜欢有花叶扶疏、朴实无华的菊花的秋天。我喜欢这独一无二,灿烂辉煌的金秋景色。
秋天,真是个丰收的季节,割草机声,孩子们的欢笑声,大人们的谈笑
声这些声音融合到了一起,组成了一首《金色的秋天》的交响曲。

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt# 读取文本文件
with open('文章.txt', 'r', encoding='utf-8') as f:text = f.read()# 加载停用词表
with open('chineseStopWords.txt', 'r', encoding='utf-8') as f:stopwords = f.read().splitlines()# 使用jieba进行分词并去除停用词
words = jieba.cut(text)
filtered_words = [word for word in words if word not in stopwords]# 将分词结果转换为字符串
filtered_text = ' '.join(filtered_words)# 生成词云图
wc = WordCloud(font_path='C:/Windows/Fonts/simhei.ttf', background_color='white', width=800, height=600)
wc.generate(filtered_text)# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()# 保存词云图到文件
wc.to_file('wordcloud.png')

在这里插入图片描述

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

这篇关于Python100个库分享第23个—wordcloud(词云图)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991590

相关文章

[职场] 护理专业简历怎么写 #经验分享#微信

护理专业简历怎么写   很多想成为一名护理方面的从业者,但是又不知道应该怎么制作一份简历,现在这里分享了一份护理方面的简历模板供大家参考。   蓝山山   年龄:24   号码:12345678910   地址:上海市 邮箱:jianli@jianli.com   教育背景   时间:2011-09到2015-06   学校:蓝山大学   专业:护理学   学历:本科

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

潜艇伟伟迷杂交版植物大战僵尸2024最新免费安卓+ios苹果+iPad分享

嗨,亲爱的游戏迷们!今天我要给你们种草一个超有趣的游戏——植物大战僵尸杂交版。这款游戏不仅继承了原有经典游戏的核心玩法,还加入了许多创新元素,让玩家能够体验到前所未有的乐趣。快来跟随我一起探索这个神奇的世界吧! 植物大战僵尸杂交版最新绿色版下载链接: https://pan.quark.cn/s/d60ed6e4791c 🔥 创新与经典的完美结合 植物大战僵尸杂交版在保持了原游戏经典玩

人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展|顶刊速递·24-06-23

小罗碎碎念 本期推文主题:人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展 这一期的推文是我发自内心觉得为数不多,特别宝贵的一篇推文,原因很简单——可参考的文献相对较少&方向非常具有研究意义&现在不卷。 数字病理方向的老师/同学应该清楚,不同中心提供的切片,染色方案是存在差异的,并且还存在各种质量问题,所以我们在数据预处理的时候,通常会先对切片的质量执行一遍筛选,然后再进行染

23.并发

目录 一、一些概念二、进程和线程2.1 概念2.2 多线程导致的问题2.3 使用spawn创建新线程2.4 线程与move闭包 三、消息传递3.1 概念3.2 创建通道3.3 示例3.4 其它测试 四、共享状态并发4.1 互斥器4.2 Mutex的API4.3 多线程共享Mutex1)在多线程之间共享值;2)多线程和多所有权3) 原子引用计数4)RefCell/Rc与 Mutex/Arc的相

24-6-23-读书笔记(七)-《文稿拾零》豪尔赫·路易斯·博尔赫斯(第三辑)

文章目录 《文稿拾零》阅读笔记记录总结 《文稿拾零》   《文稿拾零》超厚的一本书(570+),看得时间比较长,这本书是作者零散时间写的一些关于文学性质的笔记,读起来还是比较无趣的,非常零散,虽然有很多有趣的观点,但连不起来,不像毛姆的读书笔记,简单记录一下了。 阅读笔记记录 P3 桑德堡身上有一种疲倦的忧伤,一种平原傍晚时的忧伤,泥沙浊流的忧伤,无用却又精确回忆的忧伤,一个

视频监控平台:支持交通部行业标准JT/T905协议(即:出租汽车服务管理信息系统)的源代码的函数和功能介绍及分享

目录 一、视频监控平台介绍 (一)概述 (二)视频接入能力介绍 (三)功能介绍 二、JT/T905协议介绍 (一)概述 (二)主要内容 1、设备要求 2、业务功能要求 3、技术功能要求 4、性能要求 5、接口要求 6、设备通信协议与数据格式 三、代码和解释 (一)代码和注释 (二)函数功能说明 1. 头文件保护 2. 包含必要的头文件 3. 引入命名空间std

iOS UITableView下拉刷新上拉加载更多EGOTableViewPullRefresh类库使用初级剑侠篇(欢迎提建议和分享遇到的问题)

这篇文章说下:MJRefresh和  EGOTableViewPullRefresh 的使用方法最下面有原理说明,若有不对或者建议请评论指出,先谢谢了: 首先是英文原文和类库下载地址:https://github.com/emreberge/EGOTableViewPullRefresh      然后创建好自己使用的tableview控件接着: 添加 Quartz