OMEGA·Ω
Recherche & méthode

Une architecture cognitive de la double route.

OMEGA est né comme un moteur de pendu français — un banc d'essai exigeant pour une idée : une machine qui raisonne sur la langue (phonologie, orthographe, morphologie) plutôt qu'elle ne consulte un oracle. Le correcteur dys en est le débouché appliqué.

La doctrine : mesurer ou rejeter

Une seule règle gouverne le projet : rien n'est gardé sans mesure. Tout module est désactivé par défaut, et la base de référence reste byte-identique tant qu'un gain n'est pas prouvé. Les idées séduisantes qui ne tiennent pas à la mesure sont falsifiées et documentées — pas enterrées.

« Cognition > oracle » : la valeur est dans le raisonnement, pas dans la triche. La configuration de référence ne lit jamais le mot caché.

La décision n'est pas un argmax mais une jointe probabiliste : on marginalise sur les hypothèses latentes — Σφ P(φ|indice)·P(lettre|φ,contexte) — au lieu de parier sur la plus probable. On croise, on ne devine pas.

Le banc d'essai : le pendu

Deviner un mot français lettre par lettre, sous contrainte, est un test sévère de modèle de langue : il faut intégrer la structure orthographique, les voisins, la phonotactique. La configuration cheat-free intégrale (qui ne lit jamais le mot caché — ni ses lettres, ni son son : cohorte « board-dérivée ») atteint ≈ 97,3 % de parties gagnées en lexique ; le plafond oracle (qui, lui, triche) est à 98,7 %.

Plus sévère encore : le hors-lexique (mot jamais vu, façon Trexquant). Et ici on dit d'où vient le score, parce que c'est la thèse du projet — distinguer la cognition de la consultation statistique : la cognition seule ne généralise pas en sous-lexical (≈ 11 %), l'orthographe pure plafonne à ≈ 33 %. Ce qui porte le hors-lexique, c'est une voie d'agrégation n-gram — statistique mais cheat-free (structure positionnelle des lettres pré-calculée du lexique, jamais le mot caché) — à ~62 %, que le raisonnement gap-aware (plus proche voisin révélé) pousse à ≈ 64 % (stable sur 3 graines). Sur les mêmes mots, ce système bat un étalon n-gram naïf (46,7 %) de +17 points — c'est là qu'est la valeur ajoutée de la méthode — dans la bande des bons solveurs (65-68 %), dans un seul fichier HTML, sans entraînement ni GPU.

≈ 97,3 %victoires en lexique, sans jamais lire le mot caché
≈ 64 %hors-lexique, cheat-free (agrégation n-gram + gap-aware)
+17 ptsvs étalon n-gram naïf, même jeu
155 kmots embarqués (≈ 89 k jouables, ≥ 7 lettres)
OFFtous les modules par défaut (R66)

Quand OMEGA évolue

Au-delà de jouer, OMEGA peut se copier, varier et être sélectionné par le pendu lui-même : une boucle darwinienne sur un moteur cognitif. Il reconstruit son propre code de décision — la copie est vérifiée à l'octet près, et le pendu rejoue à l'identique — puis une variation le modifie, et la fitness du jeu garde le meilleur.

La boucle évolutionnaire d'OMEGA Se reproduire (copie vérifiée), puis varier (le génome = les paramètres), puis sélectionner (la fitness du pendu), répété de génération en génération. Phases P1 se copie, P2 communiquent, P3 générations : faites ; travail de groupe (O1) et mesure multi-usage (O2) : testés — O1 négatif (subsumé par l'arbitrage interne), O2 révèle un compresseur de structure domaine-agnostique. 🧬SE REPRODUIREcopie vérifiée ✓ 🎲VARIERgénome = paramètres 🎯SÉLECTIONNERfitness du pendu génération suivante P1 · se copiequine vérifié ✓ P2 · communiquentlangage émergent ✓ P3 · générationsmeilleure version ✓ testésO1 groupe · O2 multi-usage

