Вопрос:

Как создать облако слов другой группы в Python?

python python-3.x word-cloud

17 просмотра

1 ответ

100 Репутация автора

У меня есть данные ниже, и я пытаюсь создать Wordcloud для каждого "человека", то есть 1,2,3. Я использую приведенный ниже код для создания wordcloud, но я не уверен, как создать облако слов для каждой группы. Примечание: я новичок в Python, пожалуйста, предоставьте объяснение вместе со ссылкой, если это необходимо.

Dataset:

import pandas as pd
data = {'Person':['1', '1','1','2','2','2','2','3','3'],'Response':['I like to eat','You have nice day','My name is ','I like to eat','You have nice day','My name is','This is it','I like to eat','You have nice day'],
       }
df = pd.DataFrame(data)

Код для Wordcloud

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
stopwords = set(STOPWORDS)

def show_wordcloud(data, title = None):
    wordcloud = WordCloud(
        background_color='white',
        stopwords=stopwords,
        max_words=200,
        max_font_size=40, 
        scale=3,
        random_state=1 # chosen at random by flipping a coin; it was heads
    ).generate(str(data))

    fig = plt.figure(1, figsize=(12, 12))
    plt.axis('off')
    if title: 
        fig.suptitle(title, fontsize=20)
        fig.subplots_adjust(top=2.3)

    plt.imshow(wordcloud)
    plt.show()

show_wordcloud(data['Response'])
Автор: biggboss2019 Источник Размещён: 12.06.2019 02:39

Ответы (1)


0 плюса

1196 Репутация автора

Это должно работать, но добавляет дополнительный вывод, в котором я не уверен:

df.groupby('Person').apply(
    lambda x: show_wordcloud(x.Response.tolist(), title=f"Person {x.name}")
)
Автор: TomNash Размещён: 12.06.2019 03:02
Вопросы из категории :
32x32