1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova,...

22
1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität Heidelberg Seminar für Computerlinguistik Sommersemester 2007 (24.05.2007)

Transcript of 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova,...

Page 1: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

1

Sentiment Analysis

StudienprojektDozenten: Dr. Detlef Prescher, Matthias Hartung

Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi

Ruprecht-Karls-Universität HeidelbergSeminar für Computerlinguistik

Sommersemester 2007 (24.05.2007)

Page 2: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

2

Inhalt Kurze Einführung in das Themengebiet Grundsätzliche Lösungen Unsere Wahl Baseline

Systemarchitektur Entwicklung einer Lösung Testen und Evaluieren

Mögliche Verbesserungen Arbeitsschritte und Zeitplan (Vorläufig) Stabilität der Ergebnisse bei Anwendung an andere Korpora Mögliche weitere Erweiterungen Zusammenfassung Quellenangaben

Page 3: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

3

Kurze Einführung in das Themengebiet

„Sentiment“ / „Semantic Orientation“ (SO) / „Opinion“ ist die subjektive Meinung über einen Gegenstand / Aktion / Prozess; positiver oder negativer Inhalt eines Wortes /Satzes /Textes.

(Taboada et al., 2006) „Sentiment Analysis“

bezeichnet die automatische Auswertung von Texten mit dem Ziel, die Meinung des Verfassers ausfindig zu machen.

(Wikipedia) Grundidee/Hypothese ist folgendes:

man vermutet, das, dass wenn die SO aller relativen Wörter im Text bekannt sind, kann man die SO des ganzen Textes ermitteln.

Page 4: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

4

Kurze Einführung in das Themengebiet

Motivation:

Ständig steigende Informationsmenge im Internet Texte können oft lang und unübersichtlich sein Filterung oft anhand eines Ranking (ohne Sentiment)

________________

Sentement Analysis

Page 5: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

5

Kurze Einführung in das Themengebiet

Anwendungsgebiete:

Produktbewertung Hu/Liu: Mining and Summarizing Customer Reviews

Politische Texte Pang/Lee: Get out the vote: Determining support or opposition from Congressional

floor-debate transcripts Emails

AUTONOMY ETALK (http://www.autonomy.com/content/News/Releases/2007/0307.en.html)

Blogs Owsley/Sood/Hammond: Domain Specific Affective Classification of Documents

Film- und Buchkritiken Pang/Lee: Thumbs up? Sentiment Classification using Machine Learning Techniques

Page 6: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

6

Grundsätzliche Lösungen

Die Interesse an der Sentiment Klassifikation ist momentan von der großen Bedeutung. Die Recherche hat ergeben, dass Sentiment Analysis viele Bereichen involviert wird:

Manuelle oder halbmanuelle Bildung der Lexika Automatische Bildung der Lexika Extraktion von Subjektiven Inhalt Maschinelles Lernen Diskurs Analyse

Page 7: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

7

Grundsätzliche Lösungen

Manuelle oder halbmanuelle Bildung der Lexika

„An operational System for detecting and tracking opinion online discussion“ von Tong, R.M. Working Notes of the ACM SIGIR 2001 Workshop on Operational Text Classification (pp. 1-6). New York, NY: ACM

Das System:1. Findet online Filmkritiken2. Bewertet sie aufgrund der manuell erstellten Lexika3. Erstellt einen Graph über die Zeit

Page 8: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

8

Grundsätzliche Lösungen

Automatische Bildung der Lexika„Predicting the Semantic Orientation of Adjectives“ von Hatzivassiloglou and McKeown in Proceedings of the 35th Annual Meeting of the ACL and the 8th Conference of the European Chupter of the ACL, pp. 174-181, 1997.

(1) The tax proposal was simplistic but well-received by the public.(2) *The tax proposal was simplistic and well-received by the public.

4 Schritt Algorithmus:1. Extraktion von Adjektiven und Konjunktionen2. Paarweise markieren der Adjektive um ein Graph bilden zu können3. Clustering4. Zuordnung der Clusters.

Das Experiment:Corpus: 21 Million WörterGenauigkeit: 78% bis 92% (hängt von der Korpusgröße ab)

Page 9: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

9

Grundsätzliche Lösungen

Extraktion von Subjektiven Inhalt

„Learning Subjective Adjectives from Corpora“ von Wiebe, Janice M. in Proceeding of the 17th National Conference on Artificial Intellegence. Menlo Park, CA: AAAI Press

(1) At several different layers, it‘s a fascinating tale. (subjektiv)(2) Bell Industries Inc. Increased ist quarterly to 10 cents from 7 cents a share. (objektiv)

Vorgehensweise:1. Manuelles Annotieren von Texten

(die Sätze werden nur dann als subjektiv gewertet, wenn mindestens 1 Adjektiv des Sets vorkommt)2. Manuelles Identifizieren dieser Ausdrücke im gewonnenen Korpus3. Clustering nach distributiver Ähnlichkeit4. Verfeinerung der Ergebnisse mit Polarität und Stärke5. Bildung eines automatischen Lernsystems

Das Experiment:Korpus: 1001 SätzeGenauigkeit: 60% - 79% (hängt von Verfeinerung ab)

Page 10: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

10

Grundsätzliche Lösungen Maschinelles Lernen

„Thumbs Up? Semantic Orientation Applied to Unsupervised Classification of Reviews“ von Turney, Peter D. Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics (ACL), Philadelphis, July 2002. pp 417-424.

Vorgehensweise:1. Extraktion der Phrasen nach 5 POS-Mustern (z.B. Adj+Nom, Abv+Adj)2. Bestimmung der SO durch Pointwise Mutual Information and Information

Retrieval (PMI-IR)

3. Berechnung des Mittelwertes der SO für den ganzen Text.

Das Experiment:Korpus: 410 Rezensionen aus 4 verschiedenen Domänen: Auto-, Bank-, Film- und Reisezielrezensionen Genauigkeit: 74% (66% - 84% hängt von Domäne ab)

Page 11: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

11

Grundsätzliche Lösungen

Diskurs Analyse

"Sentiment classification techniques for tracking literary reputation"von Taboada Proceedings of LREC Workshop, "Towards Computational Models of Literary Analysis". Genoa, Italy. May 2006. pp. 36-43.

NB: Berücksichtigen der TextstrukturStand des Projektes: in Prozess Vorgehensweise:

1. Halbautomatische Bildung der Lexika: OS der Adjektive werden mittels AND –Operator der Google Suchmaschine berechnet 2. Es werden die Gewichte den Adjektiven zugewiesen hängen davon, in welchem Teil des Textes (am Anfang, in der Mitte oder am Ende) das Adjektiv vorkommt. 3. Statt den Mittelwert der SO für den ganzen Text zu berechen (die Methode hat sich nicht besonders gut bewiesen), wir der Diskursparser eingesetzt. Dieser bestimmt Haupt- und Nabensätze und die Relationen zwischen den beiden. 4. Die Hauptsätze werden extrahiert und nur von diesen wird anhand der Lexika die SO berechnet.

Das Experiment:Korpus: literarische Kritiken über 6 Autoren

Page 12: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

12

Unsere Wahl „Thumbs up? Sentiment Classification using Machine Learning

Techniques” von B.Pang and L.Lee in Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP), pp. 79--86, 2002.

