TextMining Flashcards
Anwendungsbereiche des Text Mining
- konzeptbasierte Suche / Finden ähnlicher Texte (Dokumenten-Management-Systeme, ähnliche Artikel, …)
- Dokumentenklassifikation und Clustering (automatische Archivierung, Workflow-Optimierung, Spamfilter)
- Informationsstrukturierung und -extraktion (Aufbau von Ontologien/Taxonomien, Name/Orte/Institutionen/Daten/Zahlen/…)
Einordnung des Text Mining
- zw. Information Retrieval und linguistischer Informatik
- inhaltlich orientierter Zugriff auf unstrukturierte Daten
Forschungsansätze
- wissensbasierte/regelbasierte Ansätze
- Mustersuche
- neuronale Netze
- statistische/korpuslinguistische Ansätze
Arten von Kookurrenzen
+ Anwendung
- Nachbarschaftskook. = unmittelbar nebeneinander
- Satzkookkurrenz
- auffällig: gemeinsames Auftreten wahrscheinlicher als Einzelwahrscheinlichkeiten vermuten ließen
-> mit Kookurrenzen lassen sich Cluster zu einem Wort bilden = Disambiguierung!
Formeln für Ähnlichkeitsmaße (Kookurrenzen)
- Tanimoto-Ähnlichkeit: Anteil Doppeltreffer bzgl. Anteil Einzeltreffer
- Mutual Information: Abweichung von statistischer Unabhängigkeit
- G-Test: Wahrscheinlichkeit simultaner seltener Ereignisse
- Poisson-Signifikanz
Tanimoto-Ähnlichkeit
(Ähnlichkeitsmaß Kookkurrenzen)
Anteil Doppeltreffer bzgl. Anteil Einzeltreffer
simT(A,B) = nAB / (nA+nB-nAB)
Mutual Information
(Ähnlichkeitsmaß Kookkurrenzen)
Abweichung von statistischer Unabhängigkeit
i(A,B) = log(nABnges / (nAnB))
[=log(pAB/(pApB))]
if A and B are independent, then pAB=(pApB) and therefore: log(pAB/(pApB)) = log 1 = 0
G-Test
(Ähnlichkeitsmaß Kookkurrenzen)
Wahrscheinlichkeit simultaner seltener Ereignisse
x = nAnB / nges
sig(A,B) = x - nAB log x + log nAB!
(für 2.5x < nAB)
Kookkurrenz-Graph mit Simulated Annealing
Benachbarte Knoten ziehen sich nach Kookurrenzstärke an, nicht benachbarte stoßen einander ab
ges.: energetisch günstigste Position der Knoten in der Ebene
- hohe Temperatur -> starke Schwingung der Knoten ->Verhinderung der Stabilisierung in lokalem Minimum
- durch wirkende Kräfte und Temp. in jedem Iterationsschritt zur optimalen Position bewegt
- Temperatur abgekühlt -> relat. Lage der Knoten stabil, nur noch Abstände optimiert
Birthday Problem + Co-occurrence Problem
Modification: What is the probability p of the existence of k couples with the same birthday - a boys and b girls randomly chosen?
-> Poisson Distribution
Poisson Signifikanz
(Ähnlichkeitsmaß Kookkurrenzen)
beruhend auf common birthday problem
λ = ab / n (=npapb)
k = Anzahl Kookkurrenzen
Eigenschaften von sig(n,k,a,b)
Poisson Signifikanz
(Ähnlichkeitsmaß Kookkurrenzen)
- einmalige Kookurrenz in sig(n,1,1,1) -> 1
- independence: sig(n,npq,np,nq) -> 0 (p,q propabilities for A,B)
- negativ: häufige Wörter, die nicht gemeinsam auftreten
- enlarging corpus by factor m: sig(mn,mk,ma,mb) = m*sig(n,k,a,b) = umso häufiger gesehen, umso mehr steigt Signifikanz (nicht bei Tanimoto/Mutual Information)
-
additivity: für k/b ~ k’/b’, unification of words B, B’:
- sig(n,k,a,b)+sig(n,k’,a,b’) ~sig(n,k+k’,a,b+b’)
- Zusammenführen von Wörtern hinterher möglich statt vorherige Lemmatisierung
- Maximum: max(B) sig(A,B) ~ a = am größen, wenn immer mit A auftritt und A möglichst selten einzeln
Zipf’sches Gesetz
- “Prinzip der geringsten Anstrengung” in natürlicher Sprache
- Wortformen eines Textes nach absteigender Häufigkeit ordnen
- Rang r einer Wortform * Häufigkeit n ~ konstant mit textabhängiger Konstante k
r * n ~k
n ~ 1/r
Zipf’sches Gesetz
- Frequenz des häufigsten Wortes (n maximal)
- Größe des Vokabulars = Anzahl der types (m=1)
Konstante c
- k ~ rmax
- k ~ r1
k steigt linear mit Korpusgröße N -> Konstante c = k/N unabhängig von Korpusgröße, aber evtl. einzelsprachenabgängig
Zipf’sches Gesetz
Abschätzung über Anzahl an Wortformen, die n mal im Text vorkommen (= rn)
- N: Gesamtanzahl aller Wortformen des Textes (tokens)
- t: Umfang des Vokabulars (types)
- rn: größter Rang der Wortformen, die genau n mal auftreten
- In: Anzahl der Wortformen, die genau n mal auftreten
rn ~ c * N/n
Zipf’sches Gesetz
Abschätzung des Zuwachses des Vokabulars, wenn sich die Textmenge erhöht (= In)
Besonderheit I1
- N: Gesamtanzahl aller Wortformen des Textes (tokens)
- t: Umfang des Vokabulars (types)
- rn: größter Rang der Wortformen, die genau n mal auftreten
- In: Anzahl der Wortformen, die genau n mal auftreten
In = rn - rn+1
= (cN/n) - (cN/(n+1))
= cN / (n(n+1))
I1 = c*N/(1+2) = t/2
Zipf’sches Gesetz
D
- exakte Herleitung ergibt n ~ (r+V)-1/D
- D = (fraktale) Dimension nahe 1, die charakteristisch für die jeweilige Sprache ist
- 1/D = Anstieg der Gerade in der doppelt-logarithmischen Darstellung und eben nur näherungsweise 1
Zipf’sches Gesetz
Korpusgröße
- unendlich viele Wörter: mit Korpusgröße steigt Anzahl an Wörtern (types) geradlinig
- auch nur endlich viele möglich: Kurve s.o. gekrümmt
Neologismen
Fragestellungen
- Neu: wann erstmalig beobachtet
- Nachhaltig: Wird man in zehn Jahren das Wort noch kennen?
- Tendenz: Wird Häufigkeit zunehmen?
- Korrelation: Wie wirkt ein Wort auf die Tendenz eines anderen?
Neologismen
Typen
- Echter Neologismus, völlige Neuschöpfung
- Tendenz wachsend oder
- Nach starkem Anfang fallende Tendenz
- Vorher niederfrequentes Wort,
- dessen Häufigkeit unaufhaltsam steigt (DVD) oder
- das plötzlich (z.B. wegen eines Ereignisses) in der Allgemeinsprache auffällt, dann fällt
- Ereignisabhängige Wörter, die in Abständen mit großer Häufigkeit auftreten (Papstwahl)
- Wort mit neuer Bedeutung (Kurzmitteilung)
- Bezeichner für Einzelobjekte oder Gruppen (Hotelerbin, Terroristenchef)
- Wörter mit kurzer Lebensdauer (UMTS-Auktion)
Clustering & Klassifikation
Unterscheidung
Cluster:
- entstehen “von selbst” aus der inneren Struktur der Daten, interpretiert als Ähnlichkeit
- Gruppen nicht vorgegeben
- Anzahl der Gruppen vorgegeben o. muss vom Algorithmus ermittelt werden.
Klassifikation: Klassen sind vorgegeben, beispielsweise durch Trainingsdaten
Clustering und Klassifikation
Maschinelles Lernen
- Funktion f: M → {0, 1 , …, n-1}, die jedem Element x∈M seine Klasse f(x) zuordnet
- f unüberwacht gelernt = Clustering: Bekannt sein kann die Anzahl n der Klassen,Aufteilung kann nur über Ähnlichkeit der Attribut-Werte gelernt werden
- f überwacht lernen = Klassifikation: f ist auf Teil der Menge M bekannt und soll für restlichen Teil ermittelt werden
Clustering und Klassifikation
Anforderungen an Unterteilung
- Homogenität innerhalb der Cluster
- Heterogenität zwischen verschiedenen Clustern
Clustering
Darstellungsform
Dendrogramm
- Cluster werden zu Instanzen, die wieder mit verarbeitet werden
- Cluster können zu größeren Clustern zusammengefasst werden
- zeigt Beziehungen zwischen Clustern mit an
Clustering
Unterschiede bei Algorithmen/Modellen
- Cluster disjunkt o. überlappend
- Verfahren deterministisch o. probabilistisch
- Cluster hierarchisch o. nicht
- Algorithmus lernt inkrementell o. nur global
Hierarchisches Clustering
-
bottom up:
- Start mit Clustern aus je einem Objekt
- jeweils benachbarte Cluster verschmelzen
-
top down: meist sehr schnell
- zerlege Gesamtmenge in zwei Cluster.
- wiederholt auf den entstandenen Clustern ausführen
Clustering
Abstand zwischen Clustern bei verschiedenen Attributarten berechnen
- numerisches Attribut: Differenz der Werte
- mehrere numerische Attribute: normiere die Attribute & wähle Euklidischen Abstand
- Nominale Attribute: Abstand 0 oder 1 je nachdem, ob die Werte gleich oder verschieden sind
- Cluster durch eines seiner Elemente oder durch ein fiktives Element (Zentroid) vertreten
- Single Link: Abstand zw. 2 Clustern = min. Abstand zwischen 2 Elementen der versch. Cluster
- Zentroid: fiktives Element mit Mittelwert der (numerischen) Attribute der Elemente
Clustering
k-means-Algorithmus
- Daten werden vom Algorithmus in vorgeg. Anzahl von k Clustern geteilt
- Initialisierung: k Clusterzentren werden zufällig gewählt
- Zuordnung: Instanzen werden jeweils Cluster mit dem nächstgelegenen Clusterzentrum zugeordnet.
- Zentroid: Zentroiden der so entstandenen Cluster werden als neue Clusterzentren benutzt.
- Schleife: Gehe zu 2, solange sich noch Zuordnungen einzelner Elemente zu Clustern ändern.
Clustering
k-means-Algorithmus
Probleme + Lösung
- Konvergenz ist nicht gesichert.
- Konvergenz verläuft nur zu einem lokalen Minimum, nicht unbedingt zum globalen Minimum -> Clustering muss nicht optimal sein
- Lösung: Algorithmus mehrfach starten.
Clustering
CobWeb
Idee, Vorgehen, Nachteil
- inkrementelles Clustering: sukzessive Dendrogramm aufbauen
- Start: leerer Baum -> Instanzen nacheinander an der am besten passenden Stelle einfügen
- möglich: Umstrukturierung nach Einfügeschritt
- Maß für „am besten passenden Stelle“ ist Kategoriennützlichkeit
- Nachteil: entstehende Clustering kann von Reihenfolge abhängen
Clustering
CobWeb
Einfügeschritt
- Auswahl nach größter Kategoriennützlichkeit
- bei Einfügen getestet:
- Hinzufügen zu bestehenden Cluster
- Anlegen neues Cluster mit nur dieser Instanz
- wenn Hinzufügeschritt -> zusätzlich Verschmelzungsschritt und Aufteilungsschritt für Cluster, in das hinzugefügt wurde testen -> ausführen, falls Kategoriennützlichkeit verbessert
- Verschmelzungsschritt: verschmolzen mit zweitbesten Cluster, zu dem sie „beinahe hinzugefügt worden wäre“.
- Aufteilungsschritt: Instanzen eine Hierarchiestufe höher als einzelne, neue Cluster gewählt
Evaluierung
einfache Lösungen
- auf Trainingsdaten testen = kein guter Indikator
- Aufteilung in Test- und Trainingsdaten, aber:
- bestimmte Daten sind von ihrer Natur her beschränkt, z.B. Aussagen über Feiertage, 29. Februar
- Datenqualität ist häufig von Experten abhängig, sind knapp
Evaluierung
statistische Tests: Messungen
- bei Klassifikation
- Anzahl der korrekten Klassifizierungen
- Genauigkeit von Wahrscheinlichkeitsvorhersagen
- Genauigkeit von numerischen Vorhersagen
- Kosten
Klassifizierung: Fehllerate
Evaluierung
Holdout-Methode
Problem+Stratifikation
- 1/3 zum Testen, 2/3 zum Trainieren
- Problem: Trainingsmenge ist vielleicht nicht repräsentativ
- Stratifikation: jede Klasse sollte in beiden Mengen etwa im gleichen Verhältnis auftreten wie in der Gesamtmenge
-
wiederholt: Kompensation der Fehler durch wiederholtes Training und Testen mit verschiedenen Daten-Stichproben
- Fehlerraten werden einfach gemittelt
- Vermeidung der Überlappung der Datenmengen : Kreuzvalidierung
Evaluierung
Holdout-Methode
Kreuzvalidierung
- Schritt: Aufteilung der Daten in k Mengen gleicher Größe
- Schritt: pro Durchlauf wird eine Menge für den Test benutzt, der Rest für das Training (3 Mengen = 3 Durchläufe)
- populär: k=3, dreifache Kreuzvalidierung
- mit Stratifikation: stratifizierte dreifache Kreuzvalidierung
- Standardmethode: stratifizierte zehnfache Kreuzvalidierung
- besser: zehn zehnfache Kreuzvalidierungen und danach Mitteln (wiederholte Kreuzvalidierung)
Evaluierung
Holdout-Methode
Leave-One-Out-Kreuzvalidierung
- Vor- und Nachteile
- k-fache Kreuzvalidierung mit k = Anzahl der Instanzen
- eine Instanz wird weggelassen und nach der korrekten Vorhersage dieser Instanz bewertet
- das Ergebnis aller k Beurteilungen wird gemittelt
- Vorteile:
- Benutzung der größtmöglichen Datenmenge
- kein Zufall möglich, deterministisch
- Nachteile:
- sehr rechenaufwendig
- keine Stratifizierung möglich
Evaluierung
Confusion Matrix
- bei einfacher ja/nein-Klassifikation
- gute Matrix: große Zahlen auf der Hauptdiagonalen
Text Mining
Objekte und Attribute
-
Objekte für Klassifikation:
- Dokumente
- Wörter und Wortgruppen
-
Attribute:
- Teile der Objekte (z.B. Buchstaben für Wörter, Wörter für Dokumente)
- Metadaten (für Dokumente), Wörterbuchdaten (für Wörter)
- Zusätzlich daraus abgeleitete Größen
Attribute
Dokumente
- Metadaten: Autor, Titel, Erscheiningsdatum, Quelle (Verlag), Sprache
-
Dokumententext:
- Text als “Bag of Words”
- Wort-N-Gramme, speziell Eigennamen (Personen, geogr. Namen, Firmen), Zahlen mit Maßeinheiten
Attribute
Wörter
-
Teile des Wortes
- Buchstaben-N-Gramme, speziell am Wortanfang und –ende
- Präfixe, Wortstamm, Suffixe
-
Klassifikation des Wortes:
- Grundform, Wortart
- Zugehörigkeit zu Sachgebiet, Information aus Thesaurus
-
Kontext des Wortes
- Nachbarschafts- und Satzkookkurrenzen
- Kompliziertere Nachbarschaftsmuster (mehrere Wörter, evtl. mit Platzhaltern)
- Relationen zwischen solchen Objekten?
Text Mining
Grundaufgaben
- Klassifikation der “Lücken” zwischen Buchstaben
- Klassifikation durch Kontext
- Erkennen und Klassifikation von Mustern
Text Mining - Grundaufgaben
- Klassifikation der “Lücken” zwischen Buchstaben
Beschreibung u. Aufgaben
- Lücken zwischen jeweils zwei aufeinanderfolgenden Buchstaben
- typisch: “eng zusammengehörende” Buchstabenpaare + Bruchstellen
- Für Wörter: Silbentrennung, morphologische Zerlegung von Wörtern, Kompositazerlegung, fehlende arabische kurze Vokale einfügen
- Für Sätze: Tokenisierung für Chinesisch und Japanisch
Text Mining - Grundaufgaben
- Klassifikation durch Kontext
- Kontext, Aufgaben
- Kontext bei Buchstaben: Umgebende Buchstaben (Fenster)
- Kontext bei Wörtern: Wörter als Nachbarn oder in größerem Fenster (Satz, Dokument)
-
Für Wörter
- Aussprache eines Wortes: Phonem zu Graphem
- Betonte Silbe finden = Klassifikation von Vokalen
- Silbenzahl: Klassifikation von Vokalen als Silbengipfel
-
Klassifikation eines Wortes mittels Kookkurrenzen
- Zugehörigkeit zu Sachgebiet
- Unterschied zw. normalen Substantiven und Eigennamen
- Clustering von Wörtern mittels Kookkurrenzen: Finden semantisch ähnlicher Wörter
-
Für Sätze
- Ermittlung der Wortart eines Wortes im Text (POS-Tagging)
- Disambiguierung eines mehrdeutigen Wortes
- Klassifikation eines Textes: Zugehörigkeit zu Sachgebiet
- Dokumentenclustering: Finden ähnlicher Dokumente
Text Mining - Grundaufgaben
Erkennen und Klassifikation von Mustern
- Aufgaben
- oft mit regulären Ausdrücken beschreibbar
- für mittel- und hochfrequente Wörter oft typische (= signifikante) Kontexte als Muster
-
in Wörtern:
- Sprachidentifikation für Sprachen mit speziellen Zeichen
- Grundformreduktion: wiederholende Gruppen von Endungen zu einer Grundform
- Erkennung von Fremdwörtern: Typische Präfixe und Suffixe
-
in Sätzen:
- Personennamenerkennung: Muster wie Titel-Vorname-Nachname
- Erkennen von Redewendungen (von X zu X)
- Paraphrasierung von Komposita als Beschreibung, Blumenvase = Vase für Blumen, Glasvase = Vase aus Glas
- Semantik von Präpositionen, z.B. mit (Bestandteil, Werkzeug, Eigenschaft)
-
in Dokumenten:
- Sprachindentifikation durch typische hochfrequente Wörter
- Sachgebietsklassifikation
- Spamfilter
- Plagiatserkennung
Text Mining
Eigennamenerkennung
Teilaufgaben
- Wiedererkennen bekannter Objekte
- Listen mit Eigennamen (Wikipedia, Telefonbücher, GNS/Gazetteer für Ortsnamen) oder wiederkehrende Strukturen (Titel-Vorname-Name)
- sprachabhängig, Mehrdeutigkeiten, Ausnahmen
- Erkennen von Namen als Klassifikation
- Kontext des zu klassifizierenden Wortes im Text
- Vorname vor potenziellem Nachname, aber kein Artikel
- in, aus, nach vor potentiellem Ortsnamen, aber kein Artikel
- Wortähnlichkeiten
- Stringähnlichkeit (Obermayer Nachname -> Obermeyer)
- Häufige Wortbestandteile (wie -stadt, -walde usw.)
- Kontext des zu klassifizierenden Wortes im Text
Text Mining
Wörter in Teile zerlegen
- Aufgaben, Speicherung
- Grundformreduktion: intuitiv = Endungen abschneiden
- Kompositazerlegung: ein vorhandenes Wort abschneiden, so dass ein Wort übrig bleibt
- Zerlege Worte so, dass Teile bekannt sind (Wörter, Endungen)
- verwende
- Ähnlichkeiten der Wörter vom Wortende her (bei 1 und 2)
- Ähnlichkeiten der Wörter vom Wortanfang her (bei 2)
- Datenstrukturen, die Wortanfang oder Wortende „benutzen“: CPT
Speicherung
Möglichkeiten
- relationale DB: viel Speicherplatz, Elementaroperationen implementiert, Zusatzinformationen speicherbar, aber langsam, v.a. kompleye Operationen wie partial match
- Wortlisten: Reihenfolge unwichtig, strukturelle Redundanzen (gleiche Präfixe/Suffixe), eingeschränktes Alphabet mit 26 Buchstaben + Sonderzeichen
- Trie: Ausnutzen gleicher Präfixe/Suffixe, Knoten haben 0 bis N Töchter (N Anzahl möglicher Characters