TF-IDF
Svep för att visa menyn
Förståelse av TF-IDF
Även om bag of words-modellen är enkel och effektiv tenderar den att överskatta vanliga termer, vilket gör det svårare att identifiera mindre frekventa men mer informativa ord. För att hantera detta används ofta TF-IDF-modellen istället.
TF-IDF (term frequency-inverse document frequency) är ett statistiskt mått som visar hur viktig ett ord är för ett specifikt dokument i förhållande till en större korpus.
Till skillnad från BoW, som bygger på råa termfrekvenser, tar TF-IDF hänsyn till både en terms frekvens inom ett dokument och dess omvända frekvens i hela korpusen. Detta minskar påverkan av vanliga termer och lyfter fram ovanligare, mer informativa ord.
Hur TF-IDF fungerar
TF-IDF-poängen för ett ord i ett dokument beräknas som:
tf-idf(t,d)=tf(t,d)×idf(t)Där:
- t är termen (ett ord eller n-gram);
- d är dokumentet.
Det finns många varianter för att beräkna tf och idf-värden. Här är ett vanligt alternativ för vardera:
Termfrekvens (TF)
Anger hur ofta en term förekommer i ett dokument och fångar dess relativa betydelse inom det dokumentet. Liknande bag of words-modellen används ofta en enkel räkning:
tf(t,d)=count(t,d)Omvänd dokumentfrekvens (IDF)
Mäter hur ovanlig en term är i hela korpuset. Det kan beräknas som den naturliga logaritmen av kvoten mellan det totala antalet dokument och antalet dokument som innehåller termen:
idf(t)=log(1+df(t)1+Ndocuments)+1Denna formel använder utjämning (adderar 1) för att undvika division med noll och säkerställer att även vanliga termer får ett IDF-värde större än noll. IDF nedtonar frekventa termer och lyfter fram mer informativa, ovanliga termer.
Utan IDF-komponenten skulle TF-IDF reduceras till en enkel termräkning — vilket i princip motsvarar en bag of words-modell.
Beräkning av TF-IDF
En genomgång av ett enkelt exempel:
I detta fall har vi endast två dokument och använder enbart unigram (enskilda ord), vilket gör beräkningarna enkla. Vi börjar med att räkna ut termfrekvensen för varje ord i båda dokumenten, följt av IDF-värdena för termerna "a" och "is".
Eftersom det endast finns två dokument i vårt korpus kommer varje term som förekommer i båda dokumenten att ha ett IDF-värde på 1, medan andra termer kommer att ha ett IDF-värde på ~1.406465.
Slutligen kan vi beräkna TF-IDF-värdena för varje term i varje dokument genom att multiplicera TF med IDF, vilket ger följande matris:
L2-normalisering
De resulterande TF-IDF-vektorerna kan variera avsevärt i storlek, särskilt i stora korpusar, på grund av skillnader i dokumentlängd. Därför tillämpas ofta L2-normalisering — för att skala alla vektorer till en enhetlig längd, vilket möjliggör rättvisa och opartiska jämförelser av dokument med olika längd.
L2-normalisering, även kallad euklidisk normalisering, är en process som tillämpas på individuella vektorer och justerar deras värden så att vektorns längd blir 1.
L2-normalisering utförs genom att varje term i vektorn divideras med vektorns euklidiska norm.
Om dokumentvektorn ser ut så här:
d=(w1,w2,w3,...,wN)där wi är vikten för term i,
så ser den euklidiska normen ut så här:
∥d∥2=w12+w22+w32+...+wN2och den normaliserade vektorn ser ut så här:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Så här fungerar L2-normalisering för en tvådimensionell vektor (ett dokument med 2 termer):
Oroa dig inte om formlerna ser komplicerade ut. Allt vi gör är att dividera varje TF-IDF-värde i ett dokument med längden (eller magnituden) av dokumentets TF-IDF-vektor. Detta skalar vektorn så att dess längd blir 1, vilket säkerställer konsekventa jämförelser av vektorer.
Låt oss nu tillämpa L2-normalisering på vår TF-IDF-matris, som vi beräknade ovan:
Den resulterande matrisen är exakt samma som vi hade som exempel i ett av de tidigare kapitlen.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
TF-IDF
Förståelse av TF-IDF
Även om bag of words-modellen är enkel och effektiv tenderar den att överskatta vanliga termer, vilket gör det svårare att identifiera mindre frekventa men mer informativa ord. För att hantera detta används ofta TF-IDF-modellen istället.
TF-IDF (term frequency-inverse document frequency) är ett statistiskt mått som visar hur viktig ett ord är för ett specifikt dokument i förhållande till en större korpus.
Till skillnad från BoW, som bygger på råa termfrekvenser, tar TF-IDF hänsyn till både en terms frekvens inom ett dokument och dess omvända frekvens i hela korpusen. Detta minskar påverkan av vanliga termer och lyfter fram ovanligare, mer informativa ord.
Hur TF-IDF fungerar
TF-IDF-poängen för ett ord i ett dokument beräknas som:
tf-idf(t,d)=tf(t,d)×idf(t)Där:
- t är termen (ett ord eller n-gram);
- d är dokumentet.
Det finns många varianter för att beräkna tf och idf-värden. Här är ett vanligt alternativ för vardera:
Termfrekvens (TF)
Anger hur ofta en term förekommer i ett dokument och fångar dess relativa betydelse inom det dokumentet. Liknande bag of words-modellen används ofta en enkel räkning:
tf(t,d)=count(t,d)Omvänd dokumentfrekvens (IDF)
Mäter hur ovanlig en term är i hela korpuset. Det kan beräknas som den naturliga logaritmen av kvoten mellan det totala antalet dokument och antalet dokument som innehåller termen:
idf(t)=log(1+df(t)1+Ndocuments)+1Denna formel använder utjämning (adderar 1) för att undvika division med noll och säkerställer att även vanliga termer får ett IDF-värde större än noll. IDF nedtonar frekventa termer och lyfter fram mer informativa, ovanliga termer.
Utan IDF-komponenten skulle TF-IDF reduceras till en enkel termräkning — vilket i princip motsvarar en bag of words-modell.
Beräkning av TF-IDF
En genomgång av ett enkelt exempel:
I detta fall har vi endast två dokument och använder enbart unigram (enskilda ord), vilket gör beräkningarna enkla. Vi börjar med att räkna ut termfrekvensen för varje ord i båda dokumenten, följt av IDF-värdena för termerna "a" och "is".
Eftersom det endast finns två dokument i vårt korpus kommer varje term som förekommer i båda dokumenten att ha ett IDF-värde på 1, medan andra termer kommer att ha ett IDF-värde på ~1.406465.
Slutligen kan vi beräkna TF-IDF-värdena för varje term i varje dokument genom att multiplicera TF med IDF, vilket ger följande matris:
L2-normalisering
De resulterande TF-IDF-vektorerna kan variera avsevärt i storlek, särskilt i stora korpusar, på grund av skillnader i dokumentlängd. Därför tillämpas ofta L2-normalisering — för att skala alla vektorer till en enhetlig längd, vilket möjliggör rättvisa och opartiska jämförelser av dokument med olika längd.
L2-normalisering, även kallad euklidisk normalisering, är en process som tillämpas på individuella vektorer och justerar deras värden så att vektorns längd blir 1.
L2-normalisering utförs genom att varje term i vektorn divideras med vektorns euklidiska norm.
Om dokumentvektorn ser ut så här:
d=(w1,w2,w3,...,wN)där wi är vikten för term i,
så ser den euklidiska normen ut så här:
∥d∥2=w12+w22+w32+...+wN2och den normaliserade vektorn ser ut så här:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Så här fungerar L2-normalisering för en tvådimensionell vektor (ett dokument med 2 termer):
Oroa dig inte om formlerna ser komplicerade ut. Allt vi gör är att dividera varje TF-IDF-värde i ett dokument med längden (eller magnituden) av dokumentets TF-IDF-vektor. Detta skalar vektorn så att dess längd blir 1, vilket säkerställer konsekventa jämförelser av vektorer.
Låt oss nu tillämpa L2-normalisering på vår TF-IDF-matris, som vi beräknade ovan:
Den resulterande matrisen är exakt samma som vi hade som exempel i ett av de tidigare kapitlen.
Tack för dina kommentarer!