Informationsextraktion mit endlichen Automaten

Download Report

Transcript Informationsextraktion mit endlichen Automaten

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)
1
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
2
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.
3
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
4
Kurze Einführung in das Themengebiet
Anwendungsgebiete:

Produktbewertung


Politische Texte


AUTONOMY ETALK
(http://www.autonomy.com/content/News/Releases/2007/0307.en.html)
Blogs


Pang/Lee: Get out the vote: Determining support or opposition from Congressional
floor-debate transcripts
Emails


Hu/Liu: Mining and Summarizing Customer Reviews
Owsley/Sood/Hammond: Domain Specific Affective Classification of Documents
Film- und Buchkritiken

Pang/Lee: Thumbs up? Sentiment Classification using Machine Learning Techniques
5
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
6
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 Filmkritiken
2. Bewertet sie aufgrund der manuell erstellten Lexika
3. Erstellt einen Graph über die Zeit
7
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. 174181, 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 Konjunktionen
2. Paarweise markieren der Adjektive um ein Graph bilden zu können
3. Clustering
4. Zuordnung der Clusters.
Das Experiment:
Corpus: 21 Million Wörter
Genauigkeit: 78% bis 92% (hängt von der Korpusgröße ab)
8
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 Korpus
3. Clustering nach distributiver Ähnlichkeit
4. Verfeinerung der Ergebnisse mit Polarität und Stärke
5. Bildung eines automatischen Lernsystems
Das Experiment:
Korpus: 1001 Sätze
Genauigkeit: 60% - 79% (hängt von Verfeinerung ab)
9
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)
10
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 Textstruktur
Stand 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
11
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 haben
2. Einteilung der Texte in positiv, negativ und neutral durch Extraktion der Bewertung
3. Häufigkeitsanalyse der Adjektive in den positiven und den negativen Texten
4. Bildung von positiver und negativer Wörterliste
5. 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
12
(words_manuell)
Baseline:
Systemarchitektur 1
Verteilung in
positiv/negativ
Datenbank für
Filmkritiken
www.zelluloid.de
Manuelle Erstellung
der Listen
(datenbank_FK)
POS Wörterliste (n) NEG Wörterliste (n)
Positive Texte DB
Negative Texte DB
POS Wörterliste (p)
Freq (f) von POS/NEG.
Wörtern in beiden DB
NEG Wörterliste (n)
DPOS  ( p1 (D)  p2 (D),..., pk (D))

DNEG  (n1 (D)  n 2 (D),...,n k (D))

DPOS  DNEG  DPOS  DNEG  DPOS  DNEG

Bewertung POS  NEG  NEUTR
(main)
13
(words_semiAutomatic)
TreeTagger
Baseline:
Systemarchitektur 2
Verteilung in
positiv/negativ
Datenbank für
Filmkritiken
www.zelluloid.de
Positive Texte DB
Freq (f) count of
words in Database
(datenbank_FK)
Negative Texte DB
7 häufigste POS
Wörterliste (p)
7 häufigste NEG
Wörterliste (n)
POS Wörterliste (p)
Freq (f) von POS/NEG.
Wörtern in beiden DB
NEG Wörterliste (n)
DPOS  ( p1 (D)  p2 (D),..., pk (D))

DNEG  (n1 (D)  n 2 (D),...,n k (D))

DPOS  DNEG  DPOS  DNEG  DPOS  DNEG

Bewertung POS  NEG  NEUTR
(main)
14
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
15
Baseline: Entwicklung einer Lösung

Bildung von Wortlisten aus Adjektiven.


Keyword-Liste von Baseline 1:


Warum? Diese sind gute Indikatoren für die subjektive Meinung.
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.
16
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
17
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
Genauigkeit
Baseline 1
Ties
Testset
Genauigkeit
Ties
...%
Baseline 2
18
Mögliche Verbesserungen

Verbesserung 1:

WO?: in der Funktion compareVectors.py


Verbesserung 2:

WO?: in den KeyWord-Listen


Vergleichsmethode: nach Häufigkeit (Aufsummieren aller Treffe im Text)
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
19
(partikeln_semiAutomatic)
TreeTagger
Verbesserung 3
Freq (f) count of NP
= Partikeln +
Adjektiv in Database
(wordsPartikeln_Automatic)
5 - 10? häufigste NEG. Partikeln
Wörterliste (a) (z.B. kein(e), nicht, ...)
POS Wörter
+
NEG. Partikeln
NEG Wörte Liste 1
(words_semiAutomatic)
7 häufigste POS
Wörterliste (p)
NEG Wörter
+
NEG. Partikeln
(words_semiAutomatic)
7 häufigste NEG
Wörterliste (n)
POS Wörte Liste 1
(main)
(datenbank_FK)
20
Arbeitsschritte und Zeitplan (Vorläufig)
Reviews extrahieren
Corpora 1
Html -> text
Bewertung extrahieren
Reviews extrahieren
Bewertung extrahieren
Vladlena 25.06.2007
Corpora 2
Vladlena 25.06.2007
Aufbereitung
der benötigen
Corpora
Review nach POS
und NEG trennen
Vladlena 10.07.2007
Vladlena 25.06.2007
(datenbank_FK)
Evaluierung der
Corpora (manuell
/halbautomatisch /
automatisch?)
Vladlena 10.07.2007
Key Wörter Manuell
erstellen
(words_manuell)
(main)
Häufigkeit zählen
Stefanie 30.06.2007
Key Wörter halbautom. Erstellen mit
der Hilfe von Tagger
Bau eine
Evaluierungssystem
Häufigkeit vergleichen
Stefanie 30.06.2007
Svetlana 30.07.2007
Svetlana 15.06.2007
Partikeln Wörter
halb-autom. Erstellen
mit der Hilfe von
Tagger
(partikeln_semiAutomatic)
Svetlana 30.06.2007
Verbesserung 3
Verbesserung 2
(wordsPartikeln_Automatic)
Vladlena 20.07.2007
Verbesserung 1
(words_semiAutomatic)
Stefanie 20.07.2007
Svetlana 20.07.2007
21
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
22