首页 > 编程语言 >Python生成词云

Python生成词云

时间:2023-10-30 12:07:10浏览次数:38  
标签:plt Python 生成 wordcloud 词云 import 文本


一、词云生成的基本原理

词云是一种可视化展示文本内容的工具,用于显示文本中出现次数较高的关键词。其主要思想是将文本中频繁出现的词汇以视觉化的方式展现出来,可以很快地帮助人们了解文本的主要内容和关键信息。

生成词云的基本原理是,首先需要解析文本中的关键词,统计其出现频率,然后利用排版算法将其按照一定的大小、颜色和形状等属性展示出来。Python中的wordcloud库是一种常用的生成词云的工具,它提供了丰富的基于Python的实现方式,可以根据需要定制不同的词云样式。

二、词云生成库wordcloud的基本使用

Python中的wordcloud库提供了简单易用的接口,可以实现快速生成词云。通过wordcloud库可以设置字体、颜色、形状等词云的各种属性。下面是一个简单的示例代码:


from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "Hello world! This is a simple Python script to generate word clouds."
wordcloud = WordCloud().generate(text)

plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()


通过以上代码,可以生成一个简单的词云图,并显示在matplotlib的画布上。

三、词云生成的基本步骤

生成词云的基本步骤可以分为以下几个步骤:

1、读取文本内容。

2、对文本进行分词和处理。

3、统计关键词汇出现频率。

4、根据频率生成词云图案。

5、调整词云的颜色、形状和字体等属性。

下面是一个简单示例代码:

from wordcloud import WordCloud
import jieba

text = "中华人民共和国简称中国,是一个有13亿人口的国家。"
words = " ".join(jieba.cut(text, cut_all=False))

wordcloud = WordCloud(
    font_path="msyh.ttf",
    background_color="white",
).generate(words)

wordcloud.to_file("output.png")


通过以上代码,可以读取文本内容,进行分词处理,统计关键词汇出现频率,并生成词云图案。最后,调整词云的文件格式并保存到本地。

四、定制化词云图案

可以通过wordcloud库提供的参数设置方法,定制化生成不同样式的词云图案。下面列举几个常用的参数说明:

1、font_path:字体文件路径。

2、mask:词云的形状。

3、background_color:背景颜色。

4、max_words:要显示的最大词数。

5、stopwords:忽略词列表。

下面是一个基于文本文件的定制化词云生成代码示例:


from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

with open("sample.txt", encoding='utf-8') as f:
    text = f.read()

mask = np.array(Image.open("mask.png"))

wordcloud = WordCloud(
    font_path="msyh.ttf",
    stopwords=STOPWORDS.add("said"),
    background_color="white",
    max_words=200,
    mask=mask,
).generate(text)

plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()


通过以上代码示例可以实现从文本文件中读取内容,设置背景颜色和形状等属性,生成一张具有自定义形状和背景颜色的词云图案。

五、结语

本文主要介绍了Python生成词云的基本原理和wordcloud库的使用方法。通过掌握词云生成的基本步骤和定制化参数的设置,可以实现生成具有不同样式和形状的词云图案,并将其应用于文本分析和可视化等领域。

标签:plt,Python,生成,wordcloud,词云,import,文本
From: https://blog.51cto.com/10zhancom/8087193

相关文章

  • 生成 eps 的四种方法(总有一款适合你)
    有四个办法。1、将visio图另存为eps步骤:visio->文件->导出->创建PDF/XPS文档->成功导出为pdf文件。2、AdobeDC将pdf导出为eps步骤:打开AdobeDC软件,在软件中打开pdf文件,文件->导出到->内嵌式PostScript->成功导出为eps文件。3、将ps的psd图导出到eps步......
  • 使用IBM ART库生成交通信号牌的攻击样本
    目标:生成对抗样本,扰动图像,让原本是“停”的信号牌识别为“禁止驶入”: 代码如下(注意,因为我找的cnn原始模型支持的是灰度图像,所以彩色的对抗样本还需要修改代码):importcv2,osimportnumpyasnpimportnumpyasnpimporttensorflowastffromkeras.modelsimportload_......
  • Python常用模块-20个常用模块总结
    目录time模块datetime模块random模块os模块sys模块json和pickle模块hashlib和hmac模块logging模块numpy模块pandas模块matplotlib模块re模块typing模块collections模块pathlib模块shutil模块xml模块subprocess模块configparser模块Python常用模块小结time模块......
  • 根据内容生成二维码
    importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;importcom.google.zxing.MultiFormatWriter;importcom.google.zxing.WriterException;importcom.google.zxing.common.BitMatrix;importcom.google.zxing.qrcode.decoder.ErrorCorrec......
  • [计算机学习]Python 二分法
    二分法的思想二分查找的前提是对象是有序数据。以下内容摘自Pythontip.com网站。扫描二维码可以了解更多Python课程。 left=0right=sizeofarray#数组的大小while(left+1<right)mid=(left+right)/2#中间mid下标if(array[mi......
  • Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案
    PythonWordcloud报错:OnlysupportedforTrueTypefonts,多种解决方案。报错内容如下:2023-10-26T09:35:41.190459839ZTraceback(mostrecentcalllast):2023-10-26T09:35:41.190502589ZFile“lib/task/compute.py”,line621,in2023-10-26T09:35:41.190514101Zcompute_......
  • Python中的JSON数据解析和映射--根据value查询key
    importjson#原始JSON数据json_data='''[{"id":1,"name":"MOVE"},{"id":2,"name":"LEFT_DOWN"},{"id":3,"name":"LEFT_UP"},{......
  • 【Python】在linux环境下, Django 3.0+版本遇到的一些问题
    1.Django3.2版本升级后的一些报错,导致项目运行失败1.1site-packages/rest_framework/serializers.py fromdjango.db.models.fieldsimportFieldDoesNotExistImportError:cannotimportname'FieldDoesNotExist'解决办法:改变FieldDoesNotExist的导入方式fromdjango......
  • Python中的元组
    tuple元组,特点:不可变的列表t=("张无忌","赵敏","呵呵哒")print(t)print(t[1:3])t[0]="樵夫"#'tuple'objectdoesnotsupportitemassignmentprint(t)你固定了某些数据.不允许外界修改元组如果只有1个元素(*),需要在元素的末尾添加一个逗号t=("哈......
  • python html 今日概念资金流入前20名
    #!/usr/bin/envPython#coding=utf-8fromseleniumimportwebdriver#导入模块importtimefromlxmlimportetree#lxml库是一个HTML、XML的解析器importtushareastsimportrequests,jsonimportthreadingimportrandomdefget_init_driver():time_start=tim......