使用python生成定制化词云的代码示例

 更新时间:2024年09月04日 10:45:07   作者:码银  
词云,作为一种流行的数据可视化形式,能够将大量文本数据中的关键词以视觉化的方式呈现,让我们迅速捕捉到文本的核心,本文将通过Python编程语言,使用jieba和wordcloud库,生成一个具有特定形状的词云,需要的朋友可以参考下

引言

数据可视化已成为我们理解复杂信息的关键工具。词云,作为一种流行的数据可视化形式,能够将大量文本数据中的关键词以视觉化的方式呈现,让我们迅速捕捉到文本的核心。本文将通过Python编程语言,使用jieba和wordcloud库,并基于斗破苍穹第一章的内容,生成一个具有特定形状的词云。

环境搭建

在开始之前,确保你的Python环境中安装了必要的库。如果尚未安装,可以通过以下命令进行安装:

pip install matplotlib 
jieba 
wordcloud 
numpy 
pillow

读取与准备文本

我们将使用《斗破苍穹第一章》的文本作为示例。首先,确保文本文件以UTF-8编码保存,以避免编码错误:

with open('斗破苍穹第一章.txt', 'r', encoding='utf-8') as file:
    text = file.read()

中文分词

中文文本处理的第一步是分词。我们使用jieba库,它是中文文本分词的常用工具:

import jieba
cut_text = jieba.cut(text)
word = ' '.join(cut_text)

定义停用词

在生成词云之前,我们需要定义一组停用词,以排除那些在文本中频繁出现但对分析没有太大意义的词:

    stopwords={
        '了', '的', '和', '是', '我', '你', '这', '就', '有', '在', '也', '一', '不', '人', '都', '一个',
        '我们', '他', '她', '得', '地', '很', '到', '说', '要', '去', '上', '说', '知道', '能', '看',
        '自己', '出来', '过', '着', '听', '觉得', '但是', '而且', '因为', '所以', '虽然', '如果', '就是',
        '只有', '可以', '什么', '哪', '哪个', '那些', '什么', '怎么', '怎样', '这么', '那么', '这样', '那样',
        '一点', '一些', '一点', '一些', '一下', '一下', '一会儿', '一点儿', '现在', '然后', '再', '曾经',
        '曾经', '曾经', '曾经', '或者', '或者', '以及', '或者', '跟', '跟', '同', '和', '与', '跟', '同',
        '跟', '与', '跟', '和', '与', '而且', '并且', '或者', '还是', '或者', '或者', '又', '也', '还',
        '再', '另外', '那',
        '然后',
        '接着',
        '之后',
        '起来',
        # ... 其他语气助词 ...
    }

选择词云形状

词云的形状可以是任何形式,本例中我们将使用一张图片来定义词云的形状:

from PIL import Image
import numpy as np

pic = Image.open('test1.png')
pic_array = np.array(pic)

现在,我们将所有元素结合在一起,生成词云:

import wordcloud
from matplotlib import colors

color_list = ['black', 'red', 'blue', 'green']
colormap = colors.ListedColormap(color_list)

wc = wordcloud.WordCloud(
    mask=pic_array,
    font_path='simhei.ttf',
    background_color='white',
    colormap=colormap,
    stopwords=stopwords
)

wc.generate(word)

显示词云

最后,我们使用matplotlib库来显示我们生成的词云:

plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()

结语

通过上述步骤,我们不仅学习了如何使用Python生成词云,还了解了如何通过jieba进行中文分词,以及如何使用wordcloud库自定义词云的生成。

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

# 读取文本文件
str1 = open('斗破苍穹第一章.txt', 'r', encoding='utf-8').read()  # 确保使用正确的编码

cut_text = jieba.cut(str1)    # 分词处理
word = ' '.join(cut_text)       # 以空格分割文本


color_list = ['black', 'red','blue','green']
colormap = colors.ListedColormap(color_list)  # matplotlib色图

# 使用Pillow读取图片
pic = Image.open('test1.png')  # 读取图片

# 将Pillow图像转换为numpy数组
pic_array = np.array(pic)

