Kursinhalt
Einführung in NLP
Einführung in NLP
TF-IDF
Verständnis von TF-IDF
Das Bag-of-Words-Modell hat aufgrund seiner Einfachheit Nachteile, da Begriffe, die häufig in allen Dokumenten vorkommen, selteneren, aber informativeren Begriffen den Rang ablaufen können, die möglicherweise effektiver als Merkmale zur Identifizierung spezifischer Kategorien oder zur Unterscheidung der Dokumente sind. Um dies zu adressieren, wird stattdessen oft das TF-IDF-Modell verwendet.
Im Gegensatz zu BoWs Fokus auf absolute Termfrequenzen berücksichtigt TF-IDF sowohl die Häufigkeit eines Begriffs innerhalb eines Dokuments als auch seine inverse Häufigkeit im gesamten Korpus. Dies hilft, das Gewicht von übermäßig häufigen Begriffen zu reduzieren und die Bedeutung von selteneren, aber potenziell informativeren Begriffen zu verstärken.
Wie TF-IDF funktioniert
Im Wesentlichen wird der TF-IDF-Wert für einen Begriff in einem Dokument wie folgt berechnet:
tf-idf(t, d) = tf(t, d) × idf(t)
wobei t ein bestimmter Begriff (Wort oder n-Gramm) und d ein bestimmtes Dokument ist.
Lassen Sie uns nun die Formeln für tf und idf aufschlüsseln:
-
Termfrequenz (TF): Berechnet als die Anzahl eines Begriffs in einem Dokument, count(t, d). Sie misst die Bedeutung eines Begriffs innerhalb eines bestimmten Dokuments.
-
Inverse Dokumentfrequenz (IDF): Berechnet als der natürliche Logarithmus (Sie können darüber hier lesen) der Gesamtanzahl der Dokumente plus eins, 1 + N_documents, geteilt durch die Dokumentfrequenz des Begriffs plus eins, 1 + df(t), und dann um 1 erhöht. Diese Anpassung verhindert eine Division durch Null für nicht vorhandene Begriffe und stellt sicher, dass nicht-null IDF-Werte für Begriffe vorhanden sind, die in allen Dokumenten vorkommen, wodurch ihr Einfluss im TF-IDF-Wert erhalten bleibt. Insgesamt reduziert IDF das Gewicht von Begriffen, die im gesamten Korpus häufig vorkommen.
Wie Sie sehen können, würden wir, wenn wir nur TF ohne IDF verwenden würden, einfach eine frequenzbasierte Bag of Words erhalten.
Berechnung von TF-IDF
Schauen wir uns nun ein Beispiel an:
Hier haben wir nur zwei Dokumente und verwenden ausschließlich Unigramme (Wörter), daher sollten die Berechnungen einfach sein. Zuerst berechnen wir die Termfrequenzen für jeden Begriff in jedem Dokument. Dann berechnen wir die IDF-Werte für die Begriffe 'a' und 'is'.
Schließlich können wir die TF-IDF-Werte für jeden Begriff in jedem Dokument berechnen, indem wir TF mit IDF multiplizieren, was zu der folgenden Matrix führt:
L2-Normalisierung
Die resultierenden TF-IDF-Dokumentvektoren können insbesondere in großen Textkorpora stark in ihrer Größe variieren, da die Dokumentlänge unterschiedlich ist. Daher ist die L2-Normalisierung unerlässlich, um diese Vektoren auf eine einheitliche Länge zu skalieren, was genaue Vergleiche der Textähnlichkeit ermöglicht, die nicht durch die Größe der Dokumente verzerrt werden.
Die L2-Normalisierung erfolgt, indem jeder Term im Vektor durch die euklidische Norm des Vektors geteilt wird. Die euklidische Norm (oder L2-Norm) eines Vektors ist die Quadratwurzel der Summe der Quadrate seiner Komponenten.
So funktioniert die L2-Normalisierung für einen 2-dimensionalen Vektor (ein Dokument mit 2 Begriffen):
Lassen Sie uns nun die L2-Normalisierung für unsere TF-IDF-Matrix anwenden, die wir oben berechnet haben:
Die resultierende Matrix ist genau das, was wir als Beispiel in einem der vorherigen Kapitel hatten.
Danke für Ihr Feedback!