Deux pistes plus loin, désormais testées — et l'honnêteté prime sur l'effet :

  • Travail de groupe (O1) — négatif, assumé. Faire coopérer plusieurs versions ne bat pas la meilleure seule : de vraies versions sont fortes et trop semblables (toutes ~97 % en lexique, désaccord ≤ 10 %), et le routage utile est déjà l'arbitrage interne du moteur. La coordination externe est subsumée par l'architecture.
  • Mesure multi-usage (O2) — positif, et révélateur. Mesurer le seul pendu en lexique est aveugle : lexique et hors-lexique dissocient (un génome champion au pendu peut être catastrophique en généralisation). Et ça mène à une question de fond — juste en dessous.

Et si on l'enlève du français ? Le cœur est un compresseur.

La vraie question d'O2 : ce qui porte OMEGA hors-lexique, est-ce du français, ou un mécanisme général ? On a pointé son substrat (l'agrégation n-gram) sur du code — sans le lexique français — et mesuré la compression. Car prédire, c'est compresser (Shannon) : la compression dit en bits par caractère combien de structure un modèle capture.

domainehasardsubstrat n-gramstructure capturée
Français3,98 b/car2,97 b/car−1,01 b
Code (identifiants, sans Lex4)4,17 b/car3,05 b/car−1,12 b
Code brouillé (structure détruite)4,17 b/car4,41 b/car+0,24 b — rien

Il compresse le code aussi bien — un peu mieux même — que le français, et ne gagne rien quand on brouille la séquence. → le cœur transférable d'OMEGA est un compresseur de séquences structurées, domaine-agnostique : il marche partout où il y a de la structure, pas seulement en français. Puissant et général — mais c'est de la capture de structure, pas de la compréhension (ça, ce serait un LLM, un autre projet).

Mesuré de deux façons indépendantes, même verdict : reconstruction façon pendu (evo_o2_crossdomain.js) et compression en bits (evo_o2_compression.js).

Et le sens, alors ? On a tenté — et voici la frontière.