wc = wordcloud.WordCloud(
    mask=pic_array,               # 使用转换后的数组作为背景图形
    font_path='simhei.ttf',       # 可以改成自己喜欢的字体
    background_color='white',     # 词云图背景颜色可以换成自己喜欢的颜色
    colormap=colormap,
    stopwords={
        '了', '的', '和', '是', '我', '你', '这', '就', '有', '在', '也', '一', '不', '人', '都', '一个',
        '我们', '他', '她', '得', '地', '很', '到', '说', '要', '去', '上', '说', '知道', '能', '看',
        '自己', '出来', '过', '着', '听', '觉得', '但是', '而且', '因为', '所以', '虽然', '如果', '就是',
        '只有', '可以', '什么', '哪', '哪个', '那些', '什么', '怎么', '怎样', '这么', '那么', '这样', '那样',
        '一点', '一些', '一点', '一些', '一下', '一下', '一会儿', '一点儿', '现在', '然后', '再', '曾经',
        '曾经', '曾经', '曾经', '或者', '或者', '以及', '或者', '跟', '跟', '同', '和', '与', '跟', '同',
        '跟', '与', '跟', '和', '与', '而且', '并且', '或者', '还是', '或者', '或者', '又', '也', '还',
        '再', '另外', '那',
        '然后',
        '接着',
        '之后',
        '起来',
        # ... 其他语气助词 ...
    }
)

wc.generate(word)  # 生成词云

# 显示词云图
plt.imshow(wc, interpolation='bilinear')  # 使用bilinear插值可以使词云看起来更平滑
plt.axis('off')
plt.show()

到此这篇关于使用python生成定制化词云的代码示例的文章就介绍到这了,更多相关python生成定制化词云内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python+OpenCV实现图片中的圆形检测

    Python+OpenCV实现图片中的圆形检测

    这篇文章主要介绍了如何利用Python+OpenCV实现检测图片中的圆形,文中的示例代码讲解详细,感兴趣的小伙伴快跟随小编一起学习一下
    2022-04-04
  • Python数学建模学习模拟退火算法多变量函数优化示例解析

    Python数学建模学习模拟退火算法多变量函数优化示例解析

    模拟退火算法借鉴了统计物理学的思想,是一种简单、通用的启发式优化算法,并在理论上具有概率性全局优化性能,因而在科研和工程中得到了广泛的应用
    2021-10-10
  • python 中的 return 解析

    python 中的 return 解析

    这篇文章主要介绍了python 中的 return 解析,return 语句用于退出函数,向调用方返回一个表达式。执行到 return 语句时,会退出函数,return 之后的语句不再执,下文下边就利用举例给大家讲解该内容得相关资料,需要的小伙伴可以参考一下
    2022-02-02
  • pyqt5实现俄罗斯方块游戏

    pyqt5实现俄罗斯方块游戏

    这篇文章主要介绍了pyqt5实现俄罗斯方块游戏,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Flask自定义序列化超详细讲解

    Flask自定义序列化超详细讲解

    序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。php将数据序列化和反序列化会用到两个函数:serialize 将对象格式化成有序的字符串、unserialize 将字符串还原成原来的对象
    2022-11-11
  • Tensorflow中tf.ConfigProto()的用法详解

    Tensorflow中tf.ConfigProto()的用法详解

    今天小编就为大家分享一篇Tensorflow中tf.ConfigProto()的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 详解将Python程序(.py)转换为Windows可执行文件(.exe)

    详解将Python程序(.py)转换为Windows可执行文件(.exe)

    这篇文章主要介绍了详解将Python程序(.py)转换为Windows可执行文件(.exe),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-07-07
  • 浅谈python3发送post请求参数为空的情况

    浅谈python3发送post请求参数为空的情况

    今天小编就为大家分享一篇浅谈python3发送post请求参数为空的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python中的for循环示例详解

    Python中的for循环示例详解

    Python中的for循环是一种迭代循环,可以迭代容器中的每一个元素,本文通过实例代码给大家介绍Python中的for循环,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • 使用python matplotlib contour画等高线图的详细过程讲解

    使用python matplotlib contour画等高线图的详细过程讲解

    最近学习了matplotlib中的高线图的绘制,所以下面这篇文章主要给大家介绍了关于使用python matplotlib contour画等高线图的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论