Download - Textanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und Hadoop
!!
Hans-Peter Zorn data2day, Karlsruhe, 27.11.2014
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)
3
Die drei V’s in heutigen BigData Architekturen
Volume Hadoop, NoSQL, HDFS,…
Velocity Storm, Spark, Kafka, …
Variety Clickstream, Clickstream, Clickstream ?
4
Mehr als Weblogs:
Strukturiert
Semistrukturiert
Unstrukturiert
MailsVideoclips
TVMitschnitte
Social Media
WebXMLTransaktionale
DatenLogdaten
Stammdaten
DWH
‣ Motivation: Textanalyse & Machine Learning ‣ Pipelines mit Apache UIMA ‣ Skalierung von UIMA Pipelines ‣ Tools ‣ Best Practices und Alternativen
5
Agenda
6
Textanalyse
Klassifikation
Informations-Extraktion
Exploration
Sentiment Analyse, Spamdetection, Mailpriorisierung
Verschlagwortung, Zusammenfassung, Zuordnung von Worten zu Konzepten
Visualisierung, Suche, Trendanalyse
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
8
Maschinelles Lernen
Apotheke SPAM
Einladung CLEAN
31
20
billig
SPAM
CLEAN
40
10
CLEAN
SPAM
Apotheke 5CLEAN
35 71
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
‣ Entwickelt von IBM ‣ Der Apache Foundation gespendet
(in 2006) ‣ OASIS Standard ‣ Technologie „DeepQA“ hinter IBM’s
Watson („Jeopardy“)
10
Apache UIMA
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
‣ 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());
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
14
Sklalierung: UIMA on Hadoop
Corpus
Collection Reader
NLP Pipeline
Writer
Mapper
HDFS
NLP Pipeline
Writer
MapperNLP
Pipeline
Writer
Mapper
Results
Cluster
Workstation
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
‣ Ä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
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
18
Tools: CAS Editor und Eclipse Plugin
‣ NLTK ‣ Python !
‣ Lucene ‣ besitzt einige Analyzer, wird
beispielsweise von Mahout genutzt
!‣ GATE
‣ Ähnlich zu UIMA ‣ Eher akademisches Umfeld
19
Alternativen
‣ 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
‣ 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?
• 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
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.
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/
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] !!!!!