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))