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

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

相关推荐
DeepVisionary4 分钟前
阿里云上线旗舰多模态新模型,不公布跑分且限时14天退役
python·自动化
东莞市云毅网络有限公司5 分钟前
FAQ 覆盖度打分:TF-IDF 与向量嵌入双路召回的 Python 实现
python·数据清洗·rag·企业知识库·文档解析
爱笑的k1118 分钟前
nano-vllm 源码剖析:千行 Python 手写离线推理引擎的调度、显存与并行时序
开发语言·python·vllm
用户8356290780511 小时前
使用 Python 控制 Excel 工作表的分页位置
后端·python
用户8356290780511 小时前
Python 如何在 Word 中添加和管理文档变量
后端·python
Go Work3 小时前
两个等值条件摆着,MySQL 偏要全表扫
经验分享·笔记
Oll Correct3 小时前
Adobe illustrator 案例十四:花元素标志草图绘制
笔记·ui·adobe·illustrator
用户019027581614 小时前
Dify / Coze 低代码 Agent 怎么接 A 股行情?
python
Dumbness4 小时前
不传 day 参数,座位图显示全空:用 Python 标准库手写 Web 框架,请求到业务代码前的 5 个细节
后端·python
databook5 小时前
收上来一堆 Excel,怎么保证没改错
python·数据分析