I am having trouble displaying Bengali words in a word cloud image.
example input (only contains unicode range u0980-u09FF):
দুর্গা অর্থাৎ দুর্গতি সংকট রক্ষা দেবী দুর্গম নামক অসুরকে বধ হলেন হিন্দু দেবী পার্বতীর এক উগ্র রূপ একজন জনপ্রিয় দেবী হিন্দুরা মহাশক্তির উগ্র রূপ করেনতিনি দেবী পার্বতীর উগ্র রূপ অন্যান্য নামসমূহ চণ্ডিকা যোগমায়া অম্বিকা বৈষ্ণবী নারায়ণী মহামায়া কাত্যায়নী দেবী দুর্গার অনেকগুলি হাত অষ্টাদশভুজা ষোড়শভুজা দশভুজা অষ্টভুজা চতুর্ভূজা মূর্তি দশভুজা রূপটিই জনপ্রিয় বাহন সিংহ মতে বাঘ মহিষাসুর নামে এক অসুরকে বধরতা অবস্থায় যায়তার রূপ কালী রূপটি জনপ্রিয় মা দুর্গা হিন্দুধর্মে দেবী দুর্গা পরমা প্রকৃতি সৃষ্টির আদি শিবের স্ত্রীপার্বতীর উগ্র রূপ কার্তিক গণেশের জননী কালীর অন্যরূপ বাংলা আগমনী গানে দুর্গারূপে ...
The code:
# regex = r"[\u0980-\u09FF]+"
regex = r"([^\s]+)"
def plot_world(text):
wordcloud = WordCloud(
width = 800,
height = 800,
background_color ='white',
font_path='fonts/nirmala.ttf',
regexp=regex,
min_font_size = 10
)
wordcloud.generate(text)
# plot the WordCloud image
plt.figure(figsize = (8, 8), facecolor = 'none')
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad = 0)
plt.show()
plot_world(' '.join(words_token))
As you can see, the word "দুর্গা" is corrupted and displayed as দূর্ গা