Python生成圣诞节词云-代码案例剖析【第17篇—python圣诞节系列】

news2025/1/19 20:16:30

文章目录

  • ❄️Python制作圣诞树词云-中文
    • 🐬展示效果
    • 🌸代码
    • 🌴代码剖析
  • ❄️Python制作圣诞树词云-英文
    • 🐬展示效果
    • 🌸代码
    • 🌴代码剖析
  • 🎅圣诞节快乐!

❄️Python制作圣诞树词云-中文

🐬展示效果

在这里插入图片描述

🌸代码

# -*- coding: UTF-8 -*-
import jieba
import re
from stylecloud import gen_stylecloud
from PIL import Image
import numpy as np


with open('./圣诞素材/Christmas.txt', encoding="utf-8") as f:
  data = f.read()

# 文本预处理  去除一些无用的字符   只提取出中文出来
new_data = re.findall('[\u4e00-\u9fa5]+', data, re.S)
new_data = "/".join(new_data)

# 文本分词  精确模式
seg_list_exact = jieba.cut(new_data, cut_all=False)

# 加载停用词
with open('stop_words.txt', encoding='utf-8') as f:
  # 获取每一行的停用词 添加进集合
  con = f.read().split('\n')
  stop_words = set()
  for i in con:
      stop_words.add(i)

# 列表解析式  去除停用词和单个词
result_list = [word for word in seg_list_exact if word not in stop_words and len(word) > 1]
print(result_list)

# 个人推荐使用的palette配色方案  效果挺好看   其他测试过  感觉一般~~
# colorbrewer.qualitative.Dark2_7
# cartocolors.qualitative.Bold_5
# colorbrewer.qualitative.Set1_8
gen_stylecloud(
  text=' '.join(result_list),                   # 文本数据
  size=600,                                     # 词云图大小
  font_path=r'./font/猫啃网糖圆体.ttf',          # 中文词云  显示需要设置字体
  icon_name = "fas fa-tree",                    # 图标
  output_name='./results/圣诞树06.png',          # 输出词云图名称
  palette='cartocolors.qualitative.Bold_5',     # 选取配色方案
)

🌴代码剖析

这段代码使用了jieba进行中文分词,结合stylecloud库生成了一个基于指定配色方案的圣诞主题词云图。以下是对代码的解释:

  1. import jieba:导入中文分词库jieba。

  2. import re:导入正则表达式库。

  3. from stylecloud import gen_stylecloud:导入stylecloud库中的生成词云图的函数。

  4. from PIL import Image:导入Python Imaging Library(PIL)中的Image类。

  5. import numpy as np:导入numpy库并使用别名np。

  6. with open('./圣诞素材/Christmas.txt', encoding="utf-8") as f::打开文件’Christmas.txt’,并使用utf-8编码读取。

  7. data = f.read():将文件内容读取到变量data中。

  8. new_data = re.findall('[\u4e00-\u9fa5]+', data, re.S):使用正则表达式提取data中的中文字符,放入new_data中。

  9. new_data = "/".join(new_data):将提取的中文字符用’/'连接成字符串。

  10. seg_list_exact = jieba.cut(new_data, cut_all=False):使用jieba库进行中文分词,采用精确模式。

  11. with open('stop_words.txt', encoding='utf-8') as f::打开停用词文件’stop_words.txt’,并使用utf-8编码读取。

  12. con = f.read().split('\n'):读取文件内容并按行分割,得到停用词列表。

  13. stop_words = set(con):将停用词列表转换为集合,方便快速检查词是否在停用词中。

  14. result_list = [word for word in seg_list_exact if word not in stop_words and len(word) > 1]:使用列表解析式过滤掉停用词和长度为1的词,得到最终的分词结果。

  15. gen_stylecloud(text=' '.join(result_list), size=600, font_path=r'./font/猫啃网糖圆体.ttf', icon_name="fas fa-tree", output_name='./results/圣诞树06.png', palette='cartocolors.qualitative.Bold_5'):使用gen_stylecloud函数生成词云图。

  • text=' '.join(result_list):将分词结果连接成一个字符串。
  • size=600:设置词云图大小为600。
  • font_path=r'./font/猫啃网糖圆体.ttf':指定中文显示所需的字体文件路径。
  • icon_name="fas fa-tree":指定词云图中的图标,这里使用了一个圣诞树图标。
  • output_name='./results/圣诞树06.png':指定输出词云图的文件路径和名称。
  • palette='cartocolors.qualitative.Bold_5':选择了一个配色方案。

注意:在运行之前,请确保已安装相应的库,可以使用以下命令进行安装:

pip install jieba stylecloud Pillow numpy

❄️Python制作圣诞树词云-英文

🐬展示效果

在这里插入图片描述

🌸代码

from wordcloud import WordCloud
import PIL.Image as image
import numpy as np

# 一些变量值,依据自己实际情况进行设置
edcoding_type = "utf-8"               # 编码方式     
background_color = "white"            # 生成图片的背景颜色
txt_path = "little red-cap.txt"       # 文本路径
mask_path = "mask.png"                # 词云形状掩码路径
img_path = "red-cap_wordcloud.png"    # 输出生成的词云图片路径
max_words = 200                       # 最大显示词数量

