Tf-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.
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)wobei:
- t der Begriff (ein Wort oder N-Gramm) ist;
- d das Dokument ist.
Es existieren zahlreiche Varianten zur Berechnung der Werte für tf und 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)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+df(t)1+Ndocuments)+1Diese 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".
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.
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)wobei wi das Gewicht des Terms i ist,
dann sieht die euklidische Norm so aus:
∥d∥2=w12+w22+w32+...+wN2und der normalisierte Vektor sieht so aus:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)So funktioniert die L2-Normalisierung für einen zweidimensionalen Vektor (ein Dokument mit 2 Begriffen):
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.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Tf-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.
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)wobei:
- t der Begriff (ein Wort oder N-Gramm) ist;
- d das Dokument ist.
Es existieren zahlreiche Varianten zur Berechnung der Werte für tf und 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)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+df(t)1+Ndocuments)+1Diese 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".
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.
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)wobei wi das Gewicht des Terms i ist,
dann sieht die euklidische Norm so aus:
∥d∥2=w12+w22+w32+...+wN2und der normalisierte Vektor sieht so aus:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)So funktioniert die L2-Normalisierung für einen zweidimensionalen Vektor (ein Dokument mit 2 Begriffen):
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.
Danke für Ihr Feedback!