Text Mining 4. Seminar Klassifikation Stefan Bordag
1. Klassifikation Stringklassifikation (männliche-weibliche Vornamen) Dokument klassifikation Bayesian Neuronal network (Decision tree) (Rule learner) Support vector machine Evaluierung training und evaluierungsset sampling 10-fold Weitere Themen Overtraining Methoden zur Bestimmung, ob Klasse gut oder schlecht Methoden zur Bestimmung, ob zwei Klassen eher zusammengehören
2. Stringklassifikation Eigenschaften von Wortlisten Wortliste: Wurstbrot Wursttheke Käsebrot... Reihenfolge unwichtig Strukturelle Redundanzen: Gleiche Präfixe/Suffixe Eingeschränktes Alphabet: 26 Buchstaben + Sonderzeichen, gegenüber 255 ASCII-Characters
2.1. Tries: Ausnutzen gleicher Präfixe Ein Trie ist ein Baum, die Knoten haben 0 bis N Töchter (N Anzahl möglicher Characters). Beispiel für Markus, Maria, Jutta, Malte M a (root) J u 17 Knoten mit 16 Characters, 16 Kanten. l r t t k i t e u s a a
2.2. Eigenschaften von Tries Name abgeleitet von Information Retrieval Spezielle m-wege Bäume, m ist Kardinalität des Alphabets Knoten ist Vektor mit m Zeigern auf Töchterknoten, implizite Zuordnung Alphabetzeichen und Position Baumhöhe: Länge des längsten gespeicherten Wortes -> Suchzeit linear in Wortlänge Gestalt des Baumes ist unabhängig von Einfügereihenfolge Schlechte Speicherplatzausnutzung (viele leere Pointer) kann vermieden werden durch - Zusammenfassen von Unterbäumen, falls diese nicht verzweigen - Nur Abspeichern der besetzten Zeiger, Angabe über Position erforderlich
2.3. Compact Patricia Trie (CPT) Reduzieren der Kanten durch Speicherung von mehreren Characters in einen Knoten Beispiel für Markus, Maria, Jutta, Malte Ma (root) Jutta< 7 Knoten mit 16 Characters, 6 Kanten. lte< kus< r ia< "<" ist Wortendezeichen
2.4. Speicherung von Zusatzinformationen in CPTs Knoten werden um Feld erweitert, das die Zusatzinformation aufnimmt Beispiel: Speicherung des Geschlechts (w,m) für Namen. lte< m(1) Ma m(3), w(1) kus< m(1) r m(2),w(1) (root) m(3), w(2) ia< m(1), w(1) Jutta< w(1) In den Blättern stehen die Klassifizierungen. In den Zwischenknoten befinden sich die zusammengezählten Klassifizierungen der Unterbäume
2.5. Anwendung: Grundformreduktion Gegeben: Liste von Wörtern mit Reduktionsregeln Haus 0 Hauses 2 Häuser 5aus Maus 0 Mäuse 4aus Bau 0 Baus 1 Aus 0 Konstruieren Sie den Trie und zeigen Sie dessen Anwendung auf die folgenden Wörter: raus, Schmaus, Läuse, Rentner
2.6. Grundformreduktion II CPT wird aus den rückwärts gelesenen Wörtern aufgebaut, in den Knoten werden die Reduktionsregeln gespeichert. "<" ist Wortanfang-Zeichen. uab< 0(1) (root) 5aus(1), 4aus(1), 2(1),1(1),0(4) s 2(1),1(1),0(3) resuäh< 5aus(1) esuäm< 4aus(1) h< 0(1) ua 1(1),0(3) m< 0(1) b< 1(1) esuah< 2(1) < 0(1) Haus 0 Hauses 2 Häuser 5aus Maus 0 Mäuse 4aus Bau 0 Baus 1 Aus 0
h< 0(1) 2.7. Grundformreduktion III Zur Ermittlung der Reduktionsregel eines Wortes wird der Baum gemäß dem rückwärts gelesenen Wort durchlaufen, bis kein weiterer Knoten mehr matcht (Blatt oder Zwischenknoten). Die in diesem Knoten stehende Reduktionsregel wird angewendet. Für unbekannte Wörter wird die Regel aufgrund morphologischer Eigenschaften der Trainingsbeispiele geraten s 2(1),1(1),0(3) ua 1(1),0(3) m< 0(1) b< 1(1) esuah< 2(1) < 0(1) Hochhaus 0 Spass 0 Unterbaus 1
2.8. Pruning: Speicherplatzreduktion Wenn der CPT nur zum Klassifizieren und nicht zum Speichern von Wörtern verwendet wird, können redundante Teilbäume abgeschnitten werden sowie Strings in den Blättern ohne Änderung des Verhaltens auf Länge 1 verkürzt werden. (root) 5aus(1), 4aus(1), 2(1),1(1),0(4) (root) 5aus(1), 4aus(1), 2(1),1(1),0(4) uab< 0(1) s 2(1),1(1),0(3) resuäh< 5aus(1) esuäm< 4aus(1) s 2(1),1(1),0(3) r 5aus(1) e 4aus(1) ua 1(1),0(3) esuah< 2(1) Pruning ua 1(1),0(3) e 2(1) h< 0(1) m< 0(1) b< 1(1) < 0(1) b< 1(1)
2.9. Weitere Anwendungen von CPTs Kompositazerlegung: 2 CPTs, Schnittstellen von vorn und hinten Wort vorn hinten Hochgebirge 4 7 Hochzeit 0 0 Prüfungszeit 7s 4 Morphologieklasse Geschlechter von Namen Wortarterkennung Terminologie...
3. Bayesscher Klassifikator Gegeben seien folgende Dokumente: D1: A A B C D D K1 D2: A B B C D E K1 D3: C D E F F K2 D4: B C C D D E E F F K2 Klassifizieren Sie folgende zwei Dokumente: D5: A B C D D6: E F Entsprechend dem naive Bayes Verfahren
3.1. Bayesscher Klassifikator k = argmax P( k k j K j ) i P( w i k j ) D.h. es wird die Klasse genommen, für die die gezeigte Funktion den grössten Wert erreicht Benötigt wird hier Modellierung für folgende Wahrscheinlichkeiten: P(k j ) die Wahrscheinlichkeit Klasse k j auszuwählen P(w i ) die Wahrscheinlichkeit, dass Wort w i überhaupt auftritt P(w i k j ) Wahrscheinlichkeit für Wort w i unter der Bedingung, dass k j bereits ausgewählt wurde
3.2. Beispiel Bayesscher Klassifikator 200 Texte in Klasse k 1 100 Texte in Klasse k 2 Wort w 1 kommt in 50 Texten in k 1 vor Und in einem Text in k 2 Wie gross also Wahrscheinlichkeit für Klasse k 1? P(k 1 w 1 ) = (P(k 1 )*P(w 1 k 1 ))/P(w 1 ) P(k 1 )=200/300 P(w 1 )=(50/200+1)/300 = 51/300 P(w 1 k 1 )=50/200 = 0.25 P(k 1 w 1 ) = 50/51 = 0.98
3.3. Bayesscher Klassifikator Erläuterungen P(x y) = P(x und y) / P(y) Falls x und y unabhängig, dann gilt: P(x und y) = P(x) * P(y) Demnach bei Unabhängigkeit: P(x y) = P(x) Aber wenn die einzelnen Vorkommen von x sich gegenseitig ausschliessen gilt laut Bayes: P(x y) = P(x)*P(y x) / P(y) Was ist also nun P(y x)?? Eine Idee ist, wie im Beispiel schlicht Vorkommen von y in x zu nehmen Schwieriger ist es, die individuelle Frequenz der Wörter zu berücksichtigen Signifikanzwerte als Grundlage möglicherweise ohnehin besser aber diese schwieriger in Wahrscheinlichkeiten umzurechnen
3.4. Neuronal Network Ein Ausgangsknoten für jede Klasse. Der Knoten mit der meisten Aktivierung liefert die Klasse Eingangsknoten repräsentieren die Features der Daten (z.b. eins für jedes Wort) Hidden layer Input Knoten sind mit Knoten im hidden layer verbunden, während diese dann mit Ausgangsknoten verbunden sind (oder bis zu 5 weiteren hidden layers) Training: Den Ausgangsknoten wird gewünschter Wert bei angelegten Daten an Eingangsknoten festgelegt. Für jeden hidden layer Knoten wird dann entschieden, wieviel error er machen würde, wenn er entsprechend den Gewichten der input Knoten Energie zum outputknoten schicken würde und modifiziert die Gewichte entsprechend.
3.5. Support Vector Machine Im einfachsten Fall ist es eine Linie, die die vorhandenen Daten entsprechend dem Training so teilt, dass jeder einzelne Datenpunkt maximal weit von der Linie (auf der richtigen Seite der Linie) entfernt ist. Dies wird dann verallgemeinert auf mehrere Linien (Teile Menge M in A und B mit Linie L1, dann teile A in AA und AB mit Linie L2 usw.) Es wird dann weiter verallgemeinert, dass es nicht 2D Linien sondern entsprechend D wie es Features gibt und dass es gar nicht unbedingt Linien sein müssen
4. Metalernmethoden Bagging Boosting Stacking
4.1. Bagging Einfachste Form, Vorhersagen zu verschmelzen: (ungewichtete) Mehrheitsentscheidung Jedes Modell erhält das gleiche Gewicht Ideale Version: mehrere Trainingsdatenmengen gleicher Größe herausgreifen einen Klassifizierer für jede Menge bilden die Vorhersagen der Klassifizierer kombinieren Führt fast immer zur Leistungsverbesserung bei unstabilen Lernverfahren (z.b. Entscheidungsbaum)
4.2. Boosting Benutzt ebenfalls Mehrheitsentscheidungen, allerdings mit Gewichtung in Abhängigkeit von der Leistung. Gewichtet werden die Instanzen. Belohnt wird das Lösen einer schwierigen (d.h. hoch bewerteten) Aufgabe. Iterativer Prozess: neue Modelle werden durch die Leistung älterer beeinflusst neue Modelle werden ermutigt, Experten für Instanzen zu werden, die von früheren Modellen unkorrekt gehandhabt wurden intuitiv: Modelle sollten sich ergänzen statt sich zu überlagern Es gibt mehrere Varianten des Boosting-Algorithmus
4.3. Stacking Hier wird ein neuer Klassifikator aufbauend auf einigen echten Klassifikatoren trainiert. Dieser versucht im wesentlichen zu unterscheiden, unter welchen Umständen welcher anderer Klassifizierer bessere Ergebnisse liefert und modifiziert entsprechend die Gewichte. Diskutieren Sie einen Anwendungsfall, bei dem das Sinn macht
5. Weitere Themen: Overtraining Was ist mit overtraining gemeint? Wie kann automatisch erkannt werden, dass overtraining eintritt?
5.1. Ist eine Klasse gut, oder schlecht? Diskutieren Sie Methoden, mit den erkannt werden kann, ob eine vorgegebene Klasse sich in den Daten auch so wiederfindet. Unter Einbezug der Trainingsdaten, als auch ohne!
5.2. Sollten zwei Klassen zusammengeführt werden? Welche Methoden können angewendet werden, um festzustellen, dass die Dokumente aus zwei Klassen im Wesentlichen zusammengehören? Ebenfalls unter Einbezug der Trainingsdaten, als auch ohne!