Vorgehensweise:1. Korpus aus ausgewählte Filmkritiken die eine Bewertung haben2. Einteilung der Texte in positiv, negativ und neutral durch Extraktion der Bewertung3. Häufigkeitsanalyse der Adjektive in den positiven und den negativen Texten4. Bildung von positiver und negativer Wörterliste5. Optimierung der gewonnenen Sets

Warum? Einfachere Lösung Liefert gute Ergebnisse Besonders gut geeignet, weil Filmkritiken bewertet werden Interesse, ob es genauso gut für das Deutsche funktioniert

Page 13: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

13

Verteilung in positiv/negativ

Datenbank für Filmkritiken

www.zelluloid.de

Manuelle Erstellung der Listen

Baseline: Systemarchitektur 1

Freq (f) von POS/NEG. Wörtern in beiden DB

NEG Wörterliste (n)

(main)

Positive Texte DB Negative Texte DB

DPOS < DNEG ∨DPOS = DNEG ∨DPOS > DNEG

Bewertung =POS∨NEG∨NEUTR

DPOS = (p1(D) + p2(D)+,...,+pk (D))

DNEG = (n1(D) + n2(D)+,...,+nk (D))

POS Wörterliste (n)

(main)

(words_manuell)

(datenbank_FK)

POS Wörterliste (p)

NEG Wörterliste (n)

Page 14: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

14

Baseline: Systemarchitektur 2

Datenbank für Filmkritiken

www.zelluloid.de

Freq (f) von POS/NEG. Wörtern in beiden DB

7 häufigste NEG Wörterliste (n)

7 häufigste POS Wörterliste (p)

(main)

(words_semiAutomatic)

Verteilung in positiv/negativ

Positive Texte DB Negative Texte DB

DPOS < DNEG ∨DPOS = DNEG ∨DPOS > DNEG

(datenbank_FK)

Bewertung =POS∨NEG∨NEUTR

DPOS = (p1(D) + p2(D)+,...,+pk (D))

DNEG = (n1(D) + n2(D)+,...,+nk (D))

POS Wörterliste (p)

NEG Wörterliste (n)

Freq (f) count of words in Database

TreeTagger

Page 15: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

15

Baseline: Entwicklung einer Lösung

Corpus:

Quelle: Filmkritiken von zelluloid.de Format: html-Texte Anzahl der Texte: 1054? (hängt von der Erstellung ab) Erstellung: automatisch/halbautomatisch? Automatische Bildung von 2 Datenbanken: positiv (100-55%) und negativ

(0-45%) Verteilung der Daten in Development- und Testsets:

MainSet: ca 554 Texten Developmentset: ca. 300 Texte Testset: ca. 300 Texte

html -> txt

Page 16: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

16

Baseline: Entwicklung einer Lösung

