PyArabic
Arabic text tools for Python
What it is and what it does
PyArabic is a specialized library for processing Arabic text in Python. It provides a collection of functions organized into modules—araby.py for general text operations (stripping diacritics, tokenization, character classification), number.py for converting between numerals and Arabic words, and named.py for named-entity recognition. The library works with Unicode-encoded Arabic strings and handles Arabic-specific challenges like ligatures, hamza variants, and diacritical marks (harakat).
The package is designed for developers building Arabic natural language processing pipelines, text normalization workflows, or linguistic analysis tools. It depends only on six and installs with low friction. However, the project is abandoned—the last release was over four years ago—so it receives no maintenance, bug fixes, or updates. It is suitable only for stable use cases where the existing feature set is sufficient.
Use it for:
- Strip diacritical marks from Arabic text for stemming or lemmatization in search or NLP pipelines.
- Tokenize Arabic documents into words or sentences for text analysis or corpus processing.
- Normalize Arabic script variants (hamza, ligatures) to standardize text before comparison or indexing.
- Convert numeric values to Arabic words or extract numeric phrases from Arabic text for document parsing.
- Classify and detect Arabic letters and character groups for text validation or linguistic analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyArabic provides functions to manipulate Arabic text and letters—detecting character types, removing diacritics, tokenizing into words or sentences, and normalizing Arabic script variants.
Yes, if you need stable Arabic text manipulation and the existing feature set meets your requirements. The low install friction and lack of security vulnerabilities make it safe to use. However, the abandoned maintenance status means no bug fixes or updates will be forthcoming—do not install if you expect ongoing support or compatibility with future Python versions. Suitable for production use only in stable, unchanging workflows.
Install
pyarabic on PyPI
pip
pip install pyarabicuv
uv add pyarabicpoetry
poetry add pyarabicInstalling PyArabic
Before you install
Install friction is low; the package depends only on six. However, maintenance is abandoned—the last release was 1518 days ago, and no recent commits or updates are evident. Use only if the existing functionality meets your needs without expecting bug fixes or feature additions.
License in practice
PyArabic is licensed under GPL (copyleft). Any derivative work or distribution must also be released under GPL; proprietary or closed-source projects cannot incorporate it without legal risk.
Quickstart
pip install pyarabic
import pyarabic.araby as araby
text = u'السلام عليكم'
stripped = araby.strip_tashkeel(text)
Requires Python with Unicode support (native in Python 3; Python 2 requires proper encoding declarations). Arabic text must be defined with u'' prefix or UTF-8 encoding declaration.
Verify before relying
- Whether the package works reliably with modern Python versions (3.9+) given its abandoned status.
- Performance characteristics when processing large Arabic corpora.
- Compatibility with recent versions of the six dependency.
Package facts
| License | GPL (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — six |
| Maintenance | abandoned — 1,518 days since the last release |
| First released | |
| Downloads | 152,348/month — #10,905 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: PyArabic-0.6.15-py3-none-any.whl
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
arabic-reshaperReshapes Arabic text characters into their…
permissive · top 5,000 on PyPI
normalityNormality removes diacritics, punctuation, and…
permissive · top 15,000 on PyPI
indic-nlp-libraryIndic NLP Library provides text processing and…
permissive · top 15,000 on PyPI
fold-to-asciiConverts Unicode characters outside the basic…
permissive · top 15,000 on PyPI
jieba3kPerforms Chinese word segmentation, breaking…
unclear · top 15,000 on PyPI
jiebaJieba segments Chinese text into words using…
permissive · top 5,000 on PyPI
confusablesDetects and matches words that appear identical…
permissive · top 15,000 on PyPI
segmentsSegments provides Unicode-aware tokenization…
permissive · top 5,000 on PyPI
w3libw3lib provides utility functions for common web…
permissive · top 5,000 on PyPI
zalgolibEncodes text with overlapping Unicode…
permissive · top 15,000 on PyPI