UIMA
# UIMA

UIMA (Unstructured Information Management Architecture, deutsch Architektur zur Verwaltung unstrukturierter Informationen) ist ein Framework zur Programmierung von Data-Mining-Anwendungen, d. h. zur Wissensextraktion.

Das Projekt UIMA wurde 2005 von IBM gestartet und wird seit Oktober 2006 von Apache betreut. Ziel des Projekts ist es, ein standardisiertes Framework zum Erstellen von Anwendungen zur Verarbeitung unstrukturierter Informationen, insbesondere natürlicher Sprache (Natural Language Processing, NLP) zu bieten. Unstrukturierte Informationen können in beliebigen Formaten vorliegen, z. B. Bild- oder Audio-Daten, jedoch sind Texte die gängigsten Informationen.

Das Konzept von UIMA sieht vor, dass eine Pipeline implementiert wird, in der zunächst Daten eingelesen werden, diese dann verschiedene Analyse- und Verarbeitungsschritte durchlaufen und schließlich an einen oder mehrere sogenannte Verbraucher geliefert werden, die die Ergebnisse verarbeiten, z. B. in einer Datenbank speichern. In jedem einzelnen Analyse-Schritt werden die Daten mit bestimmten Annotationen versehen, d. h. ein definierter Bereich der Datenmenge, also beispielsweise ein Teil des Texts, bekommt eine Anmerkung. Durch die starke Modularisierung in Pipelinestufen können die einzelnen Stufen leicht wiederverwendet werden.

Ein Beispiel für eine Pipeline ist eine simple Anwendung, die die durchschnittliche Anzahl von Wörtern pro Satz in einem Text berechnen soll. Hierzu wird zunächst eine Pipelinestufe benötigt, die den Text einliest, z. B. aus einer Datei. Die zweite Stufe durchläuft den Text und markiert alle Wörter, indem alle Positionen von Leerzeichen im Text ermittelt werden. Die dritte Stufe führt analog dazu eine Satz-Erkennung durch, indem Markierungen von Satzzeichen zu Satzzeichen gesetzt werden. Diese beiden Schritte sind unabhängig voneinander und könnten demnach auch vertauscht werden. Die letzte Pipelinestufe muss nun nur noch die Anzahl markierter Wörter durch die Anzahl markierter Sätze teilen und ausgeben.

Eine Erweiterung könnte nun sein, die Anzahl der Verben pro Satz zu zählen, hierzu würde nach der dritten Stufe eine Wortart-Erkennung eingebaut, die jedes Wort mit einer Annotation wie „Verb“, „Nomen“ usw. versieht, und der Verbraucher würde statt der Wort-Annotationen die Wortart-Annotationen zählen, die „Verb“ entsprechen; alle anderen Teile der Pipeline können wiederverwendet werden. UIMA übernimmt in dieser Anwendung die Verwaltung der Pipeline und die interne Repräsentation der zu verarbeitenden Daten samt Annotationen, außerdem bietet es dem Entwickler alle nötigen Schnittstellen zum Einlesen und Auslesen der Informationen.

UIMA wird insbesondere in der Forschung eingesetzt, entwickelt sich aber auch immer mehr zum Industrie-Standard. Eine der bekanntesten Anwendungen von UIMA ist der Einsatz im IBM Watson.

