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、词云传列表和传字典有什么区别?

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

相关推荐
李高钢1 小时前
Python Tornado 框架入门:从零搭建你的第一个异步 Web 应用
前端·python·tornado
hanlin031 小时前
刷题笔记:力扣第287题-寻找重复数
笔记·算法·leetcode
你想知道什么?2 小时前
神经网络-学习笔记
笔记·神经网络·学习
ocean21032 小时前
2025-2026年Python大厂面试高频问题
python·面试·面试经验
xn71332 小时前
实测 Codex CLI 0.154.0:response.failed 为什么会被 idle timeout waiting for SSE 覆盖
python·openai
李高钢2 小时前
Python Flask 框架入门:从零搭建你的第一个 Web 应用
前端·python·flask
码农学院2 小时前
外贸独立站GEO实战:用 Python 自动生成多语言 llms.txt 和 Schema 站点地图
人工智能·python·chatgpt·geo·geo优化·ai优化aio
jsjzsl22 小时前
独立自由度框架下核聚变的本体论本质与商业化技术新路径
人工智能·python·算法
Thomas.Sir3 小时前
第45课:TensorFlow|异常检测实战【工业设备数据故障识别模型搭建】
人工智能·python·tensorflow