python制作词云图

2023-10-26

准备基础模块

  • matplotlib – 数据可视化模块
  • numpy – 数值计算模块
  • jieba – 分词模块
  • wordcloud – 词云模块
  • Pillow(PIL) – 图像处理模块

同时准备遮罩图和文本信息

实现代码:

#导入matplotlib模块pyplot对象并使用as给对象起个别名plt
import matplotlib.pyplot as plt    #matplotlib数据可视化模块
import jieba                       #导入jieba分词模块
import wordcloud                   #导入词云图模块
from wordcloud import ImageColorGenerator
import numpy as np                 #导入numpy模块
from PIL import Image              #从Pillow(PIL)模块中导入Image对象 图像处理模块

# 读取文本文件
text = open('elsa.txt','r').read() #elsa.txt可以改成自己的文件
cut_text = jieba.cut(text)         #分词处理
word = ' '.join(cut_text)          #以空格分割文本
#读取图片
pic = np.array(Image.open('elsa.png'))
image_colors = ImageColorGenerator(pic)  #生成图片颜色中的颜色(使用图片自带颜色)
#生成词云图
wd = wordcloud.WordCloud(
    mask=pic,                      #背景图形,如果根据图片绘制,则需要设置
    font_path='simhei.ttf',        #可以改成自己喜欢的字体(因为有中文字体)
    background_color='white',      #词云图背景颜色可以换成自己喜欢的颜色
    )
wd.generate(word)                  #生成词云
# 图片颜色渲染词云图的颜色,用color_func指定
plt.imshow(wd.recolor(color_func=image_colors), interpolation='bilinear')#显示词云图
plt.axis('off')#关闭显示x轴、y轴下标
plt.show()

下面的例子对文本进行了一次处理,颜色按照设定值显示(不一定用图片自带颜色)

import re
import matplotlib.pyplot as plt
from matplotlib import colors
import jieba
import wordcloud
from wordcloud import WordCloud
import imageio
# 读取文件
str1 = open('joker.txt','r').read()
#文本数据处理
pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|\[|\]|  ;|,|。|"')
str1 = re.sub(pattern, '', str1)
#自定义小丑颜色
color_list=['darkslategray','red','orange','darkred']
#多种颜色
'''color_list=['LightCoral','RosyBrown','IndianRed','Red','Brown','FireBrick'
            ,'DarkRed','Maroon','Gainsboro','LightGray'
            ,'Silver','DarkGray','Gray','DimGray','Black']'''
colormap=colors.ListedColormap(color_list) 
#文本分词处理制作词云
cut_text = jieba.cut(str1, cut_all=True)     # cut_all=False 表示采用精确模式
word = ' '.join(cut_text)
#图片背景
pic = imageio.imread('小丑.png')
#设置中文停用词
stopwords = set('')
stopwords.update(['展开','回应','一个','影评','可能','一部','没有','我们','这个','这部','电影','就是'
                    ,'大家','不是','只是','因为','一些','本片']) #通过stopwords.update()方法手动添加停用词
#生成词云图
wd = wordcloud.WordCloud(
    mask=pic,
    font_path='simhei.ttf',
    colormap=colormap,
    stopwords = stopwords,
    background_color='white'
    )
#将长文本分词并去除屏蔽词
process_word = WordCloud.process_text(wd,word)
#对文本词排序(根据字典中值的大小,对字典中的项排序)
sort = sorted(process_word.items(),key=lambda x:x[1],reverse=True)
print(sort[:50]) # 输出文本词频最高的前50个词
wd.generate(word)
plt.imshow(wd)
plt.axis('off')
plt.show()

过滤词也可以读取文件或数据库中内容

#读取停止词文件并保存到列表中 根据已有停用词库遍历文本滤除停用词
stopwords = [line.strip() for line in open('stopwords.txt').readlines()]
newword=''
#滤除停用词
for s in word:
    if s not in stopwords:
         newword += s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python制作词云图 的相关文章

