Python 中的词云

问题描述

一个数据框:1

使用以下代码但得到 ValueError: We need at least 1 word to plot a word cloud,got 0.

有谁知道如何解决这个问题?我正在尝试生成 3 个词云一个用于所有推文,一个用于真实推文,另一个用于假推文。

提前感谢您的帮助:)

df_real = df[df['label']==1]

df_fake = df[df['label']==0]

tweet_All = " ".join(review for review in df.Tweet)

tweet_real = " ".join(review for review in df_real.Tweet)

tweet_fake = " ".join(review for review in df_fake.Tweet)

fig,ax = plt.subplots(3,1,figsize  = (30,30))
# Create and generate a word cloud image:
wordcloud_ALL = WordCloud(max_font_size=50,max_words=100,background_color="white").generate(tweet_All)
wordcloud_ADR = WordCloud(max_font_size=50,background_color="white").generate(str(tweet_real))
wordcloud_NADR = WordCloud(max_font_size=50,background_color="white").generate(str(tweet_fake))

# display the generated image:
ax[0].imshow(wordcloud_ALL,interpolation='bilinear')
ax[0].set_title('All Tweets',fontsize=30)
ax[0].axis('off')
ax[1].imshow(wordcloud_ADR,interpolation='bilinear')
ax[1].set_title('Tweets under real Class',fontsize=30)
ax[1].axis('off')
ax[2].imshow(wordcloud_NADR,interpolation='bilinear')
ax[2].set_title('Tweets under fake Class',fontsize=30)
ax[2].axis('off')

解决方法

df['label'] 似乎是 str (或 object)类型:在您的屏幕截图中,它显示“假”作为条目。也许 df_real 和 df_fake 是空的? 我会尝试展示 df_real 和 df_fake 的头部。

一种解决方案是将第一行替换为

df_real = df[df['label']!='fake']
df_fake = df[df['label']=='fake']