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

Textanalyse mit UIMA und Hadoop

Jul 17, 2015

Download

Technology

inovex GmbH
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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] !!!!!