英语词云绘制

在数据的探索性分析过程中,对于数值型数据集,我们可以使用pd.info(),pd.describe()来对数据做一些统计汇总,使我们对数据有一个初步的整体认识。我们也可以对其做一些可视化的展示,如使用柱状图,直方图,散点图等等。但是对于文本数据,上述的方式就没有那么有效了。在此我们可以使用词云,来对文本数据做一个直观的展示,使我们对文本数据有一个整体的了解。

这一节,我们对英文文本绘制词云。由于英文文本是以空格来分开的,所以不需要做分词处理,可以直接绘制词云。在绘制词云的时候,我们可以找一些模板,直接套用过来就ok了。

1.垃圾邮件分类数据集词云绘制
接下来,我们将以垃圾邮件分类数据集为例来进行展示。该数据集提取链接如下:
链接:https://pan.baidu.com/s/1_wruskJfFfEyKIFfgsKHHg
提取码:q9t3

代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud,STOPWORDS
%matplotlib inline

#创建一个绘制词云的函数
def plot_wordcloud(text,title):
    wordcloud = WordCloud(background_color = 'black',
                         stopwords = set('STOPWORDS'),
                        max_words = 100,
                         max_font_size = 40,
                         relative_scaling = 1,
                         random_state = 3
    ).generate(str(text))
    fig = plt.figure(figsize = (8,8))
    plt.axis('off')
    plt.title(title)
    plt.imshow(wordcloud)

#导入垃圾邮件分类数据集
df = pd.read_csv('D:\\Py_dataset\\SMSSpamCollection',
names = ['Class','Message'],sep = '\t',encoding = 'utf-8')
df.head() #查看前5行数据

#绘制正常邮件的词云
ham_mesg = df.loc[df['Class'] == 'ham']['Message']
plot_wordcloud(ham_mesg,'Ham Message')
#绘制垃圾邮件的词云
spam_mesg = df.loc[df['Class'] == 'spam']['Message']
plot_wordcloud(spam_mesg,'Spam Message')

Ham message.png

spam message.png
2.wordcloud参数说明
wordcloud是python的一个外部库,在使用的时候,我们首先应该安装wordcloud库。在anaconda prompt终端输入’pip install wordcloud’就可以了,然后就可以使用它来画图了。


*background_color:背景颜色,通常设置为’white’,'black’等。
*stopwords:停用词,词云中需要显示的词。
*max_words:整数,显示的词的最大数量。
*max_font_size:整数,最大的字体尺寸。
*min_font_size:整数,最小的字体尺寸。
*relative_scaling:浮点型,图片放大缩小的系数。
*font_path:字体的路径,对于汉语特别重要,如果缺失该参数,则汉语无法显示出来。
*height:图片的高度。
*width:图片的高度。
*mask:参考图片的形状。


3.绘制一个带有形状的词云

#提取将要绘制词云的文本
text = df.loc[df['Class'] == 'spam']['Message']
#读取一张带有形状的图片
wordcloud_image = plt.imread('D:\\Py_dataset\\girl.jpg')

wordcloud = WordCloud(background_color = 'white',
                     stopwords = set('STOPWORDS'),
                     mask = wordcloud_image,
                     max_font_size = 80,
                     min_font_size= 40,
                     max_words = 100,
                     )
wordcloud.generate(str(text))
plt.figure(figsize = (4,6))
plt.axis('off')
plt.imshow(wordcloud)

真实的图片形状
girl.jpg

词云形状:
girl_wordcloud.png

英文文本词云绘制小结
1.在对英文文本进行探索时,第一步可通过绘制词云来了解文本的关键字。
2.使用WordCloud库来绘制词云。
3.熟悉WordCloud中的各个参数,根据自己的实际需要做相应的设置。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值