Zum Hauptinhalt springen

Dokumentenzentrierte Analyse

·559 Wörter·3 min
Python Deep Learning Klassifikation Scikit Learn Maschinelles Lernen Pipeline LLM Topic Model TF/IDF PyTorch Computer Vision Stimmungsanalyse Numpy OpenCV Information Retrival Knowledge Graph SQL Docker CI/CD Kafka Vue.js JavaScript Git

In diesem Projekt wurde eine Plattform zur automatisierten Analyse von PDF-Dokumenten entwickelt. Die Plattform bietet eine Vielzahl an Verarbeitungs- und Analysemöglichkeiten, die es erlauben, große Mengen an Dokumenten effizient zu analysieren und zu klassifizieren. Im Fokus der Entwicklung standen moderne Machine Learning Methoden, Natural Language Processing (NLP) und das Erstellen eines Knowledge Graphs.

Verarbeitungs- und Analysemöglichkeiten #

1. Aufteilen von zusammengefügten PDF-Dateien #

Ein zentrales Feature der Plattform ist die Möglichkeit, zusammengefügte PDF-Dateien in separate Dokumente aufzuteilen. Hierfür wurden verschiedene Klassifikationsalgorithmen entwickelt, die die Start- und Schlussseiten der einzelnen Dokumente erkennen. Durch die Klassifizierung der Seiten konnte der genaue Punkt des Übergangs von einem Dokument zum nächsten bestimmt werden.

2. Themenklassifizierung #

Für die thematische Klassifizierung der Dokumente wurde ein Topic-Model auf Basis von Latent Dirichlet Allocation (LDA) verwendet. LDA ist ein probabilistisches Modell, das Dokumenten Themen zuordnet, basierend auf der Verteilung von Wörtern innerhalb der Texte. Dadurch konnte eine effiziente thematische Einordnung der Dokumente vorgenommen werden.

3. Sentimentanalyse #

Ein weiteres Feature der Plattform ist die Sentimentanalyse, bei der die emotionale Tendenz der Texte (positiv, negativ, neutral) bestimmt wird. Hierfür wurde ein BERT-Modell verwendet, das darauf spezialisiert war. Es wurde von Huggingface bezogen und ermöglicht eine präzise Analyse des Textes auf Satzebene, um die emotionale Ausrichtung der Texte zu bewerten.

4. Eigennamenerkennung #

Für die Named-Entity-Recognition (NER) wurde die Python Bibliothek Spacy mit einem mitgelieferten Modell verwendet. Hiermit wurden Eigennamen wie Personennamen, Orte und Organisationen in den Dokumenten erkannt und extrahiert. NER ermöglichte es, wichtige Entitäten innerhalb der Dokumente zu identifizieren, was besonders hilfreich für die Weiterverarbeitung und den Aufbau des Knowledge Graphs war.

5. Knowledge Graph #

Auf Basis der erkannten Entitäten und den zugrundeliegenden grammatikalischen Strukturen wurde ein Knowledge Graph erstellt. Hierfür wurden Grammatiken und semantische Beziehungen aus den Dokumenten mithilfe von Spacy extrahiert. Der Knowledge Graph ermöglichte es, komplexe Zusammenhänge zwischen Entitäten darzustellen und Wissen aus den analysierten Dokumenten zu extrahieren.

Architektur der Plattform #

Die Plattform basiert auf einer Microservices-Architektur, bei der verschiedene Analyseservices separat bereitgestellt wurden. Zur Kommunikation zwischen den Microservices wurde Kafka verwendet, um die Analyseergebnisse effizient zu verteilen und zu verarbeiten.

Web-Frontend #

Ein benutzerfreundliches Web-Frontend wurde mit Vue.js und Vuetify entwickelt. Das Frontend ermöglichte es den Nutzern, verschiedene Analyseoptionen auszuwählen und die Analyseergebnisse in einer übersichtlichen Form anzuzeigen. Dazu gehörten thematische Klassifizierungen, Sentimentanalysen und der Knowledge Graph.

Bereitstellung #

Die gesamte Plattform wurde mithilfe von Docker-Containern bereitgestellt, um die einzelnen Microservices in einer isolierten und skalierbaren Umgebung zu betreiben. Die Docker-Container wurden auf einer Virtual Machine (VM) gehostet, um eine flexible und portable Infrastruktur zu gewährleisten.

Fazit #

Durch die Entwicklung dieser Plattform konnte eine leistungsstarke und skalierbare Lösung zur Analyse von PDF-Dokumenten bereitgestellt werden. Die Kombination von Themenklassifizierung, Sentimentanalyse, Eigennamenerkennung und dem Aufbau eines Knowledge Graphs ermöglichte es, tiefgehende Erkenntnisse aus großen Mengen an Dokumenten zu gewinnen. Die Microservices-Architektur, gekoppelt mit der Verwendung von Kafka und Docker, sorgte für eine effiziente Verteilung der Arbeitslast und eine robuste Infrastruktur.

Tätigkeiten #

  • Implementierung eines Python-Skripts zur Orchestrierung von Kafka-Messages an diverse Applikationsservices zur Sicherstellung, dass diese in der korrekten Reihenfolge ausgeführt werden
  • Implementierung eines Web-Frontends inklusiver Datenvisualisierungen einzelnen Analysekomponenten mit Vue.js
  • Implementierung und Evaluation von KI-Verfahren zur Aufteilung von PDF-Dokumenten in einzelne Teildokumente
  • Integration einer KI zur Stimmungsanalyse von Dokumenten, basierend auf dem Stimmungsbild einzelner Sätze
  • Extraktion von Subjekten, Objekten und Relationen aus Dokumenten zur Generierung eines Knowledge Graphens
  • Containerisierung der Anwendung mit Docker und Inbetriebnahme der Plattform auf einem Server