读取文件

读取并打印出前面100个字符

text=''

with open('./lagou-job1000-ai-details.txt','r') as f:

text=f.read()

f.close()

print(text[:100])

输出

职位描述:岗位职责:1.展开机器学习/深度学习等相关领域研究和开发工作;2.负责从事深度学习框架搭建,包括机器学习、图像处理等的算法和系统研发;3.支持公司相关产品深度学习相关研究;岗位要求:1.机器

jieba分词

#cell-2

import jieba

words = jieba.lcut(text)

cuted=' '.join(words)

print(cuted[:100])

输出被空格分开的文本:

职位 描述 : 岗位职责 : 1 . 展开 机器 学习 / 深度 学习 等 相关 领域 研究 和 开发 工作 ; 2 . 负责 从事 深度 学习 框架 搭建 , 包括 机器 学习 、 图像处理 等 的

安装wordcloud和matplotlib

推荐直接用 pip3 install wordcloud 进行安装。

如果是conda则要使用-c切换通道为conda-forge,命令是

conda install -c conda-forge wordcloud 可能比较慢,耐心等就好。

安装命令 pip3 install matplotlib 或 conda install matplotlib 。

生成词云对象

#cell-3

from wordcloud import WordCloud

fontpath='SourceHanSansCN-Regular.otf'

wc = WordCloud(font_path=fontpath, # 设置字体

background_color="white", # 背景颜色

max_words=1000, # 词云显示的最大词数

max_font_size=500, # 字体最大值

min_font_size=20, #字体最小值

random_state=42, #随机数

collocations=False, #避免重复单词

width=1600,height=1200,margin=10, #图像宽高,字间距,需要配合下面的plt.figure(dpi=xx)放缩才有效

)

wc.generate(cuted)

首先,默认情况wordcloud是不支持中文显示的,所以要先添加一个中文字体文件,一般是 .ttf或.otf 格式,你可以从网上搜索‘字体下载’找到想要的字体。上面代码中使用的是

WordCloud(...) 命令包含了很多参数,其中就包含了我们上面设定的字体路径 font_path 。

注意这里 width=1600,height=1200,margin=100 图像宽高只是原始图像的大小,至于后面显示出来的时候可能还会被放缩。它的更多参数可以查看下面链接

显示词云图

我们用matplotlib的imshow就是image-show把图片显示出来。

#cell-4

import matplotlib.pyplot as plt

plt.figure(dpi=100) #通过这里可以放大或缩小

plt.imshow(wc, interpolation='catrom',vmax=1000)

plt.axis("off") #隐藏坐标

可以得到如下图效果:

image.png

去除冗余单词

我们可以利用jieba的del_word功能去掉冗余单词。

修改cell-2代码:

#cell-2

import jieba

removes =['熟悉', '技术', '职位', '相关', '工作', '开发', '使用','能力','优先','描述','任职']

for w in removes:

jieba.del_word(w)

words = jieba.lcut(text)

cuted = ' '.join(words)

print(cuted[:100])

这里用for循环依次删除了各个冗余词,也可不用for循环,改为lcut之后对words进行处理:

words = jieba.lcut(text)

words = [w for w in words if w not in removes]

整体运行,得到下图:

image.png

区分中英文

如果我们只关注英文技术点,比如python,tensorflow等,那就忽略中文内容。

使用正则表达式来匹配提取哪些由a z小写字母和A Z大写字母加上0~9数字组成的单词。

修改cell-2如下:

#cell-2

import jieba

words = jieba.lcut(text)

import re

pattern = re.compile(r'^[a-zA-Z0-1]+$')

words = [w for w in words if pattern.match(w)]

cuted = ' '.join(words)

print(cuted[:100])

完整执行,得到下图:

image.png

我们可以从这个图中看到人工智能技术相关职位所需要的掌握的主要技能。

改变造型

我们让单词按照特定的造型来排列。首先我们需要一张造型图片,下面是一张AI文字造型图片,请把它右键另存为 ai-mask.png 文件。

image.png

