当前位置: 首页 > news >正文

文本预处理——构建词云

Python 词云或标签云是一种可视化技术,通常用于显示网站的标签或关键字。这些单个单词反映了网页的上下文,并聚集在词云中。云中的单词字体大小和颜色各不相同,表明其突出性。字体大小越大,相对于其他单词的重要性就越高。词云可以根据创建者的设想采用各种形状和大小。但是,单词的数量至关重要;太多的话会使其变得杂乱,难以阅读。

虽然创建 Python 词云的方法有很多种,但最广泛使用的类型是使用  语料库中的词频。因此,我们将使用频率类型创建词云。

词云最适合用于特定场景,在这些场景中,可视化词频或突出程度至关重要。以下是适合使用词云的一些情况:

  • 词云可以快速概览文本语料库中最常出现的单词,帮助研究人员识别模式和关键主题。
  • 在总结大量文本时,Python词云可以有效地突出显示最相关和最重要的术语,使信息更容易被受众接受。
  • 词云对于分析社交媒体平台上的情绪、主题标签或热门话题很有价值,可以简洁地表达热门主题。
  • 它们为报告、演示文稿或仪表板增加了视觉吸引力和参与度,使查看者更容易从数据中掌握重要见解。
  • 在比较多个文本源或文档时,词云可以帮助识别词频的相似性或差异性。

 使用 Python 创建一个词云可以按照以下步骤进行:

步骤1:导入必要的库

import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud

步骤2:选择数据集

df = pd.read_csv("xxxxxxx.csv")

步骤3:选择词云的文本与文本量

选择用于创建 Python 词云的文本是一项重要任务。选择文本时必须检查各种因素,例如:

  • 我们有问题陈述吗?
  • 所选文本有意义吗?
  • 我们能总结一下创建的词云吗?
  • 我们的文本是否有足够数量的文本?

词云需要适量的文字,文字过多会阻碍词云的视觉效果,文字过少又没有意义。

我们可以使用 DataFrame 的 .head() 方法来检查列及其中存在的数据类型。在我们的示例中,我们将列类别设为文本。

由于列 category 在每个类别 game 之前都有一个前缀GAME,因此我们在 python 中的 wordcloud 最终会将GAME创建为最常用的单词,而 python 中的 wordcloud 在 int 中没有任何意义。因此,我们将在将category列添加到文本时执行过滤 。

步骤4:检查NULL值

需要检查我们的数据集中的空值,因为在创建词云时,它不会接受带有nan值的文本。

df.isna().sum()

步骤5:向变量添加文本

根据步骤 3 中的参数,将文本数据添加到您选择的变量中。在这里,我们将数据添加到变量文本中。

text = " ".join(cat.split()[1] for cat in df.category)

步骤 6:创建词云

创建一个 WordCloud 类的对象,并指定其名称,然后调用 generate() 方法。这里我们创建了名为word_cloud 的对象。 

WordCloud() 根据需要接受多个参数。这里我们添加两个参数:

  • collocations = False,将忽略文本中的搭配词
  • background_color = '白色',这将使文字看起来更清晰

.generate() 方法接受我们创建的文本作为参数 。在本例中,我们将 文本 变量作为 .generate() 的参数。

word_cloud = WordCloud(collocations = False, background_color = 'white').generate(text)

步骤 7:绘制词云

使用matplotlib.pyplot 的.imshow()方法将词云显示为图像。

.imshow() 接受多个参数,但在我们的示例中,我们接受两个参数:

  • 在步骤 5 中创建的 word_cloud
  • 插值 = '双线性'

由于我们使用 .imshow() 创建图像,因此图像的重采样是由于图像像素大小和屏幕分辨率不匹配而完成的。此重采样由插值参数控制,以根据我们的需要生成更柔和或更清晰的图像。有几种可用的插值类型,例如高斯、二次、双三次。这里我们使用双线性插值。

在绘制图像时关闭轴,因为我们不希望图像中出现轴刻度。

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

在本次示例中,我们使用来自Kaggle的Top Games on Google Play Store | Kaggle

完整代码

#Importing Libraries
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from wordcloud import WordCloud
#Importing Dataset
df = pd.read_csv("android-games.csv")
#Checking the Data
df.head()
#Checking for NaN values
df.isna().sum()
#Removing NaN Values
#df.dropna(inplace = True)
#Creating the text variable
text = " ".join(cat.split()[1] for cat in df.category)
# Creating word_cloud with text as argument in .generate() method
word_cloud = WordCloud(collocations = False, background_color = 'white').generate(text)
# Display the generated Word Cloud
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()


http://www.mrgr.cn/news/58621.html

相关文章:

  • 第五届光学与图像处理国际学术会议(ICOIP 2025)征稿中版面有限!
  • 《a16z : 2024 年加密货币现状报告》解析
  • java中this的内存原理是?
  • 网络地址转换——NAT技术详解
  • 正则表达式基本语法(快速认知)
  • 安装报错解决:No module named ‘quaternion‘
  • Matlab学习02-matlab中的数据显示格式及符号变量
  • AIGC底层技术揭秘
  • 揭开C++ STL的神秘面纱之string:提升编程效率的秘密武器
  • Java如何实现站内消息系统的设计与实现
  • C++游戏开发教程:从入门到进阶
  • 蓝桥杯题目理解
  • 数字 图像处理算法的形式
  • 云轴科技ZStack亮相迪拜GITEX大会,与阿里云再次携手深化海外合作
  • qt 下载安装
  • 二分搜索法
  • 日常记录,使用springboot,vue2,easyexcel使实现字段的匹配导入
  • bios设置后cpu虚拟化仍禁用
  • 通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问
  • 《近似线性可分支持向量机的原理推导》 拉格朗日函数 公式解析
  • jupyter notebook改变默认启动路径
  • spring框架介绍
  • TCP simultaneous open测试
  • 【Linux系统】如何证明进程的独立性
  • Redis的RDB执行原理
  • [CSP-J 2023] 一元二次方程(模拟)