0
点赞
收藏
分享

微信扫一扫

如何使用python实现一个优雅的词云?

什么是词云

“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”。

从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

        在网络上,我们经常可以看到一张图片,上面只有一堆大小不一的文字,有些通过文字生成一个人物的轮廓。像这样的图像,我们称之为词云。

        词云”就是数据可视化的一种形式。给出一段文本的关键词,根据关键词的出现频率而生成的一幅图像,人们只要扫一眼就能够明白文章主旨。

jieba

"结巴"中文分词:做最好的Python中文分词组件 "Jieba" 

安装

jieba的分词模式

支持三种分词模式:

这里我就以昨日爬取微博鸿星尔克的评论为测试内容。

“网友:我差点以为你要倒闭了!”鸿星尔克捐款5000w后被网友微博评论笑哭...

精确模式

试图将句子最精确地切开,适合文本分析;

它可以将结果十分精确分开,不存在多余的词。

常用函数:cut(str)、lcut(str) 

全模式,它可以将结果全部展现,也就是一段话可以拆分进行组合的可能它都给列举出来了

把句子中所有的可以成词的词语都扫描出来, 速度非常快

常用函数:lcut(str,cut_all=True) 、 cut(str,cut_all=True)

搜索引擎模式,在精确模式的基础上,对长词再次切分

它的妙处在于它可以将全模式的所有可能再次进行一个重组

常用函数:lcut_for_search(str) 、cut_for_search(str)

处理停用词

在有时候我们处理大篇幅文章时,可能用不到每个词,需要将一些词过滤掉

这个时候我们需要处理掉这些词,比如我们比较熟悉的‘你’  ‘了’、 ‘我’、'的' 什么的

可以看到,我们成功去除了我们不需要的词‘你’  ‘了’、 ‘我’、'的' ,那么这到底是个什么骚操作呢?

其实很简单,就是将这些需要摒弃的词添加到列表中,然后我们遍历需要分词的文本,然后进行读取判断

如果遍历的文本中的某一项存在于列表中,我们便弃用它,然后将其它不包含的文本添加到字符串,这样生成的字符串就是最终的结果了。

权重分析

很多时候我们需要将关键词以出现的次数频率来排列,这个时候就需要进行权重分析了,这里提供了一个函数可以很方便我们进行分析,

jieba.analyse.extract_tags

topK就是指你想输出多少个词,withWeight指输出的词的词频。

分词介绍完了,接下来我们介绍一下绘图库 

wordcloud 

我们词云的主要实现是用过 wordcloud 模块中的 WordCloud 类实现的,我们先来了解一个 WordCloud 类。

安装

生成一个简单的词云

我们实现一个简单的词云的步骤如下:

导入 wordcloud 模块

准备文本数据

创建 WordCloud 对象

根据文本数据生成词云

保存词云文件

我们按照上面的步骤实现一个最简单的词云:

可以看到,目标是实现了,但是效果不怎么好。我们继续往下看

WordCloud 的一些参数

我们先看看 WordCloud 中的一些参数,

如下表,各个参数的介绍都写了。

参数参数类型参数介绍

我们来测试一下上面的参数:

生成一个有形状的词云

我们设置的图形形状是

发现全是矩形,这是因为 WordCloud 默认不支持中文的缘故,我们需要设置一个可以支持中文的字体,我们添加代码如下:

文末再给大家介绍一个宝藏库

stylecloud

使用它设置词云再简单不过了,为什么?

因为它有7865个词云图标供你选择。

需要使用那个图标只需复制下面的图标名称即可!

而且自带停用词的那种

又方便又好看,是我现在制作词云的首选!

【印象Python】累计原创100+篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。

举报

相关推荐

0 条评论