Metadata-Version: 2.4
Name: lectura-correcteur
Version: 1.0.0
Summary: Correcteur orthographique et grammatical du francais — regles, homophones, accords, conjugaison, participes passes
Author-email: Max Carriere <contact@lec-tu-ra.com>
License: AGPL-3.0-or-later
Project-URL: Homepage, https://www.lec-tu-ra.com/solutions/outils/modules/
Project-URL: Repository, https://github.com/maxcarriere/lectura-modules/tree/main/Correcteur
Project-URL: Issues, https://github.com/maxcarriere/lectura-modules/issues
Keywords: correcteur,french,nlp,orthographe,grammaire,homophones,accords
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Natural Language :: French
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENCE.txt
Requires-Dist: lectura-lexique>=1.0
Provides-Extra: models
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Dynamic: license-file

# Lectura Correcteur

Correcteur orthographique et grammatical du francais. Pipeline a base de regles linguistiques avec support optionnel de modeles statistiques (BiLSTM, n-gram).

## Installation

```bash
pip install lectura-correcteur
```

Dependance : `lectura-lexique` (installe automatiquement).

## Utilisation rapide

```python
from lectura_lexique import Lexique
from lectura_correcteur import Correcteur, CorrecteurConfig

lex = Lexique("lexique.db")
correcteur = Correcteur(lex)

result = correcteur.corriger("Les enfant mange des pomme.")
print(result.phrase_corrigee)  # "Les enfants mangent des pommes."

for c in result.corrections:
    print(f"  {c.original} -> {c.corrige} ({c.type_correction.value})")
```

## Types de corrections

| Type | Exemples |
|------|----------|
| **Orthographe** | Mots hors lexique, distance d'edition 1-2, fautes AZERTY |
| **Accords** | Determinant-nom, adjectif-nom (genre et nombre) |
| **Conjugaison** | Accord sujet-verbe, terminaisons verbales |
| **Homophones** | a/a, est/et, son/sont, ou/ou, ce/se, ces/ses... |
| **Participes passes** | Accord avec avoir/etre, COD anteposes |
| **Resegmentation** | Apostrophes SMS (jai → j'ai), agglutinations |

## Configuration

```python
config = CorrecteurConfig(
    activer_orthographe=True,     # Verification lexicale (OOV)
    activer_grammaire=True,       # Accords, conjugaison, homophones
    activer_resegmentation=True,  # Apostrophes et agglutinations
    activer_azerty=True,          # Corrections specifiques clavier AZERTY
    max_suggestions=5,            # Nombre max de suggestions par mot
    activer_editeur_homophones=True,  # BiLSTM (si modele present)
    activer_lm=True,              # Modele de langue n-gram (si present)
)

correcteur = Correcteur(lex, config=config)
```

## Mode sans modeles

Le correcteur fonctionne sans fichiers de modeles (mode regles uniquement).
Les modeles optionnels (BiLSTM, n-gram) ameliorent la precision sur les homophones
mais ne sont pas necessaires. Si les fichiers sont absents, le correcteur
se rabat automatiquement sur les regles linguistiques.

## Dependances

- `lectura-lexique` : acces au lexique francais (formes, frequences, POS, morphologie)

## Licence

Ce module est distribue sous licence **AGPL-3.0** (non commerciale) — voir [LICENCE.txt](LICENCE.txt).

Pour un usage commercial, contacter [contact@lec-tu-ra.com](mailto:contact@lec-tu-ra.com).
