Zum Hauptinhalt springen

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.

Fahren Sie nun mit den deutschen Dokumenten fort und konfigurieren Sie die zugehörige Aktivität „Extraction Rules“. Fast Learning hat einige Felder bereits verarbeitet; diese Aktivität übernimmt den Rest.

Bevor Sie beginnen

1

Öffnen Sie die Aktivität im Activity Editor

  1. Öffnen Sie die Aktivität “Sick Note DE” im Activity Editor.
  2. Wählen Sie eines der Dokumente aus dem Dokumentensatz aus.
2

Aktivieren Sie erweiterte Elementeigenschaften

Vergewissern Sie sich, dass der erweiterte Modus für die Elementeigenschaften aktiviert ist. Um diesen Modus ein- oder auszuschalten, klicken Sie auf das Symbol im Bereich Properties.
Alle hochgeladenen Dokumente wurden vorab erkannt. Klicken Sie auf das Symbol (oder auf das Symbol und wählen Sie Recognized Words, wenn Sie dieses Symbol aufgrund der Größe Ihres Bildschirms nicht sehen), um erkannte Objekte im Dokumentbild hervorzuheben. Sie können jederzeit zwischen verschiedenen Arten hervorgehobener Objekte wechseln. Zum Beispiel hilft Recognized Lines beim Auffinden von Absätzen, und Separators erleichtert die Konfiguration eines Separator-Suchelements.
Befindet sich ein Suchelement außerhalb des Suchbereichs, wird es nicht gefunden. Aktivieren Sie die Option Show search area im Kontextmenü des Dokumentbilds. Der Suchbereich für jedes Element wird grün hervorgehoben, wenn Sie das Abgleichergebnis auswerten.
Beachten Sie, dass es hilfreich sein kann, mit erweiterten Eigenschaften der Suchelemente zu experimentieren, um die Extraktionsgenauigkeit zu verbessern. Wir empfehlen Ihnen außerdem, regelmäßig auf Match zu klicken, um zu prüfen, wie Ihre Extraktionsregeln funktionieren, und um Extraktionsergebnisse bei verschiedenen Dokumenten im Satz zu vergleichen. Sie können ein einzelnes Element ohne Beziehungen zu anderen Elementen testen, indem Sie in seinem Kontextmenü auf Match Element klicken. In diesem Fall wirkt sich die Hypothesenqualität vorheriger Elemente nicht auf die Abgleichergebnisse aus.

Extrahieren der Patientendaten

Extrahieren Sie die fehlenden Patientendaten, indem Sie mehrere Suchelemente erstellen. Gruppieren Sie Elemente, die zu einer Einheit gehören. Suchelemente werden nacheinander abgeglichen — wenn ein übergeordnetes Element fehlschlägt, sinkt die Qualität der Hypothese für den Rest seiner Kette. Gruppen hingegen werden unabhängig voneinander mit ihrer eigenen Hypothese verarbeitet. So können Sie durch die Gruppierung steuern, wie Elemente sich gegenseitig beeinflussen, und die Abgleichergebnisse auf einen Blick bewerten. Die Gruppierung kann auch die Abgleichszeit verkürzen.
1

Erstellen Sie die Gruppe PatientDataArea

  1. Klicken Sie auf Create Element und wählen Sie das Element Group aus der Dropdown-Liste aus. Ändern Sie seinen Namen in “PatientDataArea”.
  2. Ändern Sie im Abschnitt Under what conditions den Wert Element is in Optional.
Ein neues Suchelement vom Typ Group ist standardmäßig als erforderlich festgelegt. Wenn ein erforderliches Element nicht gefunden wird, tritt im Activity Editor ein Fehler auf und der Abgleich wird abgebrochen. In diesem Szenario können Aktivitäten übersprungen werden, wenn sie für ein bestimmtes Dokument nicht geeignet sind. In diesem Tutorial erstellen wir jedoch eine Aktivität, um Daten aus allen eingehenden Dokumenten zu extrahieren, daher soll die Gruppe optional sein.
2

