{"id":29813,"date":"2021-11-17T18:17:30","date_gmt":"2021-11-17T17:17:30","guid":{"rendered":"https:\/\/www.inovex.de\/de\/blog\/automatisch-gespeicherter-entwurf\/"},"modified":"2022-11-21T09:03:05","modified_gmt":"2022-11-21T08:03:05","slug":"inhaltsextraktion-strukturerkennung-pdf-dokumente","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/inhaltsextraktion-strukturerkennung-pdf-dokumente\/","title":{"rendered":"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten"},"content":{"rendered":"<p>Dieser Artikel erkl\u00e4rt, wie im Rahmen des \u201eService-Meister&#8220; Forschungsprojekt\u00a0relevante Informationen aus Serviceberichten, Handb\u00fcchern, Anleitungen und allgemeine Ger\u00e4teinformationen gezielt durchsuchbar gemacht wurden, um sie in einer KI-Applikation abrufbar zu machen. <!--more--><\/p>\n<p>Das Portable Document Format (PDF) ist das meistgenutzte Austauschformat f\u00fcr Dokumente. Im Gegensatz zu Dokumenten im strukturierten Extensible Markup Language Format (XML) oder im JavaScript Object Notation Format (JSON) weisen PDF-Dokumente keine maschinellelesbaren Strukturmarker auf, die beispielsweise definieren, wo ein neuer Abschnitt anfa\u0308ngt oder ob es sich bei einer bestimmten Textfolge um eine Tabelle handelt. PDF-Dokumente enthalten lediglich Anweisungen, wie die Seite geschrieben wird. S\u00e4tze, Paragraphen und Kapitel werden als eine Menge von Zeichen repr\u00e4sentiert, deren Reihenfolge im Dokument nicht mit der Ordnung in der grafischen Ausgabe \u00fcbereinstimmen muss.<\/p>\n<p>Bei der Extraktion von Inhalten aus Dokumenten kommt es daher oft zu Problemen. Das Erkennen von W\u00f6rtern und Paragraphen muss \u00fcber Heuristiken durchgef\u00fchrt werden und erfolgt meist basierend auf Abst\u00e4nden zwischen den Zeichen, was jedoch Fehler mit sich bringt. H\u00e4ufig gibt es Zeichen, die zwar nicht sichtbar sind, aber extrahiert werden, z. B. weil der Text in letzter Minute noch angepasst wurde. Au\u00dferdem treten, beispielsweise in \u00dcberschriften, zus\u00e4tzliche Leerzeichen zwischen Zeichen auf. Diese dienen zur besseren Darstellung aber sorgen f\u00fcr eine verf\u00e4lschte Extraktion. Andersherum fehlen oft Leerzeichen zwischen W\u00f6rtern. Auch Sonderzeichen werden h\u00e4ufig nicht richtig codiert und falsch extrahiert. Hinterlegte Metadaten, beispielsweise \u00fcber den Autor, das Erstelldatum und die vorhandenen Kapitel, sind oftmals fehlerhaft oder \u00fcberhaupt nicht vorhanden. Da PDF-Dokumente zur Darstellung konzipiert sind, werden Tabellen und Bilder nicht gesondert gespeichert. Deswegen ist es schwierig Bilder und Tabellen korrekt zu extrahieren und deren Position im Gesamtkontext zu bestimmen.<\/p>\n<p>Im Service-Meister Forschungsprojekt erstellt inovex gemeinsam mit Krohne, einem f\u00fchrenden Anbieter f\u00fcr Prozessmesstechnik, in einem geschlossenen Teilvorhaben KI-Applikationen f\u00fcr die Wasser- und Abwasserwirtschaft. In diesem Teilvorhaben sollen u. a. Servicetechniker bei Wartungs- und Reparaturarbeiten unterst\u00fctzt werden. Hierf\u00fcr sollen relevante Informationen aus Serviceberichten, Handb\u00fcchern, Anleitungen und allgemeine Ger\u00e4teinformationen gezielt durchsuchbar gemacht werden.<\/p>\n<p>Daf\u00fcr ist es notwendig, relevante Textabschnitte, Tabellen und Bilder aus den Dokumenten zu extrahieren, mit externen Informationen anzureichern und effizient durchsuchbar zu machen. Alle relevanten Dokumente liegen in unserem Use Case ausschlie\u00dflich als PDF-Dokumente vor und beinhalten die oben aufgelisteten Probleme.<\/p>\n<h2>Python-Bibliotheken f\u00fcr die Extraktion von PDF-Inhalten<\/h2>\n<p>F\u00fcr die Extraktion von Inhalten aus PDF-Dokumenten stehen viele frei benutzbare Python-Bibliotheken zur Verf\u00fcgung. Im Detail haben wir uns die folgenden PDF-Bibliotheken f\u00fcr die Extraktion von Text, Bildern, Inhaltsverzeichnissen und Tabellen angeschaut: PDFMiner, Apache Tika, PyPDF, PyMuPDF, Camelot, tabula-py und PDFPlumber. In Tabelle 1 befindet sich eine \u00dcbersicht der Bibliotheken mit ihren f\u00fcr uns relevanten Funktionsumf\u00e4ngen.<\/p>\n<table style=\"height: 300px;\" border=\"1\" width=\"540\" align=\"center\">\n<caption style=\"caption-side: bottom;\">Tabelle 1: \u00dcbersicht der getesteten Python Bibliotheken zur Extraktion von PDF-Inhalten.<\/caption>\n<tbody>\n<tr style=\"color: #ffffff;\" bgcolor=\"#003c7e\">\n<td style=\"width: 135px;\" align=\"center\"><\/td>\n<td style=\"width: 135px;\" align=\"center\"><strong>Textextraktion<\/strong><\/td>\n<td style=\"width: 135px;\" align=\"center\"><strong>Bildextraktion<\/strong><\/td>\n<td style=\"width: 135px;\" align=\"center\"><strong>Inhaltsverzeichnisextraktion<\/strong><\/td>\n<td style=\"width: 135px;\" align=\"center\"><strong>Tabellenextraktion<\/strong><\/td>\n<td style=\"width: 135px;\" align=\"center\"><strong>Lizenz<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 135px;\"><a title=\"PDFMiner.six\" href=\"https:\/\/github.com\/pdfminer\/pdfminer.six\" target=\"_blank\" rel=\"noopener\">PDFMiner.six<\/a><\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">MIT<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 135px;\"><a title=\"Python wrapper f\u00fcr Apache Tika\" href=\"https:\/\/github.com\/chrismattmann\/tika-python\" target=\"_blank\" rel=\"noopener\">Python wrapper f\u00fcr Apache Tika<\/a><\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Apache-2.0<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 135px;\"><a title=\"PyPDF2 und PyPDF4\" href=\"https:\/\/github.com\/mstamy2\/PyPDF2\" target=\"_blank\" rel=\"noopener\">PyPDF2 und PyPDF4<\/a><\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">BSD-3-Clause<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 135px;\"><a title=\"PyMuPDF\" href=\"https:\/\/github.com\/pymupdf\/PyMuPDF\" target=\"_blank\" rel=\"noopener\">PyMuPDF<\/a><\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">GPL-3.0<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 135px;\"><a title=\"Camelot\" href=\"https:\/\/github.com\/camelot-dev\/camelot\" target=\"_blank\" rel=\"noopener\">Camelot<\/a><\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">MIT<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 135px;\"><a title=\"tabula-py\" href=\"https:\/\/github.com\/chezou\/tabula-py\" target=\"_blank\" rel=\"noopener\">tabula-py<\/a><\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">MIT<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 135px;\"><a title=\"PDFPlumber\" href=\"https:\/\/github.com\/jsvine\/pdfplumber\" target=\"_blank\" rel=\"noopener\">PDFPlumber<\/a><\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">Nein<\/td>\n<td style=\"width: 135px;\" align=\"center\">Ja<\/td>\n<td style=\"width: 135px;\" align=\"center\">MIT<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Bibliotheken f\u00fcr die Text- und Bildextraktion<\/h3>\n<p>Zur Extraktion von Text und Bildern wurden die Python-Bibliotheken PDFMiner, Apache Tika, PyPDF, PyMuPDF und PDFPlumber miteinander verglichen. Mit allen Bibliotheken konnte der Text erfolgreich extrahiert werden. Mit PDFMiner konnten wir bereits mit Standardparametern in unserem konkreten Anwendungsfall die beste Textextraktion erzielen. Au\u00dferdem wurde die Reihenfolge mit Ausnahme von Kopf- und Fu\u00dfzeile meist in der richtigen Reihenfolge extrahiert. Durch eine Vielzahl von Parametern ist es zudem m\u00f6glich, die Extraktion weiter anzupassen und zu verbessern. Hinzu kommt, dass es viele Quellen zur Nutzung von PDFMiner im Internet gibt.<\/p>\n<p>Bilder k\u00f6nnen als Rastergrafik oder als Vektorgrafik im PDF-Dokument hinterlegt werden. Vektorgrafiken konnten weder mit den oben genannten Bibliotheken, noch mit webbasierten Tools wie beispielsweise PDFCandy, PDFaid, ExtractPDF und pdf-online erkannt und extrahiert werden. Rastergrafiken konnten wir in unseren Dokumenten mit PDFMiner, Apache Tika, PyPDF, PyMuPDF und PDFPlumber erfolgreich extrahieren. Aufgrund der guten Ergebnisse bei der Textextraktion, der ausf\u00fchrlichen Dokumenten und der aktiven Community haben wir uns entschieden, PDFMiner f\u00fcr die Bild und Textextraktion zu verwenden.<\/p>\n<h3>Bibliotheken f\u00fcr die Tabellenextraktion<\/h3>\n<p>F\u00fcr die Tabellenextraktion eignen sich Camelot, tabula-py und PDFPlumber, da es mit ihnen m\u00f6glich ist, Tabellen explizit z. B. als pandas DataFrame zu extrahieren. Die Extraktionsqualit\u00e4t mit Camelot ist dabei bereits mit Standardparametern besser als bei tabula-py und PDFPlumber. Au\u00dferdem k\u00f6nnen viele hilfreiche Parameter angepasst werden. Aus diesen Gr\u00fcnden haben wir uns f\u00fcr Camelot zur Tabellenextraktion entschieden. Besonders n\u00fctzliche Parameter bei Camelot sind der Accuracy Parameter, \u00a0der die Korrektheit der Extraktion approximiert, und der Whitespace Parameter, der angibt, wieviel Prozent der Tabelle leer sind. Mithilfe dieser Parameter k\u00f6nnen viele inkorrekt extrahierte Tabellen erkannt und entfernt werden. Ein Nachteil von Camelot ist allerdings die schlechte Performance beim Extrahieren von Tabellen- und Spaltennamen. Falls keine gesonderte Textextraktion zur Bestimmung der Namen erfolgt, k\u00f6nnte PDFPlumber die bessere Wahl sein.<\/p>\n<h3>Bibliotheken f\u00fcr die Extraktion des Inhaltsverzeichnisses<\/h3>\n<p>Da PDFMiner und PyMuPDF bereits f\u00fcr die Text- und Bildextraktion sehr gute Ergebnisse geliefert haben und die Dokumentation bei PyPDF nicht sehr umfassend ist, konzentrierte sich der Vergleich bei der Inhaltsverzeichnisextraktion auf PDFMiner und PyMuPDF. Da alle g\u00e4ngigen Python-Bibliotheken das Inhaltsverzeichnis basierend auf den Metadaten extrahieren, funktioniert die Extraktion nur dann, wenn diese Daten korrekt hinterlegt sind. Obwohl die Extraktionsqualit\u00e4t bei beiden Bibliotheken sehr \u00e4hnlich war, entschieden wir uns f\u00fcr PyMuPDF, da es hier sehr einfach ist die Seitenzahlen der Kapitel auszulesen und generell weniger Code ben\u00f6tigt wird.<\/p>\n<h2>Informationsextraktion aus PDF-Dokumenten im Service-Meister-Forschungsprojekt<\/h2>\n<p>Die PDF-Dokumente bestehen aus Kapiteln, welche wiederum aus Unterkapiteln bestehen. Diese beinhalten Textelemente, Tabellen und Bilder, welche mithilfe der unterschiedlichen Bibliotheken extrahiert werden m\u00fcssen. Ein Ausschnitt aus dem PDF-Dokument befindet sich auf Abbildung 1.<\/p>\n<figure style=\"width: 620px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/PDF-Beispiel.png\" alt=\"Ausschnitt einer Seite aus dem Krohne-Handbuch im PDF-Format. \" width=\"620\" height=\"791\" \/><figcaption class=\"wp-caption-text\">Abbildung 1: Ausschnitt einer Seite aus dem Krohne-Handbuch im PDF-Format. (Seite 30, Optiflux 1000).<\/figcaption><\/figure>\n<p>Die extrahierten Elemente \u00fcberf\u00fchren wir in ein strukturiertes JSON-Format und speichern sie dann in Elasticsearch, um eine effiziente Suche zu erm\u00f6glichen.<\/p>\n<h3>Extraktion von Texten<\/h3>\n<p>Als Ausgabe erhalten wir durch PDFMiner einen zusammenh\u00e4ngenden String einer Seite oder des gesamten PDF-Dokuments. Wir iterieren \u00fcber jede Seite einzeln und zerlegen den Textblock mithilfe der spaCy Bibliothek in S\u00e4tze. Daraufhin trennen wir S\u00e4tze mit doppeltem Zeilenumbruch (\\n\\n) und S\u00e4tze mit einfachem Zeilenumbruch, die mit keinem g\u00e4ngigen Satzende wie Punkt oder Ausrufezeichen enden. Au\u00dferdem entfernen wir \u00fcberfl\u00fcssige Leerzeichen. Schlussendlich entfernen wir alle verbleibenden Zeilenumbr\u00fcche in S\u00e4tzen, da diese in der finalen Ausgabe nicht mehr ben\u00f6tigt werden.<\/p>\n<p><strong>Beispiel:<\/strong> Abbildung 2 zeigt einen Ausschnitt aus dem Krohne-Handbuch, dessen Text extrahiert werden soll.<\/p>\n<figure id=\"attachment_29840\" aria-describedby=\"caption-attachment-29840\" style=\"width: 631px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-29840\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Abbildung_2.png\" alt=\"Zu extrahierender Text aus dem Krohne-Handbuch \" width=\"631\" height=\"181\" \/><figcaption id=\"caption-attachment-29840\" class=\"wp-caption-text\">Abbildung 2: Zu extrahierender Text aus dem Krohne-Handbuch (Seite 8, Optiflux 1000).<\/figcaption><\/figure>\n<p>Nach der Extraktion durch PDFMiner erhalten wir den folgenden zusammenh\u00e4ngenden Textblock:<\/p>\n<p>\u201e1 SAFETY INSTRUCTIONS \\n\\nOPTIFLUX 1000\\n\\n1.3.5 Warnings and symbols used\\n\\nSafety warnings are indicated by the following symbols.\\n\\nDANGER!\\nThis information refers to the immediate danger when working with electricity.\u201c<\/p>\n<p>Nach der zus\u00e4tzliche Verarbeitung wird der Text in einzelne Eintr\u00e4ge aufgeteilt und sieht wie folgt aus:<\/p>\n<p>&#8218;1 SAFETY INSTRUCTIONS&#8216;<br \/>\n&#8218;OPTIFLUX 1000&#8216;<br \/>\n&#8218;1.3.5 Warnings and symbols used&#8216;<br \/>\n&#8218;Safety warnings are indicated by the following symbols.&#8216;<br \/>\n&#8218;DANGER!&#8216;<br \/>\n&#8218;This information refers to the immediate danger when working with electricity.&#8216;<\/p>\n<h3>Extraktion von Bildern<\/h3>\n<p>Um das Problem von kleinen Bildern, die wir nicht extrahieren wollen, zu l\u00f6sen, filtern wir basierend auf der Bild- und Dateigr\u00f6\u00dfe. Die extrahierten Rastergrafiken speichern wir als Base64-String und als Bild-Embeddings (hochdimensionale numerische Bilddarstellungen), um so in Zukunft einen \u00c4hnlichkeitsvergleich zwischen den Bildern zu erm\u00f6glichen.<\/p>\n<h3>Extraktion von Tabellen<\/h3>\n<p>Nach der Extraktion durch Camelot filtern wir die Tabellen basierend auf dem Accuracy Parameter und dem Whitespace Parameter. Wir behalten nur Tabellen, die eine Accuracy &gt; 75 und maximal 90% Whitespace haben. Au\u00dferdem entfernen wir Tabellen, die aus einer einzigen Spalten bestehen, da es sich hierbei um Fehler in der Extraktion handelt. Alle verbleibenden Tabellen werden als CSV-Dateien gespeichert.<\/p>\n<h3>Extraktion von Inhaltsverzeichnissen<\/h3>\n<p>Zur Extraktion von Inhaltsverzeichnissen (IHV) verwenden wir die Python-Bibliothek PyMuPDF, falls die Kapitelinformationen in den Metadaten gespeichert sind. Dies ist jedoch leider nur bei wenigen PDF-Dokumenten der Fall. Au\u00dferdem sind die gespeicherten Kapitelinformationen oft falsch und beziehen sich auf einzelne Textabschnitte mit falschen Seitenzahlen statt auf Kapitel. PyMuPDF verwenden wir deswegen nur dann, wenn Kapitelinformationen existieren und jeder Eintrag eine sinnvolle dazugeh\u00f6rige Seitenzahl (ungleich -1) beinhaltet. Ist dies nicht der Fall, verwenden wir einen eigenen Ansatz, der auf dem bereits extrahierten Text basiert:<\/p>\n<p>Daf\u00fcr m\u00fcssen wir als Erstes herausfinden, welche Seiten zum IHV geh\u00f6ren. Falls bereits ein Teil des IHV identifiziert wurde, ignorieren wir Seiten, deren vorherige Seite nicht bereits Teil des IHV war, da das IHV ein zusammenh\u00e4nges Kapitel ist. Wir bezeichnen eine Seite nur als Teil des IHV wenn mindestens 30% der Zeilen typische Kriterien eines Inhaltsverzeichniseintrags erf\u00fcllen. Dazu geh\u00f6rt beispielsweise dass der Eintrag am Ende eine Zahl hat, welche die Startseite des Kapitels angibt. Au\u00dferdem muss sich die Startseite innerhalb des Dokuments befinden und gr\u00f6\u00dfer als die des vorherigens Kapiteleintrags sein, da ein IHV den chronologischen Aufbau des Dokuments beschreibt.<\/p>\n<p>Beispielsweise erf\u00fcllen Eintr\u00e4ge wie \u201eIntroduction 5\u201c oder \u201e1. Introduction&#8230;5\u201c alle Kriterien. Im Gegensatz dazu erf\u00fcllt weder die \u00dcberschrift \u201e1. Introduction\u201c aufgrund fehlender Seitenzahl noch der Produktname \u201eOptiflux 1000\u201c aufgrund der hohen Zahl au\u00dferhalb des PDFs alle Kriterien. Auch ein Eintrag wie \u201e1. Optiflux 10\u201c, der wie ein typischer IHV-Eintrag aussieht, wird nicht als solcher erkannt, wenn er beispielsweise auf den Eintrag \u201e2. Instructions&#8230;11\u201c mit einer h\u00f6heren Seitenzahl folgt.<\/p>\n<h3>Zuordnung von Text zu Kapiteln<\/h3>\n<p>Um Servicetechnikern die passenden Textabschnitte zur\u00fcckgeben zu k\u00f6nnen, ist es essentiell, dass jeder Textabschnitt im Gesamtkontext des PDF-Dokuments eingeordnet werden kann. Um dies zu erm\u00f6glichen, m\u00fcssen wir f\u00fcr jeden extrahierten Texteintrag das dazugeh\u00f6rige Kapitel bestimmen.<\/p>\n<p>Alle Textelemente, die vor dem Inhaltsverzeichnis (IHV) sind, weisen wir dem Kapitel \u201eEinleitung\u201c zu. Eintr\u00e4ge im IHV und zwischen dem IHV und dem ersten weiteren Kapitel weisen wir das Kapitel \u201eInhaltsverzeichnis\u201c zu. Falls das Textelement weder zur Einleitung noch zum IHV geh\u00f6rt, wird zun\u00e4chst eine Liste aller Kapitel erstellt, die auf der derzeitigen Seite beginnen. Dann berechnen wir die Bigram-\u00c4hnlichkeit zwischen dem Textelement und den Kapitelnamen und verwenden den chronologisch ersten Kapitelnamen mit einer \u00c4hnlichkeit &gt;= 0.6. Die Bigram-\u00c4hnlichkeit gibt in unserem Fall an, wie viele Bigramme (Sequenzen von zwei W\u00f6rtern) \u00fcbereinstimmen. Falls die \u00c4hnlichkeit hoch ist, ist die Wahrscheinlichkeit sehr hoch, dass es sich bei dem Textelement um den Kapitelnamen und somit den Beginn eines neuen Kapitels handelt. Wenn ein Textelement im sp\u00e4teren Teil des PDFs nicht selbst eine Kapitel\u00fcberschrift ist, wird das zuletzt gefundene Kapitel verwendet, da sich das Textelement in diesem befindet. Eine \u00dcbersicht befindet sich in Abbildung 3.<\/p>\n<figure style=\"width: 619px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/updated_workflow.png\" alt=\"Abb. 3: Workflow zur Zuordnung von Text zu Kapiteln\" width=\"619\" height=\"216\" \/><figcaption class=\"wp-caption-text\">Abbildung 3: Workflow zur Zuordnung von Text zu Kapiteln<\/figcaption><\/figure>\n<h3>Repr\u00e4sentation der PDF-Dokumente im JSON-Format<\/h3>\n<p>Nach der Extraktion werden die Elemente als JSON-Objekt gespeichert, transformiert und in Elasticsearch importiert. Ein Textelement beinhaltet dabei immer den Text eines ganzes Kapitels. Ein beispielhaftes JSON-Objekt sieht wie folgt aus:<\/p>\n<pre class=\"\">[\r\n  {\r\n    \"section\": \"Introduction\",\r\n    \"content\": \"1 SAFETY INSTRUCTIONS OPTIFLUX 1000 1.3.5  Warnings and symbols used Safety warnings are indicated by the following symbols. DANGER! This information refers to the immediate danger when working with electricity\",\r\n    \"uri\": \"...\",\r\n    \"file_name\": \"OPTIFLUX_1000_Handbook_en.pdf\",\r\n    \"type\": \"Handbook\",\r\n    \"language\": \"en\",\r\n    \"device\": \"OPTIFLUX 1000\",\r\n    \"pages\": [\r\n      8\r\n    ],\r\n    \"images\": [\r\n      {\r\n        \"base64\": \"iVBORw0KG...\",\r\n        \"embedding\": [\r\n          5.934669494628906,\r\n          20.147275924682617,\r\n          7.831840515136719,\r\n          ...\r\n        ],\r\n        \"page\": 8\r\n      }\r\n    ]\r\n  }\r\n]<\/pre>\n<h2>Evaluation der Ergebnisse<\/h2>\n<p>Bei der Evaluierung der Ergebnisse ist es wichtig, sowohl die inhaltliche Korrektheit als auch die Reihenfolge der extrahierten Elemente zu \u00fcberpr\u00fcfen.<\/p>\n<p>Um die Performance unserer Extraktion einsch\u00e4tzen zu k\u00f6nnen, ist es notwendig zu wissen, wie eine komplett korrekte Extraktion aussehen w\u00fcrde. Hierf\u00fcr haben wir sowohl f\u00fcr die reine Textextraktion als auch f\u00fcr die Inhaltsverzeichnisextraktion einige Seiten manuell aus den PDF-Dokumenten kopiert. Um die Eintr\u00e4ge miteinander vergleichen zu k\u00f6nnen, weisen wir jedem mithilfe unseres Codes extrahierten Eintrag einen manuell extrahierten, korrekten Eintrag zu.<\/p>\n<p>Dies machen wir erneut unter Verwendung der Bigram-\u00c4hnlichkeit. Dazu weisen wir jedem extrahierten Eintrag den \u00e4hnlichsten korrekten zu, wobei darauf geachtet wird, dass kein Eintrag doppelt zugewiesen wird. Zur Evaluation der inhaltlichen Korrektheit iterieren wir \u00fcber alle extrahierten S\u00e4tze und berechnen den Durchschnitt aller Bigram-\u00c4hnlichkeitswerte. Dadurch erhalten wir einen Wert zwischen 0 und 1 der angibt, wie viele der Bigramme im Durchschnitt \u00fcbereinstimmen.<\/p>\n<p>Zur Evaluation der Reihenfolge iterieren wir \u00fcber alle extrahierten S\u00e4tze und vergleichen den Satz mit allen anderen extrahierten S\u00e4tzen. Hierbei k\u00f6nnen folgende zwei Fehler auftreten:<\/p>\n<p>1. Fehler: Der Index eines extrahierter Satz ist niedriger als der jetzige aber der Index des zugeh\u00f6rigen korrekten Satzes ist h\u00f6her.<br \/>\n2. Fehler: Der Index eines extrahierter Satz ist h\u00f6her als der jetzige aber der Index des dazugeh\u00f6rigen korrekten Satzes ist niedriger.<\/p>\n<p>Nun berechnen wir, in wie vielen unserer Vergleiche kein Fehler auftrat und bekommen ebenso einen Wert zwischen 0 und 1, der uns ein Ma\u00df f\u00fcr die Korrektheit der Reihenfolge gibt. Diese etwas komplexere Fehlerberechnung basierend auf Vergleichen ist notwendig, da ein Vergleich basierend auf der absoluten Indexposition in diesem Fall nicht aussagekr\u00e4ftig ist. Der Grund hierf\u00fcr ist, dass die Anzahl der extrahierten und tats\u00e4chlich existierenden Elemente meist ungleich ist. Bei einer Verschiebung der Elemente um eine Position w\u00fcrde hier bereits kein Index mehr \u00fcbereinstimmen.<br \/>\nBei unseren Experimenten ergaben sich f\u00fcr Text- und Inhaltsverzeichnisextraktion sowohl bei der Korrektheit des Inhalts als auch der Reihenfolge jeweils Werte zwischen 0.8 und 0.9.<\/p>\n<h3>Fazit<\/h3>\n<p>Die Extraktion von Text, Bildern und Tabellen war aufgrund der Schwierigkeiten, die das Portable Document Format mit sich bringt, alles andere als einfach und funktionierte auch mit geeigneten Bibliotheken nicht komplett fehlerfrei. Mithilfe einiger eigener Ans\u00e4tze gelang es dennoch, s\u00e4mtliche relevante Inhalte aus den PDF-Dokumenten zu extrahieren und deren logische Struktur zu erkennen.<\/p>\n<p>In der Zukunft wollen wir die extrahierten Tabellen ebenfalls in einem geeigneten JSON-Schema ablegen und in Elasticsearch importieren. Hierf\u00fcr m\u00fcssen die Tabellen genauso wie Text und Bilder ihrem jeweiligen Kapiteln zugeordnet werden. Zur Erkennung von Vektorgrafiken wollen wir einen eigenen Ansatz implementieren, der die einzelnen PDF-Seiten zun\u00e4chst zu SVG konvertiert, um daraufhin die gesuchten Bilder identifizieren und extrahieren zu k\u00f6nnen.<\/p>\n<p>Au\u00dferdem wollen wir die extrahierten Bilder und Bild-Embeddings zur Produktidentifikation nutzen. Wir erlauben es Servicetechnikern, Produktbilder von ihrem Einsatz hochzuladen, woraufhin in Elasticsearch basierend auf den Bild-Embeddings das \u00e4hnlichste Bild identifiziert wird. Funktioniert die Suche, handelt es sich bei dem \u00e4hnlichsten Bild um dasselbe Produkt. Nach der Identifikation k\u00f6nnen zus\u00e4tzliche relevante Daten aus den PDF-Dokumenten zur Unterst\u00fctzung des Servicetechnikers zur\u00fcckgegeben werden.<\/p>\n<p>Diese Arbeit wurde im Rahmen des Forschungsprojekts \u201e<a href=\"https:\/\/www.inovex.de\/de\/leistungen\/internet-of-things\/service-meister\/\">Service-Meister<\/a>\u201c durchgef\u00fchrt und gef\u00f6rdert vom Bundesministerium f\u00fcr Wirtschaft und Klimaschutz (BMWK).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Artikel erkl\u00e4rt, wie im Rahmen des \u201eService-Meister&#8220; Forschungsprojekt\u00a0relevante Informationen aus Serviceberichten, Handb\u00fcchern, Anleitungen und allgemeine Ger\u00e4teinformationen gezielt durchsuchbar gemacht wurden, um sie in einer KI-Applikation abrufbar zu machen.<\/p>\n","protected":false},"author":146,"featured_media":32913,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[578,381],"service":[420,76],"coauthors":[{"id":146,"display_name":"Martin Kirchhoff","user_nicename":"mkirchhoff"}],"class_list":["post-29813","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-information-extraction","tag-service-meister","service-apps","service-artificial-intelligence"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten<\/title>\n<meta name=\"description\" content=\"Dieser Artikel beleuchtet die KI-gest\u00fctzte Extraktion von relevanten Textabschnitten, Tabellen und Bildern aus PDF-Dokumenten .\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten\" \/>\n<meta property=\"og:description\" content=\"Dieser Artikel beleuchtet die KI-gest\u00fctzte Extraktion von relevanten Textabschnitten, Tabellen und Bildern aus PDF-Dokumenten .\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-17T17:17:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-21T08:03:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Martin Kirchhoff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten-1024x576.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Martin Kirchhoff\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"14\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Martin Kirchhoff\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/inhaltsextraktion-strukturerkennung-pdf-dokumente\\\/\"},\"author\":{\"name\":\"Martin Kirchhoff\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/9004c1625e4a8e0a32c44ea259ee1806\"},\"headline\":\"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten\",\"datePublished\":\"2021-11-17T17:17:30+00:00\",\"dateModified\":\"2022-11-21T08:03:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/inhaltsextraktion-strukturerkennung-pdf-dokumente\\\/\"},\"wordCount\":2406,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png\",\"keywords\":[\"Information Extraction\",\"Service-Meister\"],\"articleSection\":[\"Analytics\",\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/inhaltsextraktion-strukturerkennung-pdf-dokumente\\\/\",\"url\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/\",\"name\":\"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png\",\"datePublished\":\"2021-11-17T17:17:30+00:00\",\"dateModified\":\"2022-11-21T08:03:05+00:00\",\"description\":\"Dieser Artikel beleuchtet die KI-gest\u00fctzte Extraktion von relevanten Textabschnitten, Tabellen und Bildern aus PDF-Dokumenten .\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png\",\"width\":1920,\"height\":1080,\"caption\":\"PDF Elemente werden auf einer Seite erkannt und extrahiert\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.servicemeister.org\\\/2021\\\/05\\\/11\\\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/9004c1625e4a8e0a32c44ea259ee1806\",\"name\":\"Martin Kirchhoff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/45591b6e9b85bcf08c80d989971786fe24e0fd095dcdb69e6f13e5da02708119?s=96&d=retro&r=gbe22160b16ce56a6a3ef6f58d554ebd5\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/45591b6e9b85bcf08c80d989971786fe24e0fd095dcdb69e6f13e5da02708119?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/45591b6e9b85bcf08c80d989971786fe24e0fd095dcdb69e6f13e5da02708119?s=96&d=retro&r=g\",\"caption\":\"Martin Kirchhoff\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/mkirchhoff\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten","description":"Dieser Artikel beleuchtet die KI-gest\u00fctzte Extraktion von relevanten Textabschnitten, Tabellen und Bildern aus PDF-Dokumenten .","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/","og_locale":"de_DE","og_type":"article","og_title":"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten","og_description":"Dieser Artikel beleuchtet die KI-gest\u00fctzte Extraktion von relevanten Textabschnitten, Tabellen und Bildern aus PDF-Dokumenten .","og_url":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2021-11-17T17:17:30+00:00","article_modified_time":"2022-11-21T08:03:05+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png","type":"image\/png"}],"author":"Martin Kirchhoff","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten-1024x576.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Martin Kirchhoff","Gesch\u00e4tzte Lesezeit":"14\u00a0Minuten","Written by":"Martin Kirchhoff"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/inhaltsextraktion-strukturerkennung-pdf-dokumente\/"},"author":{"name":"Martin Kirchhoff","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/9004c1625e4a8e0a32c44ea259ee1806"},"headline":"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten","datePublished":"2021-11-17T17:17:30+00:00","dateModified":"2022-11-21T08:03:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/inhaltsextraktion-strukturerkennung-pdf-dokumente\/"},"wordCount":2406,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png","keywords":["Information Extraction","Service-Meister"],"articleSection":["Analytics","General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/inhaltsextraktion-strukturerkennung-pdf-dokumente\/","url":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/","name":"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#primaryimage"},"image":{"@id":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png","datePublished":"2021-11-17T17:17:30+00:00","dateModified":"2022-11-21T08:03:05+00:00","description":"Dieser Artikel beleuchtet die KI-gest\u00fctzte Extraktion von relevanten Textabschnitten, Tabellen und Bildern aus PDF-Dokumenten .","breadcrumb":{"@id":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Inhaltsextraktion-und-logische-Strukturerkennung-in-PDF-Dokumenten.png","width":1920,"height":1080,"caption":"PDF Elemente werden auf einer Seite erkannt und extrahiert"},{"@type":"BreadcrumbList","@id":"https:\/\/www.servicemeister.org\/2021\/05\/11\/inhaltsextraktion-und-logische-strukturerkennung-in-pdf-dokumenten\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Inhaltsextraktion und logische Strukturerkennung in PDF-Dokumenten"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/9004c1625e4a8e0a32c44ea259ee1806","name":"Martin Kirchhoff","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/45591b6e9b85bcf08c80d989971786fe24e0fd095dcdb69e6f13e5da02708119?s=96&d=retro&r=gbe22160b16ce56a6a3ef6f58d554ebd5","url":"https:\/\/secure.gravatar.com\/avatar\/45591b6e9b85bcf08c80d989971786fe24e0fd095dcdb69e6f13e5da02708119?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/45591b6e9b85bcf08c80d989971786fe24e0fd095dcdb69e6f13e5da02708119?s=96&d=retro&r=g","caption":"Martin Kirchhoff"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/mkirchhoff\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/29813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/146"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=29813"}],"version-history":[{"count":5,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/29813\/revisions"}],"predecessor-version":[{"id":34329,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/29813\/revisions\/34329"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/32913"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=29813"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=29813"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=29813"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=29813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}