Python 垃圾短信分析:词云可视化

本文将使用 Python 对 '手机垃圾短信' 数据集进行分析,并利用词云图可视化垃圾短信和非垃圾短信的特点。

数据集: sms_spam.csv

  • 该文件包含 5537 行数据,2 列:
    • 'type':短信类型,'ham' 为非垃圾短信,'spam' 为垃圾短信
    • 'text':短信内容

步骤:

  1. 安装库:

    pip install wordcloud pandas
    
  2. 读取数据:

    import pandas as pd
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    
    # 读取数据集
    data = pd.read_csv('sms_spam.csv')
    
  3. 分类:

    # 分类垃圾邮件ham和非垃圾邮件spam
    spam = data[data['type'] == 'spam']
    ham = data[data['type'] == 'ham']
    
  4. 生成词云:

    # 生成垃圾短信的词云图
    spam_text = ' '.join(spam['text'].tolist())
    spam_cloud = WordCloud(background_color='white').generate(spam_text)
    plt.imshow(spam_cloud, interpolation='bilinear')
    plt.axis('off')
    plt.savefig('spam_wordcloud.png')
    
    # 生成非垃圾短信的词云图
    ham_text = ' '.join(ham['text'].tolist())
    ham_cloud = WordCloud(background_color='white').generate(ham_text)
    plt.imshow(ham_cloud, interpolation='bilinear')
    plt.axis('off')
    plt.savefig('ham_wordcloud.png')
    

说明:

  • WordCloud 类的 background_color 参数用于设置词云图的背景颜色,默认为黑色;interpolation 参数用于设置图像插值方式,这里使用双线性插值(bilinear)。
  • matplotlib 库的 imshowsavefig 方法分别用于显示和保存词云图。

原文地址: https://www.cveoy.top/t/topic/neRz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录