Skip to main content
Um verschiedene Titel von Dokumenten, Tabellen, Feldern oder beliebigen Text zu erkennen, die auf allen oder den meisten Bildern in einem Dokument vorkommen, verwendet FlexiLayout Studio ein spezielles Element vom Typ Static Text. Wenn verschiedene Bilder, die mit demselben FlexiLayout verarbeitet werden, unterschiedliche Varianten ein und derselben Bezeichnung haben (zum Beispiel hat das Feld Rechnungsnummer die Varianten Invoice, Invoice: und Invoice No.), müssen Sie alle möglichen Werte für den statischen Text angeben, auch wenn sie sich nur in den Satzzeichen unterscheiden.

Warum jede Variante von statischem Text aufgeführt werden muss

Dies ist aus den folgenden Gründen notwendig:
  • Um eine Hypothese zu erzeugen, die dem angegebenen Wert entspricht. Wenn Sie zum Beispiel die Variante Invoice: nicht angeben, sondern nur die Variante Invoice, wird der Doppelpunkt nicht in die Hypothese für die Feldbezeichnung aufgenommen. Er kann dann in den Suchbereich der Rechnungsnummer geraten, nach der rechts vom Namen gesucht wird. Wenn die Suche nach der Nummer Nicht-Ziffern oder nicht angegebene Zeichen zulässt, kann der Doppelpunkt in die Hypothese des Elements gelangen, das die Rechnungsnummer beschreibt.
  • Um zu vermeiden, dass eine Hypothese für Zeichen abgestraft wird, die im Fenster Search text nicht angegeben sind. Wenn zum Beispiel der Wert Invoice: im Abschnitt Search text angegeben ist und auf den verarbeiteten Bildern auch die Bezeichnung Invoice# vorkommt, wird dennoch eine Hypothese erzeugt, sofern für das Element einige Fehler zulässig sind, aber ihre Quality wird herabgesetzt (in diesem Beispiel erlaubt das FlexiLayout mindestens einen Fehler).
  • Wenn Variantenhypothesen verfügbar sind, zum Beispiel Invoice|Invoice:, weist FlexiLayout Studio der längeren Hypothese eine etwas höhere Quality zu, sodass die Hypothese Invoice: bevorzugt wird. Wenn eine Variante mit einem Doppelpunkt angegeben ist, wird die Variante ohne Doppelpunkt mit 0.001 abgestraft, weil die Zeichenkette Invoice eine Teilzeichenkette von Invoice: ist. Durch das Abwerten der kürzeren Namenszeichenkette, die eine Teilzeichenkette der anderen ist, wird die längere Hypothese zum Gewinner.

Das Beispielprojekt StaticText.fsp

Das Beispielprojekt StaticText.fsp (Ordner %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Variants of StaticText) zeigt, wie die Angabe der Werte eines Static Text-Elements dabei hilft, die Feldbezeichnung Rechnungsnummer und das Feld selbst zu erkennen. Das Projekt hat fünf Seiten, die jeweils eine Variante der Feldbezeichnung Rechnungsnummer zeigen.

Alle Namensvarianten im Element InvoiceHeader angeben

Im Dialogfeld Eigenschaften des Static Text-Elements mit dem Namen InvoiceHeader sind alle möglichen Bezeichnungen für das Feld angegeben, die in den verarbeiteten Dokumenten gefunden werden können. In diesem Fall sind dies die zuvor aufgeführten Werte. Die Groß-/Kleinschreibung in den Bezeichnungen ist für die Suche irrelevant: Invoice|Invoice:|Invoice#:|Invoice-.
Um die Suche nach dem Element zu beschleunigen, werden alle Varianten ohne Leerzeichen geschrieben. Das Fehlen oder Vorhandensein von Leerzeichen beeinflusst die Quality einer Hypothese nicht.
Der Einfachheit halber nehmen Sie an, dass sich die Rechnungsnummer immer rechts vom Namen befindet. Um nach der Rechnungsnummer zu suchen, wurde ein Element vom Typ Character String mit dem Namen InvoiceNumber erstellt. Sein alphabet und seine Suchbedingungen sind im Feld Relations angegeben. Diese Einstellungen sind unkompliziert und werden hier nicht beschrieben. Sie können sie direkt im Projekt nachsehen. Im FlexiLayout-Baum wurde ein Textblock Invoice erstellt. Das Element InvoiceNumber wurde als Source-Element für den Block angegeben. Wie Sie nach dem Ausführen der Analyse sehen können, werden die Feldbezeichnung und die Rechnungsnummer auf allen Seiten erfolgreich erkannt.

Alle Werte außer Invoice entfernen und erneut abgleichen

Versuchen Sie nun, vorübergehend alle Static Text-Werte bis auf den ersten (Invoice) aus dem Element InvoiceHeader zu entfernen, und versuchen Sie dann erneut, das FlexiLayout mit allen Seiten abzugleichen. Sie werden sehen, dass die Bezeichnung und die Rechnungsnummer nur auf Seite 1 erfolgreich erkannt wurden, da die Bezeichnung dort vollständig mit dem angegebenen Wert (Invoice) übereinstimmt. Auf den Seiten 2–4 ist ein Teil der Bezeichnung in die Rechnungsnummer geraten. Auf Seite 5 gab es einen Fehler beim Lokalisieren des Zahlenfelds.
Screenshot der Ergebnisse des FlexiLayout-Abgleichs in ABBYY FlexiLayout Studio nach dem Entfernen aller Static Text-Werte bis auf den ersten. Er zeigt, dass die Feldbezeichnung und die Rechnungsnummer nur auf der Seite korrekt erkannt werden, deren Bezeichnung vollständig mit dem Wert Invoice übereinstimmt.

Stellen Sie die Werte wieder her und vergleichen Sie die Hypothesen auf Seite 5

Stellen Sie nun die entfernten Werte wieder her und betrachten Sie die Analyseergebnisse auf Seite 5, wo das Wort Invoice zweimal vorkommt. Wie Sie sehen, hat FlexiLayout Studio fünf Hypothesen für das Element InvoiceHeader erzeugt. Die höchste Quality (Chain quality = 1, was in diesem Fall der Pre-search quality entspricht) wird der Hypothese für die Bezeichnung Invoice: zugewiesen. Hypothesen wurden auch für die Werte Invoice und Invoice d erzeugt, da diese Zeichenfolgen von den für das Element InvoiceHeader angegebenen Werten abgeleitet sind und dabei ein bestimmter Fehlerprozentsatz zulässig ist. Diese Hypothesen wurden aus den weiter oben auf dieser Seite beschriebenen Gründen abgewertet, daher ist ihre endgültige Quality geringer.
Screenshot der Analyseergebnisse für Seite 5 in ABBYY FlexiLayout Studio. Er zeigt die fünf für das Element InvoiceHeader erzeugten Hypothesen mit ihren Chain Quality-Werten, nachdem alle Static Text-Werte wiederhergestellt wurden.