Erfahren Sie, wie wir nach einer Möglichkeit gesucht haben, wichtige Informationen effizient aus PDF-Pitchdecks zu extrahieren, einschließlich der Bewältigung der Herausforderungen, die grafische Elemente und unstrukturierte Inhalte mit sich bringen.
A QUICK SUMMARY – FOR THE BUSY ONES
Das Unternehmen wandte sich mit dem Problem an uns, eine große Datenmenge in Form von Pitchdecks zu sichten. Wir standen vor der Aufgabe, die Extraktion der wichtigsten Informationen aus dem unstrukturierten, schwer zu analysierenden Format PDF zu automatisieren.
Das Abrufen des Textinhalts des PDF war nur der Anfang. Der Text im PDF ist überall: Wir hatten Folien mit zwei oder drei Wörtern, einige Tabellen, Listen oder einfach nur Absätze, die zwischen Bildern zusammengequetscht waren.
Lesen Sie den ganzen Artikel, um mehr über unsere Ergebnisse zu erfahren.
TABLE OF CONTENTS
Das Unternehmen wandte sich mit dem Problem an uns, eine große Datenmenge in Form von Pitchdecks zu sichten. Jedes Pitchdeck ist im Allgemeinen ziemlich kurz, in den meisten Fällen etwa 10 Folien, aber das Problem ist die Anzahl der zu analysierenden Folien. Wir standen vor der Aufgabe, die Extraktion der wichtigsten Informationen aus dem unstrukturierten, schwer zu analysierenden Format PDF zu automatisieren. Darüber hinaus liegen die Daten in Form von Folien vor: mit vielen grafischen Hinweisen und geometrischen Beziehungen zwischen Wörtern, die Informationen vermitteln, die nicht einfach aus dem Text selbst abgeleitet werden können. Um die Analyse einer großen Datenmenge zu vereinfachen, bräuchten wir eine Lösung, die diesen Prozess so weit wie möglich automatisiert: vom Lesen des Dokuments selbst bis hin zum Auffinden interessanter Informationen wie Namen der beteiligten Personen, Finanzdaten usw.
Das erste Problem, mit dem wir konfrontiert waren, war das Abrufen des Textinhalts aus einer PDF-Datei. Beim Extrahieren von Text direkt aus PDF mit Open-Source-Tools wie pdf-parsen (was intern vom PDF-Loader von Langchain verwendet wird) hat die meiste Zeit den Job gemacht, wir hatten immer noch einige Probleme damit: Einige PDFs wurden nicht richtig analysiert und das Tool gab eine leere Zeichenfolge zurück (wie im Fall von Uber-Beispiel-Pitchdeck ), wir haben nur einige Wörter, die in einzelne Zeichen aufgeteilt sind und so weiter.
Leider war das Abrufen des Textinhalts des PDF erst der Anfang. Der Text im PDF ist überall: Wir hatten Folien mit zwei oder drei Wörtern, einige Tabellen, Listen oder einfach nur Absätze, die zwischen Bildern zusammengequetscht waren. Unten finden Sie ein Textbeispiel, das aus Seite 2 der Beispielreproduktion von AirBnB Early Pitchdeck extrahiert wurde (Verknüpfung, Extraktion erfolgt mit der PDF-Parse-Bibliothek):
Und das ist eines der besseren!
Obwohl das Analysieren eines solchen Textes an sich schwierig ist, möchten wir auch ändern können, welcher Auszug aus dem Text stammt. Vielleicht möchten wir wissen, welche Personen an einem Unternehmen beteiligt sind. Oder wollen wir nur alle Finanzdaten oder vielleicht nur den Namen der Branche erhalten? Jeder extrahierte Datentyp erfordert einen anderen Ansatz zum Analysieren und Validieren von Text und anschließend eine Menge Tests.
Zunächst haben wir beschlossen, Open-Source-Lösungen hinter uns zu lassen. Wir haben benutzt AWS-Extrakt um PDF-Dateien zu analysieren. Auf diese Weise verlassen wir uns nicht auf die interne Struktur des PDFs, um Text daraus zu erhalten (oder um nichts zu erhalten - wie im Fall des Uber-Beispiels). Textract verwendet OCR und maschinelles Lernen, um nicht nur Text, sondern auch räumliche Informationen aus dem Dokument abzurufen.
Hier ist das Textract-Ergebnis (wobei alle geometrischen Informationen entfernt wurden) von derselben Seite der AirBnB-Pitchdeck-Reproduktion
Aber das ist noch nicht alles! Textract antwortet mit einer Liste von Blöcken (wie „Page“ oder „Line“ für eine Textzeile), zusammen mit ihrer Position und ihren Beziehungen, die wir verwenden können, um die Struktur des Dokuments besser zu verstehen
In den meisten Fällen benötigen wir solche Details nicht, daher verwenden wir in unserem Fall nur einen Bruchteil davon.
Nun, um den Text tatsächlich zu analysieren und daraus das zu ziehen, was wir wollen. Die einzige Lösung, die dafür praktikabel schien, war die Verwendung eines Sprachmodells. Wir haben zwar einige Open-Source-Lösungen getestet, aber sie waren der Aufgabe nicht gewachsen. Halluzinationen waren zu häufig und Reaktionen zu unvorhersehbar. Darüber hinaus sind die meisten leistungsfähigen Open-Source-Modelle, die heute erhältlich sind, nicht für die kommerzielle Nutzung lizenziert. Also haben wir uns für die OpenAI GPT-3.5- und GPT-4-Modelle entschieden.
Wir haben uns entschieden, das Model zunächst den Text zusammenfassen zu lassen und alle Informationen aus dem Pitchdeck in diese Zusammenfassung aufzunehmen. Auf diese Weise haben wir Text, der vollständig ist (nicht nur die Gliederung) und eine Struktur hat, mit der man leichter arbeiten kann. Wir haben die folgende Eingabeaufforderung für jede Seite des Dokuments verwendet:
Mit zusätzlichen Anweisungen wie „Vermeiden Sie es, Ihre eigenen Meinungen oder Annahmen hinzuzufügen“ minimieren wir die Halluzinationen (Modelle fügen der Zusammenfassung gerne falsche Daten hinzu). GPT-3 hat sogar eine komplett falsche Finanzanalyse hinzugefügt!). Wenn wir eine Zusammenfassung aller Seiten haben, können wir das Model bitten, Informationen daraus zu extrahieren. Hier ist ein Beispiel für die Aufforderung, mit der wir die Liste der Personen abgerufen haben, auf die im Dokument verwiesen wird:
Die von den Modellen (sowohl GPT3 als auch 4) zurückgegebene Zusammenfassung ist von guter Qualität: Die zurückgegebenen Informationen sind sachlich und alles, was in dem Dokument deutlich gesagt wird, wird auch in der Zusammenfassung landen.
Das Extrahieren der Personenliste ist jedoch eine andere Geschichte. Modelle, insbesondere GPT-3, antworten oft mit einer ähnlichen Liste (keine tatsächliche Antwort):
Nicht nur das ist eindeutig keine korrekte Personenliste, sondern auch, die E-Mail war überhaupt nicht im Quelltext, das Model hat sie erfunden!
Wir haben auch mit vielen Variationen dieser Aufforderung experimentiert, wie zum Beispiel:
Was wir vermissen und was wahrscheinlich am schwierigsten ist, ist die Fähigkeit, die Bilder und räumlichen Beziehungen in PDF-Folien zu interpretieren. AWS Textract gibt zwar einige räumliche Informationen zurück, erkennt jedoch keine Bilder, und die zurückgegebenen Daten lassen sich nur schwer an das Modell weitergeben. Wir untersuchen immer noch, wie wir das Modell dazu bringen können, Pfeile, Diagramme und Tabellen zu verstehen. Darüber hinaus möchten wir den Prozess der Online-Recherche automatisieren, z. B. mithilfe verfügbarer APIs (wie Crunchbase) mehr Informationen über Unternehmen finden, die in den Dokumenten erwähnt werden, oder mehr Daten über die beteiligten Personen abrufen.
Die Fallstudie befasst sich mit der Automatisierung der Extraktion wichtiger Details aus zahlreichen PDF-Pitchdecks. Diese Decks sind übersichtlich, aber zahlreich, sodass eine manuelle Analyse nicht praktikabel ist. Die Herausforderung besteht darin, Text zu extrahieren und grafische Elemente zu interpretieren. AWS Textract wurde aufgrund seiner OCR- und Layoutfunktionen für die Textextraktion eingesetzt. Die GPT-3.5- und GPT-4-Modelle von OpenAI wurden verwendet, um Informationen zusammenzufassen und zu extrahieren. Bei der genauen Extraktion bestimmter Daten wie Personennamen oder Finanzdaten traten jedoch Herausforderungen auf. Die Studie erkennt die Notwendigkeit an, die Bildinterpretation zu verbessern, um visuelle Elemente besser verstehen zu können.
Our promise
Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.
Authors
Read next
Popular this month