Cette documentation a pour but de vous permettre de créer des masques d'analyse personnalisés pour l'OCR directement sur votre serveur auto-hébergé.
Le webservice propose deux entrées qu'il faut utiliser dans notre cas de figure:
Lorsqu'on se place sur la zone des Ocr vous pourrez voir la liste des documents analysés. Ceux qui sont en échec sont marqués d'une puce orange. Vous pouvez cliquer sur les trois liens proposés dans la liste des commandes: * regex editor : ouvre une popup vous permettant d'écrire des expressions régulières et de constater le résultat “en temps réel” * replay : permet de “relancer” l'analyse de votre document pour voir si un masque d'analyse est maintenant opérationnel * pdf : pour télécharger le fichier PDF en question
Cette fenêtre est accessible depuis la liste des documents OCR puis clic sur le lien “regex editor”
Elle vous permet d'écrire une expression régulière dans la zone (1) et de “voir” dans la zone du bas le texte que ça extrait potentiellement.
Un exemple plus précis est visible sur cette capture d'écran:
1. l'expression régulière suivante est saisie : FACTURE\s+CAISSE\s+N.\s+([A-Z0-9-]*)
2. la zone du texte du document qui “matche” est mise en évidence
3. si l'option détails est active vous pourrez voir la zone en bas de l'écran
4. le résultat de l'extraction du texte de votre regex
Lorsque votre regex extrait UNIQUEMENT le champ que vous voulez (par exemple le numéro de facture) vous pourrez le reporter dans la fiche de création du masque d'analyse
Placez-vous sur la zone “Templates”, vous pouvez regarder les templates proposées par les autres participants … et vous pouvez cliquer sur le bouton “Nouveau” pour créer un nouveau masque d'analyse.
Description de l'interface de création de masques d'analyse (en cours de dev, cette capture d'écran risque de ne pas être “à jour” rapidement mais le principe reste le même).
Quand votre masque d'analyse est terminé, pensez à le sauvegarder puis testez le via la commande “replay” de la liste des documents OCR.
Si la popup vous affiche toutes les données voulues c'est que votre masque d'analyse est bon, exemple:
Ceci n'est qu'un petit pense bête concernant l'art d'écrire des expressions régulières
()
: les parenthèses permettent d'indiquer une zone à extraire\w
: Caractères alphanumériques, et _
\W
: Caractères ne composant pas les mots\s+
: \d
: Chiffres décimaux\D
: Autre chose qu'un chiffre décimal\s
: Caractères d'espacement\S
: Autre chose qu'un caractère d'espacement
Les {}
permettent de définir des répétitions:
\d{2}
: 2 chiffres\d{4}
: 4 chiffres\d{0,5}
: entre aucun et 5 chiffres\/
: le /
étant réservé il faut le dé-spécialiser en le précédent d'un \
Selon les profils disponibles sur votre serveur la syntaxe est différente:
amount
: montantamount_tax
: montant taxe (historique avant prise en compte de 4 taxes possibles)amount_tax1
: montant taxe1value_tax1
: par exemple 0 pour pouvoir extraire le montant non taxéamount_tax2
: montant taxe2value_tax2
: par exemple 5.5 pour pouvoir extraire le montant de la taxe à 5,5%amount_tax3
: montant taxe3value_tax3
: par exemple 10 pour pouvoir extraire le montant de la taxe à 10%amount_tax4
: montant taxe4value_tax4
: par exemple 20 pour pouvoir extraire le montant de la taxe à 20%amount_untaxed
: montant htcurrency
: monnaiedate
: datedate_due
: date duedate_formats
: format de la datedecimal_separator
: séparateurdescription
: descriptionean
: code eaninvoice_label
: titre ou sujet de la factureinvoice_number
: numéro de la facturelocale
: locale à utiliser pour ce documentstatic_BIC
static_IBAN
static_payment
static_recipient
static_siren
static_supplier_alias
static_supplier_name
static_supplier_numtva
static_vat
sum_amount_tax
supplier_numsiret
supplier_numtva