Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt

Use this file to discover all available pages before exploring further.

Pour les documents allemands, configurez maintenant leur activité Extraction Rules. Fast Learning a déjà pris en charge certains champs ; cette activité traite les autres.

Avant de commencer

1

Ouvrez l’activité dans l’Éditeur d’activité

  1. Ouvrez l’activité “arrêt maladie DE” dans l’Activity Editor.
  2. Sélectionnez l’un des documents de l’ensemble de documents.
2

Activez les propriétés avancées de l’élément

Assurez-vous que le mode avancé des propriétés de l’élément est activé. Pour activer ou désactiver ce mode, cliquez sur l’icône dans le volet Properties.
Tous les documents téléchargés ont subi une préreconnaissance. Cliquez sur l’icône (ou cliquez sur l’icône Plus et sélectionnez Recognized Words si l’icône ne tient pas sur votre écran) pour mettre en évidence les objets détectés sur l’image du document. Vous pouvez basculer à tout moment entre les types d’objets — par exemple, Recognized Lines aide à repérer des paragraphes, et Separators facilite la configuration d’un élément de recherche Separator.
Si un élément de recherche se situe en dehors de la zone de recherche, il ne sera pas trouvé. Activez l’option Show search area dans le menu contextuel de l’image du document. La zone de recherche de chaque élément sera surlignée en vert lorsque vous évaluerez les résultats de correspondance.
Gardez à l’esprit qu’il peut être utile d’expérimenter les propriétés avancées des éléments de recherche pour améliorer la précision de l’extraction. Nous vous encourageons également à cliquer fréquemment sur Associer pour vérifier le fonctionnement de vos règles d’extraction et comparer les résultats d’extraction sur différents documents de l’ensemble. Vous pouvez tester un seul élément sans relation avec les autres éléments en cliquant sur Match Element dans son menu contextuel. Dans ce cas, la qualité des hypothèses pour les éléments précédents n’affectera pas les résultats d’Associer.

Extraction des données du patient

Extrayez les données manquantes du patient en créant plusieurs éléments de recherche. Regroupez les éléments liés à une même entité. Les éléments de recherche sont mis en correspondance successivement — si un élément de tête échoue, la qualité de l’hypothèse diminue pour le reste de sa chaîne. Les Groups, en revanche, sont traités indépendamment avec leur propre hypothèse ; le regroupement vous permet donc de contrôler l’influence des éléments les uns sur les autres et d’évaluer les résultats de correspondance d’un seul coup d’œil. Le regroupement peut également réduire le temps de correspondance.
1

Créez le group PatientDataArea

  1. Cliquez sur Create Element et sélectionnez l’élément Group dans la liste déroulante. Renommez-le “PatientDataArea”.
  2. Dans la section Under what conditions, remplacez la valeur Element is par Optional.
Par défaut, un nouvel élément de recherche de groupe est défini comme obligatoire. Si un élément obligatoire n’est pas trouvé, l’Éditeur d’activité génère une erreur et la mise en correspondance est interrompue. Ce scénario permet d’ignorer des activités si elles ne conviennent pas à un document donné. Cependant, dans ce tutoriel, nous créons une activité pour extraire des données de tous les documents entrants ; nous voulons donc que le groupe soit facultatif.
2

Repérez le libellé du patient à l’aide d’un élément Static Text

Dans les documents allemands, le paragraphe contenant le nom et l’adresse du patient se trouve toujours dans le champ libellé “Name, Vorname …”. Nous devons repérer ce texte dans le document et l’utiliser comme référence pour rechercher les données à extraire.
  1. Cliquez sur Create Element et sélectionnez l’élément Static Text dans la liste déroulante. Renommez-le en “kwPatientTitle”.
  2. Saisissez le texte “Name, Vorname” dans le champ Text to find du volet Properties.
  3. Cliquez sur Match. Une fois le traitement terminé, le Tree of Hypotheses s’affiche sous le document. Assurez-vous qu’Advanced Designer a bien trouvé le texte statique souhaité : un point vert à côté du nom de l’élément indique une correspondance réussie. Cliquez sur le nom de l’élément dans le Tree of Hypotheses pour afficher un cadre violet autour de la région correspondante dans le document.
