今天来介绍一下如何使用 Python 制作词云。

词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视化,让我们可以直观的了解文本中的重点词汇。

词的频率越高,词显示的大小也就越大。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

1,wordcloud 模块

wordcloud 是一个词云生成器,它不仅是一个 Python 库,还是一个命令行工具。我们可以通过 wordcloud 官方文档,和示例库来学习如何使用它。

在使用 wordcloud 之前,需要先安装它:

pip install wordcloud

2,WordCloud 类

WordCloud 类用于创建词云对象,先来看下它的原型:

WordCloud(font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.9, mask=None, scale=1, color_func=None, max_words=200, min_font_size=4, stopwords=None, random_state=None, background_color='black', max_font_size=None, font_step=1, mode='RGB', relative_scaling='auto', regexp=None, collocations=True, colormap=None, normalize_plurals=True, contour_width=0, contour_color='black', repeat=False, include_numbers=False, min_word_length=0, collocation_threshold=30)

可以看到,WordCloud 类有很多参数可以设置,这里介绍一些常用的参数:

  • font_path:设置字体文件路径,字体文件以 .ttf 为后缀。

  • 如果分析的文本是中文,则需要设置中文字体,否则会乱码。

  • background_color:设置图片背景颜色,默认为 black,也可以设置为 white 等。

  • mask:设置背景图片。

  • max_words:设置最大的词数,默认为200。

  • stopwords:设置停用词。

  • max_font_size:设置字体最大值。

  • width:设置画布的宽度,默认为400。

  • height:设置画布的高度,默认为200。

  • random_state:设置多少种随机状态,即多少种颜色。

在创建好词云对象后,可以使用 generate 方法生成词云,并使用 to_file 方法将词云图像保存在文件中。

generate 方法的原型如下:

generate(text)

参数text 是一个用空格隔开的文本字符串。如果分析的是中文,需要先用 jieba 进行分词,可以参考这里。

除了将词云图像保存在文件中,还可以使用 Matplotlib 模块显示词云图像,示例代码如下:

import matplotlib.pyplot as pltplt.imshow(wordcloud)  # wordcloud 是词云对象
plt.axis("off")        # 用于关闭坐标轴
plt.show()

3,一个简单的示例

下面演示一个最简单的示例,来看如何使用 wordcloud。

首先创建词云对象:

from wordcloud import WordCloud
wc = WordCloud()

生成词云:

text = "Python is a programming language, it is easy to use."
wc.generate(text)

词云对象的 words_ 属性中存储了每个单词的(归一化后的)权重,权重的范围是 (0, 1]。

words_ 属性是一个字典类型,它存储的键的最大个数为 max_words,即 WordCloud 类的参数。

如下:

>>> wc.words_
{'Python': 1.0, 'programming': 1.0, 'language': 1.0, 'easy': 1.0, 'use': 1.0}
# 示例中的这些单词出现的频率都相等(均为 1),
# 所以它们的权重都是 1。

用 Matplotlib 展示词云图像:

import matplotlib.pyplot as pltplt.imshow(wc)
plt.axis("off")
plt.show()

词云图像如下:

4,对古诗做词云分析

我在这里准备了一个案例,是对1000 首古诗做词云分析。

代码目录如下:

wordcloud/
├── SimHei.ttf
├── gushi.txt
└── gushi_wordcloud.py

其中:

  • SimHei.ttf:是一个字体文件,避免词云分析时出现中文乱码。

  • gushi.txt:该文件中包含了1000 首古诗。

  • gushi_wordcloud.py:是词云分析代码。

我将代码也放在这里,方便查看:

#!/usr/bin/env python
# coding=utf-8import os
import sys
import jieba
from wordcloud import WordCloudif sys.version.startswith('2.'):reload(sys)sys.setdefaultencoding('utf-8')# 去掉一些作者的名字
STOPWORDS = [u'李白', u'杜甫', u'辛弃疾', u'李清照', u'苏轼',u'李商隐', u'王维', u'白居易', u'李煜', u'杜牧',]def load_file(file_path):if sys.version.startswith('2.'):with open(file_path) as f:lines = f.readlines()else:with open(file_path, encoding='utf-8') as f:lines = f.readlines()content = ''for line in lines:line = line.encode('unicode-escape').decode('unicode-escape')line = line.strip().rstrip('\n')content += linewords = jieba.cut(content)l = []for w in words:# 如果词的长度小于 2,则舍去if len(w) < 2: continuel.append(w)return ' '.join(l)if __name__ == '__main__':file_path = './gushi.txt'content = load_file(file_path)wc = WordCloud(font_path="./SimHei.ttf",stopwords=STOPWORDS,width=2000, height=1200)wc.generate(content)wc.to_file("wordcloud.jpg")

其中:

  • STOPWORDS 停用词列表,是一些作者的名字。

  • load_file 方法用于加载文本,其中用到了 jieba 分词。

最后将词云图像保存在了 wordcloud.jpg 文件中,如下:

我们也可以从词云对象的words_ 属性中查看每个词的权重,这里我列出前十个:

('明月', 1.0)
('今日', 0.9130434782608695)
('不知', 0.8405797101449275)
('何处', 0.8260869565217391)
('不见', 0.8115942028985508)
('春风', 0.7536231884057971)
('无人', 0.7536231884057971)
('不可', 0.7536231884057971)
('万里', 0.7536231884057971)

如何用Python制作词云,对1000首古诗做词云分析!相关推荐

  1. 如何用Python 制作词云-对1000首古诗做词云分析

    主页: https://codeshellme.github.io 今天来介绍一下如何使用 Python 制作 词云 . 词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视化,让我们可以直观 ...

  2. python古诗词风格分析_如何用Python 制做词云-对1000首古诗作词云分析

    今天来介绍一下如何使用 Python 制做词云.python 词云又叫文字云,它能够统计文本中频率较高的词,并将这些词可视化,让咱们能够直观的了解文本中的重点词汇.git 词的频率越高,词显示的大小也 ...

  3. Python爬取网易云歌曲评论,做词云分析

    前言 emmmm 没什么说的,想说的都在代码里 环境使用 Python 3.8 解释器 3.10 Pycharm 2021.2 专业版 selenium 3.141.0 本次要用到selenium模块 ...

  4. [Python]Python制作词图云

    Python制作词图云 1.在cmd安装三个库 pip install jiebapip install matplotlibpip install wordcloud 在PyCharm安装库,按Fi ...

  5. Python制作词云视频(使用B站视频及弹幕文本)

    Python制作词云视频-目录 使用到的第三方库 项目思路和代码流程 B站弹幕爬取 思路 实现 参考代码 视频下载 思路 参考命令 视频.音频剪辑和音频提取 思路 参考代码 视频帧提取 思路 参考代码 ...

  6. plt图片输出 python_利用Python制作词云,wordcloud神器你值得拥有

    相信许多人都看到过下面这样的词云图,词云图是一种很好的可视化工具,其作用主要是为了文本数据的视觉表示,既酷炫又能突出重点. 关于词云图的制作,网上能够搜集到很多的教程,许多都是利用了专用的工具,这些工 ...

  7. python 只去除英文_如何使用 Python 制作词云(Word Cloud)-英文词云篇

    wordcloud 安装报错与解决 虽然网络上也有各种工具可以一键生成词云,但是使用Python制作词云感觉是一件很酷的事情.作为一个 Python 小白,使用 Python 的过程并不那么轻松.比如 ...

  8. 数据可视化之利用Python制作词云图

    制作词云图 一.词云图介绍 二.wordcloud方法 二. stylecloud方法 一.词云图介绍 词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形.相对其它诸多用来显示数值数据的图 ...

  9. 利用python制作词云图,分词,提取关键词

    利用python制作词云图保姆及教程 前言 一.环境配置 1.要有python的运行环境 2.需要导入jieba ,wordcloud等模块 pip install jieba pip install ...

  10. 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...

    只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...

最新文章

  1. Netty 框架学习(二):DelimiterBasedFrameDecoder和FixedLengthFrameDecoder
  2. 我为什么要立刻放弃 React 而使用 Vue?
  3. 6.MySQL数据库与数据表操作
  4. 如何判断字符串已经被url编码_如何判断回文数?不要再将整数转为字符串来解决这个问题了...
  5. 「kafka」kafka增加主分区
  6. php 5.6 闭包,PHP 闭包那点事儿
  7. Flask详解(上篇)
  8. springCloud Alibaba 与 nacos
  9. 最近做了个【51单片机积木式图形化中文编程软件/c语言代码生成器/电路仿真】
  10. 关于计算机的病毒案例分析,实例解析蠕虫病毒的原理 -电脑资料
  11. 计算机网络课程设计(ftp)
  12. SE91 SAP消息类型
  13. VirtualDub
  14. OPTIONS方法禁用
  15. QQ跳转浏览器php代码,QQ微信域名预防封禁强制跳转至浏览器打开PHP源代码下载...
  16. 向大家介绍一款代码阅读工具——Scitools Understand
  17. Python_美多商城(验证码)_3
  18. Dom——隔行变色、分时显示问候语
  19. Git之深入解析如何替换数据库中的Git对象
  20. Multisim交通信号灯简易控制器

热门文章

  1. linux控制风扇转速的命令,Linux下笔记本的风扇控制问题
  2. word如何在任意页开始添加页码
  3. 擦亮双眼,愚人节彩蛋回顾
  4. 2017年进口食品代理加盟排行榜
  5. python 读excel每行替换_Python使用openpyxl读写excel文件
  6. react router BrowserRoute部署后页面空白问题
  7. windows恶意软件删除工具 MRT.EXE
  8. Java为Excel导出增加批注(POI)
  9. python画图入门——for循环及调色盘的应用
  10. centos mysql 绿色版安装_centos7环境下mysql5.7的安装与配置(免安装版)