# 读取文本内容
def get_txt(txtpath):
    with open(txtpath, encoding = edcoding_type) as f:
        text = f.read()
    return text

# 生成词云
def generate_wordcloud(wordlist, maskpath, backgroundcolor, maxwords):
    mask = np.array(image.open(maskpath))                      # 设置图形掩码
    wordcloud = WordCloud(
        background_color = backgroundcolor,                    # 设置图片背景颜色
        mask = mask,                                           # 设置掩码
        max_words = maxwords                                   # 设置最大显示词数
    ).generate(wordlist)                                
    return wordcloud

text = get_txt(txt_path)                                       # 获取文本
word_cloud = generate_wordcloud(text,                          # 生成词云
                                mask_path,
                                background_color,
                                max_words)
image_file = word_cloud.to_image()                             # 生成图片
image_file.show()                                              # 显示图片
word_cloud.to_file(img_path)                                   # 保存生成的图片

🌴代码剖析

这段代码使用了WordCloud库生成了一个基于给定文本的词云图。以下是对代码的解释:

  1. from wordcloud import WordCloud:导入WordCloud库,用于生成词云。

  2. import PIL.Image as image:导入PIL库中的Image类,用于处理图像。

  3. import numpy as np:导入NumPy库并使用别名np。

  4. edcoding_type = "utf-8":设置文本的编码方式为UTF-8。

  5. background_color = "white":设置生成图片的背景颜色为白色。

  6. txt_path = "little red-cap.txt":设置文本文件的路径。

  7. mask_path = "mask.png":设置词云形状的掩码文件路径。

  8. img_path = "red-cap_wordcloud.png":设置输出生成的词云图片的路径。

  9. max_words = 200:设置最大显示词数量为200。

  10. def get_txt(txtpath)::定义函数get_txt,用于读取文本内容。

  • with open(txtpath, encoding=edcoding_type) as f::打开文本文件,并使用指定的编码方式读取文件内容。
  • text = f.read():将文件内容读取到变量text中。
  • return text:返回读取到的文本内容。
  1. def generate_wordcloud(wordlist, maskpath, backgroundcolor, maxwords)::定义函数generate_wordcloud,用于生成词云图。
  • mask = np.array(image.open(maskpath)):将图形掩码加载为NumPy数组。
  • WordCloud(...).generate(wordlist):使用WordCloud生成词云图,设置了背景颜色、掩码和最大显示词数。
  • return wordcloud:返回生成的词云对象。
  1. text = get_txt(txt_path):调用get_txt函数获取文本内容。
  2. word_cloud = generate_wordcloud(text, mask_path, background_color, max_words):调用generate_wordcloud函数生成词云图。
  3. image_file = word_cloud.to_image():将词云对象转换为图像对象。
  4. image_file.show():显示生成的词云图。
  5. word_cloud.to_file(img_path):将生成的词云图保存为图片文件。

🎅圣诞节快乐!

愿你的圣诞充满温馨和欢笑,家人团聚,友谊长存。在这个特别的时刻,愿你感受到爱的温暖,希望的明亮。愿你的心充满喜悦,新的一年里,幸福、健康、平安与你同行。圣诞快乐!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【编译原理--复习】

知识点整理 第一章 同时伴有表格管理、出错处理 1、词法分析 任务:对构成源程序的字符串进行扫描和分解,识别出单词(如标识符等)符号 输入:源程序 输出:单词符号序列 2、语法分析 任务:根据语言的语法规则对单词符号…

[管理者与领导者-129]:很多人对高情商的误解,工程师要扩展自己的情商吗?工程师如何扩展自己的情商?

目录 前言: 一、什么是高情商? 1.1 什么是高情商 1.2 情商的五大能力 1.3 高情商的层次 1.4 对高情商的误解? 二、工程师需要发展自己的高情商吗? 三、工程师如何扩展自己的情商? 四、什么样的“高情商”的管理者令人讨…

、写入Shellcode到注册表上线

其实本质就是将shellcode写入到注册表中,然后读取注册表中的shellcode,然后创建线程去执行shellcode。 如下图: 写入注册表shellcode 这里将shellcode写入到注册表中,在我们需要的时候再去读取然后执行。 这里用到如下两个Windows API函…

智能硬件(6)之通用引脚(GPIO)

小编带领大家学习的四大开源硬件和智能模块,他们之间是如何通信的,主控芯片是如何控制智能模块,做某些事情呢?有没有小朋友发起疑问呢? 这里,涉及到了特别重要的知识点,就是通用引脚&#xff0c…

MAC地址、IP地址、端口

1.MAC 地址 网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,又称为网络适配器或网 络接口卡NIC 。其拥有 MAC 地址,属于 OSI 模型的第 2 层,它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为 MAC 地…

Pipelined-ADC设计二——结构指标及非理想因素(Part2)