Suchen Sie das Patientenlabel mit einem Static Text-Element

In deutschen Dokumenten befindet sich der Absatz mit dem Namen und der Adresse des Patienten immer in dem Feld mit der Bezeichnung “Name, Vorname …”. Wir müssen diesen Text im Dokument finden und ihn als Referenz verwenden, um nach den Daten zu suchen, die wir extrahieren möchten.
  1. Klicken Sie auf Create Element und wählen Sie das Element Static Text aus der Dropdown-Liste aus. Ändern Sie den Namen in “kwPatientTitle”.
  2. Geben Sie den Text “Name, Vorname” in das Feld Text to find im Bereich Properties ein.
  3. Klicken Sie auf Match. Wenn die Verarbeitung abgeschlossen ist, sehen Sie unter dem Dokument den Hypothesenbaum. Vergewissern Sie sich, dass Advanced Designer den gewünschten statischen Text erfolgreich gefunden hat — ein grüner Punkt neben dem Elementnamen weist auf eine erfolgreiche Übereinstimmung hin. Klicken Sie im Hypothesenbaum auf den Elementnamen, damit ein violetter Rahmen um die entsprechende Region im Dokument angezeigt wird.
Wenn ein Element nicht gefunden wurde, sehen Sie einen orangefarbenen Punkt neben seinem Namen und einen orangefarbenen Rahmen um die Dokumentabbildung. Beachten Sie, dass die Qualität der Hypothese eines Elements den Status nachfolgender Elemente in der Kette und die Gesamtqualität einer Kette beeinflusst. Detaillierte Informationen zur Hypothesenqualität finden Sie in der Dokumentation.
3

Ermitteln Sie die untere Grenze mit einem Separator

Ermitteln Sie die untere Begrenzung der Zelle, die den Namen und die Adresse des Patienten enthält, mithilfe eines Separator-Elements.
  1. Fügen Sie der Gruppe ein Separator-Element hinzu und nennen Sie es “SeparatorBottom”. Setzen Sie die Mindestlänge auf 200.
  2. Klicken Sie mit der rechten Maustaste auf das Element und wählen Sie im Kontextmenü Match Element aus. Der Tree of Hypotheses enthält viele grüne Punkte — sie entsprechen verschiedenen Trennlinien, die den Suchkriterien entsprechen. Klicken Sie auf jeden Punkt, um das zugehörige Objekt auf dem Bild anzuzeigen.
  3. Um die Suchkriterien einzugrenzen, legen Sie den Suchbereich für die Trennlinie fest. Klicken Sie auf Match, um das Element “kwPatientTitle” zu finden, das als Ankerelement verwendet wird. Klicken Sie im Abschnitt Where to search im Bereich Properties auf Draw on Image. Wählen Sie im Dokument das Element “kwPatientTitle” aus und klicken Sie auf das Symbol mit dem Abwärtspfeil, um den Suchbereich unterhalb des Schlüsselworts festzulegen, und auf das Symbol für den nächstgelegenen Separator, um nach der dem Schlüsselwort nächstgelegenen Trennlinie zu suchen.
  4. Klicken Sie auf Match und prüfen Sie, ob Advanced Designer die Trennlinie unterhalb des Elements “kwPatientTitle” gefunden hat.
4

Absatz mit Name und Adresse finden

Eine Beschriftung und ein Trennzeichen sind zuverlässige Referenzelemente für die Daten des Patienten. Ist die Druckqualität jedoch zu gering, wird der Text der Beschriftung möglicherweise nicht erkannt oder das Trennzeichen nicht gefunden. Um gute Extraktionsergebnisse sicherzustellen, suchen Sie nach einem Absatz, der sich zwischen der Beschriftung und dem Trennzeichen befindet — ein Absatz ist ein einheitlicher Textblock und kann auch dann erfolgreich gefunden werden, wenn einige der Begrenzungselemente nicht gefunden wurden.
  1. Erstellen Sie ein Paragraph-Suchelement und nennen Sie es “NameAddressParagraph”.
  2. Ändern Sie Text alignment in Left.
  3. Die Daten des Patienten umfassen zwei bis fünf Zeilen. Geben Sie daher für Line count 2 bis 5 an.
  4. Geben Sie den Suchbereich für den Absatz über das Menü Add im Abschnitt Where to search an. Das Element sollte sich unter dem Element “kwPatientTitle” und über dem Element “SeparatorBottom” befinden.
  5. Klicken Sie auf Match.
