python生成词云图

2023-11-07

python生成词云图

前言

python版本号:3.6.3
在网上看到词云图,一直觉得很有意思,最近没工作很空闲,就想着自己做一做
先放个效果图,这是用杰伦的三首歌《七里香》、《搁浅》、《借口》歌词文本做成的词云图。
在这里插入图片描述

python modules

需要使用的python包有:
wordcloud、jieba、numpy、cv2
使用pip安装即可

pip install wordcloud
pip install jieba
pip install numpy
pip install opencv-python

wordcloud参数说明

代码核心是wordcloud部分,下面列一下wordcloud的参数

font_path : string  #字体路径,如:font_path = '黑体.ttf'

width : int (default=400) #输出的图像宽度,默认为400像素

height : int (default=200) #输出的图像高度,默认为200像素

prefer_horizontal : float (default=0.90) #词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )

mask : nd-array or None (default=None) #背景布,除去纯白部分都会用来填充词云

scale : float (default=1) #按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍

min_font_size : int (default=4) #显示的最小的字体大小

max_font_size : int or None (default=None) #显示的最大的字体大小

font_step : int (default=1) #字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差

max_words : number (default=200) #要显示的词的最大个数

stopwords : set of strings or None #设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS。很多文章都没有说清楚要怎么写屏蔽词,其实就是一个list。

background_color : color value (default=”black”) #背景颜色,如background_color='white',背景颜色为白色

mode : string (default=”RGB”) #当参数为“RGBA”并且background_color不为空时,背景为透明

relative_scaling : float (default=.5) #词频和字体大小的关联性

color_func : callable, default=None #生成新颜色的函数,如果为空,则使用 self.color_func

regexp : string or None (optional) #使用正则表达式分隔输入的文本

collocations : bool, default=True #是否包括两个词的搭配

colormap : string or matplotlib colormap, default=”viridis” #给每个单词随机分配颜色,若指定color_func,则忽略该方法

random_state : int or None  #为每个单词返回一个PIL颜色

wordcloud输出形式

fit_words(frequencies)  #根据词频生成词云
generate(text)  #根据文本生成词云
generate_from_frequencies(frequencies[, ...])   #根据词频生成词云
generate_from_text(text)    #根据文本生成词云
process_text(text)  #将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies) )
recolor([random_state, color_func, colormap])   #对现有输出重新着色。重新上色会比重新生成整个词云快很多
to_array()  #转化为 numpy array
to_file(filename)   #输出到文件

jieba模块的使用

jieba是中文分词第三方库
一共有三种模式:精确模式、全模式、搜索引擎模式
精确模式下,把文本精确切分,不存在重复词语
全模式,文本中所有可能词语都扫描出来,存在重复
搜索引擎模式,基于精确模式,对长词再次切分

方法 含义
jieba.cut(string) 精确模式,返回一个生成器generator
jieba.cut(string,cut_all=True) 全模式,输出文本中所有词语,返回一个生成器generator
jieba.cut_for_search(string) 搜索引擎模式,返回一个生成器generator
jieba.lcut(string) 精确模式,返回一个列表模式
jieba.lcut(string,cut_all=True) 全模式,返回一个列表类型
jieba.lcut_for_search(string) 搜索引擎模式,返回列表类型
jieba.add_word(word) 向分词词典中添加新词

python中list容量有限,因此引入了生成器generator的概念,generator保存的是算法,list是[],generator是()。
可用for循环打印generator:

for i in generator:
	print(i)

代码演示

以下代码是一个示例,并不是生成上面示例图片的代码

# -*- coding: utf-8 -*- 
from wordcloud import WordCloud
import jieba
import cv2
import numpy as np

def read_word(text_path):
    with open(text_path,'r',encoding='utf-8') as f:
        cut_word = jieba.cut(f.read())
    result = " ".join(cut_word)
    img = cv2.imread('bg_java.png')
    img_array = np.array(img)
    stop_words = ["开发","工作","优先","具有","要求","公司","PHP","参与","熟悉","任职"]
    
    wc = WordCloud(
        font_path='simhei.ttf',     #字体
        background_color='white',   #背景颜色
        width=1000,
        height=600,
        max_font_size=80,
        min_font_size=10,
        mask = img_array,  #背景图片
        max_words=1000,
        stopwords=stop_words
    )
    wc.generate_from_text(result)
    wc.to_file('job_java.png')
    
if __name__ == '__main__':
    read_word("job.txt")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python生成词云图 的相关文章

