Anleitung: automatische Klassifizierung von gescannten Dokumenten

  • Hallo zusammen,


    damit man möglichst wenig Arbeit und gleichzeitig den maximalen Nutzen mit gescannter Eingangskorrespondenz hat, sollte diese möglichst automatisch klassifiziert werden. Im Idealfall kann man dann den Absender sofort nach dem Eintreffen in der Listenansicht erkennen, so wie bei einer E-Mail. Darauf aufbauend kann man dann die Dokumente mit weiteren Regeln automatisch bestimmten Benutzern zuweisen, den Betreff in etwas aussagekräftiges abändern usw.


    Bei Firmenkorrespondenz gibt es i.d.R. zwei Merkmale, die einen eindeutigen Bezug zu einem Kontakt ermöglichen: Die USt-IdNr. und die Registernummer. Beides ist eindeutig und ermöglicht aufgrund der festgelegten Schreibweise eine relativ leichte, automatische Erkennung. Wenn man also dem GH beibringt, diese beiden Merkmale möglichst fehlerfrei zu erkennen, so ist eine automatische Klassifizierung für einen Großteil von Firmenkorrespondenz möglich, die diese beide Merkmale als Pflichtangabe auf Ihrem Geschäftspapier haben.


    Damit die automatische Klassifizierung auch klappt, sind 4 Voraussetzungen zu erfüllen:

    • Das gescannte Dokument muss per OCR möglichst fehlerfrei in durchsuchbaren Text umgewandelt werden
    • Es müssen entsprechende Benutzerdefinierte Felder angelegt werden in denen man Reguläre Ausdrücke hinterlegt, die den jeweiligen Eintrag finden und extrahieren können
    • In den Kontakten müssen die jeweiligen Daten hinterlegt sein
    • Der GH muss per Regel angewiesen werden eingehende Dokumente automatisch zu klassifizieren.

    Schritt 1: Jedem der seine Briefpost im GH ablegen will sei dringend die einmalige Investition von etwa 90 EUR in die TOCR nahe gelegt. Die Ergebnisse sind um ein vielfaches besser als die Standard GH-OCR. Das schafft eine optimale Grundvoraussetzung für das Funktionieren der Erkennung. Details dazu kann man in diesem Beitrag nachlesen: Dokumentenmanagement - Wie geht das?


    Schritt 2: In GH lassen sich Benutzerdefinierte Felder anlegen. Damit kann man dem GH auch Datenfelder beibringen, die er von Haus aus nicht kennt. Der folgende Screenshot zeigt, wie man mit "Einstellungen -> Benutzerdefinierte Felder -> neues Feld erstellen" einfach ein neues Feld "USt-IdNr." anlegt:




    Nachdem man den Namen, die Beschreibung und die Verfügbarkeit wie oben angegeben ausgewählt hat, wechselt man zum Reiter "Automatische Klassifizierung/Zuordnung" und trägt dort bei "Regulärer Ausdruck" folgenden Ausdruck ein: " (DE)\s*([0-9]+)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*) ". Bei Ergebnisformatierung hinterlegt man "$1$2$3$4$5". (Beides ohne Anführungszeichen.)





    Ohne auf technische Details einzugehen sei gesagt: Der "Reguläre Ausdruck" findet die USt-IdNr. (auch wenn diese Leerzeichen enthält), und die "Ergebnisformatierung" setzt eine möglicherweise durch Leerzeichen getrennte Schreibweise zu einem lückenlosen Eintrag zusammen.


    Bei der Registernummer geht man genauso vor. Dort hinterlegt man "(HRA|HRB)\s*([0-9]+)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)" und "$1$2$3$4$5".



    Schritt 3: Nun hinterlegt man einfach noch die USt-IDNr. und die Registernummer in seinen Kontakten. Dabei sollte man unbedingt auf eine einheitliche Schreibweise achten! Die o.g. Regulären Ausdrücke liefern ein Ergebnis ohne Leerzeichen. Damit der entsprechende Kontakt gefunden wird, sollte man die Daten auch ohne Leerzeichen hinterlegen. Folgender Screenshot zeigt als Beispiel die nötigen Daten um ein Schreiben von E-Plus zuverlässig zu erkennen:




    Schritt 4: Zuletzt legt man eine Regel wie folgt an:




    Die Regel sorgt dafür, dass bei Briefen und Faxen der Absender automatisch anhand des klassifizierten Kontaktes geändert wird, Bei E-Mails jedoch nicht.


    Lieben Gruß

  • Respekt! Was gleich wieder meine Frage hervorholt: wie klassifiziere ich Nachts alle Elemente die noch nicht klassifiziert wurden ohne das es am Morgen danach Probleme gibt (da sind keine neuen Mails mehr angekommen) und ich habs auch nicht noch mal probiert...

  • Super, danke. Man könnte ja, um falsche Zuweisungen auszuschliessen, verschiedene Adressdaten in Kombination prüfen (in einem Brief kann ja durchaus auch mal eine andere Mailadresse als die des Absenders stehen).


    Solange noch mal die Frage in Richtung Sascha: Habt Ihr außer den beiden o.g. weitere benutzerdefinierte Felder (wir hatten z.B. an Kontonummer gedacht) angelegt oder wie macht ihr das?

  • Hi Dirk,


    wir nutzen derzeit keine weiteren Felder weil der Aufwand nicht lohnt und die Erkennungrate bei uns bei deutlich über 90% liegt. Bei unserem Aufkommen an Post reicht das. Stattdessen haben wir in der Klassifizierungsregel Ausnahmeabfragen für regelmäßige Absender drin. Also so etwas wie "wenn Element nicht klassifiziert werden konnte dann suche nach bestimmten Zeichenfolgen". Da eBay beispielsweise keine DE-USt-IdNr. hat sondern eine luxemburgische, suchen wir einfach ganz trivial nach dieser.


    Theoretisch wäre noch die IBAN zu gebrauchen, aber diese ist aufgrund einer Beschränkung in den RegEx derzeit leider nicht 100%ig in Verbindung mit der USt-IdSt. zu erkennen. Die Kontonummer eignet sich nur bedingt für eine Klassifizierung, da diese mangels einheitlicher Schreibweise schwer zu erkennen ist. Aber wenn jemand eine ausgeklügelte RegEx dafür entwickelt - immer her damit :-)


    Das gleiche gilt für die Telefon- und Faxnummer, wobei diese nicht ganz so schwer ist zu erkennen. Aber wie du ja schon angemerkt hattest, lassen sich diese Datenfelder derzeit eh noch nicht in die Klassifizierung einbinden. Die Mailadresse sollte aber wenn es nach mir geht auf jeden Fall irgendwann mal vom GH klassifizierbar werden, da sie leicht zu erkennen ist. Das hatte ich auch schon mit Oliver auf der Cebit kurz angesprochen.


    Wer es ganz auf die Spitze treiben möchte kann natürlich noch mögliche Treffer für Telefonnummer mit externen Datenbanken gegenchecken.


    Für die Korrespondenz mit den eigenen Kunden eigenen sich natürlich alle Nummern die man den Kunden bittet in der Korrespondenz anzugeben, also Kundennummer, RMA-Nummern usw.


    Lieben Gruß

  • Hi Sascha,
    danke für die Infos, wir probieren es jetzt mal mit der Kontonummer.


    Diese Regex funktioniert ganz gut:
    (?i)ko?n?to\s*\.?\s*-?\s*(?i)(n(umme)?(r|o))?\s*\.?:?\s*([0-9]+)\s*([0-9]*)\s*([0-9]*)


    Der Smiley ist durch "Fragezeichen gefolgt von öffnender runder Klammer" zu ersetzen ;)


    Index (Enthält nur die Nummer ohne Leerzeichen):
    $4$5$6


    Getestet mit diesen Strings:
    kontonummer: 0123456987
    kOntonuMMer 0123456987
    Konto-Nummer: 000 325 164
    Konto: 012125465
    Kto-Nr.:012354689 333 1123
    Konto-Nr 01234566
    Kto-Nr: 1233
    kto - nr : 123456
    kto-Nr. 123456
    kontonummer : 2 333 456
    kto. - no: 123 456 789

  • Hey Jungs,


    danke für die tollen Anleitungen und regulären Ausdrücke - ab heute laufen endlich alle Belege - egal ob über den Scanner oder PDFmailer in GREYHOUND ein und werden direkt nach USt-IdNr., Steuernummer oder Kontonummer automatisch klassifiziert.


    Ich denke, so habe ich jetzt eine Erfolgsquote von fast 100% :thumbsup:
    Das rockt!!!

  • Da ich mir hier schon reichlich bedient habe, möchte ich nun auch was beisteuern:


    Wir haben den ein oder anderen englischsprachigen Lieferanten. Und um bei denen eine automatische Klassifizierung anhand der Kontonummer durchführen zu können, haben wir den Regex mal folgendermaßen modifiziert:


    Code
    1. (?i)((ko?n?to)|(account))\s*\.?\s*-?\s*(?i)(n(umme|umbe)?(r|o))?\s*\.?:?\s*([0-9]+)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)
    2. $7$8$9$10


    Damit wird dann statt "Kontonummer" etc. auch "account number" etc. gefunden.