Kofax Transformation Modules (KTM) – Suche per Skript in Wörterbüchern

Keine Kommentare

Neben Fuzzy-Datenbanken bieten Kofax Transformation Modules (KTM) auch sogenannte Wörterbücher zur Optimierung der Erkennung an. Diese Wörterbücher können in den regulären Ausdrücken eines Formatlokators genutzt werden, um zum Beispiel neben einem Datum der Form „01.12.2015“ auch solche der Form „01. Dezember 2015“ zu finden. Das Wörterbuch würde dann alle Monatsnamen enthalten (Januar, Februar, …).

In den KTM-Fuzzy-Datenbanken kann per Skriptsprache gesucht werden. Dazu gibt es auch Beispielprogramme von KOFAX (z.B. in der Skripting-Hilfe von KTM oder hier: „Best Practices“). Entsprechende Beispiele für die Suche in KTM-Wörterbüchern gibt es meines Wissens nach aber nicht. In einem Projekt zur Erkennung von deutschen KFZ-Kennzeichen musste ich die Suche in einem Wörterbuch allerdings per Skript durchführen. Hier möchte ich kurz die Gründe dafür erläutern und ein Beispielskript vorstellen.

Zur Erkennung der KFZ-Kennzeichen reicht normalerweise ein regulärer Ausdruck der Form:

[A-ZÄÖÜ]{1,3}\x20?[\.|\x20|-]\x20?[A-Z]{1,2}[\.|\x20|-]?[0-9]{1,4}

Allerdings liefert dieser auch manchmal „Nicht-KFZ“-Zeichenketten, da vorne ja nur ein bis drei Buchstaben gesucht werden. Schön wäre es, wenn man am Beginn des regulären Ausdrucks statt [A-ZÄÖÜ]{1,3} eine Liste der gültigen Städtekürzel für deutsche Nummernschilder angeben könnte. Damit würde der Kreis falsch erkannter Kennzeichen schon um einiges kleiner. Natürlich kommen einem da sofort die KTM-Wörterbücher in den Sinn. Im Internet finden sich schnell Listen mit diesen Städtekürzeln, und so ist eine enstprechende Wörterbuchdatei (KFZ-Staedte) schnell erstellt:

AIC
AK
AM
AN
ANA

AP
AS
ASL
ASZ
AUR
:
:

Der folgende Formatlokator:

Formatlokator KTM Wörterbücher

liefert dann auch das richtige Ergebnis:

Ergebnisse des Tests im Formatlokator KTM Wörterbücher

Beim Test eines weiteren Dokuments kam dann aber schnell Ernüchterung auf – Nichts erkannt:

Formatlokator KTM Wörterbücher wirft kein Ergebnis aus

Hier zeigt sich eine Schwäche bei der Einbindung von Wörterbüchern in reguläre Ausdrücke: es funktioniert nur, wenn der Wörterbuchstring durch ein Leerzeichen, Tab, … vom Rest des regulären Ausdrucks getrennt ist.

Dies ist beim ersten Beispiel der Fall: „COE – EW 247“. Das zweite Beispiel „COE.EW.247“ hat Punkte als Trenner zwischen den einzelnen Teilen des Kennzeichens, und die Einbindung des Wörterbuchs funktioniert nicht wie gewünscht.

Auf die optimierte Erkennung der Städtekürzel wollte ich aber nicht verzichten. Dazu benutze ich zunächst wieder den „originalen“ regulären Ausdruck:

[A-ZÄÖÜ]{1,3}\x20?[\.|\x20|-]\x20?[A-Z]{1,2}[\.|\x20|-]?[0-9]{1,4}

und habe dann das gefundene Städtekürzel per Skript gegen das Wörterbuch „KFZ-Staedte“ geprüft. Bei positiver Prüfung wird nun das KFZ-Kennzeichen übernommen, andernfalls verworfen.

Hier nun ein Beispielskript, das zeigt, wie in einem KTM-Wörterbuch gesucht werden kann:

Function ExistiertStadtAusAMKZ(kennzeichen) As Boolean

   'Es wird das folgende Format für das Kennzeichen erwartet: COE.EW.247

   Dim DictResItems As CscDictionaryResItems
   Dim Dict As CscDictionary
   Dim strData As String
   Dim strReplaceVal As String
   Dim QueryText As String
   Dim pos As Integer

   ExistiertStadtAusAMKZ=False
   pos=InStr(kennzeichen,".")

   If pos>0 Then
      QueryText=Left(kennzeichen,pos-1) 'Stadtkürzel
      Set Dict = Project.Dictionaries.ItemByName("KFZ-Staedte")
      Set DictResItems=Dict.Search(QueryText,CscEvalMatchQuery,5)
      If DictResItems.Count>0 Then
         'strData enthält das gefundene Kürzel
         'strReplaceVal den optionalen Ersetzungswert aus dem Wörterbuch
         Dict.GetRecordData(DictResItems(0).RecID,strData,strReplaceVal)
         ExistiertStadtAusAMKZ=True 'da etwas gefunden wurde
      Else
         'nichts gefunden
         ExistiertStadtAusAMKZ=False
      End If
   End If

End Function
Jürgen Voss

Jürgen Voss unterstützt unsere Kunden bei der Erfassung von Eingangsdokumenten, deren Klassifikation samt Datenextraktion und anschließendem Starten der Geschäftsprozesse.

Die erfassten Dokumente werden dabei in Dokumentenmanagement-systemen wie CenterDevice oder Archivsystemen sicher abgelegt. Dazu zählt auch die E-Mail-Archivierung und die Ablage über die SAP-Archivierungsschnittstelle ArchiveLink.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

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