Иметь фрейм данных: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')
df['label'] похоже, имеет тип str (или объект): на вашем снимке экрана он показывает «фальшивый» в качестве записи. Может быть, df_real и df_fake пусты? Я бы попробовал показать главу df_real и df_fake.
Одним из решений может быть замена первых строк на
df_real = df[df['label']!='fake']
df_fake = df[df['label']=='fake']
Вы имеете в виду лучше с точки зрения производительности? В принципе, ваше решение должно работать. Подсказка помогла?
Да! Спасибо
Однако с точки зрения производительности два облака слов для настоящего и поддельного были очень похожи. Вы знаете, как построить частотность слова?
В созданных облаках слов слова, которые встречаются чаще, отображаются крупнее. Если этого недостаточно, есть много вариантов, в зависимости от приложения. Возможно, вы захотите отобразить наиболее распространенные слова в гистограмме? Однако есть и другие отправные точки для улучшения. Например, вы можете начать с фильтра стоп-слов.
Я уже включил стоп-слова, но я изо всех сил пытаюсь показать 10 лучших слов в гистограмме для всех твитов, настоящих твитов и подделок. И предложения?
Разделите все тексты на слова, посчитайте частоты, выберите 10 наиболее часто встречающихся и начертите их. Есть много способов приблизиться к этим шагам. Мне нравится матплотлиб!
Привет, я пытаюсь показать облако слов, связанное с реальными твитами и поддельными твитами. Вы знаете лучший способ сделать это?