Observed since 20 Oct, 17:46 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
NLP tools and resources for Ethiopian languages
Natural Language Processing tools and resources for Ethiopian languages.
AbugidaNLP is an open-source library focused on developing NLP tools tailored to Ethiopian languages. The library aims to support tasks like calendar system conversion, numeral conversion, and transliteration between Ethiopic and Latin scripts. As one of the first steps towards bridging the gap in NLP tools for underrepresented languages, AbugidaNLP aspires to grow into a comprehensive toolkit for linguists, researchers, and developers.
AbugidaNLP is currently in its infancy, offering:
Install AbugidaNLP using pip:
pip install abugida
Here’s how to get started with AbugidaNLP:
from abugida import ScriptConverter # Import the ScriptConverter class from AbugidaNLP
# Initialize the ScriptConverter
converter = ScriptConverter()
# Forward transliteration: Convert Ethiopic script to Latin script
result_fwd = converter.transliterate("በመተባበራችን", "fwd")
print(result_fwd) # Output: bemetebaberacn
# Backward transliteration: Convert Latin script to Ethiopic script
result_bwd = converter.transliterate("merejawoc", "bwd")
print(result_bwd) # Output: መረጃዎች
ScriptConverter class handles script conversions.ScriptConverter to use its methods."fwd" mode for Ethiopic to Latin conversion."bwd" mode for Latin to Ethiopic conversion.from abugida import CalendarConverter
converter = CalendarConverter()
# Ethiopian Calendar (EC) to Gregorian Calendar (GC)
print(converter.convert("2017-04-29", "EC", "GC")) # Output: 2025-01-07 (Genna)
# Gregorian Calendar (GC) to Ethiopian Calendar (EC)
print(converter.convert("2024-09-11", "GC", "EC")) # Output: 2017-01-01 (Enkutatash)
# Pagume 6 exists only in leap years (years where year % 4 == 3)
print(converter.convert("2015-13-06", "EC", "GC")) # Output: 2023-09-11
Dates are written as "YYYY-MM-DD", with Pagume as month 13. Conversion goes through the Julian Day Number using the Beyene-Kudlek algorithm, the same one used by ICU. Ethiopian dates use the Amete Mihret era, and Gregorian dates use the proleptic Gregorian calendar.
from abugida import NumeralConverter
converter = NumeralConverter()
# Hindu-Arabic ("ha") to Ge'ez ("gz")
print(converter.convert(2017, "ha", "gz")) # Output: ፳፻፲፯
print(converter.convert(100000000, "ha", "gz")) # Output: ፼፼
# Ge'ez ("gz") to Hindu-Arabic ("ha")
print(converter.convert("፯፻፷፭፼፵፫፻፳፩", "gz", "ha")) # Output: 7654321
Ge'ez numerals follow the CLDR %ethiopic rule set, so output matches ICU. When parsing, an explicit ፩ before ፻ or ፼ (as in ፩፻) is accepted, and malformed numerals such as ፻፻ raise a ValueError.
Documentation for AbugidaNLP is under construction. Stay tuned for detailed usage examples and API references.
We welcome contributions to AbugidaNLP! Whether it's improving documentation, adding new features, or fixing bugs, your help is valuable.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to the following resources for their inspiration and insights:
%ethiopic rule set that defines the numeral conventionFor questions or support, please open an issue.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.4.0 | 23 Sept 2026 | 0 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:46 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:1b1102d595882e92c4174dbb0633a2e158825c468f3393a16f0851a6b1c547b8