Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sentiment Analysis Abschlussvortrag zum Studienprojekt Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Dozenten: Dr. Detlef Prescher, Matthias Hartung.

Ähnliche Präsentationen


Präsentation zum Thema: "Sentiment Analysis Abschlussvortrag zum Studienprojekt Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Dozenten: Dr. Detlef Prescher, Matthias Hartung."—  Präsentation transkript:

1 Sentiment Analysis Abschlussvortrag zum Studienprojekt Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Dozenten: Dr. Detlef Prescher, Matthias Hartung Ruprecht-Karls-Universität Heidelberg Seminar für Computerlinguistik

2 2/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Inhalt 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben

3 3/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Kurze Einführung in das Themengebiet Sentiment: was ist das? Review 1 Divergierende Nuancen von Grau... "Viel Lärm um Nichts" - oder ein Fall der keiner war. Dramaturgisch ein eher belehrender als unterhaltsamer, dafür aber einschüchternd und grau in wirklich allen Facetten, eben ein DDR-Film. Unglaublich, mit welcher Offenheit man selbst noch im Jahre 1989 in der DDR die restriktive und allmächtige Staatsgewalt darstellte. Gerade heute verschlägt es einem die Sprache, wie wenig ein Mensch damals wert war. Der Film an sich ist weniger interessant als vielmehr das Lokalkolorit und die zeitgemässe Darstellung einer Welt, die keiner mehr haben mag. Gott sei dank. Ein Herr Schäuble wünscht sich vielleicht eine derartige Gesellschaftsordnung, damit steht er aber eher alleine da. Es gab wirklich gute Filme von "Polizeiruf", aber das...? Review 2 Es war eher ein Film für meine ältere Schwester, denn ich stand damals noch in den Kinderschuhen, als ich den Film zum ersten Mal sah. Mir gefiel der Anfang so gut. Damals war ich aber noch zu klein um die Story zu verstehen. Vor einigen Jahren sah ich es dann aber mal im TV und war ziemlich baff über die Story. Es ist eine Story, sehr nahe an der Realität, wie sie eigentlich jede Familie erleben könnte. "When a Man loves a Woman" ist keine normale Lovestory, sondern bietet einen interessanten Einblick in eine Familie, deren Mutter alkoholkrank ist. Die Geschichte berührt sehr, vor allem durch die starken Charaktere, gespielt von Meg Ryan und Andy Garcia, sowie die bewegende Leistung von Tina Majorino. Ein Film der sich auf alle Fälle zu schauen lohnt. Er könnte vielleicht sogar einen kleinen Therapieeffekt erwirken.

4 4/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Kurze Einführung in das Themengebiet Sentiment: Definition Sentiment / Semantic Orientation (SO) / Opinion ist die subjektive Meinung über einen Gegenstand / Aktion / Prozess; positiver oder negativer Inhalt eines Wortes /Satzes /Texte [Taboada et al., 2006] z.B. Der Film ist langweilig. Der Film ist sehenswert. Sentiment Analysis bezeichnet die automatische Auswertung von Texten mit dem Ziel, die Meinung des Verfassers ausfindig zu machen.

5 5/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Kurze Einführung in das Themengebiet Motivation / wofür Sentiment Analysis? Ständig steigende Informationsmenge im Internet Texte können oft lang und unübersichtlich sein Filterung oft anhand eines Ranking (ohne Sentiment) ________________ Sentement Analysis Beispiele: Produktbewertung Politik Kritiken Blogs und s

6 6/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Grundsätzliche Lösungen Grundidee/Hypothese: man vermutet, dass, wenn die SO aller relevanten Wörter im Text bekannt sind, man die SO des ganzen Textes ermitteln kann. z.B. Liste=[langweilig(NEG), dilettantisch(NEG), erfolgreich(POS), genial(POS)] Wie werden die Lexika gebildet? Manuelle Bildung der Lexika: mühsam, zeitaufwendig, subjektiv Halbautomatische Bildung der Lexika: z.B. anhand der Wordfrequenzen Automatische Bildung der Lexika: z.B. auf Wortebene, auf Phrasenebene

