Document AI-Tabellenextraktion: Best Practices

Mit Document AI können Sie Informationen aus Entitäten in Form eines einzelnen Wertes oder einer Liste von Werten extrahieren, oder aus Tabellen, die auf einer Liste mit bestimmten Spalten basieren. Weitere Informationen zum Arbeiten mit der Tabellenextraktion auf der Document AI-Oberfläche finden Sie unter Werte für einen Document AI-Modell-Build definieren.

Dieses Thema enthält Best Practices für das Arbeiten mit der Tabellenextraktion in Document AI.

Einen Modell-Build sowohl für die Entitäts- als auch für die Tabellenextraktion verwenden

Um sowohl Entitäts- als auch Tabellenwerte zu extrahieren, verwenden Sie den Verarbeitungstyp der Tabellenextraktion beim Erstellen eines Modell-Builds. Definieren Sie Werte für alle Tabellen, und fügen Sie dann eine zusätzliche Tabelle hinzu, um alle Entitäten darin zu gruppieren. Verwenden Sie für Spaltennamen die Namen der extrahierten Entitäten. Beachten Sie, dass unter Umständen ein Training erforderlich ist, um die Ergebnisse zu verbessern.

Einen Modell-Build für einen bestimmten Dokumenttyp verwenden

Jeder Modell-Build muss Dokumente desselben Typs enthalten, und die Daten, die Sie extrahieren möchten, sollten für die meisten Tabellen ähnlich sein. Wenn die Anzahl der Spalten im Quelldokument von Dokument zu Dokument unterschiedlich ist, aber alle Dokumente eine definierte Teilmenge der zu extrahierenden Spalten enthalten und die gemeinsamen Spalten denselben oder einen ähnlichen Namen und Speicherort haben, dann können diese gemeinsamen Spalten extrahiert werden.

Beispiel: Rechnungen können eine unterschiedliche Anzahl von Spalten mit unterschiedlichen Daten aufweisen, wenn aber alle Tabellen die gleichen ersten drei Spalten haben (Item Description, Quantity und Price), können diese Daten extrahiert werden.

Natürliche Sprache zum Definieren von Spaltennamen verwenden

Sie können die Spaltennamen aus dem Dokument kopieren, sodass sie genau gleich sind. Nennen Sie die Spalten z. B. nicht product_code oder REPORT_DATE, sondern geben Sie ihnen stattdessen den Namen Product Code oder Report Date.

Bei der Überprüfung darauf achten, dass die leeren Zeilen korrekt sind

Wenn Sie die vom Modell gelieferten Antworten überprüfen, verwenden Sie für leere Zeilen - in jeder Zelle anstatt None. Zeilen mit None in jeder Zelle werden beim Training vom Modell ignoriert.

Spalten in der gleichen Reihenfolge definieren, wie sie im Dokument erscheinen

Um die Genauigkeit zu verbessern, definieren Sie die Spalten in der gleichen Reihenfolge, wie sie im Dokument erscheinen, d. h. normalerweise von links nach rechts oder von oben nach unten für transponierte Tabellen. Wenn Sie die Reihenfolge anders definieren möchten, ist ggf. ein Training erforderlich.

Bei Spalten, die mehrere Zeilen gruppieren, wie z. B. Invoice Number und Invoice Date, fügen Sie die Spalten jedoch am Anfang hinzu. Beispiel:

  • Invoice Number

  • Invoice Date

  • Item Code

  • Item Name

  • Quantity

Werte mit Groß-/Kleinschreibung aus dem Dokument definieren

Definieren Sie Werte möglichst mit der Groß-/Kleinschreibung aus dem Dokument. Wenn die Groß-/Kleinschreibung im Dokument variiert, verwenden Sie Großschreibung.

Locator-Feld nur verwenden, wenn es erforderlich ist

Das Locator-Feld ist optional. In den meisten Fällen müssen Sie es nicht ausfüllen. Wenn es jedoch mehrere ähnliche Tabellen in einem Dokument gibt, kann es sein, dass das Modell ungenau antwortet. Wenn die Antworten aus einer anderen Quelltabelle als erwartet stammen, versuchen Sie, das Locator-Feld zu verwenden. Fügen Sie Informationen hinzu, die dem Modell dabei helfen, die richtige Tabelle zu identifizieren, z. B. den Tabellentitel oder die Tabellennummer.

Abschnittsspalte hinzufügen, um das Layout der Tabelle zu beschreiben

Wenn die Tabelle in mehrere benannte Abschnitte unterteilt ist, fügen Sie eine Abschnittsspalte hinzu. Dies hilft dem Modell, das Layout besser zu verstehen und die Genauigkeit zu verbessern. Sie können die Spalte zum Beispiel Section, Item section oder Item category nennen. Wenn es in den Abschnitten eine zweite Verschachtelungsebene gibt, können Sie zwei Spalten hinzufügen: Section und Subsection.

Eine zusätzliche Spalte erstellen, um Werte zu gruppieren

