Graphemiseur (P2G)

Lectura Graphemiseur

Modele unifie P2G + POS + Morphologie pour le francais (IPA → orthographe)

Presentation

Le pendant inverse du G2P : a partir d’une transcription phonetique IPA, le P2G reconstruit l’orthographe francaise. Un seul modele BiLSTM char-level multi-tete V7 avec attention cross word-char et lex_select (3.2M parametres, ONNX INT8 = 4.4 Mo).

Tache Description Performance
P2G IPA vers orthographe (modele core + lex_select) ~95% word accuracy
P2G Pipeline complet (+ formules + noms propres) ~96% word accuracy
POS Etiquetage morpho-syntaxique (19 tags) ~98% accuracy
Morphologie Genre, nombre, temps, mode, personne 95-98%

Quatre backends d’inference : API (zero config), ONNX Runtime, NumPy, ou pur Python (zero dependance).

Architecture en deux couches

En miroir de l’architecture G2P (lectura-phonemiseur + lectura-g2p) :

Couche Package Contenu
Couche 1 lectura-graphemiseur Modele P2G core + lex_select + coherence morpho + accents
Couche 2 lectura-p2g Pipeline complet = graphemiseur + formules (nombres, maths) + noms propres + entites

Le graphemiseur (couche 1) est zero dependance — pas d’import de lectura_formules. Le pipeline complet (couche 2) orchestre formules, fusion de composes, coherence morpho, noms propres et reconnaissance d’entites notables.


Tester en ligne

Le test en ligne utilise l’API Lectura — aucun telechargement de modele necessaire.

i (i) e (é) ɛ (ai) a (a) ɑ (a) ɔ (o) o (ô) u (ou) y (u) ø (oeu) œ (eu) ə (e) ɑ̃ (an) ɛ̃ (in) ɔ̃ (on) œ̃ (un) j (y) w (w) ɥ (u) p b t d k ɡ (gu) f v s z ʃ (ch) ʒ (j) m n ɲ (gn) ŋ (ng) l ʁ (r)
Cliquez sur le bouton pour lancer la demo.

Exemple de code

from lectura_graphemiseur import creer_engine

engine = creer_engine()   # mode API par defaut (zero config)

result = engine.analyser(["le", "ɑ̃fɑ̃", "sɔ̃", "aʁive", "a", "la", "mɛzɔ̃"])

print(result["ortho"])   # ['les', 'enfants', 'sont', 'arrives', 'a', 'la', 'maison']
print(result["pos"])     # ['ART:def', 'NOM', 'AUX', 'VER', 'PRE', 'ART:def', 'NOM']

Architecture du modele (V7)

Le P2G V7 ajoute un mecanisme d’attention cross word-char : les representations de mots issues des tetes POS/Morpho sont projetees vers les positions caractere par attention, ameliorant la resolution des ambiguites contextuelles. Le lex_select choisit parmi les candidats phonetiquement compatibles du lexique par une tete neuronale dediee.

Modele core : raw → lex_select → coherence morpho + accents (~95%). Pipeline complet (lectura-p2g) : + formules + composes + noms propres + entites (~96%).

Phrase IPA → Char Embedding (64d) → Shared BiLSTM (2x192h → 384d)
                                          |
                  +-----------------------+--------------------+
                  v                                             v
        Word representations              Word repr (384d) + Phone Lex Features (28d)
        (fwd[last] || bwd[first])                          |
                                                 Word BiLSTM (192h → 384d)
                                                       |
                                            +--------------+--------------+
                                           POS        Morpho (x6)    Attention Cross
                                                                    → P2G Head
                                                                    → Lex_Select Head

Phone_lex_features (28d) : le modele recoit un vecteur de 28 dimensions par mot, construit a partir du phone_lexicon.db (lexique phonetique SQLite) : 19d POS one-hot + 3d morpho (genre, nombre) + 6d features lexicales. Le lex_select selectionne la meilleure forme orthographique parmi les candidats phonetiquement compatibles du lexique. Sans phone_lexicon, le modele fonctionne en mode degrade (features = zeros).


Installation

# Modele core (zero dependance)
pip install lectura-graphemiseur             # mode API (zero config)
pip install lectura-graphemiseur[onnx]       # backend ONNX Runtime local (~2 ms/phrase)
pip install lectura-graphemiseur[numpy]      # backend NumPy local

# Pipeline complet (graphemiseur + formules + noms propres)
pip install lectura-p2g

Par defaut, le module utilise l’API Lectura (aucune configuration necessaire). Les backends locaux (ONNX, NumPy) necessitent les modeles pre-entraines, disponibles sous licence commerciale.


Caracteristiques techniques

  • 3.2M parametres, modele ONNX INT8 = 4.4 Mo
  • 4 backends : API (zero config), ONNX Runtime (~2 ms), NumPy (~50 ms), pur Python (~200 ms)
  • Word feedback : les informations POS/morpho enrichissent la prediction P2G
  • Phone_lex_features (28d) : features construites depuis phone_lexicon.db (lexique phonetique SQLite)
  • Lex_select : selection lexicale parmi candidats phonetiques
  • Pipeline lectura-p2g : formules (expressions mathematiques, nombres, sigles — mode chiffres par defaut), fusion de mots composes, noms propres, et reconnaissance de ~9000 entites notables via couche 2. Mode formule_tolerance="stt" pour la reconnaissance tolerante depuis un pipeline STT
  • Zero dependance : le graphemiseur core n’importe pas lectura_formules
  • Factory creer_engine() : detection automatique du meilleur backend
  • Python 3.10+ avec type hints complets (PEP-561)
  • Licence : AGPL-3.0 (non commerciale) — licence commerciale sur demande : admin@lectura.world