• Nenhum resultado encontrado

Extraktion textueller Informationen aus heterogenen PDF-Dokumenten

N/A
N/A
Protected

Academic year: 2023

Share "Extraktion textueller Informationen aus heterogenen PDF-Dokumenten"

Copied!
85
0
0

Texto

Diese Bachelorarbeit untersucht den Prozess der Textextraktion aus Absätzen, Überschriften und Tabellen, die in PDF-Dokumenten enthalten sind, mit dem Python-Modul PDFMiner. Darüber hinaus erläutern wir den Prozess der Textextraktion aus diesen Dateien näher und werfen einen kurzen Blick auf die beiden zuvor genannten Begriffe Information Extraction (IE) und (Information-Retrieval) IR.

GRUNDLAGEN 10

Information Retrieval

PDF-Dokumente

  • Was ist PDF?

GRUNDLAGEN 12 PDF ist ein Format, das Aspekte von strukturierten Textformaten mit konventio-

PDF-Dateiformate

Wir stellen die Familie der PDF-Standards in komprimierter, prägnanter und zukunftsweisender Form zur Verfügung [13, 14]. PDF/VT: Wie der PDF/X-Standard unterstützt der PDF/VT-Standard Farbprofile, Ebenen und durchscheinende Bilder.

PDF-Struktur

GRUNDLAGEN 16

Logische und physische Struktur der PDF-Datei

Die physische Struktur einer PDF-Datei wird durch einen Standardsatz von Datenstrukturen und -typen definiert, die zur Darstellung der verschiedenen Elemente des Dokuments verwendet werden. Die physische Struktur wird oft als Baumstruktur dargestellt, ähnlich wie die logische Struktur, um die hierarchischen Beziehungen zwischen den vielen physischen Objekten widerzuspiegeln.

Abbildung 2.3: Links ist Seite eines Dokuments, rechts Klassifizierung ihrer Textblöcke [16].
Abbildung 2.3: Links ist Seite eines Dokuments, rechts Klassifizierung ihrer Textblöcke [16].

GRUNDLAGEN 18

Aufbau der PDF-Seite

Tabelle: Tabellen können in einer PDF-Datei (Portable Document Format) verwendet werden, um Daten in strukturierter Form darzustellen. Eine Tabelle besteht aus Zeilen und Spalten, die Daten in einer Matrix-ähnlichen Struktur organisieren.

Extraktion von Daten/Informationen aus PDF- Formaten

Das Extrahieren von Text aus Dokumenten kann manchmal schwierig sein, da das Portable Document Format (PDF) nur zum Anzeigen von Dokumenten und nicht zum organisierten Speichern von Informationen über Dokumente entwickelt wurde. Obwohl Zitate in wissenschaftlichen Zeitschriften erforderlich sind, werden sie weggelassen, da sie keine Informationen liefern, die für semantische Suchen zur Textextraktion verwendet werden können.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 22

Python-Bibliotheken für die Extraktion von PDF- InhaltenInhalten

  • pypdf2

In Zeile 4 wurden PdfFileReader und PdfFileWriter aufgerufen, um die Originaldatei zu lesen und die Ausgabe in die neue Datei zu schreiben. In Zeile 6 wurde die Originaldatei (siehe Abbildung 3.1) aufgerufen und in Zeile 7 vom PdfFileReader gelesen.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 24

24 The first step in the document understanding process is layout analysis or segmentation; to break up the 25 document into blocks that can be said to be atomic, i.e. 29 ontology-based wrapping: development and use of a document-generic ontology to represent the 30 relationships between the various objects in the document set.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 26

PDFMiner

28 The first step in the document understanding process is presentation analysis or segmentation; to spoil. 35 Ontology-based wrapping: developing and using a generic document ontology to represent 36 the relationships between different objects in the document.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 28

PyMuPDF

Im obigen Beispiel wird PyMuPDF installiert und das Paket fitz (Zeile 2) aufgerufen, das den Aufruf und das Öffnen der Eingabedatei ermöglicht. 1 Siehe Diskussionen, Statistiken und Autorenprofile für diese Veröffentlichung unter: https://www.researchgate.net/publication/4242676 2 Intelligente Textextraktion aus PDF-Dokumenten. 26 Ein Wrapper ist ein Programm, das automatisch durch eine Datenstruktur wie eine Website navigiert, die 27 relevanten Inhalte auswählt und extrahiert und sie in Form strukturierter Daten (wie XML) an Datenbanken und andere Anwendungen liefert.