接上文,本章将两个比较重要的非理想因素,因此各项指标制定。后续会对常见的非理想因素给出常见的解决方法,以及设计所采用的方法。 2.2.3. 比较器失调 在流水线 ADC 中,比较器的主要误差来源就是比较器失调,称为失调误…

Python入门知识点分享——(八)文件的open方法

学完了Python当中的数据类型,下一步我们来了解如何用Python语言打开文件并添加内容。 目录 file mode buffering encoding errors newline closefd opener 函数 打开文件需要用到open函数,完整的语法格式如下所示,为了演示方便&…

量化服务器 - 后台挂载运行

服务器 - 后台运行 pip3命令被kill 在正常的pip命令后面加上 -no-cache-dir tmux 使用教程 https://codeleading.com/article/40954761108/ 如果你希望在 tmux 中后台执行一个 Python 脚本,你可以按照以下步骤操作: 启动 tmux: tmux这将会创建一个新…

全方位掌握卷积神经网络:理解原理 优化实践应用

计算机视觉CV的发展 检测任务 分类与检索 超分辨率重构 医学任务 无人驾驶 整体网络架构 卷积层和激活函数(ReLU)的组合是网络的核心组成部分 激活函数(ReLU) 引入非线性,增强网络的表达能力。 卷积层 负责特征提取 池化层…

CSM4054 500mA线性锂离子电池充电管理 适用消费类的电子产品

CSM4054 是一款完整的单节鲤离子电池采用恒定电流/恒定电压线性充电器。其 SOT23-5 封装与较少的外部元件数量使得 CSM4054 成为便携式应用的理想选择。 CSM4054 可以适合 USB 电源和适配器电源工作。由于采用了内部 PMOSFET 架构,加上防倒充电路&#xff0…

Rust报错:the msvc targets depend on the msvc linker but `link.exe` was not found

当我在我的 windows 电脑上安装 rust,然后用 cargo 新建了一个项目后,cargo run 会报错: error: linker link.exe not found| note: program not foundnote: the msvc targets depend on the msvc linker but link.exe was not foundnote: p…

如何实现酷狗音乐pc页面点击播放时,打开多个歌曲播放时,始终在一个播放页面,(标签页的通讯)

大致有两种思路, 一种是通过wind.open()方法传第二个参数, A页面: //点击跳转播放页函数function toPlayPage(){window.open(path/xxxx/xxxx?name音乐名,music)//第二个参数写一个定值,代表跳转页面都为music标签页&#xff0…

小程序本地文件读、写、追加数据操作,以及修改文件内容

小程序系统文件管理器 FileSystemManager 要操作/读取本地文件,首先需要创建文件或文件夹,然后再对文件进行读写操作; 首先创建文件 FileSystemManager.writeFile 可直接创建文件并写入内容 定义文件路径,此路径在读写操作时保持一致 const path = `${wx.env.USER_DATA…

基于电商场景的高并发RocketMQ实战-NameServer内核原理剖析、Broker 主从架构与集群模式原理分析

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…

分而治之:Fork/Join框架(构造一个1到200 000求和的任务)

Fork一词的原始含义是吃饭用的叉子,也有分叉的意思。在linux平台中, 方法fork用来创建子进程。使得系统进程可以多一个执行分组。 而join方法这里表示等待,也就是使用fork方法后系统多了一个执行分支(线程) 所以需要等待这个执行分支执行完毕…

【NI-RIO入门】使用其他文本语言开发CompactRIO

1.FPGA 接口Python API Getting Started — FPGA Interface Python API 19.0.0 documentation 2.FPGA接口C API FPGA 接口 C API 是用于 NI 可重配置 I/O (RIO) 硬件(例如 NI CompactRIO、NI Single-Board RIO、NI 以太网 RIO、NI FlexRIO、NI R 系列多功能 RIO 和…

技术分享 | 接口测试请求超时怎么办?

​ 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试…

机场数据治理系列介绍(2):六图法开展数据治理的步骤与要点

目录 一、机场数据治理的六图法 1、何为六图法 二、应用数据治理六图法的相关工作步骤 1、制定战略目标 2、梳理业务情况 3、收集需求 4、构建数智应用地图 5、选择合适的算法 6、建立数据地图 7、持续改进和优化 三、相关要点 1、明确数据治理三张清单 2、持续构…

JWT是什么?它有什么用?

1. 什么是 JWT? JWT是 JSON Web Token 的缩写,通过数字签名的方式,以 JSON 对象为载体,在不同的服务器终端之间安全传输的信息。 2. JWT 有什么用? JWT 最常见的场景就是授权认证,一旦用户登录&#xff…

异方差 的 BP检验 方法及原理详解

异方差 的 BP检验详解            文章目录 1. `BP`检验的步骤2. 场景示例步骤 ①步骤 ②BP检验,也称为Breusch-Pagan检验,是一种用于检验线性回归模型中异方差性(即误差项方差不恒定)的统计方法。该方法由Trevor S. Breusch和Adrian R. Pagan在1980年提出。 1.…