Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Tf-idf | Grundlegende Textmodelle
Einführung in NLP

bookTf-idf

Verständnis von TF-IDF

Obwohl das Bag-of-Words-Modell einfach und effektiv ist, neigt es dazu, häufige Begriffe zu überbewerten, was die Identifikation von selteneren, aber informativeren Wörtern erschwert. Um dieses Problem zu lösen, wird stattdessen häufig das TF-IDF-Modell verwendet.

Note
Definition

TF-IDF (Termfrequenz-inverse Dokumentfrequenz) ist ein statistisches Maß, das 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 reinen Worthäufigkeiten 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, informativerer 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 (ein Wort oder N-Gramm) ist;
  • dd das Dokument ist.

Es existieren zahlreiche Varianten zur Berechnung der Werte für tf\operatorname{tf} und idf\operatorname{idf}. Im Folgenden wird jeweils eine gängige Option betrachtet:

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, informativer Begriffe hervorgehoben.

Ohne die IDF-Komponente würde TF-IDF auf eine einfache Zählung der Begriffe reduziert werden — was im Wesentlichen dem Bag-of-Words-Modell entspricht.

Berechnung von TF-IDF

Im Folgenden wird ein einfaches Beispiel betrachtet:

In diesem Fall liegen nur zwei Dokumente vor und es werden ausschließlich Unigramme (einzelne Wörter) verwendet, sodass die Berechnungen unkompliziert sind. Zunächst werden die Termfrequenzen für jedes Wort in beiden Dokumenten berechnet, 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 die TF-IDF-Werte für jeden Begriff in jedem Dokument berechnet werden, indem TF mit IDF multipliziert wird. Dies ergibt 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 Dokumentenlänge variiert. Aus diesem Grund wird häufig die L2-Normalisierung angewendet – sie skaliert alle Vektoren auf eine einheitliche Länge und ermöglicht so faire und unbeeinflusste Vergleiche von Dokumenten unterschiedlicher Länge.

Note
Mehr erfahren

L2-Normalisierung, auch als euklidische Normalisierung bekannt, 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 jedes Element des Vektors 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 Wesentlichen 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 zwischen Vektoren ermöglicht.

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

Die resultierende Matrix entspricht genau dem Beispiel aus einem der vorherigen Kapitel.

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 3. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Suggested prompts:

Can you explain why L2 normalization is important for comparing documents?

How does TF-IDF differ from the bag of words model in practice?

Can you walk me through a step-by-step example of calculating TF-IDF for a small dataset?

Awesome!

Completion rate improved to 3.45

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, was die Identifikation von selteneren, aber informativeren Wörtern erschwert. Um dieses Problem zu lösen, wird stattdessen häufig das TF-IDF-Modell verwendet.

Note
Definition

TF-IDF (Termfrequenz-inverse Dokumentfrequenz) ist ein statistisches Maß, das 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 reinen Worthäufigkeiten 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, informativerer 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 (ein Wort oder N-Gramm) ist;
  • dd das Dokument ist.

Es existieren zahlreiche Varianten zur Berechnung der Werte für tf\operatorname{tf} und idf\operatorname{idf}. Im Folgenden wird jeweils eine gängige Option betrachtet:

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, informativer Begriffe hervorgehoben.

Ohne die IDF-Komponente würde TF-IDF auf eine einfache Zählung der Begriffe reduziert werden — was im Wesentlichen dem Bag-of-Words-Modell entspricht.

Berechnung von TF-IDF

Im Folgenden wird ein einfaches Beispiel betrachtet:

In diesem Fall liegen nur zwei Dokumente vor und es werden ausschließlich Unigramme (einzelne Wörter) verwendet, sodass die Berechnungen unkompliziert sind. Zunächst werden die Termfrequenzen für jedes Wort in beiden Dokumenten berechnet, 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 die TF-IDF-Werte für jeden Begriff in jedem Dokument berechnet werden, indem TF mit IDF multipliziert wird. Dies ergibt 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 Dokumentenlänge variiert. Aus diesem Grund wird häufig die L2-Normalisierung angewendet – sie skaliert alle Vektoren auf eine einheitliche Länge und ermöglicht so faire und unbeeinflusste Vergleiche von Dokumenten unterschiedlicher Länge.

Note
Mehr erfahren

L2-Normalisierung, auch als euklidische Normalisierung bekannt, 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 jedes Element des Vektors 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 Wesentlichen 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 zwischen Vektoren ermöglicht.

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

Die resultierende Matrix entspricht genau dem Beispiel aus einem der vorherigen Kapitel.

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 3. Kapitel 6
some-alt