43 The Lixto Visual Wrapper [2], a product of research at our institute, currently uses the tree.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 30

Apache Tika

Apache Tika ist ein Inhaltsanalysetool, das Dokumenttypen erkennen und relevante Informationen aus verschiedenen Dateitypen extrahieren kann. Tika ist für eine Vielzahl von Anwendungen nützlich, darunter Suchmaschinenindizierung, Inhaltsanalyse, Übersetzung und mehr, da es alle diese unterschiedlichen Dateiformate über eine einzige Schnittstelle lesen und verarbeiten kann. Tika ist ein Projekt der Apache Software Foundation und war früher ein Unterprojekt von Apache Lucene und ist ein Java-basiertes Paket.

Wird mithilfe der von der angegebenen Pfadfunktion (Zeile 5) erhaltenen Daten extrahiert und von der print-Anweisung angezeigt.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 32

Es handelt sich um ein in Python geschriebenes Paket für Tabula Java [34], das Tabellen aus PDF-Dateien lesen kann. Tabellen können aus PDF-Dokumenten gelesen werden und die aus diesen Tabellen extrahierten Informationen werden in einem Python DataFrame gespeichert. Wenn Sie versuchen, den gesamten Text aus PDFs zu extrahieren, kann es hilfreich sein, Tabula _py in Verbindung mit den anderen im vorherigen Satz beschriebenen Tools zu verwenden [34, 35].

Unten zeigen die Listen 3.10 und 3.11 Beispiele für die Verwendung von tabula-py zum Extrahieren der Tabellen in einer zweiseitigen PDF-Datei (siehe Abbildung 3.2) und wie die Ergebnisse (siehe Abbildungen 3.3 und 3.4) aussehen könnten.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 34

STAND DER TECHNIK UND VERWANDTE ARBEITEN 36 Die zuvor besprochenen Softwarebibliotheken gehören zu den bedeutendsten und be-

  • PdfBox
  • pdftotext
  • Camelot
  • PyPDF4
  • Vergleich zwischen Python-Bibliotheken für die PDF-Inhalte-ExtraktionPDF-Inhalte-Extraktion

PyPDF4 ist eine vollständig in Python geschriebene PDF-Bibliothek, die PDF-Dateien in der Größe ändern, teilen, kombinieren, zuschneiden und zusammenführen kann. Mit diesem Tool können Sie auch PDF-Dateien mit einem Passwort schützen, sie mit Anzeigeoptionen und beliebigen Daten anreichern. Das Abrufen von Informationen aus PDF-Dateien ist selbst mit Hilfe spezieller Bibliotheken nicht immer einfach und führt manchmal zu Fehlern.

In den vorherigen Abschnitten wurden verschiedene Python-Bibliotheken und ihre Funktionen sowie die Möglichkeiten besprochen, wie diese Bibliotheken zum Extrahieren von Informationen aus PDF-Dateien verwendet werden können.

STAND DER TECHNIK UND VERWANDTE ARBEITEN 38

Schließlich bietet Diagramm 5 in Abbildung 3.5 einen umfassenden Plan für die Arbeit mit PDF-Dateien und zeigt, dass Python je nach Ziel eine Vielzahl von Optionen bietet. Nachdem in den vorherigen Abschnitten PDF-Dateien und die Softwarebibliotheken erläutert wurden, die zum Extrahieren von Textinformationen aus diesen Dateien verwendet werden, wird in diesem Abschnitt das Konzept erläutert, das zum Analysieren der verschiedenen PDF-Dateien und zum Extrahieren der darin enthaltenen Texte verwendet wird und aus Absätzen, Informationsfeldern, Bildkommentaren usw. besteht Tische. Mit dem P2X werden die PDF-Dateien verarbeitet und deren Textinhalte extrahiert und anschließend in XML-Dateien umgewandelt und gespeichert.