5

PatientGroup erstellen

Erstellen Sie ein neues Gruppenelement mit dem Namen “PatientGroup”, das die Suchelemente enthält, die die Patientendaten extrahieren.
6

Die wiederholbare Gruppe NameGroup konfigurieren

Der Name des Patienten kann eine oder zwei Zeilen umfassen. Um mehrere Instanzen eines Elements zu erfassen, verwenden Sie eine wiederholbare Gruppe.
  1. Erstellen Sie ein Suchelement vom Typ Wiederholbare Gruppe und nennen Sie es “NameGroup”. Geben Sie 2 als maximale Anzahl von Wiederholungen an. Legen Sie das Element als optional fest.
  2. Um den Suchbereich auf die Zeilen zu beschränken, die zum Absatz “NameAddressParagraph” gehören, klicken Sie auf das Symbol des Code-Editors unter dem Dokumentbild und fügen Sie das folgende Skript im Abschnitt Suchbedingungen des Code Editor ein:
    RSA:PatientDataArea.NameAddressParagraph.Rect;
    
  3. Erstellen Sie innerhalb der wiederholbaren Gruppe ein Element vom Typ Zeichenfolge, das eine Zeichenzeile erfassen soll. Nennen Sie es “NameLine”.
  4. Der gesuchte Text kann Groß- und Kleinbuchstaben sowie verschiedene Satzzeichen enthalten. Konfigurieren Sie zwei separate Zeichensätze:
    • Der erste Satz enthält alle lateinischen Groß- und Kleinbuchstaben. Um Zeichen mit diakritischen Zeichen hinzuzufügen, ändern Sie den Unicode-Unterbereich oder fügen Sie die Zeichen direkt in das Feld Ausgewählte Zeichen ein.
    • Der zweite Satz enthält die Satzzeichen: ,-.()’. Damit die Zeichenfolge nicht nur aus Satzzeichen besteht, setzen Sie Anteil im Text, % für den zweiten Satz auf 40 %.
  5. Deaktivieren Sie die Option Nach Wortteilen suchen.
  6. Geben Sie den Suchbereich für das Element “NameLine” an: unterhalb des Elements “kwPatientTitle” und möglichst nah daran.
  7. Klicken Sie auf Abgleichen und prüfen Sie den Hypothesenbaum. Es werden zwei Zeichenfolgen gefunden, aber die zweite enthält die Adresse des Patienten.
  8. Um die Adresse aus den Suchergebnissen auszuschließen, fügen Sie eine skriptbasierte Suchbedingung hinzu. Wählen Sie das Suchelement “NameLine” aus und öffnen Sie den Code-Editor für Suchbedingungen. Fügen Sie das folgende Skript ein — es geht davon aus, dass die erste Zeile einen vollständigen Namen enthält, wenn sie ein Komma und ein Leerzeichen enthält. Wenn ein vollständiger Name gefunden wird, beendet die wiederholbare Gruppe die Suche nach einer zweiten Instanz:
    if (NameGroup.HasInstances and LastFound.NameLine.Value.Find(", ") > 0) then DontFind;
    
  9. Klicken Sie auf Abgleichen und stellen Sie sicher, dass der Name korrekt gefunden wird.
In den Standardeinstellungen darf die Zeichenfolge bis zu 30 % Zeichen enthalten, die in keinem Satz enthalten sind. Dadurch lassen sich Zeichenfolgen auch dann finden, wenn einige Zeichen falsch erkannt wurden oder nicht im Satz enthalten sind (z. B. Zeichen mit diakritischen Zeichen). Sie können diese Einstellung anpassen, indem Sie den Wert Zulässige Fehler im Eigenschaften-Bereich ändern.
7

