Apache UIMA Bjørn Grathwohl, Sebastian Höfer 8.5.2008 Vorlesung Text Analytics, Prof. Ulf Leser Apache UIMA · Björn Grathwohl, Sebastian Höfer Inhalt • • • • • Was ist UIMA? Architektur und Vokabular Entwickeln mit UIMA Beispiel Weitere Informationen und Quellen Apache UIMA · Björn Grathwohl, Sebastian Höfer 2 Was ist UIMA? (1) • • • • Unstructured Information Management Architecture Framework für Analyse von v.a. unstrukturierten Daten wie Text, aber auch Videos, Bildern, etc. Entwickelt von IBM und seit 2006 Open Source Apache UIMA in Version 2.2.1 • Implementationen für Java und C++ unter der Apache Licence verfügbar Apache UIMA · Björn Grathwohl, Sebastian Höfer 3 Was ist UIMA? (2) Apache UIMA · Björn Grathwohl, Sebastian Höfer 4 Was ist UIMA? (3) Apache UIMA · Björn Grathwohl, Sebastian Höfer 5 Architektur und Vokabular • Analysis Engine • • Annotator Common Analysis Structure (CAS) • • Typed Feature Structure Annotation Apache UIMA · Björn Grathwohl, Sebastian Höfer 6 Analysis Engine (AE) • • • “Hauptapplikation” AE verarbeitet documents (artifacts), extrahiert Informationen und produziert Metadaten über diese (analysis result) Annotator beherbergt Programmlogik einer AE • AE kann aus einem (primitive AE) oder mehreren (aggregate AE) annotators bestehen Apache UIMA · Björn Grathwohl, Sebastian Höfer 7 CAS (1) • • Common Analysis Structure Primäre Datenstruktur und Schnittstelle zum Austausch und zur Repräsentation von Analysedokumenten und -ergebnissen zwischen UIMA Komponenten Apache UIMA · Björn Grathwohl, Sebastian Höfer 8 CAS (2) • Das CAS enthält • artifact / document • • • type system annotations • • Es gibt einen oder mehrere logische views auf dieses, jeweils subject of analysis (sofa) genannt Metadaten, welche das Document oder Teile des Documents beschreiben index über die analysis results Apache UIMA · Björn Grathwohl, Sebastian Höfer 9 CAS (3): Type System • • • • CAS enthält objektbasiertes Typsystem Types bzw. Typed Feature Structures Resultat einer Dokumentanalyse des Annotators Arten: • Primitiv • • Boolean, String, Integer, etc. (Array) Komplex • • • Eingebaute oder eigene Können Features (Properties) haben Vergleichbar mit Objekten in OOP (und werden in Java auch auf solche gemapped) Apache UIMA · Björn Grathwohl, Sebastian Höfer 10 Typed Feature Structure: Annotation • Metadaten über einen Teil eines Dokuments, z.B. Textstelle • Features: • begin, end (Position der Zeichenfolge im Dokument), sofa Apache UIMA · Björn Grathwohl, Sebastian Höfer 11 Entwickeln mit UIMA • Alle Komponenten bestehen aus • • • • • Component descriptor (XML) Code Plug-ins für Eclipse stehen zur Verfügung Skripte zum Testen und Ausführen mitgeliefert Entwickeln eigener oder Verwendung frei verfügbarer Annotatoren (es existieren auch Wrapper für OpenNLP) Apache UIMA · Björn Grathwohl, Sebastian Höfer 12 Beispiel! Apache UIMA · Björn Grathwohl, Sebastian Höfer 13 Fazit • • • • • • Robustes und skalierbares Framework Stetig weiterentwickelt und betreut Gut dokumentiert Leicht zu installieren :-) Gute Integration in Eclipse Performance? • Größtenteils abhängig von den implementierten Algorithmen Apache UIMA · Björn Grathwohl, Sebastian Höfer 14 Weitere Informationen und Quellen • • • Apache Incubator Website: http://incubator.apache.org/uima/ UIMA Wiki http://www.uima.info UIMA Glossar: http://uima.lti.cs.cmu.edu:8080/UCR/pages/static/glossary.html • UIMA SDK bei IBM alphaWorks (alte IBM-Implementation und Semantic-Search-Modul) http://www.alphaworks.ibm.com/tech/uima Apache UIMA · Björn Grathwohl, Sebastian Höfer 15