Automation ist nicht gleich Automation

In Gesprächen mit potentiellen Kunden bekommen wir nicht selten zu hören, dass man bereits einen SDB-Einlese-Automatismus eingeführt habe. Das Problem sei bereits gelöst. Bei näherem Hinsehen wird schnell deutlich, dass die implementierte automatische Datenextraktion mit sehr wenig Automatismus aufwartet und nicht zufriedenstellende Ergebnisse liefert. Die unterschiedlichen Methoden sollen nachfolgend erläutert werden. Es soll vor allem aufgezeigt werden, dass viel mehr möglich ist, als man denkt.

OCR (Optical Character Recognition) und Sicherheitsdatenblätter

„Ja, ich weiß wie Ihre Lösung funktioniert, ich verwende auch OCR für das Einlesen von Sicherheitsdatenblättern.“

OCR bezeichnet die Texterkennung in Bildern. D.h. ein hochgeladenes Bild wird mittels OCR in ein Textformat konvertiert. Es gibt mittlerweile OCR-Lösungen, die zusätzlich viele Metainformationen über die Texte liefern. Schlussendlich werden allerdings nur Texte geliefert. Bei Sicherheitsdatenblättern gibt es immer wieder Anwender, die OCR dafür nutzen. So können Datenblätter, aus denen keine Texte kopiert werden können, lesbar gemacht werden. Die Daten werden aus den gelieferten Texten händisch markiert und übernommen. Das ist immerhin besser als nichts.

Im Rahmen der Datenextraktion verwenden wir zahlreiche verschiedene Verfahren. Dazu gehört auch OCR, um bestimmte Qualitätsaspekte zu ermitteln. OCR alleine reicht bei weitem nicht aus, um Daten aus einem Sicherheitsdatenblatt strukturiert auszulesen oder zu extrahieren.

Je nach Dokumentenqualität können die einzelnen Zeichen nicht sauber erkannt werden. So kann es vorkommen, dass aus einer eins „1“ der kleine Buchstabe „l“ wird. Das passiert mit zahlreichen anderen Zeichen und Wörtern ebenfalls.

Für professionelle Einsätze nutzen wir bei Datalyxt je nach Bedarf entweder fertige Lösungen oder nutzen unser eigenes OCR-System. Für SDBs z.B. haben wir auf Basis von Open Source Lösungen eine eigene speziell auf SDB-Zeichensätze trainierte Lösung im Einsatz.

Data Scraping und Sicherheitsdatenblätter

„Das ist doch Data Scraping. Eure Lösung benötige ich nicht, es gibt schließlich unzählige freie Alternativen im Netz.“

Data Scraping wird häufig im Kontext von Webdaten verwendet (Web Scraping). Bestimmte Eigenschaften werden hierbei aus einer Webseite strukturiert erfasst. Dies machen wir seit 2016 als Teil unserer Web-Suchmaschine SonarBox und beliefern zahlreiche Unternehmen automatisiert mit Webdaten. SdbHub ist tatsächlich aus dem Kontext von SonarBox hervorgegangen. Die zugrundeliegende Technologie-Plattform ist sehr ähnlich.

Auch bei Web Scraping müssen Modelle oder Regeln definiert werden, die Daten ausschließlich Webseiten sauber erfassen. Je nach Fall kann das Anlernen eines Modells relevant sein und in anderen Fällen reichen ein paar Heuristiken und reguläre Ausdrücke aus. Vor allem, wenn Informationen Webseiten übergreifend erfasst werden müssen, ist die Entwicklung entsprechender Domänen übergreifender KI-Modelle mit Webseiten-Verständnis auf jeden Fall notwendig.

Genau dies ist auch bei SDBs der Fall. Es gibt keine fertigen nichtkommerziellen Lösungen, die Sie für die SDB-Digitalisierung verwenden können, die eine sehr hohe Datenqualität liefern.

GitHub und Sicherheitsdatenblätter

„Meine Kollegen haben gesagt, es gibt fertige Lösungen auf GitHub.“

Ja, es gibt auf GitHub ein paar Implementierungen. Eine davon kommt von meinen ehemaligen Studenten am KIT. Zusammen mit dem FZI und KIT hatten wir 2019 ein Seminar durchgeführt. Hier entwickelten Studenten einen Ansatz. Diesen haben Sie damals auf GitHub hochgeladen. Die Zusammenarbeit mit Studenten führen wir immer wieder mit Freuden durch. Studenten arbeiten gerne an spannenden und konkreten Aufgaben aus der Industrie, die praxisrelevant sind und wir erhalten durch die Zusammenarbeit wertvolle neue Impulse und Ideen für innovative Extraktions- und Analyseverfahren.

Hobbyprojekte auf GitHub zum Thema parsen von Sicherheitsdatenblättern (SDB Parser) sind ebenfalls vorhanden. Die sind etwas veraltet, erzeugen mehr Aufwand als Nutzen und haben wenig mit Künstlicher Intelligenz noch mit Maschinellem Lernen zu tun. Hier ein Beispiel.

