@mostajs/ocr-learn
v0.1.0
Published
Apprentissage réutilisable pour l'extraction OCR : CORRECTIONS apprises (règles de substitution + en-têtes canoniques, récoltées à chaque fiche corrigée et réappliquées sur les suivantes) + SÉLECTION apprenante de skill/moteur composant @mostajs/skill-lib
Maintainers
Readme
@mostajs/ocr-learn
Auteur : Dr Hamid MADANI [email protected] · Licence : AGPL-3.0-or-later
Apprentissage réutilisable pour l'extraction OCR, alimenté par le retour humain (corrections cPanel / ré-OCR).
Deux apprentissages, un store injecté (mémoire en test, @mostajs/orm en prod) :
- Corrections apprises — à chaque fiche corrigée, on apprend des règles de substitution (« Dv »→« Dr »)
et des en-têtes canoniques (
## …), réappliqués sur les fiches suivantes de la même série (roadmap homogène). - Sélection apprenante — quel skill/moteur par signature de document : compose
@mostajs/skill-library(moteur générique CBR + feedback HITL) — on ne réinvente pas d'apprentissage.
API
import { createOcrLearner, createSkillSelector } from '@mostajs/ocr-learn';
const learner = createOcrLearner({ store }); // store injecté (défaut mémoire)
await learner.learnFromCorrection(rawOcrText, correctedText); // apprend règles + en-têtes
const pre = await learner.precorrect(newRawOcrText); // réapplique le savoir AVANT structuration
await learner.canonicalHeaders(); // vocabulaire de série appris
const sel = await createSkillSelector({ apply }); // apply(input, skillName) -> sortie {quality?}
const { skill, output, runRef } = await sel.pick(input, { kind: 'fiche-cat' });
await sel.recordFeedback(runRef, { accepted: true }); // corrections cPanel = feedbackFonctions pures réutilisables : wordReplacements(before, after), headers(md), mergeRules, applyRules.
