[特殊字符] Python 批量生成詞云:讀取詞頻 Excel + 自定義背景 + Excel to.png 流程解析

本文展示如何用 Python 從之前生成的詞頻 Excel 文件中讀取詞頻數據,結合 wordcloud 和背景圖,批量生成直觀美觀的詞云圖。適用于文本分析、內容展示、報告可視化等場景。


📂 第一步:讀取所有 Excel 詞頻文件

import os
from openpyxl import load_workbook
import numpy as np
from PIL import Image
import wordcloud
import matplotlib.pyplot as pltpath = '詞頻'
files = [os.path.join(path, f) for f in os.listdir(path)]
maskImage = np.array(Image.open('background.png'))
  • 利用 os.listdir() 遍歷詞頻 Excel 文件;

  • 使用 background.png 作為詞云背景形狀。


📈 第二步:逐文件讀取詞頻并生成詞云

for file in files:wb = load_workbook(file)ws = wb.activewordFreq = {ws[f"A{i}"].value: ws[f"B{i}"].valuefor i in range(2, ws.max_row + 1)}

將每張 Excel 轉為 dict[word] = freq,為下一步驟做準備。


🖌 第三步:用 mask 圖生成詞云并保存

    wc = wordcloud.WordCloud(font_path='C:/Windows/Fonts/simhei.ttf',mask=maskImage,max_words=500,max_font_size=100)wc.generate_from_frequencies(wordFreq)basename = os.path.splitext(os.path.basename(file))[0][:4]wc.to_file(f"詞云圖/{basename}.png")plt.imshow(wc)plt.axis('off')plt.show()
  • generate_from_frequencies() 直接基于詞頻生成詞云,是推薦方式 Kaggle+15Medium+15topcoder.com+15;

  • 傳入 maskImage 時詞云會按背景形狀生成 GitHub+1Medium+1;

  • font_path 設置常用中文黑體避免亂碼;

  • to_file() 將結果保存為 PNG,同時用 matplotlib 展示。


🖼? 結果展示區


? 小結與注意事項

  • 使用 generate_from_frequencies() 避免文本分詞誤差 holisticseo.digital;

  • mask 圖需確保背景為白色(RGB 255),否則可能形狀識別失敗 Stack Overflow;

  • 可以優化方式包括:

    • 使用 ImageColorGenerator 從背景圖提取配色 GitHub+7peritract.github.io+7Stack Overflow+7;

    • 添加 contour_colorcontour_width 增加外輪廓;

    • 控制詞云尺寸、scale 參數提升清晰度;

    • 自定義停詞集排除無用詞。

??更多實用案例,代碼,素材如下:

自取鏈接:https://pan.quark.cn/s/a46f30accea2


🔧 拓展建議

  • 🎨 自定義顏色對特定主題關鍵詞加亮;

  • 💾 批量處理大量文本并生成詞云合集;

  • 📊 結合 wordcloud.to_image() 和 GUI 打包;

  • 📘 不僅限詞頻表,還可以直接用原文生成更靈活多彩的詞云。


通過這套流程,你已掌握從 Excel 到詞云圖的全鏈路自動化方法!如果你還想支持 PDF 特征提取詞云、生成 html 可嵌入圖像,或集成到報表系統里,歡迎繼續告訴我,我可以為你定制更深入的文章或腳本。

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88232.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88232.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88232.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

模擬網絡請求的C++類設計與實現

在C開發中,理解和模擬網絡請求是學習客戶端-服務器通信的重要一步。本文將詳細介紹一個模擬HTTP網絡請求的C類庫設計,幫助開發者在不涉及實際網絡編程的情況下,理解網絡請求的核心概念和工作流程。 整體架構設計 這個模擬網絡請求的類庫主要由…

移動機器人的認知進化:Deepoc大模型重構尋跡本質

統光電尋跡技術已逼近物理極限。當TCRT5000傳感器在強烈環境光下失效率超過37%,當PID控制器在路徑交叉口產生63%的決策崩潰,工業界逐漸意識到:導引線束縛的不僅是車輪,更是機器智能的演化可能性。 ?技術破局點出現在具身認知架構…

記錄一次pip安裝錯誤OSError: [WinError 32]的解決過程

因為要使用 PaddleOCR,需要安裝依賴。先通過 conda新建了虛擬環境,然后安裝 PaddlePaddle,繼續安裝 PaddleOCR,上述過程我是在 VSCode的終端中處理,結果報錯如下:Downloading multidict-6.6.3-cp312-cp312-…

后端id設置long類型時,傳到前端,超過19位最后兩位為00

文章目錄一、前言二、問題描述2.1、問題背景2.2、問題示例三、解決方法3.1、將ID轉換為字符串3.2、使用JsonSerialize注解3.3、使用JsonFormat注解一、前言 在后端開發中,我們經常會遇到需要將ID作為標識符傳遞給前端的情況。當ID為long類型時,如果該ID…

SpringAI學習筆記-MCP客戶端簡單示例

MCP客戶端是AI與外部世界交互的橋梁。在AI系統中,大模型雖然具備強大的認知能力,卻常常受限于數據孤島問題,無法直接訪問外部工具和數據源。MCP協議應運而生,作為標準化接口解決這一核心挑戰。該協議采用客戶端-服務端架構&#x…

postgresql|數據庫|系統性能監控視圖pg_stat與postgresql數據庫的調優(備忘)

