分离垃圾邮件和非垃圾邮件以实现 WordCloud 可视化

Separate Spam and Ham for WordCloud Visualization

我正在执行垃圾邮件检测,并希望在 Wordcloud 中分别可视化垃圾邮件和非垃圾邮件关键字。这是我的 .csv 文件。

data = pd.read_csv("spam.csv",encoding='latin-1')
data = data.rename(columns = {"v1":"label", "v2":"message"})
data = data.replace({"spam":"1","ham":"0"})

这是我的 WordCloud 代码。我需要 spam_words 方面的帮助。我无法生成正确的图表。

import matplotlib.pyplot as plt
from wordcloud import WordCloud 

spam_words = ' '.join(list(data[data['label'] == 1 ]['message']))
spam_wc = WordCloud(width = 512, height = 512).generate(spam_words)

plt.figure(figsize = (10,8), facecolor = 'k')
plt.imshow(spam_wc)
plt.axis('off')
plt.tight_layout(pad = 0)
plt.show()

问题是当前代码将 "spam""ham" 替换为 one-character 字符串 "1""0",但您根据与 整数 的比较过滤 DataFrame 1. 将替换行更改为:

data = data.replace({"spam": 1, "ham": 0})