Konfigurieren Sie das Address-Element

Der im vorherigen Schritt extrahierte Name des Patienten wird dem Feld “Name” zugeordnet. Extrahieren Sie nun die Adresse des Patienten.
  1. Erstellen Sie innerhalb von “PatientGroup” ein Suchelement vom Typ Character String mit dem Namen “Address” und derselben Zeichensatzkonfiguration wie das Element “NameLine”.
  2. Geben Sie den Suchbereich für das Element im Code an. Die Adresse muss sich unterhalb von “NameLine” befinden oder, falls dieses Element nicht gefunden wurde, unterhalb der ersten Zeile des Elements “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. Deaktivieren Sie die Option Nach Wortteilen suchen.
  4. Klicken Sie auf Match.
Die Struktur des Suchelements sollte wie folgt aussehen:
Hierarchie der Suchelemente für deutsche Patientendaten: PatientDataArea-Gruppe mit kwPatientTitle, SeparatorBottom, NameAddressParagraph und PatientGroup mit NameGroup und Address
8

Patientenfelder erstellen und zuordnen

Öffnen Sie das Dialogfeld Manage Fields, erstellen Sie die entsprechenden Felder und ordnen Sie sie den Suchelementen wie folgt zu:
NameTypSuchelement
NameTextfeld in der Gruppe “Patient”NameLine
AddressTextfeld in der Gruppe “Patient”Address
Löschen Sie die Suchelemente, die automatisch für die neuen Felder erstellt wurden.

Extrahieren der Art der Krankschreibung

Das Feld für die Art der Krankschreibung hat zwei Kontrollkästchen. Sie sind mit „Erstbescheinigung“ und „Folgebescheinigung“ beschriftet. Die Aufgabe besteht darin, diese Beschriftungen zu finden und anschließend zu prüfen, ob daneben gesetzte Häkchen vorhanden sind.
1

Die TypeOfSickNoteGroup erstellen

Erstellen Sie ein Group-Element mit dem Namen “TypeOfSickNoteGroup” und machen Sie das Element optional.
2

Die PrimaryGroup konfigurieren

Erstellen Sie ein Su chelement vom Typ wiederholbare Gruppe mit dem Namen “PrimaryGroup”, um die Informationen zu beiden Häkchen zu speichern.
  1. Beschränken Sie den Suchbereich für die Elementgruppe mithilfe von Code — rechts vom Element “PatientGroup” und oberhalb des Elements “DoctorAreaGroup” (das später erstellt wird):
    if PatientGroup.Exists then RSA.Left: PatientGroup.NameGroup.NameLine.Rect.Right;
    if DoctorAreaGroup.Exists then RSA.Bottom: DoctorAreaGroup.DataArea.SeparatorTop.Rect.Top;
    
  2. Erstellen Sie ein Static Text-Suchelement mit dem Namen “kwPrimary” (zu suchender Text: “Erstbescheinigung”) und machen Sie es erforderlich.
  3. Erstellen Sie ein Object Collection-Suchelement mit dem Namen “Checkmark” mit diesen Einstellungen: Typ Checkmark, Häkchenstatus Checked, Mindesthöhe 10, maximale Breite 20, maximale Höhe 20. Geben Sie an, dass sich das Element links vom Element “kwPrimary” befindet und diesem am nächsten ist.
  4. Klicken Sie auf Match.
Geben Sie beim Verweisen auf später erstellte Elemente (wie oben “DoctorAreaGroup”) immer die Bedingung Exists an.
3