Un compresseur capture la forme, jamais le sens. Peut-on en ajouter un avant-goût ? On a essayé la sémantique distributionnelle (« le sens = la compagnie qu'un mot fréquente », Firth) pour désambiguïser des homophones — méthode Golding & Roth 1999 (prior × contexte, held-out, corpus UD réel). Le contexte aide — surtout les homophones grammaticaux (son/sont 55→88 %, ce/se 53→76 %, et/est 60→77 %). Mais la précision plafonne à 77-88 %.

Or le correcteur a une garde absolue : FP=0 — ne jamais souligner du juste. À 77-88 % de précision, il créerait trop de fausses alertes. On a balayé le seuil de confiance pour trouver un filet FP-safe :

seuil de confiancerecallprécision
≥ 0,9056 %91 %
≥ 0,9927 %96 %
FP = 0  (conf > 0,9999)1,6 %100 %

Pas de filet : pour atteindre FP=0, le recall s'effondre à 1,6 % — le signal « sens » est trop bruité pour passer le portier. Contraste mesuré : le levier lexical du genre (propre) passe FP=0 naturellement — il a été câblé (+6 pts de recall) ; le sens statistique, lui, est recalé. → la compréhension reste hors-doctrine (ce serait un LLM). OMEGA maîtrise la forme ; le sens est la frontière, assumée et chiffrée.

Nuance — et son revers (cross-check LanguageTool, 06/2026) : sur le held-out UD, les homophones lexicaux (père/paire, moi/mois) semblaient passer FP=0 (recall 18-62 %), là où les grammaticaux échouaient. Mais à l'épreuve du vrai texte, la garde casse : « il porte une paire de lunettes » (correct) se fait flaguer « père ». UD ne couvrait pas assez de contextes → calibration trop optimiste. Verdict durci : le sens distributionnel ne tient pas FP=0 en production — lexical compris — donc non câblé. Le seul levier propre FP=0 reste le lexical-grammatical (genre, accord), jamais le distributionnel.

Le débouché (06/2026) : une couche verte de « vigilance » dans le correcteur — elle n'affirme pas de faute (donc hors FP=0), elle signale les mots confusables (homophones + paronymes, ~80 groupes) avec leurs possibilités & leur sens. Le signal distributionnel y trouve enfin sa place : ordonner & atténuer, jamais trancher — le bruit qui le disqualifiait pour corriger est inoffensif pour suggérer.

Mesuré : evo_o2_homophone_context.js (désambiguïsation Golding&Roth) · evo_o2_sense_fpzero.js (balayage FP=0, grammatical) · evo_lt_confusion_fpzero.js (les 17 paires lexicales de LanguageTool).

Rejouable : evo/evo_o1_real.js · evo_o2_multitask.js · evo_o2_crossdomain.js · evo_o2_compression.js · plan : evo/EVO_ROADMAP.md.

Mais une mutation n'est utile que si l'on mute le bon niveau. Muter le code source casse presque tout — aucune amélioration possible. Muter les paramètres ouvre un paysage lisse où 30 % des mutations sont bénéfiques : c'est l'évolvabilité (Wagner & Altenberg, 1996). Basculez :

💀 létales
🔻 délétères
⚪ neutres
🔼 utiles
erreurs utiles :

Mesuré bout-à-bout : P1 se copie (quine vérifié), P2 communiquent (un code émerge du seul reward), P3 générations (une meilleure version trouvée, validée hors-échantillon). Certains chiffres aux grandes longueurs restent seed-dépendants — gardés tels quels. Détail : evo/EVO_ROADMAP.md, evo/EVO_P3_EVOLVABILITY.md.

Le substrat partagé : la double route phono↔ortho

Pendu et correcteur sont la même machine pointée dans deux directions sur le canal son ↔ écriture :

  • Le pendu modélise P(orthographe) et complète le masqué — il encode la structure.
  • Le correcteur inverse le bruit sur cette même structure : d'une surface corrompue, il remonte à l'intention — il décode.

Chacun combine une voie lexicale (le mot existe-t-il ?) et une voie sublexicale (règles graphème↔phonème), arbitrées par leur fiabilité — exactement la double route de la lecture chez l'humain.

De la défaite du pendu à la dyslexie

Le constat-clé : le profil de défaite du pendu ressemble à une signature dyslexique — il échoue majoritairement sur les confusions voisée / sourde (p/b, t/d…), exactement le type d'erreur phonologique au cœur de la dyslexie. Quand le moteur perd, il perd comme un lecteur dys.

D'où le sous-projet dictée diagnostique, puis le correcteur dys : le moteur qui modélise le canal d'erreur devient l'outil qui le corrige.

Le débouché : le correcteur dys

Détecter et corriger sans corrigé, en contexte, avec une garde cardinale : zéro faux positif. Un résultat récent illustre la méthode — la garde « §3 » : là où une règle plate lisait un étiquetage grammatical dur (et souvent faux : « faute » étiqueté verbe alors que 99 % de ses usages sont des noms), un posterior fréquentiel P(catégorie|forme) tranche correctement — récupérant des corrections justes et baissant les fausses alertes à la fois.

Analyser la nature de chaque mot — en séquence. Le posterior par mot ne lève pas tout : « la porte » (nom) et « il porte » (verbe) ont la même forme. Par-dessus vient un étiqueteur morphosyntaxique — HMM bigramme + décodage de Viterbi, appris sur Universal Dependencies — qui lit la phrase entière pour donner à chaque mot sa nature (≈ 95 % de justesse sur test tenu). C'est lui qui autorise les décisions d'accord et d'homophone en contexte plutôt qu'au mot isolé : le premier usage gaté est son/sont tranché par un vrai sujet-nom, à FP=0. Comme tout le reste, il tourne à l'identique dans les trois moteurs (Python = app = extension) — parité verrouillée en CI (parity_pos.js).

Re-validation sur un corpus de vraies fautes (WiCoPaCo, ~45 000 erreurs réelles). Le texte correct ne suffit pas à prouver le zéro faux positif : certains ne se révèlent que sur des structures qu'un corpus propre n'a pas (coordination de noms propres, sujet distant, homographe nom/possessif). Sur les vraies fautes, la campagne a débusqué 3 faux positifs invisibles — « On dit »→ont, « à durée limitée »→a, « un son »→sa — corrigés, et ouvert quatre leviers de recall FP-safe : accord singulier du nom, accord du participe après être à sujet nom, terminaisons -er/-é/-ez, et l'accord de l'adjectif épithètele genre-adjectif jadis écarté « faute d'un tagger », ré-ouvert et tenu FP=0 (60 faux positifs au prototype → 1, via POS-tagger + genre lexical + nombre lu sur l'article + exclusion des invariants/coordinations). La leçon : la preuve du zéro faux positif exige, après le texte propre, un corpus de vraies erreurs.

