- Vue d'ensemble (Overview)
- Document Processing Contracts
- À propos des contrats de traitement de documents
- Classe Zone
- Interface ActivitéIPersisted
- Classe PrettyBoxConverter
- Interface ActivitéIClassifier
- Interface FournisseurIClassifieurCapacités
- Classe TypeDocumentClassifieur
- Classe RésultatClassifieur
- Classe ActivitéCodeClassifieur
- Classe ActivitéClassifieurNatif
- Classe ActivitéClassifieurCodeAsync
- Classe CapacitéClassifieurTypeDocument
- Classe ActivitéExtracteurCodeAsync
- Classe ActivitéExtracteurCode
- Classe ExtracteurTypeDocument
- Classe ExtracteurDocumentTypeCapacités
- Classe ExtracteurChampCapacités
- Classe ActivitéExtracteurNatif
- Classe ExtracteurRésultat
- Interface FournisseurICapabilities
- Interface ActivitéIExtractor
- Classe ChargeUtileExtracteur
- Énumération PrioritéActionDocument
- Classe DocumentActionData
- Énumération StatutActionDocument
- Énumération TypeActionDocument
- Classe DocumentClassificationActionData
- Classe DocumentValidationActionData
- Classe DonnéesUtilisateur
- Classe Documents
- Classe RésultatDivisionDocument
- Classe ExtensionDom
- Classe Page
- Classe SectionPage
- Classe Polygone
- Classe ConvertisseurPolygones
- Classe de métadonnées
- Classe GroupeMot
- Classe Mot
- Énumération SourceTraitement
- Classe CelluleRésultatsTable
- Classe ValeurTableRésultats
- Classe InformationsColonnesTableRésultats
- Classe TableRésultats
- Énumération Rotation
- Énumération TypeSection
- Énumération TypeGroupeMot
- ProjectionTexteIDocument Interface
- Classe RésultatClassification
- Classe RésultatExtraction
- Classe ResultatsDocument
- Classe ResultatsLimitesDocument
- Classe ResultatsDonnéesPoint
- Classe RésultatsValeur
- Classe ResultatsContenuRéference
- Classe ResultatsValeurJetons
- Classe ResultatsChampDérivé
- Énumération ResultatsSourceDonnées
- Classe ResultatsConstantes
- Classe ChampValeurSimple
- Classe ValeurChampTable
- Classe GroupeDocument
- Classe DocumentTaxonomie
- Classe TypeDocument
- Classe Champ
- Énumération TypeChamp
- Classe InfoLangage
- Classe SaisieMétadonnées
- Énumération TypeTexte
- Classe TypeFieldTypeField Class
- Interface ActivitéISuivi
- ITrainableActivity Interface
- Interface ActivitéClassifieurITrainable
- Interface ActivitéExtracteurITrainable
- Classe ActivitéFormationClassifieurCodeAsync
- Classe ActivitéFormationClassifieurCode
- Classe ActivitéFormationClassifieurNatif
- Classe ActivitéFormationExtracteurCodeAsync
- Classe ActivitéFormationExtracteurCode
- Classe ActivitéFormationExtracteurNative
- Numériseur de Document Understanding
- Document Understanding ML
- Serveur local OCR Document Understanding
- Processus Document Understanding : modèle Studio
- Activités Document Understanding
- À propos du package Document Understanding Digitizer
- Compatibilité du Projet
- Définir le mot de passe du PDF
- Merge PDFs
- Get PDF Page Count
- Extraire le texte PDF (Extract PDF Text)
- Extract PDF Images
- Extract PDF Page Range
- Extraire les données du document
- Create Validation Task and Wait
- Attendre la tâche de validation et reprendre
- Create Validation Task
- Classer un document (Classify Document)
- Créer une tâche de validation de classification (Create Classification Validation Task)
- Créer une tâche de validation de classification et attendre (Create Classification Validation Task and Wait)
- Attendre la tâche de validation de la classification et reprendre
- IntelligentOCR
- À propos du package d'activités IntelligentOCR
- Compatibilité du Projet
- Load Taxonomy
- Digitize Document
- Classify Document Scope
- Keyword Based Classifier
- Intelligent Keyword Classifier
- Present Classification Station
- Create Document Classification Action
- Wait For Document Classification Action And Resume
- Tester l'étendue des classifieurs
- Outil d'entraînement de classifieur basé sur des mots-clés
- Intelligent Keyword Classifier Trainer
- Data Extraction Scope
- Regex Based Extractor
- Form Extractor
- Extracteur de formulaires intelligents
- Present Validation Station
- Create Document Validation Action
- Wait For Document Validation Action And Resume
- Tester l'étendue des extracteurs
- Export Extraction Results
- Valider manuellement des documents numérisés
- Extraire des données à l'aide de FlexiCapture
- Extraction de données basée sur des ancres à l'aide de l'Extracteur de formulaires intelligent
- Station de validation
- Services ML
- OCR
- Contrats OCR
- Notes de publication
- À propos des contrats OCR
- Compatibilité du Projet
- Interface ActivitéIOCR
- Classe OCRCodeAsync
- Classe ActivitéCodeOCR
- Classe ActivitéOCRNatif
- Classe Caractère
- Classe RésultatOCR
- Classe Mot
- Énumération StylesPolice
- Énumération RotationOCR
- Classe OCRCapabilities
- Classe BaseCaptureOCR
- Classe UsineCaptureOCR
- Classe BaseContrôleCapture
- Énumération UtilisationCaptureMoteur
- ScrapeEngineBase
- Classe ScrapeEngineFactory
- Classe ScrapeEngineProvider
- OmniPage
- PDF
- [Non listé] Abbyy
- Notes de publication
- À propos du package d'activités Abbyy
- Compatibilité du Projet
- Reconnaissance optique des caractères ABBYY (ABBYY OCR)
- Reconnaissance optique des caractères ABBYY Cloud (ABBYY Cloud OCR)
- FlexiCapture Classifier
- FlexiCapture Extractor
- FlexiCapture Scope
- Classer un document (Classify Document)
- Traiter le document (Process Document)
- Valider le document (Validate Document)
- Exporter le document (Export Document)
- Obtenir le champ (Get Field)
- Obtenir la table (Get Table)
- Prepare Validation Station Data
- [Non listé] Abbyy intégré
Extraction de données basée sur des ancres à l'aide de l'Extracteur de formulaires intelligent
L'exemple ci-dessous explique comment extraire des données d'un formulaire pouvant également inclure du texte manuscrit. Le scénario de cas d'utilisation suivant explique comment extraire des données d'une commande d'achat.
Il présente des activités telles que Numériser le document ( Digitize Document), Étendue de l'extraction de données ( Data Extraction Scope) ou Extracteur de formulaires intelligents ( Intelligent Form Extractor). Vous pouvez trouver ces activités dans le package UiPath.IntelligentOCR.Activities .
Création du workflow
Les packages suivants doivent être installés avant de créer le workflow ci-dessous :
- UiPath.DocumentProcessing.Contracts.Activities
- UiPath.IntelligentOCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.WebApi.Activities
Voici comment le processus d'automatisation peut être construit :</summary>
Voici comment le processus d'automatisation peut être créé :
- Ouvrez Studio et démarrez un nouveau Processus.
-
Faites glisser un conteneur Sequence dans le Concepteur de workflow, nommez-le Sequence1et créez les variables suivantes :
Nom de variable
Types de variables
Valeur par défaut
item
Chaîne de caractères (string)
classificationResult
ClassificationResult[]
outputFileName
ValeurGénérique
-
Faites glisser un autre conteneur Sequence dans le Concepteur de workflow, sous le premier, nommez-le Sequence2et créez les variables suivantes :
Nom de variable
Types de variables
Valeur par défaut
text
Chaîne de caractères (string)
taxonomy
DocumentTaxonomy
dom
Document
documentPath
Chaîne de caractères (string)
classificationResult2
ClassificationResult[]
outputFileName2
ValeurGénérique
-
Ajoutez une activité Message Box à l’intérieur de la séquence.
-
Dans le panneau Propriétés , sélectionnez l'option OK dans la liste déroulante Boutons . Ajoutez le message suivant dans le champ Texte : « Sélectionnez un fichier PDF ».
-
- Cochez la case de l’option PlusHaut. La boîte de message se retrouve au premier plan.
-
Ajoutez une activité Select File sous l’activité Message Box.
- Dans le panneau Propriétés , ajoutez le texte suivant dans le champ Filtre :
Pdf files (*.pdf)|*.pdf
- Ajoutez la variable
documentPath
dans le champ FichierSélectionné .
- Dans le panneau Propriétés , ajoutez le texte suivant dans le champ Filtre :
-
Ajoutez une activité Assign sous l'activité Select File.
- Ajoutez la variable
outputFileName2
dans le champ À . - Ajoutez l’expression
".temp/" + Path.GetFileName(documentPath)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une activité Désérialiser JSON sous l'activité Attribuer .
- Ajoutez l’expression
File.ReadAllText("DocumentProcessing axonomy.json")
dans le champ Chaîne JSON. - Dans le panneau Propriétés , sélectionnez l'option UiPath.DocumentProcessing.Contracts.Taxonomy.DocumentTaxonomy dans la liste déroulante TypeArgument .
- Ajoutez la variable
taxonomy
dans le champ ObjetJSON.
- Ajoutez l’expression
-
Ajoutez une activité Digitize Document sous l'activité Deserialize JSON .
- Dans le panneau Propriétés, ajoutez la valeur
1
dans le champ LigneTableau. - Ajoutez la variable
documentPath
dans le champ CheminDocument . - Ajoutez la variable
dom
dans le champ ModèleObjetDocument. - Ajoutez la variable
text
dans le champ TexteDocument. - Ajoutez le moteur OCR de document UiPath dans l’activité.
- Ajoutez votre clé API dans le champ Clé API.
- Ajoutez l'expression
"https://du.uipath.com/ocr"
dans le champ Point de terminaison.
- Dans le panneau Propriétés, ajoutez la valeur
-
Ajoutez une activité Écrire un fichier texte (Write Text File ) sous l'activité Digitize Document .
- Ajoutez l'expression
JsonConvert.SerializeObject(dom)
dans le champ Texte. - Ajoutez l’expression
outputFileName2 + ".dom.json"
dans le champ NomFichier.
- Ajoutez l'expression
-
Ajoutez une autre activité Write Text File sous l’activité Write Text File .
- Ajoutez la variable
text
dans le champ Texte. - Ajoutez l’expression
outputFileName2 + ".text.txt"
dans le champ NomFichier.
- Ajoutez la variable
-
Faites glisser un autre conteneur Sequence dans le champ concepteur de workflow, nommez-le Sequence3 et créez la variable suivante :
Nom de variable
Types de variables
Valeur par défaut
extractionResult
RésultatExtraction
validatedResults
RésultatExtraction
doubleValidatedResults
RésultatExtraction
dataset
JeuDonnées
i
Int32
-
Ajoutez une activité Étendue d’extraction de données (Data Extraction Scope) à l’intérieur de Sequence3.
- Dans le panneau Propriétés , ajoutez la variable
dom
dans le champ ModèleObjetDocument . - Ajoutez la variable
documentPath
dans le champ CheminDocument . - Ajoutez la variable
text
dans le champ TexteDocument. - Ajoutez l'expression
"All.Benchmarks.Invoice"
dans le champ IDTypeDocument . - Ajoutez la variable
taxonomy
dans le champ Taxonomie. - Ajoutez la variable
extractionResult
dans le champ ExtractionResults .
- Dans le panneau Propriétés , ajoutez la variable
-
Ajoutez une activité Intelligent Form Extractor à l’intérieur de l’activité Data Extraction Scope .
- Ajoutez votre clé API dans le champ CléAPI.
-
Ajoutez une activité Écrire un fichier texte ( Write Text File ) sous l’activité Étendue d’extraction des données (Data Extraction Scope) .
- Ajoutez l'expression
JsonConvert.SerializeObject(extractionResult)
dans le champ Texte. - Ajoutez l’expression
outputFileName2 + ".results.json"
dans le champ NomFichier.
- Ajoutez l'expression
-
Ajoutez une activité Present Validation Station sous l’activité Write Text File .
- Ajoutez la variable
extractionResult
dans le champ RésultatsExtractionAutomatique. - Ajoutez la variable
dom
dans le champ ModèleObjetDocument. - Ajoutez la variable
documentPath
dans le champ CheminDocument . - Ajoutez la variable
text
dans le champ TexteDocument. - Ajoutez la variable
taxonomy
dans le champ Taxonomie. - Ajoutez la variable
validatedResults
dans le champ RésultatsExtractionValidés.
- Ajoutez la variable
-
Ajoutez une activité Write Text File sous l’activité Present Validation Station .
- Ajoutez l'expression
JsonConvert.SerializeObject(validatedResults)
dans le champ Texte. - Ajoutez l’expression
outputFileName2 + ".savedinVS.results.json"
dans le champ NomFichier.
- Ajoutez l'expression
-
Ajoutez une autre activité Write Text File sous l’activité Write Text File .
- Ajoutez l'expression
JsonConvert.SerializeObject(doubleValidatedResults)
dans le champ Texte. - Ajoutez l’expression
outputFileName2 + ".doubleSavedinVS.results.json"
dans le champ NomFichier.
- Ajoutez l'expression
- Exécutez le processus. Le processus d'automatisation doit ouvrir la station de validation, extraire les données, les valider et les stocker dans le dossier de sortie.
Téléchargez un exemple ici.
Définir votre taxonomie
Vous avez créé votre workflow, défini toutes les variables et personnalisé toutes les activités. Il est maintenant temps de définir votre taxonomie. Pour ce faire, veuillez suivre les étapes décrites ici.
Créez votre taxonomie pour pouvoir extraire des informations d'une facture. Vous devez vous concentrer sur la création d’un type de document Facture , avec les champs suivants :
Nom du champ |
Type de champ |
---|---|
NonFacture |
|
Sous-total |
|
Taxe de vente |
|
Total |
|
Voici à quoi devrait ressembler votre taxonomie :
Création de votre modèle
Il est maintenant temps de créer le modèle pour le processus d'extraction. Créez-le en suivant les instructions fournies ici.
Le GIF suivant explique comment créer le modèle :
Définition des ancres dans le modèle
Les ancres sont une fonctionnalité très spéciale et utile à utiliser lorsque vous devez extraire des informations précises d’un document. En définissant une zone d'extraction avec une ancre, vous pouvez vous attendre à une grande précision dans l'extraction des données.
Les GIF suivants expliquent comment utiliser les ancres sur le document de facturation utilisé pour l’exemple ci-dessus. Vous trouverez plus de détails sur les ancres ici.
Une fois la taxonomie définie et le modèle créé, vous pouvez commencer à configurer le modèle en utilisant des ancres, ce qui signifie que la zone d'extraction est définie dans une boîte et que les ancres sont utilisées pour définir la position de la boîte.
Voici quelques conseils avant de commencer à ajouter des ancres à votre modèle :
- La boîte d'ancrage doit être aussi grande que possible (hauteur, largeur) pour couvrir tout type de numéro de facture, long, court, gros caractères, etc.
- Une zone d'extraction peut avoir autant d'ancres que nécessaire, mais une seule définie comme principale (la première).
- Utilisez des ancres formées de plusieurs mots côte à côte.
- L'ancre principale doit être aussi proche que possible de la zone d'extraction.
- Les positions de la zone d'extraction et de l'ancre principale sont fixes dans le modèle, même lorsqu'elles sont appliquées à des documents différents. La seule chose qui peut varier est la distance entre l'ancre principale et les ancres secondaires.
Poursuivons la configuration du modèle et voyons comment extraire des données à l'aide d'une ancre. Les gifs ci-dessous expliquent comment marquer la zone d'extraction et ajouter les ancres principale et secondaire.
-
Définir la zone d'extraction
Remarque :L'ancre principale doit contenir deux ou trois mots pour une grande précision et de meilleurs résultats dans le processus d'extraction.
Sélectionnez plusieurs mots lors du balisage d'une ancre en appuyant sur Ctrl et en cliquant sur les mots souhaités.
-
Définir l'ancre principale
-
Définir les ancres secondaires
Répétez le processus jusqu'à ce que vous ayez fini de définir toutes les zones d'extraction et d'ajouter toutes vos ancres. Une fois terminé, enregistrez le modèle.