Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen TF-IDF | Abschnitt
Verarbeitung natürlicher Sprache

bookTF-IDF

Swipe um das Menü anzuzeigen

Verständnis von TF-IDF

Obwohl das Bag-of-Words-Modell einfach und effektiv ist, neigt es dazu, häufige Begriffe zu überbewerten, wodurch es schwieriger wird, seltener vorkommende, aber informativere Wörter zu identifizieren. Um dieses Problem zu lösen, wird stattdessen häufig das TF-IDF-Modell verwendet.

Note
Definition

TF-IDF (Termfrequenz-inverse Dokumentfrequenz) ist eine statistische Kennzahl, die widerspiegelt, wie wichtig ein Wort für ein bestimmtes Dokument im Verhältnis zu einem größeren Korpus ist.

Im Gegensatz zu BoW, das auf der reinen Häufigkeit von Begriffen basiert, berücksichtigt TF-IDF sowohl die Häufigkeit eines Begriffs innerhalb eines Dokuments als auch seine inverse Häufigkeit im gesamten Korpus. Dadurch wird der Einfluss häufiger Begriffe reduziert und seltenere, informativere hervorgehoben.

Funktionsweise von TF-IDF

Der TF-IDF-Wert für einen Begriff in einem Dokument wird wie folgt berechnet:

tf-idf(t,d)=tf(t,d)×idf(t)\def\tfidf{\operatorname{tf-idf}} \def\tf{\operatorname{tf}} \def\idf{\operatorname{idf}} \tfidf(t, d) = \tf(t, d) \times \idf(t)

wobei:

  • tt der Begriff ist (ein Wort oder N-Gramm);
  • dd das Dokument ist.

Es gibt viele Varianten zur Berechnung der Werte von tf\operatorname{tf} und idf\operatorname{idf}. Im Folgenden betrachten wir jeweils eine gängige Option:

Termfrequenz (TF)

Gibt an, wie häufig ein Begriff in einem Dokument vorkommt, und spiegelt dessen relative Bedeutung innerhalb dieses Dokuments wider. Ähnlich wie beim Bag-of-Words-Modell wird häufig eine einfache Zählung verwendet:

tf(t,d)=count(t,d)\def\tf{\operatorname{tf}} \def\count{\operatorname{count}} \tf(t, d) = \count(t, d)

Inverse Dokumentfrequenz (IDF)

Misst, wie selten ein Begriff im gesamten Korpus ist. Sie kann als natürlicher Logarithmus des Verhältnisses zwischen der Gesamtanzahl der Dokumente und der Anzahl der Dokumente, die den Begriff enthalten, berechnet werden:

idf(t)=log(1+Ndocuments1+df(t))+1\def\idf{\operatorname{idf}} \def\df{\operatorname{df}} \idf(t) = \log\Bigl(\frac{1 + N_{documents}}{1 + \df(t)}\Bigr) + 1

Diese Formel verwendet Glättung (Addition von 1), um eine Division durch Null zu vermeiden und stellt sicher, dass auch häufige Begriffe einen von Null verschiedenen IDF-Wert erhalten. Dadurch werden häufig vorkommende Begriffe abgewertet und seltene, informativere Begriffe hervorgehoben.

Ohne die IDF-Komponente würde TF-IDF auf eine einfache Begriffszählung reduziert werden — im Wesentlichen eine Rückkehr zum Bag-of-Words-Modell.

Berechnung von TF-IDF

Im Folgenden ein einfaches Beispiel:

In diesem Fall haben wir nur zwei Dokumente und verwenden ausschließlich Unigramme (einzelne Wörter), sodass die Berechnungen unkompliziert sind. Wir beginnen mit der Berechnung der Termfrequenzen für jedes Wort in beiden Dokumenten, gefolgt von den IDF-Werten für die Begriffe "a" und "is".

Note
Hinweis

Da unser Korpus nur zwei Dokumente umfasst, erhält jeder Begriff, der in beiden Dokumenten vorkommt, einen IDF-Wert von 1, während andere Begriffe einen IDF-Wert von ~1.406465 erhalten.

Abschließend können wir die TF-IDF-Werte für jeden Begriff in jedem Dokument berechnen, indem wir TF mit IDF multiplizieren. Daraus ergibt sich die folgende Matrix:

L2-Normalisierung

Die resultierenden TF-IDF-Vektoren können sich hinsichtlich ihrer Größe erheblich unterscheiden, insbesondere in großen Korpora, da die Dokumentlängen variieren. Aus diesem Grund wird häufig die L2-Normalisierung angewendet – sie skaliert alle Vektoren auf eine einheitliche Länge und ermöglicht so einen fairen und unverzerrten Vergleich von Dokumenten unterschiedlicher Länge.

Note
Mehr erfahren

L2-Normalisierung, auch bekannt als euklidische Normalisierung, ist ein Verfahren, das auf einzelne Vektoren angewendet wird und deren Werte so anpasst, dass die Länge des Vektors 1 beträgt.

Die L2-Normalisierung erfolgt, indem jeder Term im Vektor durch die euklidische Norm des Vektors geteilt wird.

Wenn der Dokumentenvektor wie folgt aussieht:

d=(w1,w2,w3,...,wN)d = (w_1, w_2, w_3, ..., w_N)

wobei wiw_i das Gewicht des Terms ii ist,

dann sieht die euklidische Norm so aus:

d2=w12+w22+w32+...+wN2\|d\|_2 = \sqrt{w^2_1 + w^2_2 + w^2_3 + ... + w^2_N}

und der normalisierte Vektor sieht so aus:

dnorm=(w1d2,w2d2,w3d2,...,wNd2)d_{norm} = \Bigl(\frac{w_1}{\|d\|_2}, \frac{w_2}{\|d\|_2}, \frac{w_3}{\|d\|_2}, ..., \frac{w_N}{\|d\|_2})

So funktioniert die L2-Normalisierung für einen zweidimensionalen Vektor (ein Dokument mit 2 Begriffen):

Note
Hinweis

Keine Sorge, wenn die Formeln komplex erscheinen. Im Grunde teilen wir jeden TF-IDF-Wert in einem Dokument durch die Länge (oder den Betrag) des TF-IDF-Vektors dieses Dokuments. Dadurch wird der Vektor so skaliert, dass seine Länge 1 beträgt, was konsistente Vergleiche der Vektoren ermöglicht.

Wenden wir nun die L2-Normalisierung auf unsere oben berechnete TF-IDF-Matrix an:

Die resultierende Matrix entspricht genau dem Beispiel, das wir in einem der vorherigen Kapitel hatten.

question mark

Was ist der Hauptvorteil des TF-IDF-Modells im Vergleich zum BoW-Modell?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 23

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 1. Kapitel 23
some-alt