Textmining – Klassifikation von Texten Teil 1: Naive Bayes Dept. Informatik 8 (Künstliche Intelligenz) Friedrich-Alexander-Universität Erlangen-Nürnberg (Informatik 8) Klassifikation von Texten 1: Naive Bayes 1 / 16 Klassifikation Definition Gegeben eine Menge von Klassen und Objekten. Bestimme für Objekte (Texte) zu welchen Klassen sie gehören. Empfohlene Literatur: I. Witten, E. Frank: Data Mining: Practical Machine Learning Tools and Techniques T. Mitchell: Machine Learning C. Manning, P. Raghavan, H. Schütze: Introduction to Information Retrieval Paul Graham: A Plan for Spam (WWW) (Informatik 8) Klassifikation von Texten 1: Naive Bayes 2 / 16 Anwendungen Vorverarbeitung: Encoding, Wortgrenzen, Welche Sprache? Filtern von Spam Filtern von pornografischen Inhalten (je nach Anwendung und Anwender) Stimmingsklassifikation (positive, negative Nachrichten) Sortieren nach persönlichen Vorlieben (Spam-Ordner) Einschränkung von Suchen (Suche nur nach Dokumenten einer bestimmten Klasse) Ranking von Suchergebnissen (Informatik 8) Klassifikation von Texten 1: Naive Bayes 3 / 16 Klassifizieren Klassifikator: Jemand, der klassifiziert (Ziel: ein Progamm) Erstellung I Schreibe das Programm von Hand (Reguläre Ausdrücke, . . . ) F F F I Vorgehen: Vorteile: Nachteile: Verwende Maschinelles Lernen und Statistik F F F Vorgehen: Labeling von Beispielen Vorteile: Nachteile: Wir bertrachten nur die letzere Möglichkeit der Erstellung! (Informatik 8) Klassifikation von Texten 1: Naive Bayes 4 / 16 Naive Bayes Wahrscheinlichkeit, dass Dokument d in Klasse c ist: P(c|d) = P(c)P(d|c) P(d) Angenommen 1) wir wollen nur Ranking der Klassen machen und 2) die Termwahrscheinlichkeiten der Klassen sind stochastisch unabhängig Y P(c|d) ∝ P(c) P(tk |c) 1≤k ≤nd {t1 , . . . , tnd } die Token in Dokument d P(tk |c): Wahrscheinlichkeit, dass Term tk in einem Dokument der Klasse c auftritt (Informatik 8) Klassifikation von Texten 1: Naive Bayes 5 / 16 Naive Bayes (2) Beste Klasse: die maximum a posteriori Klasse (MAP Klasse): Y cmap = argmax P̂(c|d) = argmax P̂(c) P̂(tk |c) c∈C c∈C 1≤k ≤nd P̂: Schätzung der Parameter aus den Trainingsdaten Mit log(xy ) = log(x) + log(y ) können floating-point underflow probleme vermieden werden: X cmap = argmax log P̂(c) + log P̂(tk |c) c∈C (Informatik 8) 1≤k ≤nd Klassifikation von Texten 1: Naive Bayes 6 / 16 Maximum likelihood Parameterschätzung Für die Klassenwahrscheinlichkeit: P̂(c) = Nc # Dokumente in Klasse c = N # Dokumente Bedingte Term-Klassenwahrscheinlichkeit: P̂(t|c) = P I I Tct t 0 ∈VOC Tct 0 Tct : Anzahl der Vorkommen von t in allen Dokumenten der Klasse c VOC: Vokubular = Alle Terme aller Dokumente ˆ = 0 für Problem: Sparseness – P(t|c) (Term,Klasse)-Kombinationen die nicht in den Trainingsdaten vorkommen Abhilfe: Laplace-Glättung: Tct + 1 Tct + 1 = P ( t 0 ∈VOC Tct 0 ) + |VOC| t 0 ∈VOC (Tct 0 + 1) P̂(t|c) = P (Informatik 8) Klassifikation von Texten 1: Naive Bayes 7 / 16 Beispiel Trainingskorpus: Doc ID D1 D2 D3 D4 Dokument Sieben Zwerge fraßen sieben Ziegen Sieben Ziegen traten sieben Wölfe Sieben Wölfe fraßen sieben Böcke Sieben Böcke traten sieben Zwerge Klasse e ē e ē Dokument Sieben Böcke fraßen sieben Zwerge Sieben Zwerge fraßen sieben Wölfe Sieben Ziegen traten sieben Zwerge Klasse e e ē Testkorpus: Doc ID D10 D20 D40 (Informatik 8) Klassifikation von Texten 1: Naive Bayes 8 / 16 Beispiel (2) (Informatik 8) Klassifikation von Texten 1: Naive Bayes 9 / 16 Naive Bayes mit Bernoulli-Textmodell (vgl. Folien zum Thema Clustering!) Grundlage: Binäre Dokument-Term-Vektoren der Länge M = |VOC| Terme werden als unabhängig angenommen; Pro Eintrag P̂(t|c): Wahrscheinlichkeit, dass ein Dokument der Klasse c den Term t enthält Parameterschätzung: P(t|c) = Anzahl Dokumente der Klasse c, die t enthalten + 1 Anzahl der Dokumente der Klasse c + 1 Anwendung für Dokument d: " cmap ( # log P̂(t|c) wenn t ∈ d = argmax log P̂(c) + log 1 − P̂(t|c) sonst c∈C t∈VOC (Informatik 8) X Klassifikation von Texten 1: Naive Bayes 10 / 16 Vergleich der Textmodelle Dokument Darstellung Parameterschätzung Entscheidungsregel Mehrfachauftreten Nichtauftreten Durchschnitt für den Term ‘the’ in c Multinomial-Modell einzelne Terme X = t wenn t an der gegebenen Position erzeugt d = ht1 , . . . , tk , . . . , tnd i, tk ∈ VOC P̂(X = t|c) argmax über alle Terme des Dokuments fließt ein wird ignoriert ca. 0.05 (Informatik 8) Klassifikation von Texten 1: Naive Bayes Erzeugungsmodell Zufallsvariablen Bernoulli Modell Dokumente Ut = 1 wenn t im Dokument vorkommt d = [e1 , . . . , ei , . . . , eM ], ei ∈ {0, 1} P̂(Dok. enthält t|c) argmax über alle Terme des Vokabulars wird nicht beachtet fließt ein 1.0 11 / 16 Feature Selection Problemstellung: Welche Terme müssen für gute Performance wirklich betrachtet werden, welche schaden eher? Weniger Terme: Weniger Aufwand und schädlicher Terme werden eliminiert Schädliche Terme: Solche die ‘zufälligerweise’ außschließlich in den Dokumenten einer Klasse auftreten (overfitting) Vorgehen: Gegeben ein Nützlichkeitsmaß A(t, c), wähle die k nützlichsten (Informatik 8) Klassifikation von Texten 1: Naive Bayes 12 / 16 Mutual Information Feature Selection für NB Hypothese: Nützlich sind die Terme, die großen stochstischen Zusammenhang mit den Klassen haben Gegeben ein beliebiges Dokument d und Klasse c. I I Sei Ut Zufallsvariable mit Wert 1, wenn d den Term t enthält und 0 sonst Sei Cc Zufallsvariable mit Wert 1, wenn d zur Klasse c gehört und 0 sonst Wdh. P(Ut = et ) stochastisch unabhängig von P(Cc = ec ), gdw P(Ut = et , Cc = ec ) = P(Ut = et )P(Cc = ec ), Mutual Information (Term t, Klasse c): I(Ut , Cc ) = X X P(Ut = et , Cc = ec ) log2 et ∈{0,1} ec ∈{0,1} P(Ut = et , Cc = ec ) P(Ut = et )P(Cc = ec ) I(Ut , Cc ) = 0 wenn t und c unabhängig, weiterhin I(Ut , Cc ) > 0 wenn t und c abhängig (Informatik 8) Klassifikation von Texten 1: Naive Bayes 13 / 16 χ2 Feature Selection für NB Ein Test auf Unabhängigkeit Sei Net ec die Häufigkeit der Dokumente mit Ut = et und Cc = c und N die Anzahl der Dokumente und weiterhin: Eet ec die erwartete Häufigkeit bei Unabhängigkeit, also Eet ec = N × P(Ut = et ) × P(Cc = ec ) dann ist X2 = X X et ∈{0,1} ec ∈{0,1} (Net ec − Eet ec )2 Eet ec ein Maß für die Unabhängigkeit von t und c (Informatik 8) Klassifikation von Texten 1: Naive Bayes 14 / 16 χ2 Feature Selection für NB (2) Werte für χ2 und die Unabhängkeit p 0.1 0.05 0.01 0.005 0.001 χ2 - Wert 2.71 3.84 6.63 7.88 10.83 Interpretation: I I Wenn unabhängig, dann ist P(X 2 > 6.63) < 0.01 somit abhängig mit 99% Sicherheit (Informatik 8) Klassifikation von Texten 1: Naive Bayes 15 / 16 Warum eigentlich ‘naiv’? Terme sind voneinander unabhängig, gegeben sie Klasse zusätzlich im Multinomial-Modell: Termwahrscheinlichkeit pro Textposition gleich im Bernoulli-Modell: Nur das Auftreten (Nicht-Auftreten) zählt Warum funktioniert NB überhaupt? ⇒ die exakten Wahrscheinlichkeiten sind uninteressant, es zählt der Gesamt-Score Aber auch bei χ2 : Verwendet bei Summen von unabhängigen, standardnormalverteilten Zusfallsvariablen (Informatik 8) Klassifikation von Texten 1: Naive Bayes 16 / 16