Wie unter Einen Modell-Build sowohl für die Entitäts- als auch für die Tabellenextraktion verwenden beschrieben, können Sie eine zusätzliche Tabelle hinzufügen, die alle Entitäten enthält. Sie können jedoch auch eine Spalte zu der bestehenden Tabelle hinzufügen, anstatt eine separate Tabelle zu erstellen. Auf diese Weise können Sie die Ergebnisse aus dem gesamten Dokumentensatz in einer einzigen Tabelle zusammenführen, zum Beispiel:

Rechnungsnummer

Elementdetails

Elementpreis

Menge

A

Element A1

10,00

1

A

Element A2

20,00

1

A

Element A3

30,00

1

B

Element B1

15,00

1

B

Element B2:

25,00

1

B

Element B3:

35,00

1

Beachten Sie, dass der Wert in der ersten Spalte für entsprechende Elemente wiederholt wird.

Wenn Sie weitere Spalten hinzufügen möchten oder die Tabelle groß ist, empfiehlt Snowflake, eine zusätzliche Tabelle mit einer einzigen Zeile zu erstellen (wie im Abschnitt Einen Modell-Build sowohl für die Entitäts- als auch für die Tabellenextraktion verwenden erläutert), um die Kosten zu optimieren.

Sicherstellen, dass die Spaltennamen zwischen Dokumenten unterschieden werden können

Versuchen Sie, eine Spalte semantisch von anderen zu unterscheiden. Verwenden Sie keine Namen wie col1, val1 oder item1.

In manchen Fällen funktioniert die Transposition besser, insbesondere wenn sich die Zeilennamen zwischen den Dokumenten nicht unterscheiden oder sich zumindest leicht unterscheiden und innerhalb eines geschlossenen Wertebereichs liegen.

Beachten Sie, dass ein Training auf dem angegebenen Spaltensatz die Ergebnisse verbessern kann.

Bei hierarchischen Headern den Namen des übergeordneten Elements als Präfix verwenden

Um Informationen aus Tabellen mit hierarchischen Headern zu extrahieren, verknüpfen Sie den Header-Pfad mit jedem Namen des übergeordneten Elements als Präfix. Definieren Sie beispielsweise für die folgende Tabelle die Spalten als:

  • Category A Type X Column 1

  • Category A Type Y Column 2

  • Category A Type Y Column 3

  • Category B Column 4

  • Category B Column 5

Eine Tabelle mit Headern mit den Namen „Kategorie A“ und „Kategorie B“, wobei „Kategorie A“ Zwischenheader enthält: Typ X und Typ Y.

Tabellen bei Bedarf transponieren

Sie können Informationen aus transponierten Tabellen extrahieren, indem Sie Werte aus der ersten Spalte der Tabelle des Dokuments als Spaltennamen in der Ausgabetabelle verwenden.

Benennen Sie die Spalten für die folgende Tabelle beispielsweise:

  • Type A: Item 1

  • Type A: Item 2

  • Type B: Item 3

  • Type B: Item 4

Beispiel für eine Tabelle, die transponiert werden kann.

Beachten Sie, dass dieses Beispiel hierarchische Header enthält.

Dokument bei großen Tabellen aufteilen

Das Modell für die Tabellenextraktion liefert Antworten, die bis zu 2.048 Token lang sind. Dies bedeutet, dass das Modell die Extraktion beendet, wenn dieses Limit erreicht ist. Sie können dies auf folgende Weise lösen:

  • Wenn die Tabelle mehrere Seiten umfasst, teilen Sie das Dokument in mehrere einseitige Dokumente auf und führen Sie die Ergebnisse bei der Nachbearbeitung zusammen.

  • Wenn die Tabelle so dicht ist, dass die Daten nicht einmal von einer einzigen Seite extrahiert werden können, teilen Sie die Tabelle nach Spalten auf.

    Wenn die Tabelle z. B. 10 Spalten enthält, versuchen Sie, zwei separate Werte zu definieren: einen mit 5 Spalten aus der linken Hälfte der Tabelle und den anderen mit 5 Spalten aus der rechten Hälfte. Möglicherweise müssen Sie mit der Auswahl der Spalte experimentieren, um optimale Ergebnisse zu erzielen.

Namen für die Spalten erstellen, die im Dokument keinen Namen haben

Wenn die erste Spalte im Dokument keinen Namen hat, müssen Sie diesen Namen beim Definieren des Werts selbst erstellen. Sie können dies wie folgt angehen:

  • Verwenden Sie den Tabellentitel oder einen wichtigen Teil des Titels.

  • Erstellen Sie einen beschreibenden Namen, der die Daten in der Spalte darstellt, z. B. description, type of asset, year, category.

Daten aus zwei verschiedenen Zeiträumen vergleichen

Wenn Sie Daten aus zwei verschiedenen Zeiträumen vergleichen möchten, z. B. den Jahren 2023 und 2024 in Finanzdokumenten wie Jahresberichten, können Sie den Spalten das Präfix „aktuell“ und „vorher“ voranstellen. Beachten Sie, dass unter Umständen ein Training erforderlich ist, um die Ergebnisse zu verbessern.