前面在 wc = WordCloud(font_path=fontpath... 中有很多参数可以设置,其中就有mask遮罩参数,可以指定一张读取的图片数据,根据官方说明,这个数据应该是 nd-array 格式,这是一个多维数组格式(N-dimensional Array)。

我们使用PIL模块中的Image.open(‘…’)可以读取图片,然后利用numpy来转换为 nd-arry 格式。

修改cell-3,读取图片并增加mask参数:

#cell-3

from wordcloud import WordCloud

fontpath='SourceHanSansCN-Regular.otf'

import numpy as np

from PIL import Image

aimask=np.array(Image.open("ai-mask.png"))

wc = WordCloud(font_path=fontpath, # 设置字体

background_color="white", # 背景颜色

max_words=1000, # 词云显示的最大词数

max_font_size=100, # 字体最大值

min_font_size=5, #字体最小值

random_state=42, #随机数

collocations=False, #避免重复单词

mask=aimask, #造型遮盖

width=1600,height=1200,margin=2, #图像宽高,字间距,需要配合下面的plt.figure(dpi=xx)放缩才有效

)

wc.generate(cuted)

完整执行后得到下图:

image.png

可以看到原本图片上白色的部分被留空,有颜色的部分才会放置单词。

改进颜色

默认情况图片上文字的颜色都是随机的,我们可以使用图片来控制文字的颜色。

WordCloud 方法提供了一个color_func颜色函数的参数,用一个函数来改变每个词的颜色,在这里我们直接使用上面深色的AI图片颜色来控制。

from wordcloud import WordCloud

from wordcloud import ImageColorGenerator

fontpath='SourceHanSansCN-Regular.otf'

import numpy as np

from PIL import Image

aimask=np.array(Image.open("ai-mask.png"))

genclr=ImageColorGenerator(aimask)

wc = WordCloud(font_path=fontpath, # 设置字体

background_color="white", # 背景颜色

max_words=1000, # 词云显示的最大词数

max_font_size=100, # 字体最大值

min_font_size=5, #字体最小值

random_state=42, #随机数

collocations=False, #避免重复单词

mask=aimask, #造型遮盖

color_func=genclr,

width=1600,height=1200,margin=2, #图像宽高,字间距,需要配合下面的plt.figure(dpi=xx)放缩才有效

)

wc.generate(cuted)

在上面,我们引入了 from wordcloud import ImageColorGenerator 方法,它是直接用来生成一个color_func 颜色函数的,它括号里需要一个nd-array多维数组的图像,恰好我们上面的aimask就是这个格式,直接用就可以。

重新运行得到最开始看到的图,

和原图对比,就能看到文字颜色的规律了:

image.png

汇总

读取文件

jieba分词

利用re正则表达式选出英文单词

生成词云对象,利用图片遮罩形状和改变颜色

使用Matplotlib来显示图片

完整代码如下:

#cell-1

text=''

with open('./lagou-job1000-ai-details.txt','r') as f:

text=f.read()

f.close()

print(text[:100])

#cell-2

import jieba

words = jieba.lcut(text)

import re

pattern = re.compile(r'^[a-zA-Z0-1]+$')

words = [w for w in words if pattern.match(w)]

cuted = ' '.join(words)

print(cuted[:500])

#cell-3

from wordcloud import WordCloud

from wordcloud import ImageColorGenerator

fontpath='SourceHanSansCN-Regular.otf'

import numpy as np

from PIL import Image

aimask=np.array(Image.open("ai-mask.png"))

genclr=ImageColorGenerator(aimask)

wc = WordCloud(font_path=fontpath, # 设置字体

background_color="white", # 背景颜色

max_words=1000, # 词云显示的最大词数

max_font_size=100, # 字体最大值

min_font_size=5, #字体最小值

random_state=42, #随机数

collocations=False, #避免重复单词

mask=aimask, #造型遮盖

color_func=genclr,

width=1600,height=1200,margin=2, #图像宽高,字间距,需要配合下面的plt.figure(dpi=xx)放缩才有效

)

wc.generate(cuted)

#cell-4

import matplotlib.pyplot as plt

plt.figure(dpi=150) #通过这里可以放大或缩小

plt.imshow(wc, interpolation='catrom',vmax=1000)

plt.axis("off") #隐藏坐标

python词云可视化视频_Python数据分析-可视化-wordcloud词云相关推荐

  1. python做数据可视化视频_Python数据分析系列视频课程--玩转数据可视化

    matplotlib包是基于Python平台的统计绘图利器,是在python平台上完成数据可视化不可或缺的工具,而基于matplotlib进一步开发的seaborn,更是将数据呈现与可视化的可用性推到 ...

  2. python的seaborn用于可视化分析_Python数据分析-可视化“大佬”之Seaborn

    如果有想关注Java开发相关的内容,可以转 上次学习了如何使用Matplolib进行数据可视化,接下来让我们来看看另一个可视化工具--seaborn Seaborn 既然有了matplotlib,那为 ...

  3. Python网易云音乐爬虫大数据分析可视化系统——大屏数据可视化开发之路

    介绍 现在比较流行的大数据数据可视化都是大屏,有钱的人会使用阿里云全家桶的DataV或者商业化的大屏解决方案,但是在国内还是小公司比较多,本人50年大数据开发经验,精通数据可视化,曾经处理过百万亿级别 ...

  4. python数据分析与可视化清华大学_Python数据分析与可视化 微课视频版

    随着互联网的飞速发展,人们在互联网上的行为产生了海量数据,对这些数据存储.处理与分析带动了大数据技术的发展.其中,数据挖掘和分析技术可以帮助人们对庞大的数据进行相关分析,找到有价值的信息和规律,使得人 ...

  5. python数据分析与可视化清华大学_Python数据分析与可视化

    讲解Python数据分析与可视化中的九大模块,内容全面详实: 提供11个课程实训和2个完整的项目案例,理论结合实践 : 赠送420分钟的教学视频及丰富的配套资源,便于教师教学. 超值赠送: 教学大纲. ...

  6. python便捷数据怎么获取_Python数据分析入门——从数据获取到可视化

    基本信息 作者: 沈祥壮 ISBN:9787121336539 上架时间:2018-3-22 出版日期:2018 年3月 开本:16开 页码:260 版次:1-1 [插图] 编辑推荐 了解基本的Pyt ...

  7. python贴吧数据可视化软件_Python数据可视化工具之Pyecharts初体验

    前言 之前采集了我爱我家的13000多条租房信息,准备做下数据分析,也了解到Pyecharts这个可视化工具,于是上手试了一番 pyecharts 是一个用于生成 Echarts 图表的类库.Echa ...

  8. python空气质量分析报告_Python数据可视化:2018年北上广深空气质量分析

    原标题:Python数据可视化:2018年北上广深空气质量分析 作者:法纳斯特,Python爱好者,专注爬虫,数据分析及可视化 就在这周偶然看到一个学弟吐槽天津的空气,不禁想起那段厚德载雾,自强不吸的 ...

  9. python 财务分析可视化方法_Python数据可视化的四种简易方法

    Python数据可视化的四种简易方法 作者:PHPYuan 时间:2018-11-28 03:40:43 摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视 ...

  10. python词云代码简单_Python 简单实现标签词云

    基于Python的词云生成类库,很好用,而且功能强大.博主个人比较推荐 github:https://github.com/amueller/word_cloud 官方地址:https://amuel ...

最新文章

  1. Linux服务器安装JDK、Tomcat配置web网站
  2. 【Python基础】Python轻量级循环-列表推导式
  3. oracle 语句 在线测试,2017年Oracle数据库基础测试答案.doc
  4. 在64位Win7系统中配置jsp开发环境以及一些问题解决方案
  5. 这几道 Redis 面试题都不懂,怎么拿 Offer?
  6. 《C++ Primer 第五版》(第4.11节类型转换) ————关于无符号数和有符号数的运算探究
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城
  8. jQuery中animate()的方法以及$(body).animate({scrollTop:top})不被Firefox支持问题的解决...
  9. 星空特效HTML代码,旋转的星空特效代码
  10. 数据处理——偏最小二乘法
  11. 软件架构模式之管道-过滤器模式--分析
  12. CentOS下MySQL安装失败,报socket '/tmp/mysql.sock错误解决方法
  13. android 保存图片,并通知相册更新
  14. Words Accumlation - Day 4
  15. js通过localStorage实现一周/一天免登陆
  16. pandas数据日期函数之date_range()、resample()与to_period()
  17. redis主从、哨兵、集群
  18. office2016安装失败,或者需要卸载,如何彻底卸载
  19. MacOS Big Sur Beta 测评|使用体验|有哪些BUG?|如何安装?|实际体验如何?|WWDC2020
  20. 产品故事:一家服装厂的创新之路

热门文章

  1. 【编程题目】对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一...
  2. Oracle单实例数据库迁移到Oracle RAC 环境之(3)--主备库Switchover
  3. mysql 重置表索引_第19期:索引设计(哈希索引数据分布与使用场景)
  4. 原生小程序和 mpvue对比(开发前)
  5. hive不在同一台机 hue_【Impala篇】---Hue从初始到安装应用
  6. React-Native 仿喜马拉雅APP项目笔记(多环境配置 项目配置路径 堆栈式导航)
  7. .net core webapi 导出excel(两种方式EPPLUS、NPOI),返回下载地址或文件流
  8. C# winform窗体实现图片轮播
  9. php phantomjs 安装_安装php-phantomjs
  10. Windows10 安装 protobuf