De Création d'un sous-ensemble de mots à partir d'un corpus dans R , le répondant peut facilement convertir un term-document matrix
dans un nuage de mots facilement.
Existe-t-il une fonction similaire des bibliothèques python) qui récupère un fichier texte Word brut ou NLTK
corpus ou Gensim
Mmcorpus dans un nuage Word?
Le résultat ressemblera un peu à ceci:
Voici un article de blog qui fait justement cela: http://peekaboo-vision.blogspot.com/2012/11/a-wordcloud-in-python.html
Le code complet est ici: https://github.com/amueller/Word_cloud
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'])
Si vous avez besoin de ces nuages de mots pour les afficher sur un site Web ou une application Web, vous pouvez convertir vos données au format json ou csv et les charger dans une bibliothèque de visualisation JavaScript telle que d . Word Clouds sur d
Sinon, la réponse de Marcin est un bon moyen de faire ce que vous décrivez.
Exemple de code d'amueller en action
En ligne de commande/terminal:
Sudo pip install wordcloud
Puis exécutez 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)
voici le code court
#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 __== '__main__':
show_wordcloud(text_str)