网站首页 > 开源技术 正文
什么是词云?词云就是将从一大段文本中按出现频率提取的关键词组织成云朵或其他的形状,并在视觉上突出出现频率较高的关键字。
什么?你说你听不懂?用简单的话来说,词云就是把一大段文字中的关键词提取出来,做成一张图,并按照出现的次数多少,决定关键词在结果图上的大小。
像下图就是比较常见的云朵形状的词云:
像下图就是一个自定义形状的词云:
接下来,小编就教小伙伴们做出一个自定义形状的词云。
Python提供了用于实现词云功能的第三方库wordcloud(直接使用pip命令安装即可),该库以文本中词语出现的频率作为参数来绘制词云,并支持对词云的形状、颜色和大小等属性进行设置。
利用wordcloud库生成词云一般分为三个步骤:
(1)利用WordCloud类的构造方法WordCloud()创建词云对象。
(2)利用WordCloud对象的generate()方法加载词云文本。
(3)利用WordCloud对象的to_file()方法生成词云。
接下来,按照上面说的三个步骤来生成词云。
首先,根据预先准备的字体和图片创建词云对象,因为wordcloud库中只包含固定的词云形状,若希望生成自定义形状的词云,则需要用到matplotlib.image中的imread()函数,该函数需要接收两个参数:第一个参数为图片名,第2个参数为读取图片的方式,其值为1时代表读入彩色图像。创建词云对象的代码如下:
import wordcloud
from matplotlib.image import imread
font = 'E:\\python_study\\first_proj\\res\\AdobeHeitiStd-Regular.otf'
# 词云形状
mk = imread('E:\\python_study\\first_proj\\res\\wukong.png', 1)
file.close()
# 创建词云对象
w = wordcloud.WordCloud(font_path=font, mask=mk,
max_words=500,background_color='white')
以上代码中读取的词云形状的原图是wukong.png,该图片长这样:
然后,导入提前准备好的文本,将文本加载到词云对象里面,代码如下:
# 用于生成词云的字符串
file = open('E:\\python_study\\first_proj\\res\\西游记.txt',
encoding='utf-8')
string = str(file.read())
# 加载文本
w.generate(string)
最后,调用to_file()方法生成词云,并将生成的词云图片保存到当前目录的xiyou.jpg文件中,代码如下:
# 生成词云
w.to_file('xiyou.png')
此时打开程序所在路径,可观察到其中生成了词云图片xiyou.png,具体如下图所示。
通过上面的介绍,小伙伴们有木有觉得生成词云的功能特别简单,想赶紧试一下呢!
- 上一篇: 火影手游平台礼包,进来领取金币材料了!
- 下一篇: iOS代码覆盖率(一)-全量覆盖率自动化实践
猜你喜欢
- 2024-10-22 Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践
- 2024-10-22 个性化地图制作软件OpenOrienteering Mapper
- 2024-10-22 使用 .NET 的 Dev Proxy 构建和测试弹性应用
- 2024-10-22 开发一个现代化的.NetCore控制台程序,包含依赖注入/配置/日志等要素
- 2024-10-22 .NET 配置体系结构(配置.net环境)
- 2024-10-22 西门子高级应用,将WinCC集成在STEP 7中,你也可以学会!
- 2024-10-22 OpenShift 4 之 GitOps(1)安装ArgoCD环境
- 2024-10-22 OpenLayers helloworld 以及加载天地图图层示例
- 2024-10-22 Python利用WKT创建shapefile、shapefile输出WKT
- 2024-10-22 OpenFaaS实战之四:模板(template)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)