Logo Lanfrica

Yehonatal/fidel-tools

Domain:

natural language processing

Record type:

software
Creator:
Yeh
Host:
Fidel Tools is a modular, schema-driven pre-processing and Natural Language Processing (NLP) toolkit designed specifically for Amharic and other Ethiopic script text The most comprehensive, schema-driven NLP pre-processing framework for Amharic. Website · Issues · Contributing --- ## What is Fidel Tools? Fidel Tools is a modular, schema-driven pre-processing and Natural Language Processing (NLP) toolkit designed specifically for Amharic and other Ethiopic script text. It provides high-performance components out of the box including character normalization, sentence boundary tokenization, prefix-aware stopword removal, light stemming, and bidirectional transliteration. Natural Language Processing in the Ethiopic ecosystem is a half-solved problem. Most implementations require hardcoded, unconfigurable logic and suffer from low accuracy. We believe developers deserve a production-grade, highly customizable solution hence, **Fidel Tools**. --- ## Packages Fidel Tools is managed as a monorepo workspace. Check the individual package directories and their respective changelogs: | Package | Description | Version | Changelog | | :--- | :--- | :--- | :--- | | `@fidel-tools/core` | Core processing pipeline and NLP engine | `0.1.9` | Changelog | | `@fidel-tools/lang-am` | Amharic language pack & schema configurations | `0.1.9` | Changelog | | `@fidel-tools/validate-pack` | CLI tool to validate & fix language packs | `0.1.9` | Changelog | | `fidel-tools` (Python) | Python bindings for the core native Rust engine | `0.1.9` | README | --- ## Quick Start ### Installation **Node.js**: ```bash pnpm add @fidel-tools/core @fidel-tools/lang-am ``` **Python**: ```bash pip install fidel-tools ``` ### Usage **Node.js**: ```typescript import { Pipeline } from '@fidel-tools/core' import amPack from '@fidel-tools/lang-am' const nlp = new Pipeline(amPack) // Normalize homophones, labialization, and gemination const text = nlp.normalize("ሐኪም ኀይሉ በልቷልልል!") console.log(text) // "ሃኪም ሃይሉ በልቱዋልል!" // Remove stopwords using boundary rules const cleaned = nlp.removeStopwords("ያወጣውን የተጨማሪ እሴት") console.log(cleaned) // "ያወጣውን የ እሴት" …

Languages