Correcteur
Lectura Correcteur
Correcteur orthographique et grammatical du français
Présentation
Pipeline de correction à base de règles linguistiques avec support optionnel de modèles statistiques (BiLSTM edit tagger, modèle de langue n-gram). Corrige l’orthographe, la grammaire, les homophones, les accords, la conjugaison et les participes passés.
Fonctionne en mode règles (~F1 0.70) ou avec scoring unifié pour une précision améliorée (~F1 0.70, meilleur rappel). Trois modes : lexique complet (lectura-lexique), lexique léger intégré, ou API.
Types de corrections
| Type | Exemple | Correction |
|---|---|---|
| Orthographe | les enfant | les enfants |
| Accords | une grand maison | une grande maison |
| Conjugaison | ils mange | ils mangent |
| Homophones | il a manger | il a mangé |
| Participes passés | la lettre que j’ai ecrit | la lettre que j’ai écrite |
| Resegmentation | jai faim | j’ai faim |
Benchmark comparatif
Évaluation GEC débiaisée sur 180 phrases (158 erronées, 22 correctes) couvrant orthographe, accords, conjugaison, homophones et phrases correctes.
| Correcteur | Précision | Rappel | F0.5 | F1 |
|---|---|---|---|---|
| Lectura (règles) | 0.790 | 0.599 | 0.742 | 0.681 |
| Lectura (règles + scoring) | 0.782 | 0.633 | 0.747 | 0.700 |
| Grammalecte | 0.465 | 0.388 | 0.447 | 0.423 |
| Baseline (ne rien faire) | 1.000 | 0.000 | 0.000 | 0.000 |
Précision = corrections correctes / total corrections proposées. Rappel = erreurs détectées / total erreurs dans le corpus. F0.5 privilégie la précision (éviter les faux positifs).
Le correcteur Lectura privilégie la précision : il propose peu de corrections erronées, ce qui est essentiel pour un usage non supervisé.
Exemple
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})")
Configuration
config = CorrecteurConfig(
activer_orthographe=True, # Vérification lexicale (OOV)
activer_grammaire=True, # Accords, conjugaison, homophones
activer_resegmentation=True, # Apostrophes et agglutinations
activer_azerty=True, # Corrections AZERTY
max_suggestions=5, # Suggestions par mot
activer_editeur_homophones=True, # BiLSTM (si modèle présent)
activer_lm=True, # N-gram (si modèle présent)
)
correcteur = Correcteur(lex, config=config)
Le correcteur se rabat automatiquement sur les règles si les modèles optionnels sont absents.
Compatibilité lexique
Le Correcteur fonctionne avec n’importe quelle base lexicale chargée via lectura-lexique : Lexique383, GLAFF, LeXiK, ou tout lexique au format compatible. Il suffit de passer l’objet Lexique au constructeur.
Modes de fonctionnement
| Mode | Dépendance | Taille | Installation |
|---|---|---|---|
| Lexique complet | lectura-lexique |
~900 Mo | pip install lectura-correcteur[sqlite] |
| Lexique léger | aucune | ~50 Mo | Inclus dans le wheel privé |
| API | aucune | 0 Mo | pip install lectura-correcteur |
La factory creer_correcteur() détecte automatiquement le mode disponible (lexique complet → léger → API).
Licence
Distribué sous licence AGPL-3.0 (non commerciale) — voir LICENCE.txt.
Pour un usage commercial, contacter contact@lec-tu-ra.com.