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

wordcloud库应用-《唐诗三百首》词云图详解 本文主要介绍用wordcloud库制作《唐诗三百首》的词云图的方法,以及注意点。 根据北京理工大学嵩天老师《Python语言程序设计》课程的代码做了部分修改。 主要思路 读取《唐诗三百首》文件 使用jieba库分词,使用wordcloud库生成词云图 输出词云图 import os from imageio import imread import jieba import wordcloud... 阅读详情

主页: https://codeshellme.github.io

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

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

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:828010317

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

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 plt

plt.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 plt

plt.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-8

import os
import sys
import jieba
from wordcloud import WordCloud

if 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 += line

    words = jieba.cut(content)

    l = []
    for w in words:
        # 如果词的长度小于 2,则舍去
        if len(w) < 2: continue

        l.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) 
('现代', 0.6666666666666666)

(本节完。)

python词云分析--媒体近期的讨论热点 目录背景词云的定义词云的创建词云分析 背景 中国,美国,欧洲乃至全世界,近期都在经历一场紧张的战役,经济和民众的身体健康都被疫情至于危险之中。为了缓解疫情的冲击,越来越多的人加入了“ I quarantine for my family” 的行列,社交媒体也展现了其前所未有的潜力。 据社交媒体研究机构Shareablee统计的数据显示,在美国,社交媒体已经超过网络搜索,成为人们消遣和了解疫情的首要... 阅读详情

相关推荐

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

今天来介绍一下如何使用 Python 制作词云。 词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视化,让我们可以直观的了解文本中的重点词汇。 词的频率越高,词显示的大小也就越大。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 1,wordcloud 模块 wordcloud 是一个词云生成器,它不仅是一个 Python 库,还是一个命令行工具。我们可以通过 wordcloud 官方文档,和示例库...

爬遍所有网站 1862

python+jieba分析唐诗三百首

看到一个有意思的题目,可以玩一下正则、统计、jieba,花了几个小时写好完善了下,本文只讲测试案例和注意点,代码在仓库中,欢迎star后拉一下:)~

本博客暂停使用 1万+

用Python分析文本数据的词频并词云图可视化

上次批量提取了上市公司主要业务信息,要分析这些文本数据,就需要做文本词频分析。由于中文不同于英文,词是由一个一个汉字组成的,而英文的词与词之间本身就有空格,所以中文的分词需要单独的库才能够实现,常用的是`jieba`。

m0_64336780的博客 2万+

python唐诗分析综合_全唐诗分析程序

全唐诗分析程序这个程序最初的诞生是为了写微信公众号的两篇文章,那两篇文章的也大致讲解了程序的原理和流程。 因此,在使用程序之前,强烈建议您先读这两篇文章:相应的,程序也主要有两个方面的功能:分析词频和词向量,对应第一篇文章构建诗人之间的引用关系,对应第二篇文章master分枝仅支持python3。python2分枝(感谢网友carryme9527的工作,这个分枝主要是他的功劳)则支持python2...

weixin_42166105的博客 1476

华为数通---配置风暴控制案例

风暴控制可以通过阻塞报文或关闭端口来阻断广播、未知组播和未知单播报文的流量。

2301_77081516的博客 1624

安信可TB蓝牙模组系列 实战Ble Mesh智能照明系统搭建

本文详细介绍了如何使用安信可TB蓝牙模组系列搭建Ble Mesh智能照明系统。从硬件准备、固件烧录到手机APP组网全流程,提供了实战步骤和优化建议,特别适合智能家居开发者入门。Ble Mesh的自组网能力解决了蓝牙传输距离限制,实现全屋灯光智能控制。

weixin_30856725的博客 352

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

今天来介绍一下如何使用 Python 制作词云。词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视化,让我们可以直观的了解文本中的重点词汇。词的频率越高,词显示的大小也就越大。1,wordcloud 模块wordcloud 是一个词云生成器,它不仅是一个 Python 库,还是一个命令行工具。我们可以通过 wordcloud 官方文档,和示例库来学习如何使用它。在使用 wordcloud...

