Big Data Textanalyse Der Weg von unstrukturierten Daten zu quantifizierbaren Informationen Christopher Thomsen Senior Consultant & Competence Center Big Data Lead OPITZ CONSULTING Deutschland GmbH Hamburg, 22.09.2015 Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 1 Agenda 1. Text Extraktion 2. Natural Language Processing (NLP) 3. Volltextsuche 4. Text Klassifikation Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 2 1 Text Extraktion Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 3 Mit unstrukturierten Daten arbeiten Keine explizite Struktur Implizite Struktur (Sprachgrammatik) deutlich komplexer und mit zahlreichen Ausnahmen In Rohform dimensionslos Je nach analytischer Betrachtung vieldimensional Logdateien, Sensordaten, XML und JSON Dokumente, Beziehungsgraphen, etc. sind KEINE unstrukturierten Daten! Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 4 Text Extraktion Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 5 Text Extraktion in verschiedenen Technologien Oracle Text: CREATE INDEX my_index ON MyDocs(my_text) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('FILTER CTXSYS.NULL_FILTER SECTION GROUP CTXSYS.HTML_SECTION_GROUP'); tsearch2: UPDATE MyDocs my_index = to_tsvector('german', coalesce(my_text, '')); Apache Lucene: GermanAnalyzer analyzer = new GermanAnalyzer(LUCENE_VERSION); new QueryParser(LUCENE_VERSION, "", analyzer).parse(my_text) Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 6 Entwicklungsprozess von Text Extraktoren Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 7 Text Extraktoren & Classifier in echtzeit Streams Tweety extrahiert und interpretiert Kurznachrichten in Echtzeit. Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 8 2 Natural Language Processing Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 9 Annotation Beschreibt das Anreichern von Text Tokens mit weiteren Informationen. Syntax -- z.B. für den Term "Kindern" - Wortart: Substantiv Wörterbücher - Kasus: Dativ - Genus: Neutrum Regex Part of Speech Annotation - Numerus: Plural Term Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 10 Part-of-Speech Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 11 NLP Funktionalitäten an einem Beispielsatz Moin! Wie geht’s? Mein Name ist „Christopher“. Funktionalität Ausgabe für Beispiel Sentence Detector Moin! Wie geht’s? Mein Name ist „Christopher“. Tokenizer Moin! Name ist Wie geht „Christopher“ . 's ? Mein Christopher Name Finder Part-of-Speech Tagger Moin!_NNP Wie_WRB geht_VBP 's_VBN ?_? Mein_IN Name_NN ist_VBZ „_“ Christopher_NNP “_“ ._. Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 12 3 Volltextsuche Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 13 Was ist Volltextsuche? Was ist der Unterschied zwischen Volltextsuche und einem String Match (z.B. via Regex)? 1. Lexemerkennung 2. Volltextindizierung 3. Lexikalische Informationen für das Ranking 4. Interpretation von Satzbau und Satzzeichen Beispiel: Volltextsuche nach „Neue Informationen schnell gewinnen“ findet in einem Text auch den Abschnitt „durch schnelle Informationsgewinnung“. Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 14 Volltextindizierung Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 15 Volltextsuche Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 16 Ranking & Wichtung Beurteilung der Relevanz eines gefundenen Dokuments gemessen an der FTS-Query. 3 Dimensionen sind hier zu berücksichtigen: Lexical Information -- Wie häufig kommen Suchbestandteile in dem Dokument vor (bzw. wie groß ist die Trefferdichte). Proximity Information -- Wie nahe liegen die Suchbestandteile beieinander. Structural Information -- Wie wichtig ist der Teil des Dokuments, in dem der Suchbegriff vorkommt. Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 17 Demo: OC Expert Search Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 18 4 Text Klassifikation Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 19 Was macht ein Classifier? Wichtige von unwichtigen Dokumenten trennen Dokumente fachlichen Kategorien zuordnen Ähnlichkeiten zwischen Dokumenten bestimmen Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 20 Ein Anwendungsfall: Blogbeiträge klassifizieren Manuelle Klassifikation unvollständig Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 21 Regelbasierte Klassifikation Manuelle Klassifikationsregeln für jeden Pfad eines Decision Trees ImplementierungsMöglichkeiten: IF-THEN Programmierung (z.B. in PL/SQL) oder Regelengine (z.B. Apache Drools) Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 22 Beispielimplementierung: Regelbasierte Klassifikation in Oracle Text Regeln definieren: insert into news_categories values (1,'Vereinigte Staaten','Washington or George Bush or Barack Obama'); insert into news_categories values (2,'Europa','England or Großbritanien or Deutschland'); insert into news_categories values Regeln (3,'Mittlerer Osten','Israel or Iran or Palestina'); werden manuell insert into news_categories values (4,'Asien','China or Pakistan or Indien or Japan'); verwaltet insert into news_categories values (5,'Afrika','Ägypten or Kenia or Nigeria'); insert into news_categories values (6,'Konflikte','Krieg or Soldaten or Militär or Truppen'); insert into news_categories values (7,'Finanzen','Profit or Verlust or Börse'); insert into news_categories values (8,'Technologie','Software or Computer or Oracle or Intel or IBM or Microsoft'); Modellgüte meist unzureichend Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 23 Klassifikation mittels überwachtem Lernen Training Labels Trainings Corpus Text Extraktion DokumentTermMatrix Klassifikations Modell Prediktion Input Dokument Machine Learning Algorithmus Text Extraktion Big Data Textanalyse DokumentTermMatrix Anwendungs Plattform Label © OPITZ CONSULTING GmbH 2015 Seite 24 Beispiel: Präsidentschaftsreden Datensatz: Öentliche Reden von Obama und Romney Präsidentschaftsreden Classifier Document-TermFrequency Matrix Terme mit höchster normierter Korrelation zu einer Dokumentenklasse Obama Romney Big Data Textanalyse © OPITZ CONSULTING GmbH 2015 Seite 25 Klassifikation mittels unüberwachtem Lernen Beim überwachten Lernen werden die Klassen immernoch manuell vorgegeben. Beim unüberwachten Lernen wird nur die Anzahl der Klassen a-priori vorgegeben. „Clusterbildung“ bei drei Variablen (ktive Daten) C1 Count Wort Z Der häufig verwendete KMeans Clusteralgorithmus hat das Ziel, die quadratischen Abstände zwischen allen Punkten und ihren ClusterZentroiden zu minimieren C2 C3 Coun t Big Data Textanalyse Wort Y Co X ort W t un © OPITZ CONSULTING GmbH 2015 Seite 26 Die Evolution der Textanalyse Selbstlernende Suche Kontextsensitive Suche Meta Suche Precission Text Suche 1990 Big Data Textanalyse Volltext Suche 2000 2007 2012 2015+ © OPITZ CONSULTING GmbH 2015 Seite 27