02词云生成器

1.任务目标

基于 Task01 词频统计的核心逻辑,复刻文本清洗、词频统计代码,结合第三方库生成英文词云图

2.步骤

步骤1:安装第三方依赖库

bash 复制代码
pip install wordcloud matplotlib

步骤2:复刻基础功能代码

导入 string 模块,完整复刻读取文件、清洗文本、统计词频三个核心函数

python 复制代码
# 第一步 读取文章
def read_file(filename):
    f = open(filename, encoding = "utf-8") # 读取文件
    text = f.read()         # 把 f 里的内容读出来,存进变量 text
    # print(text)           # 验证
    return text
# 第二步 转小写
def clean_split(text):
    text_lower = text.lower() # 将所有单词转成小写,并存进text_lower
    # print(text_lower) # 验证
    # 第三步 去标点
    text_clean = ""
    for ch in text_lower:
        if ch not in string.punctuation:
            text_clean += ch
    # print (text_clean) # 验证
    # 第四步 将单词切分放入列表
    words = text_clean.split() # 切割成单词,返回列表words
    print(len(words))
    return words
# print(words) # 验证
# 第五步 统计单词
def count_words(text):
    counts = {}
    for word in text:
        if word in counts:        # 这个单词已经见过了
            counts[word] += 1
        else:                     # 头一次见
            counts[word] = 1
    return counts

步骤4:封装词云生成函数

自定义 generate_wordcloud(counts) 函数,接收词频字典,配置词云尺寸、背景色、最大词数,生成并保存、展示词云图片

python 复制代码
# 定义词云生成函数:接收词频字典,生成、保存、展示词云图
def generate_wordcloud(counts):
    # 配置词云画布基础参数:图片宽、高、背景色、最大展示单词数
    wc = WordCloud(
        width=1000,
        height=600,
        background_color="white",
        max_words=100
    )

    # 根据词频字典自动生成词云:频次越高、字体越大,无需手动排序
    wc.generate_from_frequencies(counts)

    # 将生成的词云保存为图片,自动存入当前项目文件夹
    wc.to_file("wordcloud.png")

    # 加载词云图片用于窗口展示
    plt.imshow(wc)
    # 关闭坐标轴,界面更整洁
    plt.axis("off")
    # 弹出窗口展示最终词云效果图
    plt.show()

步骤5:串联代码执行流程

python 复制代码
######主函数#####
if __name__ == "__main__":
    # 1. 读取本地文本文件
    content = read_file("article.txt")
    # 2. 文本清洗,得到纯单词列表
    word_list = clean_split(content)
    # 3. 统计词频,生成词频字典
    word_counts = count_words(word_list)
    # 4. 传入词频字典,生成并展示词云图
    generate_wordcloud(word_counts)

步骤6:运行代码验证效果

运行程序,task02_wordcloud 目录下自动生成 wordcloud.png 图片,即为运行成功

3.总结

1、为什么独立文件夹下,不推荐导入 Task01 代码?

独立文件夹目的是项目解耦、任务隔离,保证每个项目可独立运行。跨目录依赖会导致代码耦合、移植报错,因此采用复刻代码方式。

2、词云传列表和传字典有什么区别?

传列表:库内部重复统计词频,性能差、不可控;传字典:我们提前统计好权重,精准、高效。

相关推荐
不是万能的豆学长2 小时前
filetidy 文件整理助手:一键归类 + 规范重命名(Python 零依赖单文件工具)
大数据·开发语言·python·技术美术
gCode Teacher 格码致知3 小时前
Pandas教学-18:number与numeric的区别
python·pandas
梦想不只是梦与想6 小时前
Python 中subprocess 模块:执行外部命令
python·subprocess·调用外部命令
懂点Tech6 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
ACP广源盛139246256737 小时前
Type-C 扩展坞方案选型笔记:DP1.4 转 HDMI2.0 桥接方案评估@ACP
笔记·硬件架构·hdmi·国产芯片·扩展坞
ss2739 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群
数据库·笔记·postgresql
ss2739 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 21 PostgreSQL进程与内存架构介绍
数据库·笔记·postgresql
爱上纯净的蓝天11 小时前
不用云做 RAG:一个本地笔记问答工具的取舍与坑
python·开源·大模型·rag·本地部署
cspttty11 小时前
2027风险管理岗准备路线:数学与应用数学如何补齐金融、SQL与Python
开发语言·python·金融
用户83562907805111 小时前
如何使用 Python 格式化 Excel 单元格中的长文本
后端·python