weixin_39644325的博客 207

VECTOR硬件VN1600系列对比:VN1610、VN1611、VN1630A、VN1640A、VN1630log、VN1670

VN16系列说不清道不明的区别和关系

AmorRun的博客 2万+

用Python做词云分析

   我的电脑是Windows32 位,Python3.6,电脑上需要提前下载好anaconda操作平台,在网上能搜索到,下载即可。另外文本和词云包我是通过“tn/RRLnQgm”直接下载得到。这是我根据知乎专栏 “玉树芝兰” 的视频学习得来,有不懂的或者想更细致学习的请关注他。以下是我自己的体会和总结。    1、 安装完anaconda后,在开始-所有程序中打开Anaconda Prompt...

Hellolijunshy的博客 8880

Word多级标题出现黑块的解决思路(word 数字必须介于1-1638之间)

遇到多级目录出现黑块问题,看到一篇博客完美解决,在此记录。

AI_Optimization的博客 3714

Android dex, odex, oat, vdex, art文件介绍

下图可以简化将Java源转换为OAT的过程: .dex Dalvik虚拟机字节码文件 .vdex 其中包含APK的未压缩DEX代码,以及一些旨在加快验证速度的元数据 .odex .oat // JIT,Just-in-time,即时编译,边运行边编译; // AOT,Ahead Of Time,提前编译,指运行前编译。 其中包含APK中已经过AOT编译的方法代码。 原始DEX文件(例如classes.dex)被转换为另一个包含本机代码的文件。这个新文件通常具有.odex。.oat扩展名,并由ELF格式

he980725866的博客 3618

python 简单词云制作

半原创^ _ ^ 学习了一篇关于python实现词云的文章,现在分享给大家 我的制作图如下: python版本:python3.6,2.7均可 操作系统:Ubuntu(自带python 2和3) MacOS(自带python 2和3) Windows (需下载python 2.7 或 3.6) 需要用到模块及工具: anaconda套装

yuge_jiayou的博客 1390

Spring AI 实战(11):收官!10 道面试高频题 + 一张脑图带走全系列

本文是Spring AI系列的收官篇,通过知识脑图梳理前10篇内容,提供面试高频题和避坑清单。主要内容包括: 知识脑图:分6层(核心抽象、输入增强、输出控制等)总结Spring AI全栈技术。 10道高频面试题:涵盖ChatClient/ChatModel关系、结构化输出、RAG链路等核心知识点。 避坑清单:列出9条常见问题及解决方案,如向量维度匹配、Advisor顺序等。 技术对比:分析Spring AI、LangChain4j和Spring AI Alibaba的差异与适用场景。 使用建议:提供面试复习

不才不才不不才的博客 295

python分词并绘制词云

import sqlite3 import jieba #分词 from matplotlib import pyplot as plt #数据可视化 import wordcloud from PIL import Image #图片处理 import numpy as np #矩阵运算 import sqlite3 from openpyxl import load_wor.

一条大河 485

VN5620以太网测试——环境搭建篇

CANoe(CAN open environment)VN5620 :是一个紧凑而强大的接口,用于以太网网络的分析、仿真、测试和验证。VN5620 接口支持各种可能的应用。它适用于与其他总线系统、网络参与(例如在模拟和生成帧、测试中的负载和错误)的同步以太网监控。在2021年Vector公司的以太网接口卡VN5610和VN5640设备已经陆续停产,相应被VN5620和VN5650代替。

诊断协议那些事儿's blog 8926

OpenDataLab 大模型训练数据集下载记录

大模型 训练数据集

u013558123的博客 3341

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