Si un élément n’a pas été trouvé, un point orange apparaît à côté de son nom et un cadre orange entoure l’image du document. Gardez à l’esprit que la qualité de l’hypothèse d’un élément influe sur l’état des éléments suivants dans la chaîne, ainsi que sur la qualité globale de celle-ci. Vous trouverez des informations détaillées sur la qualité des hypothèses dans la documentation.
3

Repérez la limite inférieure à l’aide d’un Separator

Trouvez la limite inférieure de la cellule contenant le nom et l’adresse du patient à l’aide d’un élément Separator.
  1. Ajoutez un élément Separator au groupe et nommez-le « SeparatorBottom ». Définissez sa longueur minimale sur 200.
  2. Cliquez avec le bouton droit sur l’élément, puis sélectionnez Match Element dans le menu contextuel. Le Tree of Hypotheses contient de nombreux points verts : ils correspondent à différents séparateurs répondant aux critères de recherche. Cliquez sur chaque point pour voir l’objet correspondant sur l’image.
  3. Pour affiner les critères de recherche, spécifiez la zone de recherche du Separator. Cliquez sur Match pour trouver l’élément « kwPatientTitle », qui sera utilisé comme élément d’ancrage. Dans la section Where to search du volet Properties, cliquez sur Draw on Image. Sélectionnez l’élément « kwPatientTitle » dans le document, puis cliquez sur l’icône de flèche vers le bas pour définir la zone de recherche sous le mot-clé et sur l’icône la plus proche afin de rechercher le Separator le plus proche du mot-clé.
  4. Cliquez sur Match et vérifiez qu’Advanced Designer a trouvé le Separator sous l’élément « kwPatientTitle ».
4

Recherchez le Paragraph du nom et de l’adresse

Un libellé et un séparateur sont des éléments de référence fiables pour les données du patient. Cependant, si la qualité d’impression est trop médiocre, le texte du libellé risque de ne pas être reconnu ou le séparateur de ne pas être trouvé. Pour obtenir de bons résultats d’extraction, recherchez un paragraphe situé entre le libellé et le séparateur : un paragraphe est un bloc de texte homogène qui peut être trouvé de manière fiable, même si certains éléments de délimitation n’ont pas été détectés.
  1. Créez un élément de recherche Paragraph et nommez-le “NameAddressParagraph”.
  2. Définissez Text alignment sur Left.
  3. Les données du patient occupent de deux à cinq lignes ; indiquez donc Line count de 2 à 5.
  4. Définissez la zone de recherche du paragraphe à l’aide du menu Add dans la section Where to search. L’élément doit se trouver sous l’élément “kwPatientTitle” et au-dessus de l’élément “SeparatorBottom”.
  5. Cliquez sur Match.
5

Créer le PatientGroup

Créez un nouvel élément Group appelé “PatientGroup” pour contenir les éléments de recherche qui extraient les données du patient.
6

Configurer le groupe répétitif NameGroup

