REST-Service zur automatischen Klassifizierung von Dokumenten
Sächsische Landesbibliothek — Staats- und Universitätsbibliothek Dresden (SLUB Dresden)
Die heutige Masse an täglich neu veröffentlichten Schriftstücken stellt Bibliotheken beim Katalogisieren vor große Herausforderungen. In diesem Projekt wurde evaluiert, inwiefern Methoden des maschinellen Lernens zur automatischen Klassifizierung eingesetzt werden können. Das Ergebnis ist eine Open‑Source-Software, die auf GitHub veröffentlicht wurde.
Projektkontext
Die Bibliothek SLUB Dresden verwaltet mit dem Dokumentenserver „Qucosa“ viele 10.000 Publikationen, von Dissertation, über Forschungsberichten, bis Zeitschriften und Büchern. Die Einordnung der Publikationen in detaillierte Themenkategorien erfordert leider oft wenig verfügbares Expertenwissen.
Als Klassenschemata kommen z. B. die Dewey Decimal Classification (DDC) oder die Regensburger Verbundklassifikation zum Einsatz. Letztere besteht aus mehreren 100.000 Klassen, sodass eine manuelle Zuordnung selbst für Wissenschaftler mit passendem Suchwerkzeug schwierig ist.
Ziel des Projektes war es zu prüfen, wie gut aktuelle Verfahren aus dem Bereich der Künstliche Intelligenz und des maschinellen Lernens zur automatischen Klassifizierung eingesetzt werden können. Die trainierten Modelle sollten dann mithilfe eines REST-Services zur Nachnutzung zur Verfügung gestellt werden.
Datengrundlage waren die Dokumente und Metadaten des Qucosa-Dokumentenservers, sowie zahlreiche weitere öffentlich verfügbare Datensätze, unter anderem:
- die Metadaten des k10plus
- Informationen zur Regensburger Verbundklassifikation
- Informationen zu weiteren Klassenschemata auf Basis des Coli-Conc-Projektes
Untersucht wurden unter anderem folgende Klassifikationsmodelle:
- k-Nächste-Nachbar Klassifikation (als Baseline)
- Künstliche neuronale Netze (Fully Connected, BERT, Pre-Trained)
- Spezialisierte Verfahren (Omikuji, FastText) mithilfe des Annif-Projektes
Besonderes Augenmerk wurden dabei auf die Evaluierungsmethodik gelegt. Da die Klassenschemata alle hierarchisch aufgebaut sind, kann eine Fehlklassifikation unterschiedlich problematisch sein. Entsprechend wurde ein hierarchisches Bewertungsmaß eingesetzt (siehe „Cesa-Bianchi“), welches eine Fehlklassifikation als Oberkategorie als weniger schlimm bewertet, als eine Fehlklassifikation mit einer nicht näher verwandten Klasse.
Eingesetzte Technologien
Die Software ist in Python geschrieben, und setzt auf verschiedene Open‑Source-Module auf. Die künstlichen neuronalen Netze wurden mit den Modulen PyTorch und Hugging Face Transformers umgesetzt. Weitere Methoden des maschinellen Lernens basieren auf der Softwarebibliothek Scikit-Learn. Die Rest-Schnittstelle ist als OpenAPI und mithilfe von Swagger UI implementiert. Zur Vorverarbeitung der Daten wird Pandas verwendet. Die Ergebnisse werden mit Plotly dargestellt.
Leistungsumfang
Folgenden Leistungen wurden umgesetzt:
- Wissenschaftliche Recherche zu aktuellen Methoden des maschinellen Lernens im Kontext des Projektes
- Verständliche Aufarbeitung der Ideen, Konzepte, Probleme und Einschränkungen zur Weitervermittlung an den Kunden
- Implementierungen der Software, also Zusammenführen verschiedener Datenquellen; Entwicklung, Anpassung und Einsatz der Klassifikationsmodelle und Auswertungsmethoden
- Ausführung der Experimente auf passender Hardware mit Grafikkarten-Beschleunigung
- Präsentation und Beratung zu den Ergebnissen
- Veröffentlichung als Open‑Source-Software auf GitHub
Demo
Die trainierten Klassifikationsmodelle können in folgender Online-Demo getestet werden:
Wir freuen uns auf Ihre Anfrage
Eine Nachricht schreiben
Per Telefon
+49-391-40594560
(Mo. ‒ Fr., 9 ‒ 17 Uhr)
E-Mail schreiben
Navigation
Kontakt
Einstellungen
Rechtliches