随机推荐

  • Xray-基础详细使用

    一 Xray介绍 Xray 是一款功能强大的安全评估工具 由多名经验丰富的一线安全从业者呕心打造而成 可支持与AWVS BP等众多安全工具联合使用 二 Xray简易架构 说明 了解 Xray 的整体架构可以更好的理解客户端和配置文件的设置
  • for循环详解

    For循环详解 举例如图下 首先for循环相比其他循环可以把条件写在一起如图所示 这变量 条件 变化必不可少其他循环也是 但是for循环有一个点它在初始变量的时候 进入循环之前就已经执行了一次 条件是每次进入循环之前都会执行并且判断 还有当
  • 【git】git rebase -i 合并多次提交

    1 概述 git rebase i 命令用于交互式地重新应用提交历史 其中 i 选项表示以交互方式进行操作 通过使用这个命令 您可以合并 删除 编辑 重排等操作提交历史 从而修改提交的顺序或合并多次提交 下面是使用 git rebase i
  • Linux简介

    1 1操作系统是什么 操作系统概述 要讲明白 Linux 是什么 首先得说说什么是操作系统 计算机系统是指按用户的要求 接收和存储信息 自动进行数据处理并输出结果信息的系统 它由硬件子系统 计算机系统赖以工作的实体 包括显示屏 键盘 鼠标
  • Xcode9 xcodebuild 命令行打包遇到的坑与解决方案

    主要涉及的打包脚本命令 if xcodeversion lt 830 then Xcode 8 3 以下打包时使用该脚本 xcodebuild exportArchive exportFormat ipa archivePath schem
  • 十一、文件的读写

    一 文件的读写模式 1 文件常用的打开模式 r 只能读 r 可读可写 不会创建不存在的文件 如果直接写文件 则从顶部开始写 覆盖之前此位置的内容 如果先读后写 则会在文件最后追加内容 w 可读可写如果文件存在则覆盖整个文件 不存在则创建 w
  • 数学建模 —— 降维算法

    文章目录 前言 数据降维的作用 一 主成分分析 PCA 1 介绍 2 算法流程 3 主成分分析的说明 二 因子分析 FA 1 介绍 2 算法流程 3 因子分析和主成分分析的对比 三 典型相关性分析 CCA 1 介绍 2 算法思路 3 算法流
  • 用位运算实现两个整数的加减乘除运算

    位运算的思想可以应用到很多地方 这里简单的总结一下用位运算来实现整数的四则运算 1 整数加法 int Add int a int b for int i 1 i i lt lt 1 if b i for int j i j j lt lt
  • 网络七层及四层协议通俗详解

    1 OSI开放式网络七层协议模型 总体而言 理解记忆 我点击一个网络请求 假如使用http协议 这就是应用层 用户选择具体的协议 这个请求需要传输数据 但是不同系统因为编码等方式不同 无法识别彼此发送的消息 这个时候表示层就需要把数据整理成
  • 《剑指offer》读后感

    帮研二的学姐准备网易暑期实习的机试时 代码提交在一个OJ网站叫牛客网 出于好奇就多点了一下这个网站 看到 剑指offer 的在线编程专栏 就是把剑指offer中的题目都挂在了网上 可以在线判断是否AC 以前也总是听到学长们推荐该书 索性趁着
  • R语言实现样本量的估算(2)

    本文默认 0 05 sig level 0 2 power 根据研究需要可调整 导入包 library pwr 1 已知标准差和预期差异 1 单样本t检验 某治疗措施预期提高某物质水平8mg L 标准差为10mg L 单样本t检验 pwr
  • QVector用法详细介绍

    QVector类是动态数组的模板类 顺序容器 它将自己的每一个对象存储在连续的内存中 可以使用索引号来快速访问它们 使用前需要包含头文件 include
  • iOS(二)App第一次启动时出现的引导界面

    我们每次打开一个刚刚从AppStore下载下来的软件时 总会出来一个引导界面 有的是宣传产品 有的是介绍App的功能 最后再出来一个按钮正式进入到App 从此以后这个引导界面就再也不会出现了 除非你卸载重装 在查阅相关资料后 做了个简陋的引
  • 逆向爬虫06 bs4,xpath,pyquery实战

    逆向爬虫06 bs4 xpath pyquery实战 原本想要详细的对比一下这三个模块的使用方法 但是在实战的时候发现 只要遵循一个套路 抓取静态网页 即网页信息直接放在html源代码中 就比较容易了 一些使用细节上的问题 每个人遇到的都会
  • Unity Hub、unity、PlasticSCM安装

    目录 一 Unity Hub安装 二 Unity安装 三 PlasticSCM安装 一 Unity Hub安装 第一步 进入官网下载 地址 地址 第二步 安装 跟着提示走就行 二 Unity安装 第一步打开Unity Hub 激活许可证 点
  • 打印机服务器纸张属性不显示,为什么我的打印机能在打印机服务器属性里设置自定义纸张大小,却无法? 爱问知识人...

    问题原因及解决方法 在以往的Windows 98操作系统中 打印机属性里的 纸张大小 中有 自定义 一项 而Windows 2000和Windows XP中自定义的位置是不同于Windows 98的 这里用一个示例来表述 假定用户使用了一款
  • VMware中安装CentOS7

    在VMware中安装CentOS7 01 目录 CentOS7的下载 CentOS7的配置 CentOS7的安装 CentOS7的网络配置 自动获取IP 固定获取IP 02 安装前提 准备工作 提前下载和安装好VMware 下载centos
  • 环境扫描/透射电子显微镜气体样品架的真空压力和微小流量控制解决方案

    摘要 针对环境扫描 透射电子显微镜对样品杆中的真空压力气氛环境和流体流量精密控制控制要求 本文提出了更简单高效和准确的国产化解决方案 解决方案的关键是采用动态平衡法控制真空压力 真空压力控制范围为1E 03Pa 0 7MPa 采用压差法控制
  • Using Java to create customized virtual machine clones on VMWare infrastructure

    Hello Quite a while ago I was given a task to create a java module which would be able to create customized clones from
  • python制作词云图

    准备基础模块 matplotlib 数据可视化模块 numpy 数值计算模块 jieba 分词模块 wordcloud 词云模块 Pillow PIL 图像处理模块 同时准备遮罩图和文本信息 实现代码 导入matplotlib模块pyplo