7 7/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Grundsätzliche Lösungen Wo wird gezählt? Im ganzen Text In den Sätzen mit subjektivem Inhalt : (1) Die erfolgreiche Anwältin Claire Kubik ist seit langem mit dem Ex-Soldaten Tom verheiratet. (objektiv) (2) Diese Rolle war sehr erfolgreich. (subjektiv) Wie wird gezählt? Alle Schlüsselwörter haben gleiche Gewichtung 1:1 Die Gewichtung ist verschieden und von der - Textstruktur - Worthäufigkeit abhängig.

8 8/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Modell Quelle: Thumbs up? Sentiment Classification using Machine Learning Techniques von B.Pang and L.Lee, 2002 Vorgehensweise: 1. Korpus aus Filmkritiken 2. Manuelle und halbautomatische (Frequenzanalyse) Schl ü sselwortlisten aus Adjektiven und Adverbien 3. Z ä hlen der gefundenen Schl ü sselw ö rter nach Token / Type 4. Optimierung der gewonnenen Sets Warum f ü r unser Projekt geeignet? Einfachere L ö sung Liefert gute Ergebnisse Interesse, ob es genauso gut f ü r das Deutsche funktioniert

9 9/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Baseline Normalfall: - Ein Simple Classifier weist Objekte nur einer Klasse zu: alle zur positiven oder alle zur negativen Klasse - Bei Korpusverteilung mit 50% positiven und 50% negativen Texte h ä tte er immer zu 50% Recht. Unserer Fall: - Korpusverteilung: 80% positive vs. 20% negative Texte - Unser Simple Classifier r ä t zu 80%, ins Kino zu gehen - Schwierig diesen Wert zu schlagen, weil 80% f ü rs Experimentieren schon recht hoch eingesetzt ist

10 10/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment : Systemarchitektur Datenbank für Filmkritiken Positive Texte DBNegative Texte DB NEG Wörterliste (q) POS Wörterliste (q) Doc1={t1: n, t2: m,..., tq: x} Freq (f) von POS/NEG. Wörtern in beiden DB Doc1={t 1 POS: n, t 2 POS: m,..., t q POS: x} Doc1={t 1 NEG: n, t 2 NEG: m,..., t q NEG: x} Σ t POS >= oder < Σ t NEG Bewertung: positiv bzw. negativ

