Skip to main content

A tiny wrapper around `wordcloud.WordCloud` to support Arabic WordCloud

Project description

✨ May, 17 2020 ✨

ar_wordcloud

A tiny wrapper around wordcloud.WordCloud to support WordCloud with Arabic text.

Installation:

  • $ pip install ar_wordcloud

Usage:

Also, see the notebook example.

Import and instantiate the main class:

from ar_wordcloud import ArabicWordCloud

awc = ArabicWordCloud(background_color="white")

Then, either build a word cloud from a raw text string:

t = 'أهلاً وسهلا، اللغة العربية جميلة'
wc = awc.from_text(t)
wc.to_file('hello.png')

Or, build a word cloud from a dictionary:

d = {"مرحبا": 12, "برمج": 8, "من": 10, "رمضان كريم": 15, "العيد قرب": 12, "اهلين": 1, "كورونا": 3}
dict_wc = awc.from_dict(d, ignore_stopwords=True)
awc.plot(dict_wc, title="كل عام وانتم بخير", width=2, height=2)

Or, read text from a file:

wc = awc.from_file('examples/arabic.txt')
wc.to_file('examples/arabic.png')


Using a mask

Also, you can use a mask:

from ar_wordcloud import ArabicWordCloud
from ar_wordcloud.utils import read_mask_image

mask_img = read_mask_image() # NOTE: pass `mask_img_url` param to use a different mask, the default is a heart 
awc = ArabicWordCloud(background_color="white", mask=mask_img, contour_width=4, scale=0.5)

awc.from_file('examples/arabic.txt').to_image()


Multiple fonts support

It's also possible to choose a different Arabic font:

from ar_wordcloud import ArabicWordCloud

awc = ArabicWordCloud(font='NotoSansArabic-ExtraBold.ttf')

t = f"عيدفطر2020 سعيد، كل عام وانتم بخير"
awc.from_text(t).to_image()

# To see the available fonts:
print(awc.fonts.available_fonts)

If the entered font name is not correct, there'll be a friendly assertion message:

AssertionError: بالله أتأكد ان اسم الخط المُدخل صحيح
Please make sure the selected font name is correct!

TODO:

  • support mask plots
  • clean input text (remove punct .. etc)
  • support input from file e.g. awc.from_file(fname)
  • browse available fonts and select favorite
  • fix English font
  • cli support

PRs are welcome, thanks 🙏


Credit: this repo was born from the discussion in this PR.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ar_wordcloud-0.0.4.tar.gz (545.8 kB view hashes)

Uploaded Source

Built Distribution

ar_wordcloud-0.0.4-py3-none-any.whl (6.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page