Облако слов в Python

#python #pandas #twitter #word-cloud

#python #pandas #Twitter #облако слов

Вопрос:

Есть фрейм данных: 1

Используя следующий код, но получаем ValueError: нам нужно как минимум 1 слово для построения облака слов, получаем 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')
 

Ответ №1:

df[‘label’], похоже, имеет тип str (или object): на вашем скриншоте в качестве записи отображается «поддельный». Может быть, df_real и df_fake пусты? Я бы попытался показать заголовок df_real и df_fake.

Одним из решений может быть замена первых строк на

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

Комментарии:

1. Привет, то, что я пытаюсь сделать, это показать облако слов, связанное с реальными твитами и поддельными твитами. Знаете ли вы лучший способ сделать это?

2. Вы имеете в виду лучше с точки зрения производительности? В принципе, ваше решение должно работать. Помогла ли подсказка?

3. Да, это так! Спасибо

4. Однако с точки зрения производительности два облака слов для реального и поддельного были очень похожи. Вы знаете, как построить график частоты слов?

5. В созданных облаках слов слова, которые встречаются чаще, отображаются больше. Если этого недостаточно, есть много вариантов, в зависимости от приложения. Возможно, вы захотите отобразить наиболее распространенные слова в виде столбчатой диаграммы? Однако есть и другие отправные точки для улучшения. Вы могли бы начать с фильтра стоп-слов, например.