generating word cloud for items in a list in python generating word cloud for items in a list in python python python

generating word cloud for items in a list in python


one way of doing,

import matplotlib.pyplot as pltfrom wordcloud import WordCloud#convert list to string and generateunique_string=(" ").join(my_list)wordcloud = WordCloud(width = 1000, height = 500).generate(unique_string)plt.figure(figsize=(15,8))plt.imshow(wordcloud)plt.axis("off")plt.savefig("your_file_name"+".png", bbox_inches='tight')plt.show()plt.close()

Another way by creating Counter Dictionary,

#convert it to dictionary with values and its occurencesfrom collections import Counterword_could_dict=Counter(my_list)wordcloud = WordCloud(width = 1000, height = 500).generate_from_frequencies(word_could_dict)plt.figure(figsize=(15,8))plt.imshow(wordcloud)plt.axis("off")#plt.show()plt.savefig('yourfile.png', bbox_inches='tight')plt.close()


The WordCloud takes regular expression as argument. Using this we can make the splitting character a + instead of a space.

regexp=r"\w[\w' ]+"

The list of words then needs to be joined on a + as well as each this is now used to split words. Resulting in the following code:

wordcloud = WordCloud(width=1000, height=500, regexp=r"\w[\w' ]+").generate("+".join(my_list))