25
Textanalyse mit UIMA und Hadoop Hans-Peter Zorn data2day, Karlsruhe, 27.11.2014

Textanalyse mit UIMA und Hadoop

Embed Size (px)

Citation preview

Page 1: Textanalyse mit UIMA und Hadoop

Textanalyse mit UIMA und Hadoop

!!

Hans-Peter Zorn data2day, Karlsruhe, 27.11.2014

Page 2: Textanalyse mit UIMA und Hadoop

2

Über mich

‣ seit 2014: Big Data Scientist @ Inovex ‣ 2011-2013: TU Darmstadt, UKP Lab

‣ Etablierung der Hadoop-Infrastruktur ‣ Unterstützung der Forscher bei Textanalyse auf großen Datenmengen ‣ Entwicklung dkpro-bigdata zur Ausführung von UIMA auf Hadoop

‣ 2005-2011: European Media Lab, Heidelberg ‣ u.a. Entwicklung eines Frameworks für Speech Analytics (Textanalyse auf

den Ergebnissen von automatischer Spracherkennung)

Page 3: Textanalyse mit UIMA und Hadoop

3

Die drei V’s in heutigen BigData Architekturen

Volume Hadoop, NoSQL, HDFS,…

Velocity Storm, Spark, Kafka, …

Variety Clickstream, Clickstream, Clickstream ?

Page 4: Textanalyse mit UIMA und Hadoop

4

Mehr als Weblogs:

Strukturiert

Semistrukturiert

Unstrukturiert

MailsVideoclips

TVMitschnitte

Social Media

WebXMLTransaktionale

DatenLogdaten

Stammdaten

DWH

Page 5: Textanalyse mit UIMA und Hadoop

‣ Motivation: Textanalyse & Machine Learning ‣ Pipelines mit Apache UIMA ‣ Skalierung von UIMA Pipelines ‣ Tools ‣ Best Practices und Alternativen

5

Agenda

Page 6: Textanalyse mit UIMA und Hadoop

6

Textanalyse

Klassifikation

Informations-Extraktion

Exploration

Sentiment Analyse, Spamdetection, Mailpriorisierung

Verschlagwortung, Zusammenfassung, Zuordnung von Worten zu Konzepten

Visualisierung, Suche, Trendanalyse

Page 7: Textanalyse mit UIMA und Hadoop

7

Welche Mail möchte ich sehen?

The health test result for NAME_NODE_WEB_METRIC_COLLECTION has become bad: The Cloudera Manager Agent is not able to communicate with this role's web server.

Dear Sir, !I am requesting for your help, to assist me in getting £42,000,000.00 to your account. please do indicate your interest for more information's. !Yours Truly, !From Daniel Klimowicz

Page 8: Textanalyse mit UIMA und Hadoop

8

Maschinelles Lernen

Apotheke SPAM

Einladung CLEAN

31

20

billig

SPAM

CLEAN

40

10

CLEAN

SPAM

Apotheke 5CLEAN

35 71

Page 9: Textanalyse mit UIMA und Hadoop

9

Vorverarbeitung

Tokenisierung Chunking

Stemming Lemmatis- ierung

Part-of-Speech

Satz

Guten Tag

Satz

Mein Name ist

ADJ PRP

Guten Tag Mein Name ist

gut Tag Mein Name sein

Guten Tag Mein Name ist

N N V

Page 10: Textanalyse mit UIMA und Hadoop

‣ Entwickelt von IBM ‣ Der Apache Foundation gespendet

(in 2006) ‣ OASIS Standard ‣ Technologie „DeepQA“ hinter IBM’s

Watson („Jeopardy“)

10

Apache UIMA

Page 11: Textanalyse mit UIMA und Hadoop

Type System

11

UIMA Komponenten

Collection Reader

Analysis Engine

CAS Consumer

• Typesystem • Interoperabilität

• CAS • Common Annotation

Structure • Collection Reader

• XML, PDF etc • Analysis Engine

• Chunker • Parser • Sentiment-Analyse

• CAS Consumer • File • Webservice • Datenbank

CAS

CAS

Page 12: Textanalyse mit UIMA und Hadoop

‣ Konfiguration von Komponenten ‣ Per XML: Component Descriptor !!!!!

‣ Programmatisch: UIMAFit ‣ nutzt z.t. Spring ‣ Automatische Erzeugung von

Deskriptoren aus Java-Annotationen.

12

von Komponenten zur Pipeline

JCas jCas = JCasFactory.createJCas(); jCas.setDocumentText("some text"); AnalysisEngine tokenizer = createEngine(MyTokenizer.class); !AnalysisEngine tagger = createEngine(MyTagger.class); !runPipeline(jCas, tokenizer, tagger); !for(Token token : iterate(jCas, Token.class)) System.out.println(token.getTag());

Page 13: Textanalyse mit UIMA und Hadoop