~960corrections réelles gagnées (WiCoPaCo, FP=0)
~45 kvraies fautes FR testées (WiCoPaCo)
≈ 95 %justesse du POS-tagger (nature du mot, test tenu)
2,04 %fausse alerte à l'échelle (2 500 phrases UD, verrouillé CI)
3moteurs en parité (app · extension · Python)
~97 %nombre du sujet retrouvé sur le résiduel « de N » (arbitrage OS — accord real-word)

Confronté à un corpus dys RÉEL (78 textes d'un adolescent dyslexique et d'adultes dys-dysorthographiques ; analyse Bodard 2020). Il recadre les priorités : les fautes dys sont ≈43 % phonétiques (et 59 % ont la même phonétique que la forme correcte) → le canal phonétique est le levier n°1 (mesuré : notre clé faite-main colle déjà à 87 % des fautes dys) ; ≈38 % grammaticales → la campagne d'accords vise juste ; ≈6 % de segmentation → nouveau levier de fusion d'élision (« lhopital »→l'hôpital). Enseignement méthodologique : l'apport « modeste » du phonétique mesuré sur du texte grand public (Wikipédia) était un artefact du corpus — sur du vrai dys, c'est le levier central.

Chiffré à l'échelle, verrouillé en CI. « FP=0 » n'est pas un slogan : c'est 0 sur la batterie de test, et sur 2 500 phrases encyclopédiques correctes (hors batterie) le taux de fausse alerte est mesuré à 2,04 % — redescendu de 4,7 %, et verrouillé automatiquement (fp_scale_probe.py, la CI casse au-delà de 3 %) ; sur de l'écriture dys, plus bas encore. Le revers est assumé et chiffré, pas caché : à ce régime le correcteur n'attrape qu'une partie des fautes qu'il vise (recall ~41 % sur un banc de dys multi-fautes, messy_probe.js) — et l'essentiel des manques sont des abstentions volontaires. C'est le prix du zéro faux positif : choisi, pas subi.

Un mur tombe : l'accord « real-word » par l'arbitrage du pendu. La faute la plus dure est celle où le mot est déjà valide, seulement mal accordé : « les enfants joue », « les rapports que l'entreprise livrera ». La littérature la nomme le problème central du correcteur (Wilcox-O'Hearn, 2014) : pour la trancher il faut retrouver le sujet, souvent hors de portée (compléments « de N », sujet éloigné, coordination). Notre parseur d'accord s'y abstient — c'est justement ce qui tient son zéro faux positif. Mesuré : aucune piste de sujet seule ne franchit ce mur (le meilleur indice plafonne à 81 %), et les combinaisons naïves — additionner, multiplier les indices — s'affolent (deux pistes sur trois répètent en boucle « le mot est correct »). Ce qui l'a fissuré, c'est la machinerie d'arbitrage du pendu elle-même : mélanger les pistes de sujet en les pondérant par leur fiabilité — la même loi μ = r/(1+r) qui fait jouer OMEGA au niveau oracle — un petit modèle de langue portant la confiance qui rend le tri utile. Sur les cas que le parseur abandonne, cet arbitrage retrouve le nombre du sujet à ~94–97 %. Livré en vigilance (il suggère « à vérifier », ne réécrit jamais : le zéro faux positif reste intact), à l'identique dans les trois moteurs. Validé sur notre corpus dys réel : sur le registre chat, 0 % de fausse alerte — et de vraies prises en pleine nature (« des haies qui délimite »→délimitent). Le même arbitre qui gagne au pendu vient de faire tomber une barrière du français qu'on croyait hors de portée d'un outil aussi léger — sans gros modèle, dans un onglet.

