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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file ar_wordcloud-0.0.4.tar.gz.

File metadata

  • Download URL: ar_wordcloud-0.0.4.tar.gz
  • Upload date:
  • Size: 545.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.18.4

File hashes

Hashes for ar_wordcloud-0.0.4.tar.gz
Algorithm Hash digest
SHA256 80b5cafca6fae4f940853bfc9606bc738bbfcd215cbd638353bd981173acb86b
MD5 1c32324e40e3064022100dacedb27c3c
BLAKE2b-256 335b7c18da129cae10f53d1a9e7a5228632e9e17515906c6738c4ae3ccdfc91d

See more details on using hashes here.

File details

Details for the file ar_wordcloud-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ar_wordcloud-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b2b22d5cabe705cc38a4f0135ceab66df3b5958551934a8e33a641e90fbff4fc
MD5 4d3cd850eec3cf25dc716a5ffb68ff7e
BLAKE2b-256 d86f174754e845e9e9795efdc8b54189ffd4a781ab11b72f539e1525f0a68be9

See more details on using hashes here.

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