Document Splitting

Klassifikation von Dokumenten und Dokumententrennung durch KI

Elizaveta Ezhergina

Eines der häufig übersehenen und wirklich schwierigen Probleme bei der Dokumentenautomatisierung, das auch im täglichen Betrieb wirklich nervig ist, ist die automatische Trennung eines Stapels von Dokumenten in einzelne sinnvolle Dokumente und deren Zuweisung zu einer Dokumentenklasse. Bei traditionellen Scanning-Prozessen wird dies oft durch die manuelle Vorbereitung des Papiers und das Anbringen eines Barcodes als Dokumententrenner auf jeder ersten Seite erreicht. Doch dies ist arbeitsintensiv und fehleranfällig. Zudem haben wir, da wir immer mehr digital werden, selbst bei papierbasierten Prozessen normalerweise keinen Zugriff mehr auf das Papier. Das Ziel wäre also, einfach den gesamten Stapel zu scannen und ihn durch einen intelligenten Algorithmus zu trennen.

Zum Glück ist dies heute bereits verfügbar, beispielsweise aus dem Konfuzio-Technologie-Stack als integriertes Feature. Das heißt jedoch nicht, dass es einfach ist. Es erfordert ziemlich viel Erfahrung und Infrastruktur, um mehrere voneinander abhängige Schritte der Klassifizierung und Trennung auf stabile und zuverlässige Weise zu verwalten. Genau das bietet Konfuzio jedoch von Haus aus.

Wie funktioniert die Dokumentenstrukturierung im Prinzip? Nun, genau auf die gleiche Weise (unser Credo!), wie es ein Mensch tun würde. Gehe Seite für Seite durch den Stapel, bestimme, um welche Seitentyp es sich handelt, ob sie mit der vorherigen Seite zusammenhängt oder ob ein neues Thema/Formular beginnt. Überprüfe dann die Seitenzahlen auf Sicherheit, sofern sie vorhanden sind. Im Zweifelsfall gehe einen oder mehrere Seiten zurück, um nachzusehen, und treffe dann deine Entscheidung zur Trennung.

Dokumententrennung

Split file into documents

Bei der AI-Klassifikation ist dies in eine Sequenz von Algorithmen integriert. Das System ist auf einer Probe trainiert, die bereits korrekt getrennt ist. Konfuzio lernt für jede Seite, ob es sich um eine erste, mittlere oder letzte oder eine einzelne Seite handelt. Der Benutzer muss dies nicht explizit angeben, da die Konfuzio-KI dies automatisch aus den Proben herausfindet und diese Komplexität für die Benutzer verbirgt. Die Schulungsschnittstelle erfordert lediglich, dass die einzelnen Dokumente in den Schulungssatz fallen gelassen werden. Es ist nicht erforderlich, eine genaue Anzahl von Seiten (Bereich) für jeden Dokumententyp zu haben. Konfuzio berücksichtigt automatisch, dass diese für jeden Dokumententyp variieren können. Wenn du jedoch weißt, dass du auch erlaubte Seiten beschränken kannst, beispielsweise für einseitige Formulare, die immer eine Seite haben.

Konfuzio wird dann die Struktur lernen und sie während der Laufzeit auf den gesamten Stapel ungetrennter Einzelseiten an

Dokumentaufteilung – Eine detaillierte Anleitung zum Trainieren einer KI

Dokumentenautomatisierung kann oft ein mühsamer und fehleranfälliger Prozess sein, besonders wenn es darum geht, einen Stapel von Dokumenten automatisch in einzelne Dokumente aufzuteilen und einer Dokumentklasse zuzuweisen. Traditionell wird dies bei Scanprozessen durch manuelle Vorbereitung des Papiers und Anbringen eines Barcodes als Trenner auf jeder ersten Seite erreicht. Das ist jedoch zeitaufwendig und fehleranfällig. Darüber hinaus haben Verarbeitungseinrichtungen in der Regel auch bei papierbasierten Prozessen keinen Zugriff mehr auf das Papier. Das Ziel ist daher, den gesamten Stapel einfach zu scannen und durch einen intelligenten Algorithmus aufteilen zu lassen.

Glücklicherweise ist dies heute mit der Konfuzio-Technologie möglich. Die Konfuzio-SDK bietet eine vorgefertigte Klasse namens SplittingAI und eine Instanz eines trainierten ContextAwareFileSplittingModel, welches eine kontextsensitive Logik verwendet. Kontextsensibel bedeutet in diesem Fall ein regelbasiertes Vorgehen, welches nach gemeinsamen Strings zwischen den ersten Seiten aller Dokumente einer Kategorie sucht. Bei der Vorhersage, ob eine Seite ein potenzieller Trennpunkt ist (d.h. ob es sich um eine erste Seite handelt), vergleicht der Algorithmus den Inhalt der Seite mit diesen gemeinsamen Strings der ersten Seiten. Wenn mindestens einer dieser Strings auf der Seite vorkommt, wird die Seite als erste Seite markiert, was bedeutet, dass sie ein Trennpunkt ist.

