Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Tf-idf | Basis Tekstmodellen
Introductie tot NLP

bookTf-idf

Inzicht in TF-IDF

Hoewel het bag of words-model eenvoudig en effectief is, heeft het de neiging om veelvoorkomende termen te overwaarderen, waardoor het moeilijker wordt om minder frequente maar meer informatieve woorden te identificeren. Om dit te verhelpen, wordt vaak het TF-IDF-model gebruikt.

Note
Definitie

TF-IDF (term frequency-inverse document frequency) is een statistische maatstaf die aangeeft hoe belangrijk een woord is voor een specifiek document ten opzichte van een grotere corpus.

In tegenstelling tot BoW, dat vertrouwt op ruwe termfrequenties, houdt TF-IDF rekening met zowel de frequentie van een term binnen een document als de inverse frequentie over de gehele corpus. Dit vermindert de invloed van veelvoorkomende termen en benadrukt zeldzamere, meer informatieve termen.

Hoe TF-IDF Werkt

De TF-IDF-score voor een term in een document wordt als volgt berekend:

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)

waarbij:

  • tt de term is (een woord of n-gram);
  • dd het document is.

Er bestaan veel varianten voor het berekenen van de waarden van tf\operatorname{tf} en idf\operatorname{idf}. Hier volgt een veelgebruikte optie voor elk:

Termfrequentie (TF)

Geeft aan hoe vaak een term voorkomt in een document en weerspiegelt het relatieve belang binnen dat document. Vergelijkbaar met het bag of words-model wordt vaak een eenvoudige telling gebruikt:

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

Omgekeerde documentfrequentie (IDF)

Meet hoe zeldzaam een term is in de gehele corpus. Dit kan worden berekend als de natuurlijke logaritme van de verhouding tussen het totale aantal documenten en het aantal documenten waarin de term voorkomt:

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

Deze formule gebruikt smoothing (optellen van 1) om deling door nul te voorkomen en zorgt ervoor dat zelfs veelvoorkomende termen een niet-nul IDF-score krijgen. In feite verlaagt IDF het gewicht van frequente termen en benadrukt het meer informatieve, zeldzame termen.

Zonder de IDF-component zou TF-IDF neerkomen op een eenvoudige termtelling — feitelijk een bag of words-model.

TF-IDF Berekenen

Hier volgt een eenvoudig voorbeeld:

In dit geval hebben we slechts twee documenten en gebruiken we alleen unigrammen (individuele woorden), waardoor de berekeningen eenvoudig zijn. We beginnen met het berekenen van de termfrequenties voor elk woord in beide documenten, gevolgd door de IDF-waarden voor de termen "a" en "is".

Note
Opmerking

Aangezien er slechts twee documenten in onze corpus zijn, krijgt elke term die in beide documenten voorkomt een IDF-waarde van 1, terwijl andere termen een IDF-waarde van ~1.406465 krijgen.

Ten slotte kunnen we de TF-IDF-waarden voor elke term in elk document berekenen door TF met IDF te vermenigvuldigen, wat resulteert in de volgende matrix:

L2-normalisatie

De resulterende TF-IDF-vectoren kunnen aanzienlijk verschillen in grootte, vooral in grote corpora, door verschillen in documentlengte. Daarom wordt L2-normalisatie vaak toegepast — om alle vectoren tot een gelijke lengte te schalen, waardoor eerlijke en onbevooroordeelde vergelijkingen van documenten met verschillende lengtes mogelijk zijn.

Note
Meer leren

L2-normalisatie, ook bekend als Euclidische normalisatie, is een proces dat wordt toegepast op individuele vectoren waarbij hun waarden worden aangepast zodat de lengte van de vector gelijk is aan 1.

De L2-normalisatie wordt uitgevoerd door elk element in de vector te delen door de Euclidische norm van de vector.

Als de documentvector er als volgt uitziet:

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

waarbij wiw_i het gewicht is van term ii,

ziet de Euclidische norm er als volgt uit:

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

en de genormaliseerde vector ziet er als volgt uit:

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})

Hier volgt hoe L2-normalisatie werkt voor een 2-dimensionale vector (een document met 2 termen):

Note
Opmerking

Maak je geen zorgen als de formules complex lijken. We delen simpelweg elke TF-IDF-waarde in een document door de lengte (of grootte) van de TF-IDF-vector van dat document. Hierdoor wordt de vector geschaald zodat de lengte 1 wordt, wat zorgt voor consistente vergelijkingen van vectoren.

Laten we nu L2-normalisatie toepassen op onze TF-IDF-matrix, die we hierboven hebben berekend:

De resulterende matrix is exact hetzelfde als het voorbeeld uit een van de vorige hoofdstukken.

question mark

Wat is het belangrijkste voordeel van het TF-IDF-model in vergelijking met het BoW-model?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

