首页 > 解决方案 > 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, max_words=100, background_color="white").generate(str(tweet_real))
wordcloud_NADR = WordCloud(max_font_size=50, max_words=100, 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')

标签: pythonpandastwitterword-cloud

解决方案


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

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

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

推荐阅读