Le nom du patient peut occuper une ou deux lignes. Pour capturer plusieurs instances d’un élément, utilisez un groupe répétitif.
  1. Créez un élément de recherche Repeating Group et nommez-le “NameGroup”. Indiquez 2 comme nombre maximal de répétitions. Rendez l’élément facultatif.
  2. Pour limiter la zone de recherche aux lignes faisant partie du paragraphe “NameAddressParagraph”, cliquez sur l’icône de l’éditeur de code sous l’image du document et collez le script suivant dans la section Conditions de recherche de l’éditeur de code :
    RSA:PatientDataArea.NameAddressParagraph.Rect;
    
  3. Dans le groupe répétitif, créez un élément Character String destiné à capturer une ligne de caractères. Nommez-le “NameLine”.
  4. Le texte recherché peut contenir des lettres majuscules et minuscules, ainsi qu’un ensemble de signes de ponctuation. Configurez deux jeux de caractères distincts :
    • Le premier jeu contient toutes les lettres latines majuscules et minuscules. Pour ajouter des caractères diacrités, modifiez la sous-plage Unicode ou collez directement les caractères dans le champ Caractères sélectionnés.
    • Le second jeu contient les signes de ponctuation suivants : ,-.()’. Pour éviter que la chaîne ne contienne uniquement des signes de ponctuation, définissez Portion dans le texte, % sur 40 % pour le second jeu.
  5. Désactivez l’option Rechercher des parties de mots.
  6. Indiquez la zone de recherche de l’élément “NameLine” : sous l’élément “kwPatientTitle” et au plus près de celui-ci.
  7. Cliquez sur Match et examinez l’arbre des hypothèses. Deux chaînes de caractères sont trouvées, mais la seconde contient l’adresse du patient.
  8. Pour exclure l’adresse des résultats de recherche, ajoutez une condition de recherche par script. Sélectionnez l’élément de recherche “NameLine” et ouvrez l’éditeur de code Conditions de recherche. Collez le script suivant : il suppose que la première ligne contient un nom complet si elle comporte une virgule et un espace. Si un nom complet est trouvé, le groupe répétitif cesse de rechercher une deuxième instance :
    if (NameGroup.HasInstances and LastFound.NameLine.Value.Find(", ") > 0) then DontFind;
    
  9. Cliquez sur Match et vérifiez que le nom est correctement trouvé.
Les paramètres par défaut permettent à la chaîne de contenir jusqu’à 30 % de caractères non inclus dans un jeu. Cela aide à trouver des chaînes même lorsque certains caractères sont reconnus de manière incorrecte ou ne sont pas inclus dans le jeu (par exemple, les caractères diacrités). Vous pouvez ajuster ce paramètre en modifiant la valeur Erreurs autorisées dans le volet Properties.
7

Configurez l’élément Address

Le nom du patient extrait à l’étape précédente sera mappé au champ “Name”. Extrayez maintenant l’adresse du patient.
  1. À l’intérieur de “PatientGroup”, créez un élément de recherche Character String nommé “Address” avec la même configuration de jeu de caractères que l’élément “NameLine”.
  2. Définissez la zone de recherche de l’élément à l’aide du code. L’adresse doit se trouver sous “NameLine” ou, si cet élément est introuvable, sous la première ligne de l’élément “NameAddressParagraph” :
    RSA: PatientDataArea.NameAddressParagraph.Rect;
    if NameGroup.HasInstances then
      RSA.Top: Max(RSA.Top, LastFound.NameLine.Rect.Bottom);
    else
      RSA.Top: PatientDataArea.NameAddressParagraph.Lines[0].Rect.Bottom;
    
  3. Désactivez l’option Search for parts of words.
  4. Cliquez sur Match.
La structure de l’élément de recherche doit ressembler à ceci :
Hiérarchie des éléments de recherche pour les données de patients allemands : groupe PatientDataArea contenant kwPatientTitle, SeparatorBottom, NameAddressParagraph et PatientGroup avec NameGroup et Address
8

Créez et associez les champs du patient

Ouvrez la boîte de dialogue Gérer les champs, créez les champs correspondants et associez-les aux éléments de recherche comme suit :
NomTypeÉlément de recherche
Nomchamp Text dans le groupe “Patient”NameLine
Adressechamp Text dans le groupe “Patient”Address
Supprimez les éléments de recherche créés automatiquement pour les nouveaux champs.

Extraction du type d’arrêt maladie

Le champ du type d’arrêt maladie comporte deux cases à cocher. Elles portent les libellés « Erstbescheinigung » et « Folgebescheinigung ». Il s’agit de repérer ces libellés, puis de vérifier si des coches sont remplies à côté.
1

Créer le TypeOfSickNoteGroup

Créez un élément Group appelé “TypeOfSickNoteGroup” et rendez cet élément facultatif.
2

Configurer le PrimaryGroup

