Sentiment Analysis und Ontologien Universität zu Köln Sprachliche Informationsverarbeitung Künstliche Intelligenz Dozent: C. Neuefeind 13.06.2012 Linus Franzke und Carina Berning
Inhalt Was ist Sentiment Analysis? Gründe für SD Social Web/Semantic Web Grundlagen Tokenisierung Textklassifikation Naive-Bayes-Klassifikator Ontologien Was sind Ontologien? Ontologiesprachen Erstellung einer Ontologie / Protégé Probleme Anwendungsbereiche der SD 2
Was ist Sentiment Analysis? Auch: Sentiment Detection Stimmungserkennung Methoden aus Statistik, maschinellen Lernen, etc. Benutzt u.a. zu kommerziellen Zwecken Unternehmen, Einkaufsportale, etc. Domänespezifisch (Horrorfilm vs. Liebesfilm) 3
Was ist Sentiment Analysis? Ziel: Analyse menschlicher Sprache Analyse von Kommentaren/Meinungen Grundstimmung soll ermittelt werden Ist der Kommentar positiv? Oder ist er negativ? 4
Gründe Informationsflut, stetiges Wachstum Entwicklung des Internets Social Web 5
6
Exkurs: Social Web Kommunikation über das WWW durch Verlinkung Social Networks verbinden Menschen Individuelle Einbringung der Nutzer Prosumer Vom Wissenspool zum Netz der User 7
Exkurs: Social Web Das Internet wird stärker in das tägliche Leben integriert Geschäftsabwicklungen Einkäufe/Verkäufe Pflegung sozialer Kontakte etc. 8
Die Grundlagen für die Sentiment Analysis 9
Sentiment Analysis Model Dokumente Dokumentvorverarbeitung Dokumentanalyse Sentiment Klassifikation z.b. Tokenisierung Stemming POS tagging Negation tagging Ergebnis 10
Tokenisierung Wortbegrenzung und Satzsegmentierung Segmentierung in sogenannte Tokens White space Tokenisierung z.b. Das ist ein Satz. Das ist ein Satz. Sprachspezifische Probleme: z.b. これは 文 です 11
Weitere Aufgaben: 1. Abkürzungen erkennen und isolieren: etc., sog., usw. 2. Interpunktionen und Sonderzeichen erkennen:!,?, @,, $, (, ), / 3. kontrahierte Formen expandiere: That's awesome. That is awesome. 4. komplexe Tokens erkennen und isolieren: 1 Token: 1 000 000, email@gmx.de 1 Token oder mehr: Bill Gates 5. ggf. Tokens normalisieren: {U. S. A. USA U. S. of America} -> U. S. A 12
Segmentierung Grundidee: Sätze an satztrennenden Interpunktionszeichen trennen Problem: Punktambiguität Lösung: Algorithmus zur Punktdesambiguierung Der Punkt ist ein Abkürzungspunkt, falls das Token in einer Abkürzungsliste steht; nach dem Token [, ;a-z] folgt; das Token kleingeschrieben ist, aber der Teil ohne den Punkt nicht im Lexikon steht; das Token grossgeschrieben ist, eher häufig vorkommt und im Text nicht ohne den Punkt vorkommt. 13
Stemming Gleiche Wörter in verschiedenen Formen werden nicht wiedererkannt Stemming-> reduzierung von Wörtern zu ihrem Stamm am, are, is be car, cars, car s, cars car 14
Porter Algorithmus 5 Phasen der Wortreduktion Wörter werden nach bestimmten Regeln reduziert Rule SSES SS IES I SS SS S Example caresses caress ponies poni caress caress cats cat Prüft ob eine Reduktion sinnvoll ist, anhand der Anzahl der Silben 15
Verschiedene Stemmer Sample text: Such an analysis can reveal features that are not easily visible from the variations in the individual genes and can lead to a picture of expression that is more biologically transparent and accessible to Interpretation Lovins stemmer: such an analys can reve featur that ar not eas vis from th vari in th individu gen and can lead to a pictur of expres that is mor biolog transpar and acces to interpres Porter stemmer: such an analysi can reveal featur that ar not easili visibl from the variat in the individu gene and can lead to a pictur of express that is more biolog transpar and access to interpret Paice stemmer: such an analys can rev feat that are not easy vis from the vary in the individ gen and can lead to a pict of express that is mor biolog transp and access to interpret 16
Sentiment Klassifizierung Einteilung von Dokumenten in Klassen 2 Klassen: positiv und negativ Supervised learning Stimmungswörter sind von Bedeutung 17
Klassifikation basierend auf Sentiment Phrasen basiert auf der Arbeit von Turney zur Klassifizierung von Reviews macht nutzen vom part-of-speech(pos) tagging Extrahiert Phrasen, die Adjektive und Adverbien enthalten und einem bestimmten Muster entsprechen Berechnet die semantic/opinion orientation der Phrase Berechnet den Durchschnittlichen SO aller Phrasen in einem Review Genauigkeit: 84% bei Auto-reviews, 66% bei Film-reviews 18
Klassifizierung durch Textklassifizierungs-Methoden Einfachste Ansatz: Behandlung als themenbasierende Textklassifizierung Jeder herrkömmliche Textklassifizierungsalgorithmus: naive Bayes,SVM etc. Getestet von Pang et al. an Filmreviews: nur positive und negative, keine neutrale Reviews, kein Stemming oder stopword-removal Genauigkeit: naive Bayes-81%, SVM-82,9% 19
Klassifizierung durch eine score function von Dave et al. für jedes Wort im Trainingsset wird ein Wert berechnet: (Pr(t i C)-Pr(t i C'))/(Pr(t i C)+Pr(t i C'))=score(t i ), wobei t i das Wort und C die Klasse, C' das Komplement von C(nicht C) und Pr(t i C) die Wahrscheinlichkeit, dass t i in C ist, ist. zur Klassifizierung neuer Dokumente: Addition aller Wert, wenn Summe>0, dann ist das Dokument aus Klasse C Genauigkeit:84,6-88,3% 20
Bayes Klassifikation Statistische Klassifikationsmethode Mit welcher Wahrscheinlichkeit gehört ein Objekt zu einer Gruppe 21
Naive Bayes Basiert auf Bayes-Theorem lernend durch Trainingsdaten Gültigkeit der Unabhängigkeitsannahme naiv in der Praxis nicht immer gültig Die möglichst beste Klasse soll ermittelt werden 22
Naive Bayes Menge an Dokumenten: Bag of Words Menge an Klassen: prior probability Wahrscheinlichkeit, das der Term im Dokument der Klasse c auftaucht 23
Klassifizierung basierend auf Ontologien vielseitig anwendbar: zur Klassifikation selbst oder unterstützend z.b. Ontologie mit Adjektiven und Adverbien, die einer positiven und negativen Klasse zugeordnet werden Abgleich des Dokuments mit Ontologie 24
Ontologien - Defintion Generell: Viele verschiedene Definitionen geordnete Darstellung von Begrifflichkeiten und deren Beziehungen An Ontology is a formal, explicit specification of a shared conceptualisation Dieter Fensel 25
Ontologien Definition (ii) Domänenspezifisch 26
Erstellung Bestimmung eines Themen- und Anwendungsbereichs (Domäne) Competency Questions Vorhandene Ontologien? Begriffe sammeln Festlegen von Klassen und Klassenhierarchien Definition von Relationen Erstellung von Instanzen 27
Erstellung Bestimmung eines Themen- und Anwendungsbereichs (Domäne) Competency Questions Vorhandene Ontologien? Begriffe sammeln Festlegen von Klassen und Klassenhierarchien Definition von Relationen Erstellung von Instanzen 28
Erstellung Bestimmung eines Themenbereichs z.b. : Film Für eine Anwendung, mit der ein User Filminfos und Empfehlungen für weitere Filme erhalten kann, soll eine Ontologien als Wissensbasis erstellt werden 29
Erstellung Bestimmung eines Themen- und Anwendungsbereichs (Domäne) Competency Questions Vorhandene Ontologien? Begriffe sammeln Festlegen von Klassen und Klassenhierarchien Definition von Relationen Erstellung von Instanzen 30
Erstellung Bestimmung eines Themen- und Anwendungsbereichs (Domäne) Competency Questions Vorhandene Ontologien? Begriffe sammeln Festlegen von Klassen und Klassenhierarchien Definition von Relationen Erstellung von Instanzen 31
Erstellen Sammeln von Begriffen für die Ontologie Genre Titel Schauspieler Produzent Film Filmmusik Regisseur Land Laufzeit Erscheinungs datum 32
Erstellung Bestimmung eines Themen- und Anwendungsbereichs (Domäne) Competency Questions Vorhandene Ontologien? Begriffe sammeln Festlegen von Klassen und Klassenhierarchien Definition von Relationen Erstellung von Instanzen 33
Erstellung Erstellung von Klassen u. Klassenhierarchien Film Genre Person Fantasy Klasse Klasse Unterklasse von Genre Klasse Schauspieler Regisseur Produzent Unterklasse Unterklasse Unterklasse 34
Erstellung Bestimmung eines Themen- und Anwendungsbereichs (Domäne) Competency Questions Vorhandene Ontologien? Begriffe sammeln Festlegen von Klassen und Klassenhierarchien Definition von Relationen Erstellung von Instanzen 35
Erstellung Definition von Relationen hatkomponiert Filmmusik istmusikvon hatmusik wurdekomponiert Film Komponist 36
Erstellung Bestimmung eines Themen- und Anwendungsbereichs (Domäne) Competency Questions Vorhandene Ontologien? Begriffe sammeln Festlegen von Klassen und Klassenhierarchien Definition von Relationen Erstellung von Instanzen 37
Erstellung Erstellen der Ontologie mit Protégé Mittlerweile sind wenig Kenntnisse nötig, Editoren erleichtern die Arbeit :-) 38
Probleme beim Opinion Mining Sarkasmus Unterscheidung zwischen Fakten und Meinungen Kontext/Domänenabhänig Bei twitter etc.: Rechtschreibung Reihenfolge von Meinungen Zwischen den Zeilenlesen Negation 39
Sentiment Analysis mit Python Den Code findet ihr hier 40
Anwendungsbeispiele American Idol - Wer gewinnt? Twitter tweetfeel DARPA 41
Diskussion Inwieweit ist die Sentiment Analysis auch in der Zukunft relevant? 42
Quellen Manning, C.: Introduction To Information Retrieval Liu, Bing: Web Data Mining Bang, Po; Lee, Lillian: Opinion Mining and Sentiment Analysis Stuckenschmidt: Ontologien Protégé 43