一、 寫作初衷 通常,我們使用navicat這樣的數據庫圖形管理工具,只能看到用戶層面的表,視圖,而系統層面的表,視圖,函數是無法看到的,這些表,視圖和函數好像也可以稱之為內模式;而這些視圖,函數的作用是非常大的,其中pg_stat 族系統視圖可以得到數據庫的詳細運行信息…

網絡安全護網實戰:攻擊手段解析與防御策略

在網絡安全領域,護網行動中對各類攻擊方式和漏洞原理的掌握至關重要。本文將詳細解析常見的攻擊方式及其背后的漏洞原理,幫助大家提升護網技能。一、常見攻擊方式及漏洞原理1. SQL注入漏洞? 定義:將惡意的數據庫語句注入到后臺數據庫去執行&…

使用alist+RaiDrive+webdav將百度夸克網盤變為本地電腦磁盤方法教程

由于每天都要操作網盤不下十幾次,頻繁啟動網盤比較麻煩。 使用百度夸克網盤的webdav服務可以將百度夸克網盤掛載到本地電腦上,就像操作本地電腦硬盤一樣操作網盤,非常方便。我們以alistraidrive為例演示。 首先打開百度網盤pan.baidu.com&a…

C# 入門學習教程(二)

文章目錄一、操作符詳解1、操作符概覽2、操作符的本質3、操作符的優先級4、同級操作符的運算順序5、 各類操作符的示例二、表達式,語句詳解1. 表達式的定義2. 各類表達式概覽3. 語句的定義4. 語句詳解一、操作符詳解 C# 中的操作符是用于執行程序代碼運算的符號&am…

Linux內核深度解析:IPv4策略路由的核心實現與fib_rules.c源碼剖析

深入探索Linux網絡棧的規則引擎,揭秘策略路由如何通過多級路由表實現復雜流量控制 在Linux網絡棧中,路由決策遠不止簡單的目的地址匹配。策略路由(Policy Routing)允許根據源地址、TOS值、端口等復雜條件選擇不同的路由路徑。本文將深入剖析實現這一功能的核心源碼——net/…

【UE5】虛幻引擎的運行邏輯

UE5的運行邏輯可以分為引擎啟動流程和游戲運行流程兩個部分。引擎啟動流程一、平臺入口&引擎主流程初始化1、系統入口不同的平臺會有不同的入口。在Windows平臺,入口是Launch模塊下的\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp文件中的W…

大數據學習1:Hadoop單機版環境搭建

1.基礎知識介紹 Flume采集日志。Sqoop采集結構化數據,比如采集數據庫。 存儲到HDFS上。 YARN資源調度,每臺服務器上分配多少資源。 Hive是基于Hadoop的一個數據倉庫工具,提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行…

深入理解PHP中的命名空間和自動加載機制

首先,讓我們來討論命名空間。PHP的命名空間是一種對代碼進行邏輯分組的機制,它允許開發者將函數、類和常量封裝在不同的命名空間中。這樣做的好處在于可以避免全局范圍內的名稱沖突。例如,你可能在你的項目中使用了一個名為"Database&qu…

學習:JS[3]數組的增刪改查+函數+作用域

一.操作數組1.改2.增arr.push(新增的內容):將一個或多個元素添加到數組的結尾arr.unshift(新增的內容):方法將一個或多個元素添加到數組的開頭,并返回該數組的長度3.刪除arr.pop():方法從數組中刪除最后一個元素,不帶參數,并返回元素的值arr.shift():方法從數組中刪除第一個元素…

從0到1搭建ELK日志收集平臺

ELK是什么 ELK 是指 Elasticsearch、Logstash 和 Kibana 這三種工具的組合,通常用于日志分析、數據搜索和可視化。它們分別承擔不同的功能,形成了強大的數據處理和分析平臺: Elasticsearch:一個分布式搜索引擎,擅長實時…

Qt:圖片切割

void MainWindow::on_action_slice_triggered() {QDialog *dialog new QDialog(this);dialog->setWindowTitle("切割");dialog->setFixedSize(200, 150);QVBoxLayout *vbox new QVBoxLayout;QHBoxLayout *hbox new QHBoxLayout;QLabel *label new QLabel(&…

BabelDOC,一個專為學術PDF文檔設計的翻譯和雙語對比工具

你是否也有這樣的困境,面對一篇學術論文,即使英語水平不錯,仍需反復查詞典,尤其是遇到專業術語和復雜長句,翻譯軟件又常常不能很好地處理學術PDF的排版,導致翻譯結果混亂不堪。 現在,解決你煩惱…

Python之面向對象和類

一.類1.類的定義:class 類名:“”“注釋 ”“”pass2.實例的創建:實例 類名(parameterlist)parameterlist:定義類時__init__()方法的參數,如果該方法只有一個self參數,parameterlist可以省略class Goose()…

【力扣 困難 C】329. 矩陣中的最長遞增路徑

目錄 題目 解法一 題目 待添加 解法一 int max(int a, int b) {return a > b ? a : b; }int search(int** matrix, int m, int n, int i, int j, int (*dp)[n]) {if (dp[i][j]) {return dp[i][j];}int len 0;if (i > 0 && matrix[i - 1][j] > matrix[i]…

Blueprints - UE5的增強輸入系統

一些學習筆記歸檔;增強輸入系統由兩部分組成:Input Action和Input Mapping ContextInput Action是輸入操作的映射(操作中比如有移動、跳躍等),Input Mapping Context是輸入情境的映射(對各種操作的具體按鍵…