How tarekeldeeb/tajweed-embeddings works
This Python library turns Uthmānī Quran text into per-letter Tajwīd-aware vectors, with the original text recoverable from the encoding. Users can embed Quran passages or custom text through the Python API, or inspect results with the CLI; the embedder coordinates text and rule alignment, vector construction, and boundary variants. The README also documents data bootstrapping and rule-span generation. The sampled sources show core encoding, rule indexing, and secondary-variant behavior; links for unsampled generator details are limited to documented capabilities.
Main entry points: tajweed_embedder.py Tajweed embedder · secondary_embedder.py Stop/start variants · tajweed_classifier.py Rule-span classifier · tanzil_to_json.py Text to JSON
Components 23
User interfaces
- Package API
src/tajweed_embeddings/__init__.py - Inspection CLI
src/tajweed_embeddings/embedder/cli.py
Embedding engine
- Tajweed embedder
src/tajweed_embeddings/embedder/tajweed_embedder.py - Embedding result
src/tajweed_embeddings/embedder/embedding.py - Haraka encoding
src/tajweed_embeddings/embedder/harakat_embedder.py - Letter encoding
src/tajweed_embeddings/embedder/letters_embedder.py - Ṣifāt encoding
src/tajweed_embeddings/embedder/sifat_embedder.py - Contextual ṣifāt
src/tajweed_embeddings/embedder/sifat_editor.py - Rule and pause encoding
src/tajweed_embeddings/embedder/tajweed_rules_embedder.py - Stop/start variants
src/tajweed_embeddings/embedder/secondary_embedder.py - Text rendering and scoring
src/tajweed_embeddings/embedder/tajweed_embedder.py
Quran and rules data
- Quran text data
src/tajweed_embeddings/data - Ṣifāt definitions
src/tajweed_embeddings/data/sifat.json - Rule span data
src/tajweed_embeddings/data - Text normalization
src/tajweed_embeddings/util/normalization.py - Tanzil downloader
src/tajweed_embeddings/util/quran_download.py - Text to JSON
src/tajweed_embeddings/util/tanzil_to_json.py
Rule generation
- Rule-span classifier
src/tajweed_embeddings/rules_gen/tajweed_classifier.py - Rule decision trees
src/tajweed_embeddings/rules_gen/rule_trees - Tree utilities
src/tajweed_embeddings/rules_gen/tree.py
Other components
- Python caller
- CLI user
- Tanzil text source
Connections 25
- Python caller → Package API: calls
- Package API → Tajweed embedder: constructs
- CLI user → Inspection CLI: runs
- Inspection CLI → Tajweed embedder: requests encoding
- Tajweed embedder → Quran text data: loads text
- Tajweed embedder → Rule span data: loads spans
- Tajweed embedder → Ṣifāt definitions: loads definitions
- Tajweed embedder → Text normalization: normalizes text
- Tajweed embedder → Haraka encoding: encodes harakāt
- Tajweed embedder → Letter encoding: encodes letters
- Tajweed embedder → Ṣifāt encoding: encodes ṣifāt
- Tajweed embedder → Rule and pause encoding: applies spans
- Tajweed embedder → Stop/start variants: builds variants
- Tajweed embedder → Embedding result: assembles vectors
- Tajweed embedder → Text rendering and scoring: renders and scores
- Stop/start variants → Haraka encoding: updates states
- Stop/start variants → Ṣifāt encoding: re-encodes traits
- Stop/start variants → Contextual ṣifāt: edits context
- Tanzil downloader → Tanzil text source: fetches text
- Tajweed embedder → Tanzil downloader: bootstraps data
- Text to JSON → Text normalization: normalizes input
- Text to JSON → Quran text data: writes JSON
- Rule-span classifier → Rule decision trees: loads trees
- Rule-span classifier → Tree utilities: uses tree helpers
- Rule-span classifier → Rule span data: generates spans