Bildung von Wortlisten aus Adjektiven. Warum? Diese sind gute Indikatoren für die subjektive Meinung.

Keyword-Liste von Baseline 1: Manuelle Erstellung der Liste anhand der Gefühl/Häuftigkeit

Keyword-Liste von Baseline 2: Automatische Erstellung der Liste anhand der Häufigkeit. txt - > TreeTagger - > getaggt.txt Aus dem getaggt.txt werden die Adjektive, Adverbien(?) und

Satzendzeichen (!, ?) genommen und die Frequenzlisten gebildet. Die häufigsten 7 (?) werden in die Keyword-Liste integriert.

Page 17: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

17

Baseline: Entwicklung einer Lösung

Funktion findKeyWord.py: Input: text.txt, POSKeyWordList.txt, NEGKeyWordList.txt Output: Dokumentvektor

doc1(POS)={word1: x-mal, word2: y-mal, ..., wordn: z-mal} doc1(NEG)={word1: x-mal, word2: y-mal, ..., wordn: z-mal}

Funktion compareVectors.py: Input: Dokumentenvektoren Vergleichsmethode: nach Vorkommen im Text Output: Bewertung (positiv, negativ, neutral) Der Output wird in eine Datei namens resultsForPOS.txt und

resultsForNEG.txt abgespeichert

Page 18: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

18

Baseline: Testen und Evaluieren

Test 1: Input: Developmentset Output: Genauigkeit (wie viele Dokumenten richtig erkannt wurden)

und Ties (wie viele POS/NEG Dokumenten als neutrale erkannt wurden)

Test 2: Input: Testset Output: Genauigkeit und Ties

Erstellen einer Vergleichsübersicht

Projektversion Developmentset Testset

Genauigkeit Ties Genauigkeit Ties

Baseline 1 ...%

Baseline 2

Page 19: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

19

Mögliche Verbesserungen

Verbesserung 1: WO?: in der Funktion compareVectors.py

Vergleichsmethode: nach Häufigkeit (Aufsummieren aller Treffe im Text)

Verbesserung 2: WO?: in den KeyWord-Listen

Hinzufügen von Gewichtung anhand der Frequenzen

Verbesserung 3: WO?: in den KeyWord-Listen

Hinzufügen von negativen Partikeln wie „kein“, „nicht“ an die Wörter in den Listen

Page 20: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

20

NEG Wörte Liste 1

POS Wörte Liste 1

Verbesserung 3

POS Wörter + NEG. Partikeln

NEG Wörter + NEG. Partikeln

5 - 10? häufigste NEG. Partikeln Wörterliste (a) (z.B. kein(e), nicht, ...)

(partikeln_semiAutomatic)

Freq (f) count of NP = Partikeln + Adjektiv in Database

TreeTagger

(main) (datenbank_FK)

7 häufigste NEG Wörterliste (n)

7 häufigste POS Wörterliste (p)

(words_semiAutomatic)

(words_semiAutomatic)

(wordsPartikeln_Automatic)

Page 21: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

21

Reviews extrahieren

Key Wörter halb-autom. Erstellen mit der Hilfe von Tagger

Arbeitsschritte und Zeitplan (Vorläufig)

Corpora 1

Corpora 2

Aufbereitung der benötigen Corpora

Evaluierung der Corpora (manuell /halbautomatisch / automatisch?)

Key Wörter Manuell erstellen

Häufigkeit zählen Bau eine Evaluierungssystem

Verbesserung 1Verbesserung 2Verbesserung 3

Vladlena 25.06.2007

Vladlena 10.07.2007 Vladlena 10.07.2007

Svetlana 15.06.2007

Svetlana 30.07.2007

Svetlana 20.07.2007

Stefanie 30.06.2007

Stefanie 20.07.2007Vladlena 20.07.2007(wordsPartikeln_Automatic)

(partikeln_semiAutomatic)

(datenbank_FK)

(words_semiAutomatic)

(words_manuell)

Partikeln Wörter halb-autom. Erstellen mit der Hilfe von Tagger

Svetlana 30.06.2007

Bewertung extrahieren

Reviews extrahieren

Bewertung extrahieren

Html -> text

Review nach POS und NEG trennen

Vladlena 25.06.2007

Vladlena 25.06.2007

Häufigkeit vergleichen

Stefanie 30.06.2007

(main)

Page 22: 1 Sentiment Analysis Studienprojekt Dozenten: Dr. Detlef Prescher, Matthias Hartung Svetlana Dedova, Stefanie Pischek, Vladlena Belinschi Ruprecht-Karls-Universität.

22

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. 174-181.

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), 2002. pp. 79-86.

Taboada: Sentiment classification techniques for tracking literary reputation.In Proceedings of LREC Workshop, ‘Towards Computational Models of Literary Analysis‘. Genoa, Italy, May 2006. pp. 36-43.

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. 1-6.

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 2002. pp 417-424.

Wiebe, Janice M.: Learning Subjective Adjectives from Corpora. In: Proceeding of the 17th National Conference on Artificial Intellegence. Menlo Park, CA: AAAI Press