Créez un élément de recherche groupe répétitif appelé “PrimaryGroup” pour stocker les informations sur les deux coches.
  1. Limitez la zone de recherche du groupe d’éléments à l’aide du code — à droite de l’élément “PatientGroup” et au-dessus de l’élément “DoctorAreaGroup” (qui sera créé plus tard) :
    if PatientGroup.Exists then RSA.Left: PatientGroup.NameGroup.NameLine.Rect.Right;
    if DoctorAreaGroup.Exists then RSA.Bottom: DoctorAreaGroup.DataArea.SeparatorTop.Rect.Top;
    
  2. Créez un élément de recherche Static Text appelé “kwPrimary” (texte à trouver : “Erstbescheinigung”) et rendez-le obligatoire.
  3. Créez un élément de recherche Object Collection appelé “Checkmark” avec les paramètres suivants : type Checkmark, état de la coche Checked, hauteur minimale 10, largeur maximale 20, hauteur maximale 20. Indiquez que l’élément se situe à gauche de l’élément “kwPrimary” et au plus près de celui-ci.
  4. Cliquez sur Associer.
Indiquez toujours la condition Exists lorsque vous faites référence à des éléments qui seront créés ultérieurement (comme “DoctorAreaGroup” ci-dessus).
3

Créer et configurer le SecondaryGroup

  1. Copiez-collez le groupe “PrimaryGroup”. Renommez la copie en “SecondaryGroup” — ce groupe est obligatoire.
  2. Renommez l’élément “kwPrimary” qu’il contient en “kwSecondary” et définissez le texte à trouver sur “Folgebescheinigung”. Indiquez la zone de recherche : sous l’élément “kwPrimary” du “PrimaryGroup”.
  3. Indiquez la zone de recherche de l’élément “Checkmark” : à gauche de “kwSecondary” et au plus près de celui-ci.
  4. L’élément de recherche Object Collection trouve une collection de tous les objets appropriés dans la zone de recherche. Si les coches se trouvent sur la même ligne, l’élément “Checkmark” du “SecondaryGroup” peut aussi trouver la coche primaire. Pour éviter cela, excluez la coche primaire de la zone de recherche.
  5. Cliquez sur Associer.
La structure de l’élément de recherche doit ressembler à ceci :
Hiérarchie des éléments de recherche pour le type d’arrêt maladie allemand : TypeOfSickNoteGroup contenant PrimaryGroup et SecondaryGroup, chacun avec les éléments de mot-clé kwPrimary ou kwSecondary et Checkmark
4

Créer et mapper les champs du type d’arrêt maladie

Ouvrez la fenêtre Gérer les champs, créez les champs correspondants et mappez-les aux éléments de recherche comme suit :
NomTypeÉlément de recherche
Type d’arrêt maladiegroupe de coches
PrimaireCoche dans le groupe de coches “Type d’arrêt maladie”PrimaryGroup -> Checkmark
SecondaireCoche dans le groupe de coches “Type d’arrêt maladie”SecondaryGroup -> Checkmark
Supprimez les éléments de recherche créés automatiquement pour les nouveaux champs.

Extraction des données du médecin

Nous devons maintenant traiter le dernier bloc de données sur ces documents. Il contient les données et la signature du médecin. Nous allons d’abord trouver la zone qui contient les données, puis extraire un paragraphe avec les informations du médecin et une région d’image contenant la signature.
1

Créez « DoctorAreaGroup » et « DataArea »

  1. Créez un élément Group nommé “DoctorAreaGroup” et définissez cet élément comme facultatif.
  2. Pour trouver le libellé de la zone, créez un élément Static Text nommé “kwDoctorTitle” (texte à rechercher : “Unterschrift des Arztes”).
  3. À l’intérieur du groupe “DoctorAreaGroup”, créez un autre groupe nommé “DataArea”.
2

Ajoutez les quatre Separator de bordure