Der Benutzer bereitet die Eingaben in das Tool als PDF-Dateien vor, aus denen er den Textinhalt analysieren und extrahieren möchte.

Abbildung 3.5: Bearbeitung von PDF-Dateien mit Python-Bibliotheken [39]
Abbildung 3.5: Bearbeitung von PDF-Dateien mit Python-Bibliotheken [39]

KONZEPTION DES VERFAHRENS 42

Schritt 1: Lesen der Datei und Analyse der Seiten

KONZEPTION DES VERFAHRENS 44

Schritt 2: Identifizierung der Elemente

KONZEPTION DES VERFAHRENS 46

Schritt 3: Extrahieren und Exportieren

Jedes Tag verweist auf eine Seite in der Eingabedatei, und das Tag selbst speichert den Inhalt dieser Seite auf eine Weise, die nach bestimmten Kriterien organisiert und geordnet ist.

Abbildung 4.4: Speichern der extrahierten Elemente in einem XML-Tag.
Abbildung 4.4: Speichern der extrahierten Elemente in einem XML-Tag.

KONZEPTION DES VERFAHRENS 48

Erforderlichen Anforderungen

PDFMiner ist ein unverzichtbares Tool und bietet umfangreiche Unterstützung für das Extrahieren von Text aus PDF-Dateien, da es mehrere PDF-Formate verarbeiten kann. PDFMiner ist eine zuverlässige und vielseitige Bibliothek, die eine Vielzahl von Textextraktionsaufgaben bewältigen kann, darunter die Beibehaltung des Layouts beim Extrahieren von Text, das Extrahieren von Text nur aus bestimmten Seiten und das Extrahieren von Text aus bestimmten Bereichen einer Seite. Da PDFMiner auf Python basiert, ist es mit einer Vielzahl von Python-basierten Anwendungen und Dienstprogrammen kompatibel.

In diesem Abschnitt werden die für die Analyse und Extraktion erforderlichen PDFMiner-Pakete und -Methoden erläutert.

DEMONSTRATORISCHE IMPLEMENTIERUNG 50 In dem folgenden Codeausschnitt wird das Aufrufen der benötigten PDFMiner-

Listing 5.2 Suchen von Tabellen und Bestimmen ihres Inhalts mithilfe von Hilfsfunktionen Die erste Funktion namens rectIntersectVertical untersucht zwei Rechtecke, die jeweils als Sammlung von vier Ganzzahlen (x1, y1, x2 und y2) dargestellt werden, und bestimmt, ob sich die Rechtecke vertikal schneiden oder nicht . Die zweite Funktion heißt rectIntersectHorizontal und untersucht zwei Rechtecke, um festzustellen, ob es einen horizontalen Schnittpunkt zwischen ihnen gibt. Die dritte Methode namens addTextInTable erfordert ein TextBox- und ein Page-Objekt, um ordnungsgemäß zu funktionieren.

Jedes Rechteck in der Liste der Seitenobjekte wird wiederholt, um zu sehen, ob das Textrechteck vertikal und horizontal damit übereinstimmt.

DEMONSTRATORISCHE IMPLEMENTIERUNG 52 Die nächste zwei Funktionen dienen für die Extraktion der Bildunterschriften, die in

Zugriff auf Datei

Vollständiger Prozess der Seite

DEMONSTRATORISCHE IMPLEMENTIERUNG 54

XML-Ausgabedatei generieren

  • Absätze exportieren

Der Zweck dieses Systems besteht darin, eine XML-Datei zu erstellen, die den Textinhalt der PDF-Datei enthält. Dieses Code-Snippet erstellt ein XML-Dokument, indem es die Seiten eines PDF-Dokuments durchläuft, dargestellt durch eine Datenstruktur namens Raw. Für jede Seite extrahiert der Code den Text aus den Absätzen und erstellt ein XML-Element.

Innerhalb jedes Seitenelements erstellt der Code ein -XML-Element, um die Absätze zu gruppieren, und für jeden Absatz wird ein -XML-Element mit einem n-Attribut erstellt, das die enthält.

DEMONSTRATORISCHE IMPLEMENTIERUNG 56 Absatznummer und den Text des Absatzes als Inhalt des Elements darstellt. Der Code