Keine Frage, GitHub-Projekte sind spannend und wir sind selbst froh, dass es sie gibt. Die Projekte in Bezug auf SDBs sind jedoch weit entfernt von einer verlässlichen und professionellen Lösung.

Robotic Process Automation (RPA)

„Nutzt ihr für die Datenextraktion aus Sicherheitsdatenblättern Robotic Process Automation (RPA)?“

Für die automatisierte Datenerfassung aus SDBs nutzen wir nicht direkt RPA. Man muss sich zunächst im Klaren sein, was RPA überhaupt bedeutet und wie es eingesetzt wird. Das sagt Wikipedia:

„Softwareroboter sind Anwendungen, die auch eine menschliche Interaktion mit Benutzerschnittstellen von Softwaresystemen nachahmen können.[3] Dabei arbeiten Softwareroboter in einer vergleichbaren Art und Weise auf dem User Interface (siehe auch Mensch-Maschine-Interface), wie es ein Mensch würde.“

Wikipedia

Also heißt es zusammengefasst: Ich habe eine Aufgabe, die ich auf dem Bildschirm erledige, ich mache es vor und der Computer macht es dann automatisch nach. Selbstverständlich kann man für seine SDBs eine solche Lösung aufwendig implementieren lassen. Erstens müssen dann allerdings alle SDBs annähernd 100 % gleich aussehen (Länge der Texte, Position, Seite usw.) und zweitens müssen Sie für jeden Lieferanten mindestens eine Regel definieren.

Sind die SDBs nahezu 100 % exakt im Aussehen, funktionieren diese Ansätze sehr gut und liefern qualitativ hochwertige Daten. In allen anderen Fällen ist alles zwischen 0 % und 100 % möglich. Dieser Ansatz ist eine durchaus interessante Überlegung, hat jedoch mehr was mit Roulettespiel zu tun. Er stößt schnell an seine Grenzen. Weder können sie herstellerübergreifend skalieren, noch ist die Wartung einfach.

Wir setzten eine Art RPA für die Annotation von neuen SDBs. Diese wird in der Regel als Annotation von Dokumenten bezeichnet. So lautet auch die Bezeichnung, sowohl intern als auch extern. D.h. wir annotieren Dokumente auch unter Verwendung von RPA-Techniken, um unsere Algorithmen mit neuen Trainingsdaten zu versorgen.

Was unterscheidet SdbHub?

„Was ist der Unterschied zu SdbHub und was nutzt ihr für die Datenextraktion?“

In dem Kontext der Datenerfassung aus SDBs verwenden wir den Begriff der Datenextraktion. Jedoch sind die Begriffe, data capturing, data acquisition, data read out, data retrievel, data analytics im Kontext der Datenextraktion aus SDBs sehr verwandt und im engeren Sinne auch gleichbedeutend.

Also lassen Sie sich durch den technokratischen Wortsalat nicht verwirren: Es geht darum, ob Sie SDB-Daten strukturiert, sauber und einfach erhalten oder nicht. Welche „cutting-edge“-Technologie wie verwendet wird, spielt für Sie als Anwender zunächst keine Rolle. Es geht einzig und alleine um die Ergebnisse. Genau das liefern wir mit SdbHub durch die unterschiedliche Kombination von Verfahren aus dem Maschinellen Lernen.

„Ist das Importieren von SDBs das gleiche, was ihr mit SdbHub macht?“

Es kommt darauf an, was unter Importieren verstanden wird. Es gibt unterschiedliche Ausprägungen:

  • Es kann bedeuten, dass das SDB in der Software als PDF-Datei verfügbar ist. Also wurde die PDF-Datei in die Software importiert, aber es sind daraus keine Daten ausgelesen worden.
  • Es kann bedeuteten, dass das SDB eingelesen wird und geschaut wird, ob seitens des Lieferanten irgendwelche strukturierten Informationen z.B. als XML in die PDF-Datei injiziert wurden. Dies kommt laut unseren eigenen Statistiken aktuell bei einem von 200 SDBs (ca. 0,5 %) vor und ist somit praktisch nicht relevant.
  • Es kann bedeuten, dass aus dem Sicherheitsdatenblatt Datenfelder strukturiert, sauber ausgeschnitten und ausgelesen werden. Diese Daten werden Ihrem Sicherheitsdatenblatt hinzugefügt und z.B. in Ihrem Gefahrstoffkataster zugänglich gemacht. D.h Sie müssen die Daten nicht manuell erfassen.

SdbHub ermöglicht Letzteres.

Zusätzlich beabsichtigen wir in der Zukunft eine Variante herauszugeben, mit der Sie eigenständig das System ganz speziell auf Ihre SDBs antrainieren. Damit erweitern Sie das von uns vortrainierte Modell mit Ihren Daten. Sie erhalten dadurch zusätzliche optionale höchst individualisierte Extraktionsmöglichkeiten für Ihre Sicherheitsdatenblätter. Sie können die Annotation verwenden, müssen es aber nicht. SdbHub ist schließlich auch ohne Ihre Anpassungen sehr präzise.