Et une part de ce mur tombe même en rouge : le sujet n'est pas toujours à côté. L'arbitrage ci-dessus vit en vigilance parce que, quand le sujet est un simple nom voisin, on ne peut pas le distinguer d'un complément à coup sûr. Mais il existe une famille où le sujet, absent d'à-côté du verbe, se laisse pourtant retrouver de façon certaine — et là, la correction redevient affirmative, à zéro faux positif. Le principe : le sujet se lit ailleurs que juste devant. Dans « les chats mangent et dort », le verbe frère « mangent » porte le nombre du sujet partagé ; dans « les enfants que je vois joue », l'antécédent de la relative le porte (idem à travers « dont », « où ») ; dans « les livres, malgré leur prix, reste chers », le sujet et son verbe sont dans la même proposition, juste coupée par une incise. Quatre écrans, quatre règles — chacune ancrée sur un signal audible (le « les »/« des » pluriel qu'on entend, là où la marque du verbe est muette) et gardée par un filet qui écarte les faux amis (noms-verbes homographes, couleurs invariables, énumérations). Mesuré : 0 faux positif sur 2 500 phrases correctes et sur des batteries de pièges retors (comparatifs, complétives, compléments « de N »). La frontière reste honnête : le sujet-complément général (« la couleur de la voiture ») demeure du côté vigilance — mais la part structurellement récupérable du mur, elle, est désormais corrigée franchement.

Sources : typologie dys — Bodard 2020 (JEP-TALN-RÉCITAL), Plisson & Daigle 2013 (Dyslexia) ; détection « real-word » — Wilcox-O'Hearn 2014 (arXiv:1408.3153) ; corpus — WiCoPaCo (Max & Wisniewski 2010, LREC, GFDL), corpus dys FFDys / plateforme Dys ASEI (privé, non redistribué) ; lexique — Lexique (New et al. 2004) ; garde FP — Universal Dependencies French-GSD (CC BY-SA). Détail complet : rapport §18.5.

Voir OMEGA, côté produit →

La toile du correcteur : tout est interconnecté

Le correcteur n'est pas une pile de règles : c'est un réseau. Chaque règle se nourrit de lexiques, de moteurs (étiqueteur morphosyntaxique, speller, arbitre du sujet) et de signaux de contexte (déterminant audible, sujet non-adjacent, ponctuation) pour trancher entre rouge — correction sûre, zéro faux positif — et orange — vigilance, quand le doute demeure. Survolez un nœud pour éclairer ses fils.

Ouvrir la toile en plein écran ↗ — 36 nœuds, 7 familles ; glisser-déposer pour réarranger, filtrer par famille.

La ponctuation de la voix : deux canaux, une division du travail

Dicter à la voix donne des mots sans ponctuation : le service de reconnaissance du navigateur n'en produit aucune en français. Pour un dys, un texte d'un seul bloc est illisible — il fallait donc la reconstruire. Deux canaux existent, et aucun ne suffit seul.

  • L'audio propose. Une seconde écoute du micro mesure les silences — elle sait que quelqu'un s'est tu, ce que le texte ignore. Elle vise à un mot près.
  • Le texte dispose. Il recale la position, choisit quelle marque, et surtout refuse quand aucune place n'est grammaticalement légale.

C'est le refus qui fait tenir l'ensemble : sans lui, chaque pause produisait une marque et la justesse s'effondrait de 69 % à 22 %. Avec la combinaison, la mesure passe de F1 0,33 à 0,48 sur une vraie dictée. Et l'ablation est nette : la durée seule bat le modèle acoustique appris une fois le texte en filtre — donc aucun modèle audio n'est embarqué.

Par-dessus, cinq règles de virgule tirées d'une source pédagogique publique (Allô prof) rattrapent des familles que la statistique ignore. Elles font passer la conformité à la source de 3 à 14 exemples sur 50, et — c'est plus rare — améliorent à la fois la justesse (50,5 → 52,0 %) et le rappel (11,0 → 12,8 %) sur 11 304 phrases écrites par des humains.

La ligne de partage qu'on a fini par comprendre. «  faut-il une virgule ? » est un jugement — la source elle-même écrit « on place généralement ». Aucun réglage n'en fera une certitude. Mais « l'espace autour de la virgule qui est déjà là est-il bien placé ? » est mécanique. Cette seconde couche, elle, atteint le zéro faux positif : quatre règles typographiques appliquées automatiquement, 2 déclenchements sur 14 450 phrases correctes — et les deux sont de vraies fautes du corpus.

Ce qu'on a essayé… et rejeté