Bildunterschriften exportieren

Zunächst wird nach Bildern auf der Seite gesucht und deren Beschriftungen zum XML-Block hinzugefügt. Anschließend wird der Text jedes Absatzes auf der Seite überprüft und alle Beschriftungen, die mit „Abbildung“ oder „Abbildung“ beginnen, zum XML-Block hinzugefügt.

Tabellen exportieren

DEMONSTRATORISCHE IMPLEMENTIERUNG 58

DEMONSTRATORISCHE IMPLEMENTIERUNG 60

DEMONSTRATORISCHE IMPLEMENTIERUNG 62

Mögliche Einschränkungen

Obwohl die Software in der Lage ist, Absätze, Überschriften und Tabellen aus PDF-Dateien zu extrahieren, sind einige wichtige Einschränkungen zu beachten. Wenn die Software ein zweispaltiges Layout nicht beherrscht, kann es zu Fehlern bei der Textausgabe kommen. Wenn Text in einer Spalte endet und in der nächsten Spalte fortgesetzt wird, kann dies dazu führen, dass die Software den Text falsch ausgibt und die Reihenfolge durchbricht.

Eine Möglichkeit besteht darin, eine Software zu implementieren, die in der Lage ist, automatisch zweispaltige Layouts zu erstellen.

DEMONSTRATORISCHE IMPLEMENTIERUNG 64 erkennen und den Text in jeder Spalte getrennt zu extrahieren. Eine andere Mög-

Eine weitere Herausforderung sind die Probleme, die bei der Verarbeitung von PDF-Zeitungsartikeln mit der Software auftreten können. Die PDF-Zeitungsartikel sind oft sehr unterschiedlich gestaltet und können unterschiedliche Formatierungen aufweisen. Bei der Verarbeitung von PDF-Zeitungsartikeln mit der Software können verschiedene Probleme auftreten, darunter Probleme beim Erkennen eindeutiger Absatz- und Tabellenstrukturen sowie beim Extrahieren von Überschriften und Zwischenüberschriften.

Bei der Arbeit mit PDF-Zeitungsartikeln ist es wichtig, diese Einschränkungen zu berücksichtigen und alternative Methoden zu erkunden.

DEMONSTRATORISCHE IMPLEMENTIERUNG 66

Zusammenfassung

In dieser Arbeit wird untersucht, wie Text aus PDF-Dateien extrahiert wird, wobei der Schwerpunkt auf Absätzen, Bildunterschriften und Tabellen liegt. Ziel der Arbeit war es, eine effiziente Methode zur Textextraktion aus PDF-Dokumenten zu finden. Das Papier beschreibt die Verfahren, die zum Extrahieren von Text aus einer PDF-Datei zu befolgen sind, sowie die Probleme und Einschränkungen, auf die Sie stoßen können.

Ausblick

Das Extrahieren von Texten aus PDF-Dateien wird in Zukunft ein wesentlicher Bestandteil der Datenanalyse sein und in vielfältigen Anwendungsbereichen nützlich sein. Der Umgang mit PDF-Dateien wird mit der zunehmenden Verbreitung digitaler Technologien zu einer immer wichtigeren Fähigkeit. Es wird erwartet, dass in nicht allzu ferner Zukunft immer mehr Unternehmen und Organisationen auf PDF-Extraktionsmethoden zurückgreifen werden, um wichtige Informationen aus PDF-Dateien zu extrahieren.

222 # Entfernen Sie den Text aus dem Absatz, wenn sich der Text unter einem Bild befindet, und beginnen Sie mit Abbildung, Abbildung 223 für Pageinraw.

Imagem

Abbildung 2.1: Ein PDF-Dokument-Modell [15]
Abbildung 2.2: Der logische Aufbau eines Dokuments [16].
Abbildung 2.3: Links ist Seite eines Dokuments, rechts Klassifizierung ihrer Textblöcke [16].
Abbildung 2.4: Darstellung der physischen Struktur des Dokuments als Baumstruktur [16].
+7

Referências

Outline

Documentos relacionados

Thus, if the data values were in an Access relational table like Figure 10-2, the table declaration for Access could be used together with the read table command to read the members