随机推荐

  • unity shader中一些空间转换方法

    1 模型空间 世界空间 观察空间 裁剪空间 建模时在模型空间进行 模型自带的坐标均为模型空间下的表示 当模型被放到世界坐标系中时 表达某个模型的位置使用的是世界空间下的坐标 所以模型上对应的某一个点 必须相应的转化为世界空间下的坐标 从模型
  • Spark学习总结(一)

    RDD及其特点 1 RDD是Spark的核心数据模型 但是个抽象类 全称为Resillient Distributed Dataset 即弹性分布式数据集 2 RDD在抽象上来说是一种元素集合 包含了数据 它是被分区的 分为多个分区 每个分
  • rsync启动脚本

    rsync启动脚本 01 bin bash www ahlinux com 02 03 rsyncd This shell script takes care of starting and stopping 04 standalone r
  • 教程:在ZYBO板卡实现PL-PS交互

    目的 学会vivado PL PS协同开发流程 平台 ZYBO开发板 zynq 7010 clg400芯片 工具 Vivado 2014 4 功能 实现PL PS协同通信 PS通过AXI总线读取PL部分的GPIO状态 对应zybo的四个开关
  • 普通程序员和大神级程序员有什么区别?

    嘿 大家周一好呀 我是播妞 听说最近大家都在反思自己为什么没有涨薪 明明工作很努力 996 随时处于待命状态 怎么每次涨薪都没自己 而有些人明明什么也没干 薪资却歘歘歘的往上涨 这是道德的沦丧还是人性的扭曲 难道自己真的不够努力 程序员 如
  • cocos2dx-lua开发旅程(一)

    最近要做一个手游项目 打算用cocos2dx来做 我也是初学者 网上很多书籍和资料都是采用cocos2dx的c 版本来做开发示例的 很少关于cocos2dx和lua怎么结合在实际项目中的教程 这使得我很痛苦 所以我写下这一系列教程 希望跟我
  • react扩展程序_可扩展的React应用程序的最佳实践和技巧

    react扩展程序 重点 Top highlight When starting a new React project it s always a good idea to put together some guidelines tha
  • Linux系统的 vmware 虚拟机扩展 磁盘容量

    1 关闭虚拟机 2 点击 编辑虚拟机设置 gt 磁盘 gt 扩展 输入扩展后的大小 然后点击 扩展 完成后点击 确定 即可 3 安装gparted sudo apt get install gparted 4 在终端中执行gprated即可
  • pandas日期格式

    文章目录 pandas中的日期格式 一 提取日期的属性 二 日期的偏移操作 三 日期格式化 pandas中的日期格式 日期格式的字符串转换为日期格式使用pd to datetime data Order Date pd to datetim
  • motrix下载没速度_现在流行的几个下载神器

    一 Motrix 一个完全替代迅雷及aria2的下载工具 Motrix官网地址 https motrix app zh CN 特性 简洁明了的图形操作界面 支持BT和磁力链任务 支持下载百度云盘资源 最高支持 10 个任务同时下载 单任务最
  • c++ 传入字符串 带返回值_C/C++面试之17道经典编程题目分析!推荐收藏

    以下是C C 面试题目 共计17个题目 其中涵盖了c的各种基础语法和算法 以函数接口设计和算法设计为主 这17个题目在C C 面试方面已经流行了多 年 大家需要抽时间掌握好 每一个题目后面附有参考答案 希望读者能够抽 时间做完题目后在看参考
  • 2021年国赛高教杯数学建模C题生产企业原材料的订购与运输解题全过程文档及程序

    2021年国赛高教杯数学建模 C题 生产企业原材料的订购与运输 原题再现 某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料 总体可分为 A B C 三种类型 该企业每年按 48 周安排生产 需要提前制定 24 周的原材
  • spring boot 获取jar包中的资源

    public static void getJarResourceFile String fileDir String desDir File dir new File desDir File separator fileDir if di
  • vscode远程调试代码

    目录 ssh连接 xdebug调试 ssh连接 vscode中使用插件 这里用虚拟机测试 这里用虚拟机测试 注意ssh是可以连接的 然后安装好remote后 点击左下角的 gt lt 在弹出的这个上选择connect to host连接一台
  • 【探索Linux】—— 强大的命令行工具 P.9(进程地址空间)

    阅读导航 前言 一 内存空间分布 二 什么是进程地址空间 1 概念 2 进程地址空间的组成 三 进程地址空间的设计原理 1 基本原理 2 虚拟地址空间 概念 大小和范围 作用 虚拟地址空间的优点 3 页表 四 为什么要有地址空间 五 总结
  • 变量的解构和解析

    1 数组的解构赋值 基本用法 按照一定的模式 从数组和对象中提取值 对变量进行赋值 let a b c 1 2 2 如果解构不成功就是 undefine 如下就是解构不成功的 let a let a b 2 如果等号右边不是数组将会报错 如
  • 如何获取客户端MAC地址

    收藏 如何获取客户端MAC地址 方法一 调用Windows的DOS命令 从输出结果中读取MAC地址 public static String getMACAddress String address String os System get
  • CKEditor在线编辑器

    CKEditor在线编辑器 CKEditor是个专门使用在网上属于开放源码的文字编辑器 它用于轻量化 不需要太复杂的安装步骤即可使用 它可以和PHP javascript asp java等不同的编程语言相结合 接下来介绍CKEditor在
  • jsp+ssm计算机毕业设计网络身份认证技术及方法【附源码】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP SSM mybati
  • python生成词云图

    python生成词云图 前言 python版本号 3 6 3 在网上看到词云图 一直觉得很有意思 最近没工作很空闲 就想着自己做一做 先放个效果图 这是用杰伦的三首歌 七里香 搁浅 借口 歌词文本做成的词云图 python modules