Die SecondaryGroup erstellen und konfigurieren

  1. Kopieren Sie die Gruppe “PrimaryGroup” und fügen Sie sie ein. Benennen Sie die kopierte Gruppe in “SecondaryGroup” um — diese Gruppe ist erforderlich.
  2. Benennen Sie das darin enthaltene Element “kwPrimary” in “kwSecondary” um und setzen Sie den zu suchenden Text auf “Folgebescheinigung”. Geben Sie als Suchbereich den Bereich unterhalb des Elements “kwPrimary” aus der “PrimaryGroup” an.
  3. Geben Sie den Suchbereich für das Element “Checkmark” an: links von “kwSecondary” und diesem am nächsten.
  4. Das Object Collection-Suchelement findet eine Sammlung aller passenden Objekte innerhalb des Suchbereichs. Wenn sich die Häkchen in derselben Zeile befinden, kann das Element “Checkmark” der “SecondaryGroup” auch das primäre Häkchen finden. Um dies zu vermeiden, schließen Sie das primäre Häkchen aus dem Suchbereich aus.
  5. Klicken Sie auf Match.
Die Struktur des Suchelements sollte wie folgt aussehen:
Hierarchie der Suchelemente für die deutsche Art der Krankschreibung: TypeOfSickNoteGroup mit PrimaryGroup und SecondaryGroup, jeweils mit kwPrimary- oder kwSecondary-Schlüsselwort- und Checkmark-Elementen
4

Die Felder für die Art der Krankschreibung erstellen und zuordnen

Öffnen Sie das Fenster Manage Fields, erstellen Sie die entsprechenden Felder und ordnen Sie sie den Suchelementen wie folgt zu:
NameTypSuchelement
Art der KrankschreibungHäkchengruppe
PrimärHäkchen in der Häkchengruppe „Art der Krankschreibung“PrimaryGroup -> Checkmark
SekundärHäkchen in der Häkchengruppe „Art der Krankschreibung“SecondaryGroup -> Checkmark
Löschen Sie die Suchelemente, die für die neuen Felder automatisch erstellt wurden.

Extrahieren der Arztdaten

Wir müssen nun den letzten Datenblock auf diesen Dokumenten verarbeiten. Er enthält die Arztdaten und die Unterschrift. Zuerst suchen wir den Kasten, der die Daten enthält, und extrahieren dann einen Absatz mit den Arztinformationen sowie einen Bildbereich mit der Unterschrift.
1

Erstellen Sie DoctorAreaGroup und DataArea

  1. Erstellen Sie ein Group-Element mit dem Namen “DoctorAreaGroup” und machen Sie das Element optional.
  2. Um die Beschriftung des Kastens zu finden, erstellen Sie ein Static Text-Element namens “kwDoctorTitle” (zu suchender Text: “Unterschrift des Arztes”).
  3. Erstellen Sie innerhalb der Gruppe “DoctorAreaGroup” eine weitere Gruppe mit dem Namen “DataArea”.
2

Fügen Sie die vier begrenzenden Trennlinien hinzu

Der Kasten, der die Arztinformationen und die Unterschrift enthält, wird durch eine Kombination aus vier Trennlinien begrenzt. Sie befinden sich rund um das Element “kwDoctorTitle”. Wir sollten die Elemente jedoch so konfigurieren, dass das Programm sie auch dann finden kann, wenn das Element “kwDoctorTitle” nicht gefunden wurde.Erstellen Sie in der Gruppe “DataArea” vier Separator-Suchelemente mit den folgenden Eigenschaften:
NameAusrichtungMindestlängeSuchbereich
SeparatorRightVertikal180Rechts von “kwDoctorTitle”, dem rechten Seitenrand am nächsten
SeparatorLeftVertikal180Links von “kwDoctorTitle”, links von “SeparatorRight” (falls “kwDoctorTitle” nicht gefunden wurde), “SeparatorRight” am nächsten, unterhalb von “SeparatorRight” (klicken Sie auf das Symbol rechts neben dem Trennliniennamen und wählen Sie Top Boundary of Region), “SeparatorRight” ausschließen
SeparatorBottomHorizontal200Unterhalb von “kwDoctorTitle” (mit einer Anpassung von -10 Punkten), rechts von “SeparatorLeft”, links von “SeparatorRight”, dem unteren Seitenrand am nächsten (diese Einstellung ist nützlich, falls “kwDoctorTitle” nicht gefunden wurde)
SeparatorTopHorizontal200Oberhalb von “kwDoctorTitle”, rechts von “SeparatorLeft”, “TypeOfSickNoteGroup” am nächsten, “SeparatorBottom” ausschließen
Deaktivieren Sie die Option Fits entirely within search area für alle vier Elemente.
3

