Metadata-Version: 2.4
Name: serb-stem
Version: 0.1.1
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Text Processing :: Linguistic
Summary: A high-performance Serbian stemming library supporting both Cyrillic and Latin scripts (Ekavica).
Requires-Python: >=3.7
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# Serb-Stem 🇷🇸⚡

[![Rust](https://img.shields.io/badge/language-Rust-orange.svg)](https://www.rust-lang.org/)
[![Python](https://img.shields.io/badge/python-3.7%2B-blue.svg)](https://www.python.org/)
[![WebAssembly](https://img.shields.io/badge/wasm-supported-blueviolet.svg)](https://webassembly.org/)
[![License](https://img.shields.io/badge/license-AGPL--3.0-green.svg)](LICENSE)

**Serb-Stem** je munjevito brz, algoritamski stemmer za srpski jezik, pisan u Rust-u. Dizajniran za maksimalne performanse u NLP zadacima, pretraživanju i analizi teksta, Serb-Stem nudi potpunu podršku za oba pisma (ćirilica i latinica) uz naprednu ekavizaciju.

## ✨ Ključne Karakteristike

- **🚀 Ekstremne Performanse**: Napisan u Rust-u, obrađuje preko 100,000 reči u milisekundi.
- **🔡 Dual-Script podrška**: Automatski prepoznaje i obrađuje i ćirilicu i latinicu.
- **🌍 Ekavizacija**: Inteligentna normalizacija ijekavskih oblika u ekavske radi preciznijeg pretraživanja (npr. *mlijeko* -> *mlek*).
- **🏗️ Više-platformski**: 
  - **Rust**: Native performanse kao biblioteka.
  - **Python**: Jednostavna integracija putem `PyO3` bindinga.
  - **WebAssembly**: Pokretanje direktno u browseru (punokrvni Web portal uključen).
- **🛡️ Type-Safe**: Maksimalna memorijska sigurnost bez žrtvovanja brzine.

## 📊 Performanse i Tačnost

Na osnovu testiranja na validiranom korpusu od 182 reči:
- **Tačnost**: `98.35%`
- **Brzina**: `< 1µs` po reči (ekstremna niska latencija)
- **Veličina**: WASM binarni fajl je manji od `120KB`.

## 🛠️ Instalacija i Korišćenje

### 🐍 Python
```bash
pip install serb-stem
```

```python
import serb_stem

# Latino ulaz
print(serb_stem.stem_py("knjigama"))  # Output: "knjig"

# Ćirilični ulaz
print(serb_stem.stem_py("књигама"))  # Output: "књиг"

# Ekavizacija (mlijeko -> mleko -> mlek)
print(serb_stem.stem_py("mlijeka"))   # Output: "mlek"
```

### 🦀 Rust
```toml
[dependencies]
serb_stem = "0.1.0"
```

```rust
use serb_stem::stem;

fn main() {
    let result = stem("učenici");
    assert_eq!(result, "učenik");
}
```

## 🌐 Interaktivni Demo
U okviru projekta nalazi se i `/portal` (React + Vite + WASM) koji omogućava testiranje stemmera direktno u vašem browseru uz vizuelni prikaz rezultata i vremena obrade.

## 📜 Licenca
Ovaj projekat je licenciran pod [AGPL-3.0](LICENSE) licencom.

---
*Developed with ❤️ by Ja1Denis & Antigravity AI*