La zone qui contient les informations et la signature du médecin est formée d’une combinaison de quatre séparateurs situés autour de l’élément “kwDoctorTitle”. Configurez les éléments de manière à ce que le programme puisse les trouver même si “kwDoctorTitle” n’a pas été trouvé.Dans le groupe “DataArea”, créez quatre éléments de recherche Separator avec les propriétés suivantes :
NameOrientationLongueur minimaleZone de recherche
SeparatorRightVertical180À droite de “kwDoctorTitle”, le plus proche du bord droit de la Page
SeparatorLeftVertical180À gauche de “kwDoctorTitle”, à gauche de “SeparatorRight” (au cas où “kwDoctorTitle” n’aurait pas été trouvé), le plus proche de “SeparatorRight”, en dessous de “SeparatorRight” (cliquez sur l’icône à droite du nom du séparateur et sélectionnez Top Boundary of Region), Exclure “SeparatorRight”
SeparatorBottomHorizontal200En dessous de “kwDoctorTitle” (avec un ajustement de -10 points), à droite de “SeparatorLeft”, à gauche de “SeparatorRight”, le plus proche du bord inférieur de la Page (ce paramètre sera utile au cas où “kwDoctorTitle” n’aurait pas été trouvé)
SeparatorTopHorizontal200Au-dessus de “kwDoctorTitle”, à droite de “SeparatorLeft”, le plus proche de “TypeOfSickNoteGroup”, Exclure “SeparatorBottom”
Désactivez l’option Fits entirely within search area pour les quatre éléments.
3

Créez l’élément BoxRegion

Créez un élément de recherche Region nommé “BoxRegion” et définissez la zone de recherche : à gauche de “SeparatorRight”, à droite de “SeparatorLeft”, au-dessus de “SeparatorBottom” et en dessous de “SeparatorTop”.Cette région correspond à la zone délimitée par les quatre séparateurs — son utilisation évite de devoir spécifier manuellement les zones de recherche pour la signature et les informations du médecin.
4

Créez le groupe DoctorGroup

Créez un nouveau groupe nommé “DoctorGroup” à l’intérieur de “DoctorAreaGroup” pour y placer les éléments de signature et d’information.
5

Ajoutez l’Object Collection nommée Signature

Pour localiser la signature du médecin, créez un élément Object Collection à l’intérieur de “DoctorGroup” avec les paramètres suivants :
PropertyValue
NameSignature
TypePicture
Minimum width15
Minimum height15
Maximum width600
Maximum height350
Search Conditions section of the Code EditorLa signature peut être partiellement située en dehors de la zone. Pour trouver l’image complète, agrandissez la zone de recherche de 100 points dans chaque direction : RSA: DoctorAreaGroup.DataArea.BoxRegion.Rect.GetInflated(100dot,100dot);
6

Ajoutez le Paragraph DoctorInformation

Pour extraire les informations textuelles de la zone, créez un élément Paragraph avec les paramètres suivants :
PropertyValue
NameDoctorInformation
Maximum line count6
Search areaAu-dessus de “kwDoctorTitle”, Exclure “Signature”
Search Conditions section of the Code EditorRSA: DoctorAreaGroup.DataArea.BoxRegion.Rect;
7

Vérifiez que les éléments ont bien été trouvés

Cliquez sur Match et assurez-vous que les éléments sont trouvés correctement.La structure des éléments de recherche doit ressembler à ceci :
Hiérarchie des éléments de recherche pour les données du médecin allemand : DoctorAreaGroup contenant kwDoctorTitle et DataArea (avec quatre Separator de bordure et BoxRegion), ainsi que DoctorGroup avec Signature et DoctorInformation
8

Créer et associer les champs du médecin

Ouvrez la boîte de dialogue Manage Fields, créez les champs correspondants et mappez-les aux éléments de recherche comme suit :
NameTypeSearch element
Doctor Informationchamp de Text dans le groupe “Doctor”DoctorInformation
Signaturechamp image dans le groupe “Doctor”Signature
Supprimez les éléments de recherche qui ont été créés automatiquement pour les nouveaux champs.

Tester l’activité

Nous avons configuré tous les éléments de recherche et les champs nécessaires. Sélectionnez tous les documents, cliquez sur Associer, puis passez à l’onglet Champs pour examiner les régions de champ sur les images du document. Gardez à l’esprit qu’une région n’est transmise à un champ que si elle appartient à l’hypothèse du meilleur chemin. Une fois satisfait des résultats, cliquez sur l’icône de copie au-dessus de l’image du document pour copier l’étiquetage prédit vers l’étiquetage de référence.

Étapes suivantes

Étape 8. Configurer l’activité Arrêt maladie BE-NL

Configurez l’activité Extraction Rules pour les arrêts maladie néerlandais et belges.

Vue d’ensemble du tutoriel

Retour à l’introduction du tutoriel.