如何用Python制作词云,对1000首古诗做词云分析!
今天来介绍一下如何使用 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首古诗做词云分析!相关推荐
- 如何用Python 制作词云-对1000首古诗做词云分析
主页: https://codeshellme.github.io 今天来介绍一下如何使用 Python 制作 词云 . 词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视化,让我们可以直观 ...
- python古诗词风格分析_如何用Python 制做词云-对1000首古诗作词云分析
今天来介绍一下如何使用 Python 制做词云.python 词云又叫文字云,它能够统计文本中频率较高的词,并将这些词可视化,让咱们能够直观的了解文本中的重点词汇.git 词的频率越高,词显示的大小也 ...
- Python爬取网易云歌曲评论,做词云分析
前言 emmmm 没什么说的,想说的都在代码里 环境使用 Python 3.8 解释器 3.10 Pycharm 2021.2 专业版 selenium 3.141.0 本次要用到selenium模块 ...
- [Python]Python制作词图云
Python制作词图云 1.在cmd安装三个库 pip install jiebapip install matplotlibpip install wordcloud 在PyCharm安装库,按Fi ...
- Python制作词云视频(使用B站视频及弹幕文本)
Python制作词云视频-目录 使用到的第三方库 项目思路和代码流程 B站弹幕爬取 思路 实现 参考代码 视频下载 思路 参考命令 视频.音频剪辑和音频提取 思路 参考代码 视频帧提取 思路 参考代码 ...
- plt图片输出 python_利用Python制作词云,wordcloud神器你值得拥有
相信许多人都看到过下面这样的词云图,词云图是一种很好的可视化工具,其作用主要是为了文本数据的视觉表示,既酷炫又能突出重点. 关于词云图的制作,网上能够搜集到很多的教程,许多都是利用了专用的工具,这些工 ...
- python 只去除英文_如何使用 Python 制作词云(Word Cloud)-英文词云篇
wordcloud 安装报错与解决 虽然网络上也有各种工具可以一键生成词云,但是使用Python制作词云感觉是一件很酷的事情.作为一个 Python 小白,使用 Python 的过程并不那么轻松.比如 ...
- 数据可视化之利用Python制作词云图
制作词云图 一.词云图介绍 二.wordcloud方法 二. stylecloud方法 一.词云图介绍 词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形.相对其它诸多用来显示数值数据的图 ...
- 利用python制作词云图,分词,提取关键词
利用python制作词云图保姆及教程 前言 一.环境配置 1.要有python的运行环境 2.需要导入jieba ,wordcloud等模块 pip install jieba pip install ...
- 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...
只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...
最新文章
- Netty 框架学习(二):DelimiterBasedFrameDecoder和FixedLengthFrameDecoder
- 我为什么要立刻放弃 React 而使用 Vue?
- 6.MySQL数据库与数据表操作
- 如何判断字符串已经被url编码_如何判断回文数?不要再将整数转为字符串来解决这个问题了...
- 「kafka」kafka增加主分区
- php 5.6 闭包,PHP 闭包那点事儿
- Flask详解(上篇)
- springCloud Alibaba 与 nacos
- 最近做了个【51单片机积木式图形化中文编程软件/c语言代码生成器/电路仿真】
- 关于计算机的病毒案例分析,实例解析蠕虫病毒的原理 -电脑资料
- 计算机网络课程设计(ftp)
- SE91 SAP消息类型
- VirtualDub
- OPTIONS方法禁用
- QQ跳转浏览器php代码,QQ微信域名预防封禁强制跳转至浏览器打开PHP源代码下载...
- 向大家介绍一款代码阅读工具——Scitools Understand
- Python_美多商城(验证码)_3
- Dom——隔行变色、分时显示问候语
- Git之深入解析如何替换数据库中的Git对象
- Multisim交通信号灯简易控制器
热门文章
- linux控制风扇转速的命令,Linux下笔记本的风扇控制问题
- word如何在任意页开始添加页码
- 擦亮双眼,愚人节彩蛋回顾
- 2017年进口食品代理加盟排行榜
- python 读excel每行替换_Python使用openpyxl读写excel文件
- react router BrowserRoute部署后页面空白问题
- windows恶意软件删除工具 MRT.EXE
- Java为Excel导出增加批注(POI)
- python画图入门——for循环及调色盘的应用
- centos mysql 绿色版安装_centos7环境下mysql5.7的安装与配置(免安装版)