BoxRegion erstellen

Erstellen Sie ein Region-Suchelement mit dem Namen “BoxRegion” und geben Sie den Suchbereich an: links von “SeparatorRight”, rechts von “SeparatorLeft”, oberhalb von “SeparatorBottom” und unterhalb von “SeparatorTop”.Diese Region entspricht dem durch die vier Trennlinien begrenzten Bereich — durch ihre Verwendung müssen die Suchbereiche für die Unterschrift und die Arztinformationen nicht manuell angegeben werden.
4

Erstellen Sie die Gruppe DoctorGroup

Erstellen Sie innerhalb von “DoctorAreaGroup” eine neue Gruppe mit dem Namen “DoctorGroup” für die Elemente Unterschrift und Informationen.
5

Hinzufügen der Object Collection „Signature“

Um die Arztunterschrift zu finden, erstellen Sie innerhalb der “DoctorGroup” ein Object Collection-Element mit den folgenden Einstellungen:
EigenschaftWert
NameSignature
TypePicture
Minimum width15
Minimum height15
Maximum width600
Maximum height350
Abschnitt Search Conditions im Code EditorDie Unterschrift kann teilweise außerhalb des Kastens liegen. Um das gesamte Bild zu finden, erweitern Sie den Suchbereich in jede Richtung um 100 Punkte: RSA: DoctorAreaGroup.DataArea.BoxRegion.Rect.GetInflated(100dot,100dot);
6

Fügen Sie den Absatz „DoctorInformation“ hinzu

Um die Textinformationen im Kasten zu extrahieren, erstellen Sie ein Paragraph-Element mit den folgenden Einstellungen:
EigenschaftWert
NameDoctorInformation
Maximum line count6
SuchbereichOberhalb von “kwDoctorTitle”, “Signature” ausschließen
Abschnitt Search Conditions im Code EditorRSA: DoctorAreaGroup.DataArea.BoxRegion.Rect;
7

Prüfen Sie, ob die Elemente gefunden werden

Klicken Sie auf Match und stellen Sie sicher, dass die Elemente korrekt gefunden werden.So sollte die Struktur der Suchelemente aussehen:
Suchelementhierarchie für deutsche Arztdaten: DoctorAreaGroup mit kwDoctorTitle und DataArea (mit vier begrenzenden Trennlinien und BoxRegion) sowie DoctorGroup mit Signature und DoctorInformation
8

Erstellen und Zuordnen der Arztfelder

Öffnen Sie den Dialog Manage Fields, erstellen Sie die entsprechenden Felder und ordnen Sie sie den Suchelementen wie folgt zu:
NameTypSuchelement
Doctor InformationText-Feld in der Gruppe “Doctor”DoctorInformation
SignatureBildfeld in der Gruppe “Doctor”Signature
Löschen Sie die Suchelemente, die automatisch für die neuen Felder erstellt wurden.

Testen der Aktivität

Wir haben alle notwendigen Suchelemente und Felder konfiguriert. Wählen Sie alle Dokumente aus, klicken Sie auf Match, und wechseln Sie zur Registerkarte Felder, um die Feldbereiche auf den Dokumentbildern zu überprüfen. Beachten Sie, dass ein Bereich nur dann einem Feld zugeordnet wird, wenn er zur Hypothese des besten Pfads gehört. Sobald Sie mit den Ergebnissen zufrieden sind, klicken Sie auf das Kopiersymbol oberhalb des Dokumentbilds, um die vorhergesagten Labels in die Referenz-Labels zu kopieren.

Wie geht es weiter

Schritt 8. Die Aktivität „Sick Note BE-NL“ konfigurieren

Konfigurieren Sie die Aktivität „Extraction Rules“ für niederländische und belgische Krankschreibungen.

Tutorial-Überblick

Zurück zur Tutorial-Einführung.