Veeg om het menu te tonen

Inzicht in TF-IDF

Hoewel het bag of words-model eenvoudig en effectief is, heeft het de neiging om veelvoorkomende termen te overwaarderen, waardoor het moeilijker wordt om minder frequente maar meer informatieve woorden te identificeren. Om dit te verhelpen, wordt vaak het TF-IDF-model gebruikt.

Note
Definitie

TF-IDF (term frequency-inverse document frequency) is een statistische maatstaf die aangeeft hoe belangrijk een woord is voor een specifiek document ten opzichte van een grotere corpus.

In tegenstelling tot BoW, dat vertrouwt op ruwe termfrequenties, houdt TF-IDF rekening met zowel de frequentie van een term binnen een document als de inverse frequentie over de gehele corpus. Dit vermindert de invloed van veelvoorkomende termen en benadrukt zeldzamere, meer informatieve termen.

Hoe TF-IDF Werkt

De TF-IDF-score voor een term in een document wordt als volgt berekend:

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)

waarbij:

  • tt de term is (een woord of n-gram);
  • dd het document is.

Er bestaan veel varianten voor het berekenen van de waarden van tf\operatorname{tf} en idf\operatorname{idf}. Hier volgt een veelgebruikte optie voor elk:

Termfrequentie (TF)

Geeft aan hoe vaak een term voorkomt in een document en weerspiegelt het relatieve belang binnen dat document. Vergelijkbaar met het bag of words-model wordt vaak een eenvoudige telling gebruikt:

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

Omgekeerde documentfrequentie (IDF)

Meet hoe zeldzaam een term is in de gehele corpus. Dit kan worden berekend als de natuurlijke logaritme van de verhouding tussen het totale aantal documenten en het aantal documenten waarin de term voorkomt:

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

Deze formule gebruikt smoothing (optellen van 1) om deling door nul te voorkomen en zorgt ervoor dat zelfs veelvoorkomende termen een niet-nul IDF-score krijgen. In feite verlaagt IDF het gewicht van frequente termen en benadrukt het meer informatieve, zeldzame termen.

Zonder de IDF-component zou TF-IDF neerkomen op een eenvoudige termtelling — feitelijk een bag of words-model.

TF-IDF Berekenen

Hier volgt een eenvoudig voorbeeld:

In dit geval hebben we slechts twee documenten en gebruiken we alleen unigrammen (individuele woorden), waardoor de berekeningen eenvoudig zijn. We beginnen met het berekenen van de termfrequenties voor elk woord in beide documenten, gevolgd door de IDF-waarden voor de termen "a" en "is".

Note
Opmerking

Aangezien er slechts twee documenten in onze corpus zijn, krijgt elke term die in beide documenten voorkomt een IDF-waarde van 1, terwijl andere termen een IDF-waarde van ~1.406465 krijgen.

Ten slotte kunnen we de TF-IDF-waarden voor elke term in elk document berekenen door TF met IDF te vermenigvuldigen, wat resulteert in de volgende matrix:

L2-normalisatie

De resulterende TF-IDF-vectoren kunnen aanzienlijk verschillen in grootte, vooral in grote corpora, door verschillen in documentlengte. Daarom wordt L2-normalisatie vaak toegepast — om alle vectoren tot een gelijke lengte te schalen, waardoor eerlijke en onbevooroordeelde vergelijkingen van documenten met verschillende lengtes mogelijk zijn.

Note
Meer leren

L2-normalisatie, ook bekend als Euclidische normalisatie, is een proces dat wordt toegepast op individuele vectoren waarbij hun waarden worden aangepast zodat de lengte van de vector gelijk is aan 1.

De L2-normalisatie wordt uitgevoerd door elk element in de vector te delen door de Euclidische norm van de vector.

Als de documentvector er als volgt uitziet:

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

waarbij wiw_i het gewicht is van term ii,

ziet de Euclidische norm er als volgt uit:

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

en de genormaliseerde vector ziet er als volgt uit:

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})

Hier volgt hoe L2-normalisatie werkt voor een 2-dimensionale vector (een document met 2 termen):

Note
Opmerking

Maak je geen zorgen als de formules complex lijken. We delen simpelweg elke TF-IDF-waarde in een document door de lengte (of grootte) van de TF-IDF-vector van dat document. Hierdoor wordt de vector geschaald zodat de lengte 1 wordt, wat zorgt voor consistente vergelijkingen van vectoren.

Laten we nu L2-normalisatie toepassen op onze TF-IDF-matrix, die we hierboven hebben berekend:

De resulterende matrix is exact hetzelfde als het voorbeeld uit een van de vorige hoofdstukken.

question mark

Wat is het belangrijkste voordeel van het TF-IDF-model in vergelijking met het BoW-model?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 6
some-alt