wordcloud español python nltk corpus gensim word-cloud

español - ¿Cómo crear una nube de palabras a partir de un corpus en Python?



word cloud python (5)

Aquí está el código corto

#make wordcoud 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() if __name__ == ''__main__'': show_wordcloud(text_str)

Desde la creación de un subconjunto de palabras de un corpus en R , el que responde puede convertir fácilmente una term-document matrix en una nube de palabras fácilmente.

¿Existe una función similar de las bibliotecas de python que toma un Gensim texto de palabra sin Gensim o un corpus Gensim o Gensim Mmcorpus en una nube de palabras?

El resultado se verá algo así:



En caso de que necesite estas nubes de palabras para mostrarlas en el sitio web o la aplicación web, puede convertir sus datos a formato json o csv y cargarlos en una biblioteca de visualización de JavaScript como d3 . Word Clouds en d3

Si no, la respuesta de Marcin es una buena manera de hacer lo que describe.


Ejemplo de código de amueller en acción.

En línea de comandos / terminal:

sudo pip install wordcloud

Luego ejecuta el script python:

## Simple WordCloud import matplotlib.pyplot as plt from wordcloud import WordCloud, STOPWORDS text = ''all your base are belong to us all of your base base base'' def generate_wordcloud(text): # optionally add: stopwords=STOPWORDS and change the arg below wordcloud = WordCloud(font_path=''/Library/Fonts/Verdana.ttf'', relative_scaling = 1.0, stopwords = {''to'', ''of''} # set or space-separated string ).generate(text) plt.imshow(wordcloud) plt.axis("off") plt.show() generate_wordcloud(text)


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(Samsung_Reviews_Negative[''Reviews'']) show_wordcloud(Samsung_Reviews_positive[''Reviews''])