document splitting

In diesem Deep Dive wird erläutert, wie man das Konfuzio-SDK verwenden kann, um ein Modell zu trainieren, das in der Lage ist, Dokumente automatisch in mehrere Dokumente aufzuteilen. Wir werden die Klasse SplittingAI und eine Instanz eines trainierten ContextAwareFileSplittingModels verwenden, um eine Datei automatisch in mehrere Dokumente aufzuteilen.

Dateiaufteilung

Einzelne Dokumente aus einer Datei extrahieren Lassen Sie uns sehen, wie wir das Konfuzio-SDK verwenden können, um eine Datei automatisch in mehrere Dokumente aufzuteilen. Wir verwenden die vorgefertigte Klasse SplittingAI und eine Instanz eines trainierten ContextAwareFileSplittingModels. Letzteres verwendet eine kontextsensitive Logik. Kontextsensibel bedeutet in diesem Fall ein regelbasiertes Vorgehen, welches nach gemeinsamen Strings zwischen den ersten Seiten aller Dokumente einer Kategorie sucht. Bei der Vorhersage, ob eine Seite ein potenzieller Trennpunkt ist (d.h. ob es sich um eine erste Seite handelt), vergleicht der Algorithmus den Inhalt der Seite mit diesen gemeinsamen Strings der ersten Seiten. Wenn mindestens einer dieser Strings auf der Seite vorkommt, wird die Seite als erste Seite markiert, was bedeutet, dass sie ein Trennpunkt ist.

Dieses Tutorial kann auch mit dem MultimodalFileSplittingModel verwendet werden. Der einzige Unterschied bei der Initialisierung besteht darin, dass keine Tokenizer explizit angegeben werden müssen.

Wie man mit dem Konfuzio SDK ein Dokumentaufspaltungs-KI trainiert

Dokumentautomatisierung ist ein wichtiger Bestandteil der heutigen digitalen Arbeitswelt. Dabei ist die automatische Trennung von Dokumentenstapeln in einzelne sinnvolle Dokumente und deren Zuordnung zu einer Dokumentklasse eine oft übersehene und schwierige Aufgabe, die bei der täglichen Verarbeitung von Dokumenten oft sehr lästig sein kann. Im traditionellen Scanprozess wird dies oft durch die manuelle Vorbereitung des Papiers und das Anbringen eines Barcodes als Dokumenttrenner auf jeder ersten Seite erreicht. Das ist jedoch zeitaufwendig und fehleranfällig. Mit der zunehmenden Digitalisierung haben Verarbeitungseinrichtungen oft keinen Zugang mehr zum Papier. Das Ziel wäre es also, einfach den gesamten Stapel zu scannen und durch einen intelligenten Algorithmus automatisch zu trennen.

Konfuzio bietet eine Lösung für dieses Problem durch das Python Konfuzio SDK an. Das Konfuzio SDK bietet eine vortrainierte Klasse, die als SplittingAI bezeichnet wird und eine Instanz eines trainierten ContextAwareFileSplittingModel verwendet. Dieses verwendet eine kontextbewusste Logik, die nach gemeinsamen Zeichenfolgen zwischen den ersten Seiten aller Dokumente einer Kategorie sucht, um zu entscheiden, ob eine Seite ein potenzieller Trennpunkt ist oder nicht. Wenn mindestens eine solche Zeichenfolge vorhanden ist, markieren wir die Seite als erste (was bedeutet, dass es sich um einen Trennpunkt handelt).

In diesem Tutorial lernen Sie, wie Sie mit dem Konfuzio SDK ein ContextAwareFileSplittingModel trainieren und verwenden können, um Dokumente automatisch aufzuteilen.

Schritt 1: Einrichten des Konfuzio-Projekts und Erstellen des Testdokuments

Als erstes müssen Sie ein Konfuzio-Projekt einrichten und ein Testdokument auswählen. Sie können dies tun, indem Sie die Konfuzio SDK-Bibliothek in Python importieren und das Konfuzio-Objekt initialisieren:

from konfuzio_sdk.data import Page, Category, Project
from konfuzio_sdk.trainer.file_splitting import SplittingAI
from konfuzio_sdk.trainer.file_splitting import ContextAwareFileSplittingModel
from konfuzio_sdk.trainer.information_extraction import load_model
from konfuzio_sdk.tokenizer.regex import ConnectedTextTokenizer
# Initialisieren Sie ein Projekt und rufen Sie ein Testdokument Ihrer Wahl ab
project = Project(id_=IHR_PROJEKT_ID)
test_document = project.get_document_by_id(IHRE_DOKUMENTEN_ID)

Schritt 2: Initialisieren und Anpassen des ContextAwareFileSplittingModel

Als nächstes müssen Sie das ContextAwareFileSplittingModel initialisieren und anpassen. Dazu müssen Sie die Kategorien und den Tokenizer für das Modell angeben. Der Tokenizer wird verwendet, um die Texte in das Modell zu laden und sie in Sätze aufzuteilen.

file_splitting_model = ContextAwareFileSplittingModel(categories=project.categories, tokenizer=ConnectedTextTokenizer())

In diesem Beispiel verwenden wir einen ConnectedTextTokenizer, der den Text in Sätze aufteilt und anschließend in Wörter unterteilt. Andere Tokenizer, wie z.B. ein Standard-Tokenizer, können ebenfalls verwendet werden. Der ConnectedTextTokenizer wurde jedoch speziell für die Verarbeitung von zusammenhängenden Texten entwickelt und kann daher bei der Identifizierung von trennbaren Stellen im Dokument hilfreich sein.

Zunächst müssen wir ein Projekt initialisieren und ein Testdokument auswählen. Wir gehen davon aus, dass das Konfuzio SDK bereits installiert ist und dass wir Zugriff auf ein laufendes Konfuzio-System haben.

from konfuzio_sdk.data import Page, Category, Project
from konfuzio_sdk.trainer.file_splitting import ContextAwareFileSplittingModel
from konfuzio_sdk.tokenizer.regex import ConnectedTextTokenizer
# initialize a Project and fetch a test Document of your choice
project = Project(id_=YOUR_PROJECT_ID)
test_document = project.get_document_by_id(YOUR_DOCUMENT_ID)

Anschließend initialisieren wir eine Instanz des ContextAwareFileSplittingModel und passen es an unsere Projekt-Kategorien an. Wir müssen auch den verwendeten Tokenizer angeben. In diesem Fall verwenden wir den ConnectedTextTokenizer.

# initialize a Context Aware File Splitting Model and fit it
file_splitting_model = ContextAwareFileSplittingModel(categories=project.categories, tokenizer=ConnectedTextTokenizer())
# fit the model
file_splitting_model.fit(allow_empty_categories=True)

Nun können wir das trainierte Modell verwenden, um ein Eingabedokument in mehrere Dokumente aufzuteilen. Wir gehen davon aus, dass wir ein Dokument haben, das aus mehreren Unterlagen besteht und daher getrennt werden muss.

# run the prediction with the Context Aware File Splitting Model
new_documents = []
current_document = None
for page in test_document.pages():
    pred = file_splitting_model.predict(page)
    if pred.is_first_page:
        # create a new Document when a first Page is found
        if current_document is not None:
            new_documents.append(current_document)
        current_document = project.create_document(category_id=YOUR_CATEGORY_ID)
        current_document.add_page(page)
    else:
        # add the Page to the current Document
        current_document.add_page(page)
# add the last Document to the list
new_documents.append(current_document)

Die Variable new_documents enthält nun eine Liste von separaten Dokumenten, die aus dem ursprünglichen Eingabedokument extrahiert wurden.

Validierung durch Human-in-the-Loop UI

Die Verarbeitung von Dokumenten ist eine wichtige Komponente in verschiedenen Branchen, z. B. im Bank-, Versicherungs- und Rechtswesen. Der Prozess des Scannens und Ablegens mehrerer Dokumente kann zeitaufwändig sein, und oft besteht der Bedarf an einer automatisierten Lösung, die diese Dokumente aufteilen und organisieren kann. Automatisierte Lösungen sind jedoch nicht immer perfekt und können wichtige Details übersehen oder einen Dokumententyp falsch identifizieren. An dieser Stelle kommt eine Schnittstelle zum Menschen ins Spiel, die Document Validation UI (DV UI).

split document

DV UI ist ein Tool, das es Menschen ermöglicht, mit einem automatisierten Dokumentenverarbeitungssystem zu interagieren, um dessen Ausgabe zu validieren und zu korrigieren. Die DV UI bietet eine Schnittstelle für Benutzer, um die automatische Aufteilung von Dokumenten und die Dateiorganisation zu überprüfen und zu verifizieren und gegebenenfalls Korrekturen vorzunehmen. Der Benutzer kann das KI-System auch darauf trainieren, neue Dokumenttypen zu erkennen, um die Genauigkeit künftiger Aufteilungen und Organisation zu gewährleisten.

