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

文章目录

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

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

🐬展示效果

在这里插入图片描述

🌸代码

# -*- coding: UTF-8 -*-
import jieba
import re
from stylecloud import gen_stylecloud
from PIL import Image
import numpy as npwith 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 wordcloudtext = 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.hqwc.cn/news/293892.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

首涂第二十八套_新版海螺M3多功能苹果CMSv10自适应全屏高端模板

首涂第二十八套_新版海螺M3多功能苹果cmsv10自适应全屏高端模板 多功能苹果cmsv10自适应全屏高端模板开源授权版 这是一款带“主题管理系统”的模板。这是一款好模板。 花大价钱收购了海螺这两个模板的版权。官方正品,非盗版。关闭域名授权 后台自定义菜单 请把…

【大模型实践】基于文心一言的对话模型设计

文心一言(英文名:ERNIE Bot)是百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动、回答问题、协助创作,高效便捷地帮助人们获取信息、知识和灵感。文心一言从数万亿数据和数千亿知识…

使用GitZip下载GitHub指定文件

目录 一、GitZip二、安装GitZip三、链接GitHub四、检验是否安装成功五、总结 一、GitZip GitZip是一个非常实用的浏览器插件,它主要有以下几个优点: 下载指定文件:在我们浏览Github时,如果只想下载某个子目录的内容,…

Layui 下拉select多选实现

1. html <div id"mo_deptment"></div> 2.引用 <script src"~/layuiadmin/layui/xm-select.js"></script>3.设置全局变量存储控件 var mo_deptmentSelect; 4.layui.use 中初始化 4.1 列表数据 var mo_deptmentdata [ …

【PostGIS】PostgreSQL15+对应PostGIS安装教程及空间数据可视化

一、PostgreSQL15与对应PostGIS安装 PostgreSQL15安装&#xff1a;下载地址PostGIS安装&#xff1a;下载地址&#xff08;选择倒数第二个&#xff09; 1、PostgreSQL安装 下载安装包&#xff1b;开始安装&#xff0c;这里使用默认安装&#xff0c;一直next直到安装完成&…

关于游戏性能优化的技巧

关于游戏性能优化的技巧 游戏性能优化对象池Jobs、Burst、多线程间隔处理定时更新全局广播缓存组件缓存常用数据2D残影优化2D骨骼转GPU动画定时器优化DrawCall合批处理优化碰撞层优化粒子特效 游戏性能优化 好久没有在CSDN上面写文章了&#xff0c;今天突然看到鬼谷工作室技术…

力扣每日一题day38[106. 从中序与后序遍历序列构造二叉树]

给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出&#xff1a;[…

基于单片机设计的指纹锁(读取、录入、验证指纹)

一、前言 指纹识别技术是一种常见的生物识别技术&#xff0c;利用每个人指纹的唯一性进行身份认证。相比于传统的密码锁或者钥匙锁&#xff0c;指纹锁具有更高的安全性和便利性&#xff0c;以及防止钥匙丢失或密码泄露的优势。 基于单片机设计的指纹锁项目是利用STC89C52作为…

数据可视化:赋能企业决策的视觉力量

数据可视化在企业中扮演着至关重要的角色&#xff0c;为决策者提供了直观、深入的数据解读&#xff0c;帮助他们更好地理解业务状况并作出明智的决策。今天我就以可视化从业者的角度来简谈说说如何让数据可视化为更好地为企业服务。 首先&#xff0c;数据可视化可以让数据更易…

让生活更智能,P1600边缘智能网关带你进入智能家居新时代

一、什么是P1600边缘智能网关&#xff1f; 在科技日新月异的今天&#xff0c;我们的生活已经被各种智能产品所包围。而在这个智能化的浪潮中&#xff0c;P1600边缘智能网关以其独特的优势&#xff0c;成为了智能家居的重要组成部分。那么&#xff0c;什么是P1600边缘智能网关呢…

el-select绑定值的坑

碰到一个问题&#xff0c;选择框的数据是后端传过来的&#xff0c;下拉框的数据也是后端传过来的&#xff0c;但是打开下拉框时&#xff0c;发现数据没有高亮。 最后发现&#xff0c;只要选择框v-model给的值和option的value绑定的值一致&#xff0c;就可以高亮。 大多数情况下…

STM32F4 HAL流水灯Proteus仿真

源码下载&#xff1a;https://download.csdn.net/download/zlkk00/88654405