Kofax Transformation Modules – Formatlokatoren und dynamische reguläre Ausdrücke

Teil 1: Einführung in Formatlokatoren und reguläre Ausdrücke

Viele unserer Kunden setzten Systeme zur automatischen Dokumentenklassifikation und Datenextraktion ein. Diese Dokumenten-Erkennungssysteme ermitteln die Metadaten aus elektronischen Bildern (die gescannten Seiten der zu verarbeitenden Dokumente, Faxe oder eMails) und übergeben die Daten an ein nachgelagertes System (z.B. an eine Postkorbanwendung).

Ein Hauptbestandteil dieser Werkzeuge ist die sogenannte regelbasierte Freiformerkennung. Dahinter verbirgt sich eine Suche nach bestimmten Werten (z.B. einer Versicherungsnummer), die unabhängig vom Layout eines Dokuments funktioniert.

Das Basisprinzip dieser regelbasierten Freiformerkennung ist folgendes:

Jeder gesuchte Wert besitzt einen bestimmten syntaktischen Aufbau, so könnte die Versicherungsnummer einer Versicherung immer den folgenden Aufbau besitzen: JJJJ/1234567890 (vierstellige Jahreszahl / max, 10-stellige Nummer). Beispiele wären: 2012/45 oder 2011/47123.

Diese Versicherungsnummer kann nun irgendwo auf einem Dokument vorhanden sein. Allerdings steht diese Nummer meist nicht im ‚luftleeren’ Raum, da auch der Kunde oder Sachbearbeiter diese Zeichenfolge als Versicherungsnummer erkennen muss. Daher findet man in der Regel ‚in der Nähe’ der Versicherungsnummer ein Wort wie z.B. Versicherungsnummer, Vers.Nr., VSNR, Vertragsnummer, … Somit besteht zwischen der Nummer und dem bezeichnenden Text eine geographische Beziehung. Der beschreibende Text kann links, rechts, oberhalb oder unterhalb der Nummer angedruckt sein. Darüberhinaus kann auch die Distanz zwischen Text und Nummer als ein Attribut für die Erkennung genutzt werden.

Eines der von der codecentric eingesetzen Erkennungssysteme ist das Produkt ‚Kofax Transformation Modules’ (KTM), welches als Modul innerhalb der Scan-Erfassungslösung Kofax Capture (siehe Blog von Stefan Blank) genutzt werden kann.

KTM nutzt zur Erkennung von Werten sogenannte Formatlokatoren. In einem solchen Lokator werden der oben dargestellte Aufbau eines Wertes (Versicherungsnummer), der kennzeichnende Text (Versicherungsnummer, VSNR, …) sowie deren geographischer Zusammenhang definiert.

Hier der Ausschnitt eines Beispieldokuments mit einer Versicherungsnummer:

Ein Formatlokator zur Erkennung der Versicherungsnummer könnte also folgendermaßen definiert werden (Screenshots aus dem KTM Project Builder):

Hier sieht man einen sogenannten regulären Ausdruck, der den allgemeinen Aufbau der Versicherungsnummer beschreibt: 20d{2}/d{1,10}

Jahreszahl (vierstellig) / 1- bis 10-stellige Nummer: 2011/47123

Genau dies beschreibt der reguläre Ausdruck:

  • 20 steht für die ersten beiden Ziffern der Jahreszahl.
  • d{2} steht für genau 2 Ziffern
  • / steht für das Zeichen /
  • d{1,10} steht für eine 1- bis maximal 10-stellige Zahl

Der Ausdruck 20d{2}/d{1,10} findet also alle passenden Zeichenketten irgendwo auf dem Dokument. Das könnten neben der Versicherungsnummer jedoch auch irgendwelche anderen Zeichenketten sein, die dieser Beschreibung genügen (Telefonnummern, Bankverbindungen, …)

Damit nun aber nur die gewünschte Versicherungsnummer gefunden wird und die irrtümlich gefundenen Fundstellen verworfen werden, muss im Formatlokator noch der/die kennzeichnende(n) Begriff(e) definiert werden:

Der Eintrag:

bedeutet z.B., dass westlich (links) von der gefundenen Nummer der Begriff ‚Vers.Nr.’ ‚ziemlich nahe’ stehen muss. Falls der Begriff dort gefunden wird, erhält dieser Kandidat 100 Punkte :-). Hier kann man nun alle Begriffe aufführen, die eine Versicherungsnummer kennzeichnen könnten.

Durch die Kombination des regulären Ausdrucks mit den kennzeichnenden Begriffen lassen sich nun auf allen Dokumenten – unabhängig von deren Position auf dem Blatt – automatisch die Versicherungsnummern auslesen und unpassende Kandidaten verwerfen. Gewinner ist jeweils der Kandidat mit dem höchsten Punktestand.

Im KTM Project Builder lässt sich das direkt mit dem Testknopf überprüfen:

In realen Anschreiben der Kunden an Versicherungen wird die Versicherungsnummer oft in den verschiedensten Schreibweisen notiert. Statt 2011/47123 finden man dann Varianten wie beispielsweise 2011-47123, 2011 47123 oder auch 201147123.
Um auch diese Fälle mit dem Formatlokator zu finden, wird man in der Praxis den regulären Ausdruck entsprechend ergänzen bzw. abändern.

Der folgende reguläre Ausdruck findet zum Beispiel alle der oben aufgeführten Varianten:
20d{2}.?d{1,10}

Der Punkt in der Mitte des Ausdrucks steht für ein beliebiges Zeichen. Das nachfolgende Fragezeichen definiert das vorstehende Zeichen als optional. Damit lassen sich zum Beispiel die folgenden Schreibweisen der Versicherungsnummer auslesen:

2011/47123
2011-47123
2011 47123
201147123

In Kundenprojekten wird der gefundene Versicherungsnummernkandidat anschließend gegen den Vetragsbestand der Versicherung geprüft. Falls die Versicherungsnummer dort existiert, wird die Nummer mit dem Dokument (und eventuell weiteren ausgelesenen Daten) direkt an die zuständige Bearbeitungsstelle bzw. Anwendung weitergeleitet.

War die Bestandsprüfung nicht erfolgreich (oder wurde keine Versicherungsnummer gefunden) muss das Dokument manuell nachbearbeitet werden. Für diese manuelle Korrektur oder Ergänzung der Metadaten stellt KTM ein in Kofax Capture eingebundenes Validierungsmodul zur Verfügung.

 

Bis vor kurzem dachte ich, dass durch den Einsatz der oben beschriebenen Formatlokatoren und den darin definierten regulären Ausdrücken alle Metadaten (oder zumindest Kandidaten) eines maschinengeschriebenen Dokuments mit KTM ausgelesen werden könnten. Bei einem Erkennungsprojekt, das wir für einen Scan-Dienstleister im Finanzdienstleistungsbereich durchführten, stießen wir auf die Herausforderung ein Erkennungsprojekt mandantenfähig aufsetzen zu müssen. In diesem Zusammenhang mussten Dokumenttypen verarbeitet werden, bei denen die beschriebenen ‘statischen’ Formatlokatoren nicht zum Ziel führten. Wir benötigten Formatlokatoren, deren reguläre Ausdrücke während der Laufzeit (abhängig von mandantenspezifischen Rahmendaten) modifiziert werden konnten. Dank der in KTM enthaltenen VB-ähnlichen Skriptsprache und Kenntnissen des KTM-Objektmodels konnten wir dies realisieren.

In dem bald folgenden zweiten Teil dieser Blog-Reihe wird gezeigt, wie man den regulären Ausdruck eines Formatlokators durch die KTM-eigene Skriptingsprache dynamisch während der Laufzeit ändern kann.

Neu: Artikel über Dokumentenklassifizierung mit KTM

Neu: KTM im Versicherungseinsatz: Heller, grauer und dunkler Posteingang

  • Facebook
  • Delicious
  • Digg
  • StumbleUpon
  • Reddit
  • Blogger
  • LinkedIn
Jürgen Voss

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>