今天来介绍一下如何使用 Python 制做词云。python词云又叫文字云,它能够统计文本中频率较高的词,并将这些词可视化,让咱们能够直观的了解文本中的重点词汇。git词的频率越高,词显示的大小也就越大。github1,wordcloud 模块wordcloud 是一个词云生成器,它不只是一个 Python 库,仍是一个命令行工具。咱们能够经过 wordcloud 官方文档,和示例库来学习如何使...

weixin_42361018的博客 1168

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

词云分析——基于Python对天猫商品评论进行词云分析

词云分析——基于Python对天猫商品评论进行词云分析 文章目录词云分析——基于Python对天猫商品评论进行词云分析0 引言1 准备工作2 主程序3 分析与改进4 可能出现的报错及解决方案 0 引言 什么是词云分析? 词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。 1 准备工作 前段时间学习了爬虫技术,并自己尝试着对一些信息进行爬取。完成了一个对天猫商品评论的爬虫项目,并将爬取到的评论存到了Exc

weixin_44730597的博客 8291

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【数据挖掘】词云分析

Python 中的 WordCloud 库 WordCloud 是一个 Python 库,用于生成词云图(Word Cloud),也称为文字云。词云图是可视化文本数据的一种方法,通过将文本中的单词以不同大小和颜色展示,以便更直观地显示出文本中单词的频率和重要性。

Talk is cheap. Show me the code 3150

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python学习一(词云分析)

python简单词云分析处理

不要仅为成功而努力,要为做一个有价值的人而努力 1687

python古诗词风格分析_2017年高考古诗词鉴赏技巧:分析语言风格题解题模式

2017年高考古诗词鉴赏技巧:分析语言风格题解题模式1 设问方式:这首诗在语言上有何特色?2 设问变式:(1)谈谈这首诗的语言特色。(2)分析这首诗的语言风格(或语言艺术)。3 解答提示:语言风格型即评析诗词的语言风格或艺术风格。这种题型不是要求揣摩个别字词运用的巧妙,而是要品味整首诗表现出来的语言风格。答题前要了解有关语言风格的相关术语,如:清新自然、朴实无华、华美绚丽、明白晓畅、多用口语、委婉...

weixin_39826089的博客 526

简单易学的文本分析1——词云分析

使用 jieba.posseg 对文本进行分词,并为每个词标注词性。筛选出长度大于等于2的词,且词性为名词、动词或形容词的词。设置词云生成的字体、颜色映射、最大和最小字体大小等参数。定义并设置停用词,即需要排除在词云之外的词汇。使用 WordCloud 类根据词频生成词云。使用 matplotlib 显示生成的词云图。统计筛选出的词的频率,提取前200个高频词。将生成的词云图保存为指定路径的图片文件。打印输出前100个高频词及其出现频率。从指定的文本文件中读取内容。

llthxx的博客 1049

词云图大揭秘:如何从文本中挖掘热点词汇?

随着互联网的普及,大量的文本信息在网络上被产生和传播。如何从这些海量的文本中提取出有价值的信息,成为了人们关注的焦点。在这个信息爆炸的时代,词云图作为一种直观、形象的数据可视化手段,越来越受到人们的喜爱。本文手把手教你如何实现词云图,快速对文字进行分析。废话不多说,直接上源码:

小码哥AI、互联网副业项目 1991

【python】用python实现wordcloud大数据词云图分析

【python】用python实现wordcloud大数据词云图分析一、应用目的二、工具包安装及代码三、中文不能正常显示四、关键词重复五、最终结论 一、应用目的 大数据词云(wordcloud)分析常用于在冗长的文本数据中提取最高频、最关键的信息。 二、工具包安装及代码 首先我们需要对文本进行切词处理 pip install jieba #读入数据,把所有企业名称用空格连接,整合成一个大文本变量t res = pd.read_csv('data.csv') t = res.loc[(res['所属行业']=

baidu_39413110的博客 3952
上一篇: 一劳永逸的 Python 开发环境搭建
下一篇: Python采集哔哩哔哩(bilibili)视频(详细教程)
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值