13

Skalierung: UIMA on Hadoop

Collection Reader

Corpus

Writer

Results

NLP Pipeline

Workstation

UIMA

HDFS

Collection Reader with

HDFSResourceLocator

Corpus

HDFSWriter

Results

NLP Pipeline

Workstation

Page 14: Textanalyse mit UIMA und Hadoop

14

Sklalierung: UIMA on Hadoop

Corpus

Collection Reader

NLP Pipeline

Writer

Mapper

HDFS

NLP Pipeline

Writer

MapperNLP

Pipeline

Writer

Mapper

Results

Cluster

Workstation

Page 15: Textanalyse mit UIMA und Hadoop

15

Skalierung: UIMA AS/DUCC

POS Tagger

QA1

Collection Reader

QA2

!Verschiedene Resultate werden parallel erzeugt

UIMA AS:Asyncronous Scaleout - Verteilt CAS per Message Queue an Workernodes !DUCC ist ein Cluster-Manager für UIMA AS

Page 16: Textanalyse mit UIMA und Hadoop

‣ Ähnlich einer Lambda-Architektur

16

Batch/Realtime kombiniert

Frage UIMAUIMA

UIMA

Batch

Realtime

Wiki- pedia

Web

UIMA

UIMA

MR

HDFS

UIMA

MR

HDFS

UIMA

MR

HDFS

Antwort

Cache

Page 17: Textanalyse mit UIMA und Hadoop

17

Verfügbare Komponenten

UIMA Components Dictionary Annotator, Stemmer, Chunker

Grundfunktionalität

UIMA Ruta Regelbasiert Informations-extraktion

DKPro Core Sammlung von NLP Komponenten des UKP Lab der TU Darmstadt

Hauptsächlich Vorverarbeitung

OpenNLP Sammlung von NLP Komponenten - Apache Projekt

Page 18: Textanalyse mit UIMA und Hadoop

18

Tools: CAS Editor und Eclipse Plugin

Page 19: Textanalyse mit UIMA und Hadoop

‣ NLTK ‣ Python !

‣ Lucene ‣ besitzt einige Analyzer, wird

beispielsweise von Mahout genutzt

!‣ GATE

‣ Ähnlich zu UIMA ‣ Eher akademisches Umfeld

19

Alternativen

Page 20: Textanalyse mit UIMA und Hadoop

‣ Multiword-Extraction !

‣ Beispielsweise für automatische Vervollständigung von Suchbegriffen !!

‣ Statistische Signifikanz einer des paarweisen Auftretens !

‣ Word-count, mittels Map/Reduce, Hive, Spark !

‣ Normalisierung, z.b. Tippfehlernormalisierung, Umlaute ist Vorverarbeitung

20

Anwendungsfall: Mehrwort-Ausdrücke

Page 21: Textanalyse mit UIMA und Hadoop

‣ Einfach anfangen! ‣ Regelbasiert, Lexikonbasiert ‣ Wenn ML, vorgefertigte und einfache Algorithmen

‣ Domäne eingrenzen ‣ Offene Domäne (Watson) extrem schwierig, Forschungsgebiet! ‣ Wenige Klassen (Spam/Kein Spam)

‣ Datenanalyse/Annotationsexperiment ‣ Können Menschen diese Aufgabe überhaupt konsistent lösen? !

‣ Trotzdem: steep learning curve, sicher kein Wochenendprojekt.

21

Was ist realistisch? Kann ich das selbst?

Page 22: Textanalyse mit UIMA und Hadoop

• Was möchte ich wissen? !!

• Kenne ich meine Zielklassen? • Habe ich Trainingsdaten? !

• Wie kann ich evaluieren? !!

• In welchem Format liegen meine Eingangsdaten vor? !!

• Wie schnell brauche ich die Resultate?

22

Schritt für Schritt zur Textanalyse

Page 23: Textanalyse mit UIMA und Hadoop

23

Zusammenfassung

• Auch unstrukturierte Daten sind erschließbar • Textanalyse ist oft Maschinelles Lernen • Vorgefertigte Komponenten existieren • Apache UIMA bietet eine Platform um solche

Komponenten zu einer Applikation zu kombinieren • UIMA und Hadoop sind gut integrierbar.

Page 24: Textanalyse mit UIMA und Hadoop

24

Ressourcen

UIMA: https://uima.apache.org/

OpenNLP: http://opennlp.apache.org/

DKPro Core: https://code.google.com/p/dkpro-core-asl/

DKPro BigData: https://code.google.com/p/dkpro-bigdata/

Page 25: Textanalyse mit UIMA und Hadoop

25

Vielen Dank für Ihre Aufmerksamkeit

Kontakt !Hans-Peter Zorn Big Data Solutions !inovex GmbH Office Karlsruhe Ludwig-Erhard-Allee 6 D-76131 Karlsruhe [email protected] !!!!!