NLP快速入门:手把手教你用wordcloud做词云

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: NLP快速入门:手把手教你用wordcloud做词云

导读:

在上一章节介绍在Python环境下调用HanLP包进行分词的基础上,本文将介绍如何使用wordcloud绘制词云。尽管目前市面上已经有很多成熟的在线交互词云工具,但是考虑到实际工作中有很多内容是具有保密性的,无法直接在互联网上公开。因此,如何在本地搭建词云平台,自定义地绘制词云显得格外重要。

让文字更好看——词云

1.词云图是一种用来展现高频关键词的可视化表达,通过文字、色彩、图形的搭配,产生具有冲击力的视觉效果,并传达有价值的信息。

2.词云是通过形成 "关键词云层" 或 "关键词渲染",对文本中出现频率较高的关键词的视觉上的突出,词云图能过滤掉大量的文本信息,使用户只要一眼扫过文本就可以领略文本的主旨。

常用在线交互词云工具

1.微词云:https://www.weiciyun.com/

image.png

2.易词云:https://www.yciyun.com/

image.png

3.词云统计:
http://cloud.niucodata.com/

image.png

4.图悦:
http://www.picdata.cn/picdata/index.php

image.png

5.优词云:http://www.uciyun.com/

image.png

6.美寄词云:
https://www.moage.cn/wordart

image.png

wordcloud绘制词云

wordcloud是python的一个三方库,称为词云也叫做文字云,是根据文本中的词频,对内容进行可视化的汇总,可以用来绘制用户画像。

1. 如何安装 wordcloud ?

wordcloud的API总体来说并不多,且需要进行的配置并不复杂,适合新手上手。安装wordcloud可以使用python自带的pip工具来进行,本文使用的是python3.7,pip的版本是19.2.1。由于wordcloud依赖于numpy包、pillow包和matplotlib包,所以我们要先装好上述这三个包然后再装wordcloud包,安装命令如下:

pip install numpy==1.19.1pip install pillow==7.2.0
pip install matplotlib==3.3.2
pip install wordcloud==1.8.0

2. 如何使用 wordcloud ?

wordcloud库把词云当作一个 WordCloud 对象,所以使用wordcloud可以大致分为三个步骤(以英文为例):

1.创建对象:wc= wordcloud.WordCloud

2.加载文本:wc.generate("Choose a life of action, not one of oste-ntation.")

3.输出文件:wc.to_file("./picture/1.png")

如下图所示,一个简易、基本的词云便生成了。值得注意的是,生成的词云可以过滤掉停用词、介词、冠词等无意义的单词。

image.png

此外, wordcloud库还有如下特点。

  • wordcloud.WordCloud 代表一个文本对应的词云;
  • 可以根据文本中词语出现的频率等参数绘制词云;
  • 绘制词云的形状,尺寸和颜色都可以自定义设定。

附上wordcloud内的配置参数

image.png

3. wordcloud 基础实战

在本节,本文将介绍如何通过读取文本从而生成自定义式的词云,主要分为以下4步:

1.读取文本文件 (支持多种格式文本,包括word、excel、ppt等)

2.使用HanLP进行中文分词

3.使用wordcloud生成词云

4.显示/保存词云

注:使用HanLP进行中文分词可以参考我们之前的文章。

《NLP快速入门:手把手教你用HanLP做中文分词》

寒树爱函数,公众号:寒树RPA与AINLP快速入门:手把手教你用HanLP做中文分词

下面附上绘制简单中文词云的代码,分词的内容是十九大报告全文。

from PIL import Imagefrom wordcloud import WordCloud, STOPWORDSimport matplotlib.pyplot as pltimport numpy as np
wc = WordCloud(background_color="white",# 设置背景颜色 max_words=2000, # 词云显示的最大词数 height=400, # 图片高度 width=800, # 图片宽度 max_font_size=50, #最大字体  stopwords=stopwords, # 设置停用词 font_path='C:/Windows/Fonts/simhei.ttf', # 兼容中文字体,不然中文会显示乱码 )# 生成词云 wc.generate(text) # 此处的text便是分好词的19大文本
# 生成的词云图像保存到本地wc.to_file(path.join(d, "Images//19da.png"))
# 显示图像plt.imshow(wc, interpolation='bilinear')# interpolation='bilinear' 表示插值方法为双线性插值plt.axis("off")# 关掉图像的坐标plt.show




绘制的词云如下所示。

image.png

4. wordcloud 高级实战

在本节,本文将介绍如何将词云绘制在预设定好的背景图片上。例如:以我们最熟悉的中国地图为背景,我们将在此基础上绘制词云,只需修改wordcloud里的“mask”属性值,详细代码如下所示。

from PIL import Imagefrom wordcloud import wordcloudimport matplotlib.pyplot as pltimport numpy as np
wc = WordCloud(background_color="white",# 设置背景颜色 max_words=2000, # 词云显示的最大词数 max_font_size=60, #最大字体  stopwords=stopwords, # 设置停用词 mask=np.array(Image.open("./picture/china.jpg")), # 选择背景图片为中国地图 font_path='C:/Windows/Fonts/simhei.ttf', # 兼容中文字体,不然中文会显示乱码 )# 生成词云 wc.generate(text) # 此处的text便是分好词的女排评论文本
# 生成的词云图像保存到本地wc.to_file(path.join(d, "Images//nvpai.png"))
# 显示图像plt.imshow(wc, interpolation='bilinear')# interpolation='bilinear' 表示插值方法为双线性插值plt.axis("off")# 关掉图像的坐标plt.show




绘制的词云如下所示。

image.png

相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 数据可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
|
27天前
|
机器学习/深度学习 编解码 自然语言处理
【自然语言处理NLP】社区发现快速入门(1)
【自然语言处理NLP】社区发现快速入门
70 2
|
27天前
|
自然语言处理 算法 JavaScript
【自然语言处理NLP】社区发现快速入门(2)
【自然语言处理NLP】社区发现快速入门
55 0
【自然语言处理NLP】社区发现快速入门(2)
|
2月前
|
机器学习/深度学习 自然语言处理 数据可视化
【数据分享】R语言对airbnb数据nlp文本挖掘、地理、词云可视化、回归GAM模型、交叉验证分析
【数据分享】R语言对airbnb数据nlp文本挖掘、地理、词云可视化、回归GAM模型、交叉验证分析
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
基于ChatGPT快速入门体验NLP词云
基于ChatGPT快速入门体验NLP词云
76 0
|
自然语言处理 算法 Java
NLP快速入门:手把手教你用HanLP做中文分词
NLP快速入门:手把手教你用HanLP做中文分词
986 0
NLP快速入门:手把手教你用HanLP做中文分词
|
机器学习/深度学习 自然语言处理 算法
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索未来AI技术的前沿——自然语言处理的发展与应用
本文将深入探讨自然语言处理技术在人工智能领域中的重要性和应用前景。通过分析当前自然语言处理技术的发展趋势和实际应用案例,揭示了其在改善用户体验、提升工作效率以及推动产业创新方面的巨大潜力。
|
2天前
|
机器学习/深度学习 自然语言处理 算法
NLP技术在聊天机器人中的应用:技术探索与实践
【7月更文挑战第13天】NLP技术在聊天机器人中的应用已经取得了显著的成果,并将在未来继续发挥重要作用。通过不断探索和创新,我们可以期待更加智能、自然的聊天机器人的出现,为人类生活带来更多便利和乐趣。
|
7天前
|
机器学习/深度学习 自然语言处理 监控
NLP技术有哪些主要任务?
【7月更文挑战第8天】NLP技术有哪些主要任务?
16 4