当前位置: 首页 > article >正文

Python基于jieba和wordcloud绘制词云图

在这里插入图片描述

【Cesium】自定义材质,添加带有方向的滚动路线

  • 🍖 前言
  • 🎶一、实现过程
  • ✨二、代码展示
  • 🏀三、运行结果
  • 🏆四、知识点提示


🍖 前言

Python基于jieba和wordcloud绘制词云图


🎶一、实现过程

  1. 读取文本信息,采用jieba进行分词统计
  2. wordcloud配合matplotlib进行词云绘制(可以选择一张词云的背景轮廓图,本实例选择一张动物轮廓)
  3. 将词云图保存到本地、展示出来

✨二、代码展示

以下是组件源码(未包含自定义的材质类):

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np


# 读取文本文件
def readText(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        text = f.read()
    return text


# 对文本进行分词
def segmentText(text):
    # 使用jieba进行分词,精确模式
    words = jieba.cut(text)
    # 过滤掉单个字符的词
    filtered_words = [word for word in words if len(word) > 1]
    return filtered_words


# 统计词频
def countWords(words):
    word_counts = {}
    for word in words:
        if word in word_counts:
            word_counts[word] += 1
        else:
            word_counts[word] = 1
    # 按词频降序排序
    word_counts = dict(sorted(word_counts.items(), key=lambda x: x[1], reverse=True))
    return word_counts


# 生成词云
def generateWordcloud(word_counts, background_image_path):
    # 读取背景图片
    background_image = Image.open(background_image_path)
    mask = np.array(background_image)
    # 创建WordCloud对象
    wordcloud = WordCloud(
        font_path='simhei.ttf',
        background_color='white',
        max_words=200,
        mask=mask
    )
    wordcloud.generate_from_frequencies(word_counts)
    return wordcloud


# 显示词云
def showWordcloud(wordcloud):
    plt.figure(figsize=(10, 6))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.savefig('wordcloud.png')
    plt.show()

# 输出词频前十名
def outputTop10(word_counts):
    top10 = dict(list(word_counts.items())[:10])
    for word, count in top10.items():
        print(f'{word}: {count}')

if __name__ == "__main__":
    text = readText('yourTxt.txt')
    words = segmentText(text)
    word_counts = countWords(words)
    background_image_path = 'yourImg.jpg'
    wordcloud = generateWordcloud(word_counts, background_image_path)
    showWordcloud(wordcloud)
    outputTop10(word_counts)

🏀三、运行结果

运行成功展示:
在这里插入图片描述

请添加图片描述

🏆四、知识点提示

1.采用jieba进行分词,去除长度为1的分词
2.wordcloud配合matplotlib进行词云图的绘制
3.文本路径和图片路径需要替换掉你自己的


http://www.kler.cn/a/488467.html

相关文章:

  • gateway在eureka注册报java.lang.IndexOutOfBoundsException
  • Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求
  • 基于Spring Boot的宠物健康顾问系统的设计与实现(LW+源码+讲解)
  • 国产编辑器EverEdit - 扩展脚本:关闭所有未修改文档
  • Docker Desktop的使用方法
  • 什么是Transformer模型中的KV缓存:上下文新增那之前计算的KV还可用,在原有基础上对新增的进行计算就行
  • opencv 学习(3)
  • js代理模式
  • 用c实现C++类(八股)
  • 【网络云SRE运维开发】2025第2周-每日【2025/01/09】小测-【第9章 VRRP原理及基本配置考试】理论和实操
  • UniAPP和Vue3生命周期hook
  • 【计算机网络】课程 实验二 交换机基本配置和VLAN 间路由实现
  • mysql和redis的最大连接数
  • Linux之线程池与单例模式
  • GPT-1模型详解及代码复现
  • 利用Python爬虫获取义乌购店铺所有商品列表:技术探索与实践
  • 开启Excel导航仪,跨表跳转不迷路-Excel易用宝
  • IntelliJ IDEA中Maven项目的配置、创建与导入全攻略
  • windows C#-泛型类型参数的约束详解(一)
  • 算法-盒子中小球的最大数量