Die Verwendung von DV UI zur Feinabstimmung der KI, die Scans und Dateien automatisch aufteilt, kann die Genauigkeit und Effizienz der Dokumentenverarbeitung erheblich verbessern. Das KI-System kann aus den Korrekturen des Benutzers lernen und seine Algorithmen aktualisieren, um Dokumenttypen besser zu erkennen und sie entsprechend aufzuteilen. Je mehr Daten das KI-System vom Benutzer erhält, desto genauer wird es, so dass im Laufe der Zeit weniger manuelle Eingriffe erforderlich sind.

categorize and rename document

Darüber hinaus können Unternehmen durch den Einsatz von DV UI bei der Dokumentenverarbeitung Zeit und Geld sparen, da das System mehr Dokumente in kürzerer Zeit mit weniger Fehlern bearbeiten kann. Das bedeutet, dass die Unternehmen ihre Ressourcen auf andere wichtige Aufgaben konzentrieren können, z. B. auf die Analyse der aus den verarbeiteten Dokumenten extrahierten Daten, anstatt sie manuell zu organisieren und aufzuteilen.

Zusammenfassend lässt sich sagen, dass DV UI ein unverzichtbares Werkzeug zur Feinabstimmung der KI ist, die Scans und Dateien mit mehreren Dokumenten automatisch aufteilt. Sein Einsatz kann die Genauigkeit und Effizienz der Dokumentenverarbeitung erheblich verbessern, den Bedarf an manuellen Eingriffen verringern und es Unternehmen ermöglichen, sich auf andere wichtige Aufgaben zu konzentrieren.

Fazit Dokumententrennung und Dokumenten Klassifikation

In diesem Beispiel haben wir gezeigt, wie man das Konfuzio SDK verwenden kann, um ein trainiertes Modell zum Aufteilen eines Eingabedokuments in mehrere separate Dokumente zu verwenden. Die automatische Dokumentenaufteilung ist besonders nützlich für die Verarbeitung von Stapeln von Papierdokumenten oder PDF-Dateien, die mehrere separate Dokumente enthalten. Mit dem Konfuzio SDK können Entwickler schnell und einfach eigene Modelle trainieren und auf neue Dokumente anwenden.

Register or visit our technical documentation to learn more

    🐍✨Auf der Suche nach einer neuen Herausforderung?

    Tritt dem AI Comedy Club bei! Tauche ein in eine Welt, in der sich KI und Humor treffen, und nutze diese Bühne für deine Fähigkeiten. Ob aufstrebender Youngster oder erfahrener Entwickler, hier hast du die Chance, dein Python-Können auf eine lustige und innovative Art zu zeigen. Entdecke außerdem Möglichkeiten, einen Beitrag zu leisten und dich sogar für einen Job bei uns zu bewerben.

    Bereit zum Coden, Lachen und Beeindrucken?

    Sieh dir unsere AI Comedy Club Challenge an und finde heraus, wohin dich dein Humor und deine Python-Skills führen können!

    Apply for data scientist, 
backend developer, 
data engineer, 
software developer, 
python software developer jobs.

    Über mich

    #!trpst#trp-gettext data-trpgettextoriginal=2478#!trpen#Más artículos interesantes#!trpst#/trp-gettext#!trpen#

    Gehaltsnachweise digitalisieren dank unserer KI

    Document AI in Finance

    Kaum eine Branche profitiert so sehr von Künstlicher Intelligenz wie das Finanzwesen. Document AI in Finance ist daher ein echter...

    #!trpst#trp-gettext data-trpgettextoriginal=2470#!trpen#Leer el artículo#!trpst#/trp-gettext#!trpen#
    Charlotte Götz

    Hallo, ich bin Charlotte Götz 😊

    Die jahrelange Leidenschaft für das Schreiben war ausschlaggebend dafür, den berühmt-berüchtigten Weg „vom Hobby zum Beruf“ zu beschreiten. Ich bin...

    #!trpst#trp-gettext data-trpgettextoriginal=2470#!trpen#Leer el artículo#!trpst#/trp-gettext#!trpen#
    enterprise automation titel

    Enterprise Automation – Zukunft der Unternehmensentwicklung

    Unternehmen stehen zunehmend vor der Herausforderung, ihre Betriebsabläufe zu optimieren, um wettbewerbsfähig zu bleiben.  Hier setzt die Enterprise Automation an,...

    #!trpst#trp-gettext data-trpgettextoriginal=2470#!trpen#Leer el artículo#!trpst#/trp-gettext#!trpen#
    Arrow-up