Natural Language Processing tools for Afaan Oromoo (Oromo language) using Qubee script
Project description
You can copy and paste this version of the README.md file. This is the properly formatted version that includes all the original content with correct Markdown formatting:
# Qubee NLP
<div align="center">
[](https://pypi.org/project/qubee-nlp/)
[](https://pypi.org/project/qubee-nlp/)
[](https://opensource.org/licenses/MIT)
[](https://qubee-nlp.readthedocs.io)
[](https://github.com/afaanoromoo/qubee-nlp/actions/workflows/tests.yml)
[](https://codecov.io/gh/afaanoromoo/qubee-nlp)
[](https://pepy.tech/project/qubee-nlp)
**Natural Language Processing tools for Afaan Oromoo (Oromo language) using Qubee script**
[Installation](#installation) • [Quick Start](#quick-start) • [Documentation](https://qubee-nlp.readthedocs.io) • [Examples](examples/)
</div>
## Features
- **Text Validation**: Validate Qubee script text for Afaan Oromoo
- **Tokenization**: Word and sentence tokenization with context awareness
- **Normalization**: Text cleaning, diacritic handling, and standardization
- **Stemming**: Morphological analysis and stemming for Afaan Oromoo
- **POS Tagging**: Part-of-speech tagging framework
- **Syllabification**: Syllable segmentation based on Oromo phonotactics
- **Stopword Removal**: Language-specific stopword lists
- **Corpus Tools**: Corpus building, processing, and analysis
## Installation
### From PyPI (Recommended)
```bash
pip install qubee-nlp
From Source
git clone https://github.com/GUUTA/qubee-nlp.git
cd qubee-nlp
pip install -e .
For Development
git clone https://github.com/GUUTA/qubee-nlp.git
cd qubee-nlp
pip install -e .[dev] # Includes testing and development tools
Quick Start
from qubee_nlp import word_tokenize, sentence_tokenize
# Tokenize text
text = "Afaan Oromoo afaan guddaa dha."
tokens = word_tokenize(text)
print(tokens) # ['AFAAN', 'OROMOO', 'AFAAN', 'GUDDAA', 'DHA']
# Tokenize sentences
sentences = sentence_tokenize("Kuni kitaaba dha. Inni bareessaa dha.")
print(sentences) # ['KUNI KITAABA DHA.', 'INNI BAREESSAA DHA.']
Text Validation
from qubee_nlp import validate_qubee_text
is_valid, invalid_chars = validate_qubee_text("Afaan Oromoo")
print(is_valid) # True
print(invalid_chars) # []
Text Normalization
from qubee_nlp import normalize_qubee
text = " Áfáan Oromoo "
normalized = normalize_qubee(text)
print(normalized) # "AFAAN OROMOO"
Advanced Tokenization
from qubee_nlp import QubeeTokenizer
tokenizer = QubeeTokenizer(preserve_case=True)
tokens = tokenizer.tokenize("Afaan Oromoo")
print(tokens) # ['Afaan', 'Oromoo']
Stemming
from qubee_nlp.stemmer import QubeeStemmer
stemmer = QubeeStemmer()
stem = stemmer.stem("barreessuu")
print(stem) # "bar"
Documentation
Complete documentation is available at https://qubee-nlp.readthedocs.io
Examples
Check the examples directory for complete usage examples:
Command Line Interface
Qubee NLP includes a command-line interface:
# Analyze text
qubee-nlp analyze "Afaan Oromoo afaan guddaa dha."
# Tokenize file
qubee-nlp tokenize input.txt output.txt
# Validate text
qubee-nlp validate "Áfáan Órómóó"
# Get help
qubee-nlp --help
Qubee Alphabet
Qubee is the Latin-based alphabet used for writing Afaan Oromoo. The library supports:
- Vowels (5): A, E, I, O, U (with optional diacritics: á, é, í, ó, ú)
- Consonants (21): B, C, D, F, G, H, J, K, L, M, N, P, Q, R, S, T, V, W, X, Y, Z
- Digraphs: CH, DH, NY, PH, SH
- Special Characters: Apostrophe (') and hyphen (-) for words like "waa'ee"
Language Support
This library is specifically designed for Afaan Oromoo (Oromo language), which:
- Is a Cushitic language spoken by over 40 million people
- Uses the Qubee (Latin) script for writing
- Has rich morphology with agglutinative structure
- Is the most widely spoken Cushitic language
Development
Setting Up Development Environment
# Clone repository
git clone https://github.com/GUUTA/qubee-nlp.git
cd qubee-nlp
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e .[dev]
# Install pre-commit hooks
pre-commit install
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=qubee_nlp
# Run specific test file
pytest tests/test_alphabet.py -v
# Run with parallel execution
pytest -n auto
Code Quality
# Format code
black src/qubee_nlp tests examples
# Lint code
flake8 src/qubee_nlp tests examples
# Type checking
mypy src/qubee_nlp
# Security check
bandit -r src/qubee_nlp
Building Documentation
# Install documentation dependencies
pip install -e .[docs]
# Build documentation
cd docs
make html
# View documentation
open _build/html/index.html # macOS
start _build/html/index.html # Windows
xdg-open _build/html/index.html # Linux
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Ways to Contribute
- Report bugs: File issues on GitHub Issues
- Suggest features: Share ideas in Discussions
- Submit pull requests: Fix bugs or add features
- Improve documentation: Help make docs better
- Share examples: Create tutorials or examples
- Test the library: Try it out and give feedback
Development Workflow
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
Support
Community Support
- GitHub Discussions: For questions and discussions
- GitHub Issues: For bug reports and feature requests
- Documentation: For detailed guides and API reference
Professional Support
For commercial support, consulting, or custom development, please contact guutatesema@gmail.com.
Citation
If you use Qubee NLP in your research, please cite:
@software{qubee_nlp,
title = {Qubee NLP: Natural Language Processing for Afaan Oromoo},
author = {Guta Tesema Tufa, Qubee NLP Team},
year = {2025},
url = {https://github.com/GUUTA/qubee-nlp},
version = {0.1.0}
}
Related Projects
- Oromo Text Corpus: Collection of Afaan Oromoo texts
- Oromo Language Tools: Additional language tools
- Qubee Fonts: Fonts for Qubee script
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- The Afaan Oromoo language community
- Contributors and maintainers
- Early adopters and testers
- Open source community
Star History
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qubee_nlp-0.1.1.tar.gz.
File metadata
- Download URL: qubee_nlp-0.1.1.tar.gz
- Upload date:
- Size: 70.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
655abbb1fc00cd13dd45d812ed3968a9b9827f10a1f97a5313404592ff167106
|
|
| MD5 |
f31ded0105b6437aeef3682cb868735e
|
|
| BLAKE2b-256 |
f3f1ce83060708eb207984194e1dd6fde2a8fe755c7b71ee6197ce470df02e34
|
File details
Details for the file qubee_nlp-0.1.1.0-py3-none-any.whl.
File metadata
- Download URL: qubee_nlp-0.1.1.0-py3-none-any.whl
- Upload date:
- Size: 38.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2a4b6b888d03761a6c5956a3a6e36d37bd9e4ca47fde7ae7bb6988510c69fdb
|
|
| MD5 |
80bd978eacb722e5254e1ed702f13b3b
|
|
| BLAKE2b-256 |
95860c6a914155e535ad06fea882295d44e26e6fba0c1b95000933ee2738bf4b
|
File details
Details for the file qubee_nlp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: qubee_nlp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 31.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12d365cc342cf9323b9757dbb47ff92426e00d2efe01e307e2aed1af6c6259bc
|
|
| MD5 |
0e8ef1758ac92199ec9608d2ded4b624
|
|
| BLAKE2b-256 |
b0efc15dd58fe41dc14521f90620c8d840dc2a6e51108e05524d852f1894c400
|