Natürliche Sprache – Versteht doch jeder
Seit Tausenden von Jahren codieren wir Wissen in natürlicher Sprache, vor allem auch in schriftlicher Form z. B. in Büchern, Whitepaper, technischen Dokumentationen oder rechtlichen Texten. In einer Zeit der immer stärker voranschreitenden Digitalisierung und computergestützten Automatisierung sowie Entscheidungsunterstützung durch künstliche Intelligenz fällt jedoch auf, dass (Software) Maschinen nicht in der Lage sind, dieses Wissen zu verstehen. Sie können intrinsisches Wissen, Subtexte oder einen Gesamtkontext nicht begreifen. Der Ansatz softwaregestützter Verarbeitung natürlicher Sprache, um wissensintensive Texte doch zu analysieren und zumindest den Anschein zu erwecken, eine Software würde den Inhalt verstehen, wird Natural Language Processing – kurz: NLP – genannt. Der Kern von NLP ist demnach die Gesamtheit der menschlichen, verbalen oder schriftlichen Kommunikationsweise.
Im folgenden Text spreche ich über Grundlagen sowie mögliche zukünftige Anwendungen von NLP im Cloud-Computing, speziell in den Bereichen Dokumentenmanagement und Geschäftsprozess-Modellierung. In späteren Blogbeiträgen werde ich detaillierter darauf eingehen, was dies für Dokumentenmanagementsysteme und Workflow-Engines wie Fabasoft Contracts oder Fabasoft Approve bedeuten kann.
Stand der Technik
Noch versteht eine Maschine natürliche Sprache nicht so, wie wir es tun. Allerdings sind Maschinen heutzutage schon auf einem sehr guten Weg dorthin! Aktuelle Systeme sollten in der Lage sein, den Sinn einer Frage, codiert in natürlicher Sprache, zu erfassen und in einem vorher trainierten Rahmen und durch Analyse von ebenfalls in natürlicher Sprache codierten Texten zu beantworten. Werbewirksame Beispiele dazu wurden in der Vergangenheit in den Medien diskutiert. Allerdings ist NLP nicht trivial und aktuelle Systeme stoßen schnell an Grenzen.
Es klingt verlockend, einfach einen Algorithmus zu verwenden und „die Maschine zu fragen“. In der Realität funktioniert das (noch) nicht. Ein Softwareprogramm muss mit getaggten Texten starten und durch begleitetes maschinelles Lernen (supervised machine learning) trainiert werden. Dies wird beispielsweise in neun Schritten gemacht:
- Segmentierung von Sätzen
- Tokenisierung von Wörtern
- Identifizieren von Sprachblöcken zu Token
- Verschlagworten von Begriffen (Lemmatisieren)
- Stopwörter identifizieren
- Parsen von Abhängigkeiten
- Substantivgruppen identifizieren
- Eigennamenerkennung (Named Entity Recognition, NER)
- Verknüpfen von Ausdrücken, die auf Eigennamen verweisen
Es wird klar, dass dies bereits für einzelne Sprachen wie Deutsch oder Englisch eine große Herausforderung ist, von Dialekten oder anderen Variationen ganz zu schweigen. Die Ergebnisse wären zudem lediglich die Basis, um weiter mit dieser Sprache arbeiten zu können. Denn: Alle neun Schritte abzuarbeiten sagt noch nichts über die spezielle (technische) Domäne bzw. den Kontext, der mit NLP erarbeitet werden soll aus. Wörter haben unterschiedliche Bedeutungen, wenn sie beispielsweise in der Nautik eingesetzt werden oder in der Finanzwelt Verwendung finden. Glücklicherweise sind die genannten neun Schritte derzeit Stand der Technik, und man kann mit diversen Algorithmen und Entwicklungsumgebungen arbeiten. Unglücklicherweise müssen wir aber, um die Macht von NLP nutzen zu können, das domänenspezifische Wissen korrekt aufsetzen und ein Software-System wie zuvor beschrieben, trainieren. Hier setzt die Forschung im Bereich der „Knowledge Engines“ an.
Knowledge Engines
Ist es möglich, Expertenwissen und menschliche Kompetenzen 1:1 in Software abzubilden? Die Antwort dazu ist ja; heute erleben wir durch die digitale Transformation eine Automatisierung von Rechtsgeschäften, Produkte werden von Algorithmen kreiert und Prozesse sind in der Lage, sich selbst zu optimieren. Zudem passiert dies immer mehr branchenübergreifend und über Landesgrenzen hinweg. Wenn Firmen in der Lage sind, Daten und Wissen aus natürlicher Sprache zu extrahieren, zu sammeln, zu strukturieren und zu verstehen, öffnet dies neue Wege, um uns Menschen automatisiert im Berufsalltag und der Entscheidungsfindung zu unterstützen.
Bekannt sind solche Ansätze schon heute durch Big Data Initiativen und Ideen wie die vorausschauende Wartung von Produktionsmaschinen (Predictive Maintenance). Aber diesmal geht es nicht um die Echtzeitanalyse riesiger Mengen von Maschinen produzierter Daten. Es geht darum, automatisiert Wissen aus einem ganz bestimmten Sektor zu analysieren und beispielsweise mit den Inhalten eines rechtlich bindenden Vertragsdokuments abzugleichen; z. B. einer Vertraulichkeitsvereinbarung oder einem Lieferantenvertrag. Dies würde zu einem neuen Bereich des Wissensmanagements und der Assistenzsysteme führen – den Knowledge Engines.
Ausblick – Was liegt vor uns
Nun, da wir über die grundlegenden Dinge von NLP gesprochen haben, möchte ich einen kurzen Blick in die Zukunft richten. Was wird durch die Kombination von NLP und Knowledge Engines möglich werden? Zunächst geht es um Unterstützung - Assistenzsysteme für den Menschen. In einer immer komplizierteren Welt der digitalen Märkte und Entscheidungen, überhäuft mit unzähligen immer wiederkehrenden Aufgaben, die es zu überblicken gilt, wird eine Forderung an die Digitalisierung klar: Prozesse zu optimieren und zu automatisieren. Das Ziel lautet: Chaos zu vermeiden und die Effizienz zu steigern.
Unser Forschungsfokus ist es, dem Menschen Entscheidungshilfen an die Hand zu geben, welche im Tagesgeschäft je nach Situation durch Methoden, Modelle und Mechaniken eine Art „Integriertes Entscheidungs- und Unterstützungssystem“ (Integrated Decision Support System, IDSS) im Hintergrund bieten.