11 11/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Korpus CorporaZelluloid.py Positive Review > 55% Negative Review < 45% Vor ca – 116 Seiten, jede Seite hat 9 Reviews Gesammt: 1024 Positive: 818 Negative: 205 Nach ca – ca 10 Seiten (gibt s mehr Zeigt immer die 10te, jede Seite hat 10 Reviews. Ergebniss pos/neg nach jedem extrakt. unterscheided sich (reviews update?) Gesammt: 100 Positive: 87 Negative: 13

12 12/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Korpus Entwicklung Flexible Variablen f ü r: Domain, RelevanteLinks, Regul ä re Ausdr ü cke (Vorteil - wenn die HTML Struktur ä ndert sich, man muss nur Variablen anpassen) 2 Modulen: 1- Class FindReviews mit Hilfsfunktionen 2- Class Corpora_Zelluloid Class FindReviews() readURL readFile writeSource findPageLinks deleteDoubleLinks chooseWorkingLinks findText findRegEx sortReviews findInPage html2Text createDir printSummary Class FindReviews() readURL readFile writeSource findPageLinks deleteDoubleLinks chooseWorkingLinks findText findRegEx sortReviews findInPage html2Text createDir printSummary Class Corpora_Zelluloid() findWorkingLinks CreateFolders RemoveFolders updateFolders main Class Corpora_Zelluloid() findWorkingLinks CreateFolders RemoveFolders updateFolders main

13 13/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Korpus Evaluation - halbautomatisch Gr ü nde f ü r die Evaluation Die Ergebnisse der Suche evaluieren, um sie eventuell anzupassen. Bewertung der Ergebnisse: Precision (Genauigkeit) = Relevant Ausg. / Gesamt Ausg. Recall (Vollst ä ndigkeit) = Relevant Ausg. / Relevant Gesamt Fallout (Effektivit ä t) = Irrelevant Ausg. / Irrelevant Gesamt F-Ma ß F = ( ß * ß + 1) * P * R / ( ß * ß * P + R) Ergebnisse nach F- Ma ß ( ß =1) Vereinfachte Formel: F = 2 * P * R / (P + R)

14 14/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Korpus Evaluation - halbauthomatisch Die Evaluation w ü rde durchgef ü hrt nach Var (Ergebnisse von CorporaZelluloid.py): TotalDownladedReviews = 100 TotalDownloadedPosReviews = 87 TotalDownloadedNegReviews = 13 LengthOfDownloadedReviews = TotalNumberReviews = 100 Var (Manuell): TotalOnlineReviews = 100 TotalOnlinePosReviews = 87 TotalOnlineNegReviews = 13 LengthOfOnlineReviews = (Gez ä hlt im Microsoft Word)

15 15/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Korpus Evaluation - halbautomatisch Ergebniss: All Reviews: Precision: 100 Recall: 100 Fallout: 0.0 F - Mass: 100 Pos Reviews: Precision: 100 Recall: 100 Fallout: 0.0 F - Mass: 100 Neg Reviews: Precision: 100 Recall: 100 Fallout: 0.0 F - Mass: 100 Length of All Reviews Precision: 100 Recall: 99 Fallout: - F - Mass: 99 EvalZel.py This module helps to evaluate links, reviews and rating that 5 we extract from given Corpora (ex. Zelluloid). EvalZel.py This module helps to evaluate links, reviews and rating that 5 we extract from given Corpora (ex. Zelluloid). Class FindReviews() Precision Recall Fallout Fmas printEval EvalZel Class FindReviews() Precision Recall Fallout Fmas printEval EvalZel Mehr von Ergebnissen unter..\eval\EvaluationZel

16 16/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Korpus Korpusverteilung für das Experimentieren Training Set 40% Training Set 40% Development Test Set 30% Development Test Set 30% Final Test Set 30% Final Test Set 30% Korpus 100% Korpus 100% Test Set 60% Test Set 60%

17 17/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Keyword Lists Ziel: Basis f ü r das Experiment zu bilden automatische Wortfrequenzliste aus Adjektiven und Adverbien erstellen passende Sentiment-Zielschl ü sselw ö rter bestimmen Warum Adjektive, Adverbien? gute Indikatoren der subjektiven Meinung erster Startpunkt das Experiment von Lee auf Deutsch nachzumachen Input Korpora -> positiver Korpus -> negativer Korpus F ü r jeden Korpus - separate Wortfrequenzliste

18 18/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Keyword Lists WordFreqSeparate.py tagger.py positive reviews positive reviews negative reviews negative reviews tagged positive reviews tagged positive reviews frequency list out of all ADJ / ADA from positive reviews frequency list out of all ADJ / ADA from positive reviews tagged negative reviews tagged negative reviews frequency list out of all ADJ / ADA from negative reviews manual word selection manual word selection positive word frequency list negative word frequency list

19 19/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Keyword Lists Manuelle Wortauswahl Problem: Wortfrequenzlisten sehen ähnlich aus - > schwierig passende, sentiment- tragende Wörter zu wählen Ergebnis: Positive Liste: gut, besser, best, wirklich, groß, größ, einzig, echt, stark, perfekt, sehenswert, unterhaltsam Negative Liste: einfach, schlecht, gar, schwer, scheinbar, halb, ziemlich, schlimm, langweilig, schwach, flach, relativ Automatische positive Liste Automatische negative Liste

20 20/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Keyword Lists Wortfrequenzlisten aus Grundformen vs. Wortformen WortformlisteGrundformliste Argumente für Frequenzliste aus Grundformen: 1.Es werden die Wörter mit den höchsten Frequenzwerten in die Liste genommen 2.Wortformen sind dagegen über mehrere Zeilen verteilt -> schwierig diese unter einen Nenner zu bringen 3.Das Programm hat ein Flexions-Modul, das diese Aufgabe übernimmt

21 21/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Evaluation EvalSentAnal.py This module evaluates the Results for Sentiment Analysis. It contains the functions evaluation() and printResults()""" EvalSentAnal.py This module evaluates the Results for Sentiment Analysis. It contains the functions evaluation() and printResults()""" Class FindReviews() Evaluation printResults Class FindReviews() Evaluation printResults Evaluationsmaß Precision= Anzahl der richtig gefundenen positiven und negativen Texte / Anzahl der Gesamtkorpusgröße Programmprototyp evaluieren Input: manuell erstellte Keyword Listen Programm: Prototyp Precision: 45.6% => Optimierung

22 22/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung review Text Input Module positive keyword list negative keyword list Keyword Input Module program Output: Geh ins Kino! bzw. Bleib zuhause Sentiment Analysis Module Optimierungen: 1. Keyword Input Module: Varianten der Keywordlisten 2. Sentiment Analysis Module: Source Code Optimierung Zählweise: Token vs. Type Rahmen Gewichtung Negation 3. Text Input Module: getaggte vs. standarte Texteingabe

23 23/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung i. Keyword Listen WO? im Keyword Input Module: manuelle vs. halbautomatische Liste Manuelle Listen: Positive: empfehlenswert, gut, ausgezeichten, sehenswert Negative: stört, schlecht, abzuraten, mieser Halbautomatische Listen: Positive: gut, besser, best, wirklich, groß, größ, einzig, echt, stark, perfekt, sehenswert, unterhaltsam Negative: einfach, schlecht, gar, schwer, scheinbar, halb, ziemlich, schlimm, langweilig, schwach, flach, relativ Precision: 45.6% (manuell) vs. 47% (halbautomatisch)

24 24/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung ii. Source Code WO? im Sentiment Analysis Module Allgemeine Verbesserung des Programmprototypes precision: 47% (alt) vs. 53.3% (neue Version) iii. Zählweise WO? im Sentiment Analysis Module Änderung der Suchmethode precision: 53.3% (Token) vs. 48.3% (Type) iv. Texteingabe WO? im Text Input Module Änderung der Texteingabe wegen falscher Umlauterkennung precision: 53.3% (standard text input) vs. 62.2% (tagged text input )

25 25/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung i. Keyword Listen : neue Versionen von Listen erstellen WO? im Keyword Input Module Problemstellung: 1. Tragen alle Wörter Sentiment in sich wie z.B. halb, scheinbar? 2. Sind manche Wörter zu allgemein wie z.B. gut? Lösung: Erstellen Varianten von Listen NEG_1: einfach, schlecht, gar, schwer, scheinbar, halb, ziemlich, schlimm, langweilig, schwach, flach, relativ NEG_2: wie NEG_1 ohne einfach NEG_3: wie NEG_1 ohne halb NEG_4: wie NEG_1 ohne halb, scheinbar NEG_5: wie NEG_1 ohne halb, scheinbar, einfach POS_1: gut, besser, best, wirklich, groß, größ, einzig, echt, stark, perfekt, sehenswert, interesant, unterhaltsam POS_2: wie POS_1 ohne gut POS_3: wie POS_1 ohne wirklich

26 26/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung Abhängigkeit der Anzahl gefundener negativen Texte von der Anzahl gefundener positiven Texte und der Precision Experiment Keyword Input: NEG_1 mit POS_1/2/3 POS_1 mit NEG_1/2/3/4/5 Text Input: Standarte Texteingabe Tendenz: je mehr man positive Texte findet, desto weniger negative Texte gefunden werden, wächst die Precision auf Kosten der positiven Texte => weiter evaluieren

27 27/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung Evaluation: Kombinieren von 4 Optimierungen Keyword Listen: 6 negativen Listen, 4 positiven Listen 6*4=24 Kombinationsmogligkeiten Texteingabe: standarte und getaggte Zählweise: token und type Keyword Listen: positiv + negativ Standarte TexteingabeGetaggte Texteingabe Zählweise TokenTypeTokenType positive_0 negative_0 positive_... negative_... positive_3 negative_5

28 28/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung Evaluation: Kombinieren von 4 Optimierungen

29 29/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung Zwischenbericht: 1. Alle Testversionen haben ähnliches Verhalten 2. Die Precision wächst nur auf Kosten von positiven Texten wegen der Korpusverteilung (80% zu 20%) 3. Wegen des simple Classifier Problems scheint die Precision nicht allein für die Evaluation zu reichen 4. Weiter optimieren Ausgewählte Versionen für weiteren Optimierungen: Neue Programmversion Getaggte Texteingabe Zählweise nach Type Keyword Listen: alle 24 Kombinationsmöglichkeiten

30 30/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung v. Rahmensuche Grund: Besonderheit der Textstruktur da wir Filmreviews untersuchen besteht ein Text immer aus Inhaltsbeschreibung (2/3) und Bewertung (1/3) die Bewertung befindet sich immer am Ende des Texts (=Rahmen) Annahme 1: das Vorkommen von keywords in der Inhaltsbeschreibung könnte das Gesamtergebnis verfälschen =>daher: Suche beschränken auf den Rahmen Annahme 2: da die keyword-Listen aus dem gesamten Text gewonnen werden, könnten die keyword-Listen schlechte Einträge haben =>daher: Bildung neuer keyword-Listen nur aus dem Rahmen

31 31/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung v. Rahmensuche Realisierung Annahme 1 WO?: im Sentiment Analysis Module: search – Methode Keyword Input Module positive keyword list full automatic (search): check text only in frame Sentiment Analysis Module Text Input Module review negative keyword list full automatic (main): countFreq or count Words

32 32/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung v. Rahmensuche Realisierung Annahme 2 WO?: im Keyword Input Module Keyword Input Module positive keyword list full automatic (search): check text only in frame Sentiment Analysis ModuleText Input Module review negative keyword list full automatic (main): countFreq or count Words Text Cutter positive texts negative texts

33 33/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung v. Rahmensuche Evaluation Annahme 1 Annahme 2

34 34/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung vi. Gewichtung Grund: Unterschiedliche Aussagekraft der keywords nicht alle Einträge in der keyword-Liste sind gleichwertig bezüglich ihrer Aussagekraft Annahme je höher die Position eines keywords in der Frequenzliste, desto aussagekräftiger ist es wenn ein Text nur wenige Treffer in der für ihn richtigen keyword- Liste erzielt, soll die Gewichtung helfen ihn dennoch richtig zu zuordnen Vorgehensweise: die Treffer der Suche werden mit Gewichten anhand der Frequenz versehen

35 35/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung vi. Gewichtung Realisierung WO?: im Sentiment Analysis Module Keyword Input Module positive keyword list full automatic (search): check text only in frame Sentiment Analysis Module Text Input Module review negative keyword list full automatic (main): countFreq or count Words (weights): adds weights to result

36 36/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung vi. Gewichtung Evaluation

37 37/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung vii. Negation Problem: ein keyword besteht nur aus einem Wort, aber es gibt viele negative Ausdrücke, die der Form Negation + positives Wort entsprechen => daher werden oftmals falsche positive Treffer erzielt Lösung 1: unechte Treffer werden nicht gewertet werden Vorgehensweise: bei der Suche wird jedesmal wenn ein Treffer mit der keyword-Liste stattfindet geprüft, ob das vorangehende Wort eine Negation ist (1) ist das voangehende Wort ein Negation, so wird der Treffer verworfen d.h. nicht gezählt (2) ist das vorangehende Wort keine Negation, so wird der Treffer als solcher erkannt d.h. gezählt

38 38/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung vii. Negation Realisierung Lösung 1 WO?: im Sentiment Analysis Module: search – Methode Keyword Input Module positive keyword list full automatic (search): no match when previous word is a negative particle Sentiment Analysis Module Text Input Module review negative keyword list full automatic (main): countFreq or count Words

39 39/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung vii. Negation Evaluation Lösung 1

40 40/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung vii. Negation Lösung 2: WO?: in den KeyWord-Listen Hinzufügen von negativen Partikeln kein und nicht an die Wörter in den Listen WIE?: PosWords = posWords + (negWords with Partikeln) NegWords = negWords + (posWords with Partikeln) Aufteilen des Texts nach Wörtern; kommt ein Partikel nach einem Wort, dann Aufteilen in Partikel + Wort. Damit wir das nächste genommene Wort nicht doppelt haben (Wort, Partikel und Wort), merken wir uns den Platz des Wortes und löschen es. Zählen der Wörter mit Wort.Startswith und ignorieren, was am Ende steht.

41 41/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben NEG Wörte Liste 1 POS Wörte Liste 1 POS Wörter + NEG. Partikeln NEG Wörter + NEG. Partikeln Partikeln Wörterliste kein, nicht (main): countFreq or count Words (datenbank_FK) File mit neg Wörtern File mit pos Wörtern (words_semiAutomatic) ( wordsPartikeln_Automatic ) Das Experiment: Optimierung

42 42/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung Experimente: Mehrere Experimente durchgeführt für Freq.Count und Words Count wie: Wörter wie kein, keine = kein und gut, gutes = gut Satzzeichen ! und ? zählen ? - zählen für negative ! und ? zählen für pos oder neg nur wenn nach pos oder neg Key Wort vorkommt ? zählen nur ein mal Verschiedene Gewichte für ? und ! Mit Hilfe von Zufall entweder positiv oder negativ gewählt Beispiel: Jede 3te nicht als positive oder negative erkannt = negative Mehr von Experimenten unter \eval\EvaluationSentAnalysis\Results_Vladlena

43 43/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Optimierung Ergebnisse: Schlechte Ergebnisse bei Experimenten mit Satzzeichen Beispiel: KeyWordPOS_Stat_1.txt,KeyWordNEG_Man_0.txt Precision: 43,33% Gute Ergebnisse mit Hilfe von Zufall Beispiel: KeyWordPOS_Stat_1.txt,KeyWordNEG_Man_0.txt Precision: 78,666% Mehr von Ergebnissen unter \eval\EvaluationSentAnalysis\Results_Vladlena

44 44/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Das Experiment: Zusammenfassung Zusammenfassung: 1. Die Baseline wurde erreicht, aber nicht geschlagen 2. Alle Testversionen haben ein ähnliches Verhalten 3. Wegen der Korpusverteilung (80% zu 20%) wächst die Precision nur auf Kosten der positiven Texte. 4. Wegen des simple Classifier Problems reicht die Precision allein nicht für die Evaluation aus. 5. Menschliche Faktoren / Schreibstil können die Analyse sehr erschweren Mögliche weitere Optimierung durch: 1. Erstellen eines neuen Evaluationsmaßes 2. Neuer gleichverteilter Korpus 3. Keywordlisten durch anderen Wortarten, z.B. Substantive, Verben erweitern 4. Gewichteverteilung durch Algorithmen berechnen 5. Negationsmöglichkeiten erweitern

45 45/45 1. Kurze Einführung in das Themengebiet 2. Grundsätzliche Lösungen 3. Das Modell 4. Das Experiment - Baseline - Systemarchitektur - Korpus - Keyword Lists - Evaluation - Optimierung: - i. Keyword Listen - ii. Source Code - iii. Zählweise - iv. Texteingabe - v. Rahmen - vi. Gewichtung - vii. Negation - Zusammenfassung 5. Quellenangaben Quellenangaben Gammon, M.: Sentiment classification on customer feedback data: noisy data, large feature vectors, and the role of linguistic analysis. Hatzivassiloglou / McKeown: Predicting the Semantic Orientation of Adjectives. In: Proceedings of the 35th Annual Meeting of the ACL and the 8th Conference of the European Chupter of the ACL,1997.pp Hu / Liu: Mining and Summarizing Customer Reviews. Owsley / Sood / Hammond: Domain Specific Affective Classification of Documents. Pang, B. / Lee, L.: Thumbs up? Sentiment Classification using Machine Learning Techniques. In: Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP), pp Taboada: Sentiment classification techniques for tracking literary reputation.In Proceedings of LREC Workshop, Towards Computational Models of Literary Analysis. Genoa, Italy, May pp Thomas, M. / Pang, B. / Lee, L.: Get out the vote: Determining support or opposition from Congressional floor-debate transcripts. Tong, R.M.: An operational System for detecting and tracking opinion online discussion. Working Notes of the ACM SIGIR 2001 Workshop on Operational Text Classification. New York, NY: ACM. pp Turney, Peter D.: Thumbs Up? Semantic Orientation Applied to Unsupervised Classification of Reviews. In: Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics (ACL), Philadelphis, July pp Wiebe, Janice M.: Learning Subjective Adjectives from Corpora. In: Proceeding of the 17th National Conference on Artificial Intellegence. Menlo Park, CA: AAAI Press


Herunterladen ppt "Sentiment Analysis Abschlussvortrag zum Studienprojekt Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Dozenten: Dr. Detlef Prescher, Matthias Hartung."

Ähnliche Präsentationen


Google-Anzeigen