L'honnêteté des résultats négatifs fait partie de la méthode. Mesuré, puis écarté :

  • un « C cognitif » léger appris, puis un transformer lourd — parité au mieux avec une heuristique simple, parfois pire.
  • le pendu de phrases comme levier de victoire — le partage de lettres fuit les fins de mots.
  • plusieurs élargissements du correcteur (edit-distance 2, relâche de gardes…) — chacun rouvrait des faux positifs, donc non câblé.
  • un aligneur de syllabes sans modèle pour placer les pauses : 44 % sur de la lecture, mais 1 sur 12 sur une voix dyslexique — ses blocs de parole vont de 280 à 1660 ms, un rapport de 5,9. La parole dys est irrégulière par nature ; un aligneur proportionnel ne peut pas suivre.
  • un petit modèle acoustique distillé (2,9 Ko) pour corriger ça : +15 points sur la lecture, zéro sur la vraie voix. Le gain ne se transfère pas — le problème n'était pas la détection, mais la dérive.
  • un arbitre entre routes pour la ponctuation, sur le modèle de celui du pendu : il gagne en score global mais fait retomber la garde anti-régression de 82 à 62 cas, en ressortant des fautes déjà corrigées.
  • la double route par accord — exiger que deux méthodes soient d'accord. Mesuré : l'accord est le pire des trois signaux (37,9 % de justesse contre 58,1 et 63,2 séparément). Les deux méthodes lisent la même matière, donc elles se trompent ensemble ; leur accord ne sélectionne pas la certitude mais l'ambiguïté.
  • durcir le seuil pour gagner en justesse : la justesse est plate quel que soit le seuil (+1,75 point pour −94 % de rappel). Un modèle dont la confiance ne prédit pas la justesse n'est pas mal réglé — il est saturé.
  • l'espace double comme pause écrite, l'analogue à l'écrit de la pause audio : aucun signal (6,32 % contre un taux de base de 6,19 %).
  • réparer les 46 listes du correcteur aveugles à l'élision : rendre le mot-outil visible ajoute 23 faux positifs pour −1 de rappel. La cécité y était protectrice.

Garder la trace de ce qui ne marche pas évite de le refaire — et rend crédible ce qui marche.

Un second dérivé : OMEGA·KEY — messagerie chiffrée

Le même moteur, pointé ailleurs : une messagerie chiffrée de bout en bout tenant dans un seul fichier HTML, hors-ligne. OMEGA fournit le lexique (passphrases françaises prononçables) ; toute la cryptographie repose sur la WebCrypto standard du navigateur — aucun algorithme maison.

Le chat. Une carte Conversation chiffrée tient un fil de bulles, avec deux transports : sans serveur — le chiffré se copie tout seul, tu le colles à ton correspondant ; ou via un relais minimal (auto-hébergeable sur Deno Deploy en ~2 min) qui pousse les messages en temps réel (SSE) et établit le ratchet DH automatiquement (échange des clés publiques, sans copier-coller) — le relais ne voit que du chiffré, et le numéro de sécurité détecte une interception.

  • Passphrases FR prononçables — mots réels (12 bits/mot) ou pseudo-mots (8 bits/syllabe), entropie tirée de crypto.getRandomValues, sans biais modulo (listes en 2ⁿ, lecture de bits exacte — vérifié).
  • Clé partagée — PBKDF2-SHA256 310 000 itérations → AES-256-GCM, empreinte de clé vérifiable des deux côtés.
  • Double Ratchet — ECDH P-256 → forward secrecy et récupération post-compromission.
  • Par message — IV aléatoire 96 bits, intégrité par tag GCM. Le relais (optionnel, auto-hébergeable) ne voit jamais le clair.

⚠️ Démo, pas un produit de sécurité

Briques standard et bien employées (WebCrypto, IV uniques, pas de Math.random dans les clés), tests crypto automatisés en CI (entropie, round-trip, KAT du ratchet), numéro de sécurité anti-interception et historique chiffré au repos — mais le protocole reste assemblé à la main et n'a pas eu d'audit cryptographique formel. Pour de vrais secrets, utilise Signal.

À savoir : le relais voit les métadonnées (salon, horaires, tailles) · échange la passphrase par un canal sûr et compare le numéro de sécurité avec ton correspondant.

Ouvrir OMEGA·KEY Rapport / mode d'emploi

Aller plus loin

Les documents de fond (denses, en cours d'actualisation) :

Note d'honnêteté : le pendu est un banc de mesure, pas un produit. Le produit, c'est le correcteur. Ces deux pages décrivent l'état réel du projet, pas une vitrine.