Tf-idf
Forståelse av TF-IDF
Selv om bag of words-modellen er enkel og effektiv, har den en tendens til å overvurdere vanlige termer, noe som gjør det vanskeligere å identifisere mindre hyppige, men mer informative ord. For å løse dette brukes ofte TF-IDF-modellen i stedet.
TF-IDF (term frequency-inverse document frequency) er et statistisk mål som reflekterer hvor viktig et ord er for et spesifikt dokument i forhold til et større korpus.
I motsetning til BoW, som baserer seg på rå forekomster av termer, tar TF-IDF hensyn til både frekvensen av en term i et dokument og dens inverse frekvens i hele korpuset. Dette reduserer innflytelsen til vanlige termer og fremhever sjeldnere, mer informative ord.
Hvordan TF-IDF fungerer
TF-IDF-verdien for et begrep i et dokument beregnes som:
tf-idf(t,d)=tf(t,d)×idf(t)hvor:
- t er begrepet (et ord eller n-gram);
- d er dokumentet.
Det finnes mange varianter for å beregne tf og idf-verdier. Her er ett vanlig alternativ for hver:
Termfrekvens (TF)
Angir hvor ofte et begrep forekommer i et dokument, og fanger opp dets relative betydning i dokumentet. Tilsvarende bag of words-modellen brukes ofte et enkelt antall:
tf(t,d)=count(t,d)Invers dokumentfrekvens (IDF)
Måler hvor sjeldent et begrep er i hele korpuset. Dette kan beregnes som den naturlige logaritmen av forholdet mellom totalt antall dokumenter og antall dokumenter som inneholder begrepet:
idf(t)=log(1+df(t)1+Ndocuments)+1Denne formelen bruker utjevning (legger til 1) for å unngå divisjon med null og sikrer at selv vanlige begreper får en ikke-null IDF-verdi. IDF nedvekter dermed hyppige begreper og fremhever mer informative, sjeldne begreper.
Uten IDF-komponenten ville TF-IDF reduseres til et enkelt antall begreper — altså en bag of words-modell.
Beregning av TF-IDF
Her er et enkelt eksempel:
I dette tilfellet har vi bare to dokumenter og bruker kun unigrammer (enkeltord), så beregningene er enkle. Vi begynner med å beregne termfrekvensene for hvert ord i begge dokumentene, etterfulgt av IDF-verdiene for termene "a" og "is".
Siden det kun er to dokumenter i vårt korpus, vil hver term som forekommer i begge dokumentene ha en IDF-verdi på 1, mens andre termer vil ha en IDF-verdi på ~1.406465.
Til slutt kan vi beregne TF-IDF-verdiene for hver term i hvert dokument ved å multiplisere TF med IDF, noe som gir følgende matrise:
L2-normalisering
De resulterende TF-IDF-vektorene kan variere betydelig i størrelse, spesielt i store tekstsamlinger, på grunn av forskjeller i dokumentlengde. Derfor brukes L2-normalisering ofte — for å skalere alle vektorer til en ensartet lengde, noe som muliggjør rettferdige og objektive sammenligninger av dokumenter med ulik lengde.
L2-normalisering, også kjent som euklidsk normalisering, er en prosess som brukes på individuelle vektorer for å justere verdiene slik at lengden på vektoren blir 1.
L2-normalisering utføres ved å dele hvert element i vektoren på euklidsk norm for vektoren.
Hvis dokumentvektoren ser slik ut:
d=(w1,w2,w3,...,wN)hvor wi er vekten til element i,
så ser euklidsk norm slik ut:
∥d∥2=w12+w22+w32+...+wN2og den normaliserte vektoren ser slik ut:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Slik fungerer L2-normalisering for en todimensjonal vektor (et dokument med 2 elementer):
Ikke bekymre deg hvis formlene ser kompliserte ut. Alt vi gjør er å dividere hver TF-IDF-verdi i et dokument med lengden (eller størrelsen) til dokumentets TF-IDF-vektor. Dette skalerer vektoren slik at lengden blir 1, noe som sikrer konsistente sammenligninger av vektorer.
La oss nå anvende L2-normalisering på vår TF-IDF-matrise, som vi beregnet ovenfor:
Den resulterende matrisen er nøyaktig det vi hadde som eksempel i et av de forrige kapitlene.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.45
Tf-idf
Sveip for å vise menyen
Forståelse av TF-IDF
Selv om bag of words-modellen er enkel og effektiv, har den en tendens til å overvurdere vanlige termer, noe som gjør det vanskeligere å identifisere mindre hyppige, men mer informative ord. For å løse dette brukes ofte TF-IDF-modellen i stedet.
TF-IDF (term frequency-inverse document frequency) er et statistisk mål som reflekterer hvor viktig et ord er for et spesifikt dokument i forhold til et større korpus.
I motsetning til BoW, som baserer seg på rå forekomster av termer, tar TF-IDF hensyn til både frekvensen av en term i et dokument og dens inverse frekvens i hele korpuset. Dette reduserer innflytelsen til vanlige termer og fremhever sjeldnere, mer informative ord.
Hvordan TF-IDF fungerer
TF-IDF-verdien for et begrep i et dokument beregnes som:
tf-idf(t,d)=tf(t,d)×idf(t)hvor:
- t er begrepet (et ord eller n-gram);
- d er dokumentet.
Det finnes mange varianter for å beregne tf og idf-verdier. Her er ett vanlig alternativ for hver:
Termfrekvens (TF)
Angir hvor ofte et begrep forekommer i et dokument, og fanger opp dets relative betydning i dokumentet. Tilsvarende bag of words-modellen brukes ofte et enkelt antall:
tf(t,d)=count(t,d)Invers dokumentfrekvens (IDF)
Måler hvor sjeldent et begrep er i hele korpuset. Dette kan beregnes som den naturlige logaritmen av forholdet mellom totalt antall dokumenter og antall dokumenter som inneholder begrepet:
idf(t)=log(1+df(t)1+Ndocuments)+1Denne formelen bruker utjevning (legger til 1) for å unngå divisjon med null og sikrer at selv vanlige begreper får en ikke-null IDF-verdi. IDF nedvekter dermed hyppige begreper og fremhever mer informative, sjeldne begreper.
Uten IDF-komponenten ville TF-IDF reduseres til et enkelt antall begreper — altså en bag of words-modell.
Beregning av TF-IDF
Her er et enkelt eksempel:
I dette tilfellet har vi bare to dokumenter og bruker kun unigrammer (enkeltord), så beregningene er enkle. Vi begynner med å beregne termfrekvensene for hvert ord i begge dokumentene, etterfulgt av IDF-verdiene for termene "a" og "is".
Siden det kun er to dokumenter i vårt korpus, vil hver term som forekommer i begge dokumentene ha en IDF-verdi på 1, mens andre termer vil ha en IDF-verdi på ~1.406465.
Til slutt kan vi beregne TF-IDF-verdiene for hver term i hvert dokument ved å multiplisere TF med IDF, noe som gir følgende matrise:
L2-normalisering
De resulterende TF-IDF-vektorene kan variere betydelig i størrelse, spesielt i store tekstsamlinger, på grunn av forskjeller i dokumentlengde. Derfor brukes L2-normalisering ofte — for å skalere alle vektorer til en ensartet lengde, noe som muliggjør rettferdige og objektive sammenligninger av dokumenter med ulik lengde.
L2-normalisering, også kjent som euklidsk normalisering, er en prosess som brukes på individuelle vektorer for å justere verdiene slik at lengden på vektoren blir 1.
L2-normalisering utføres ved å dele hvert element i vektoren på euklidsk norm for vektoren.
Hvis dokumentvektoren ser slik ut:
d=(w1,w2,w3,...,wN)hvor wi er vekten til element i,
så ser euklidsk norm slik ut:
∥d∥2=w12+w22+w32+...+wN2og den normaliserte vektoren ser slik ut:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Slik fungerer L2-normalisering for en todimensjonal vektor (et dokument med 2 elementer):
Ikke bekymre deg hvis formlene ser kompliserte ut. Alt vi gjør er å dividere hver TF-IDF-verdi i et dokument med lengden (eller størrelsen) til dokumentets TF-IDF-vektor. Dette skalerer vektoren slik at lengden blir 1, noe som sikrer konsistente sammenligninger av vektorer.
La oss nå anvende L2-normalisering på vår TF-IDF-matrise, som vi beregnet ovenfor:
Den resulterende matrisen er nøyaktig det vi hadde som eksempel i et av de forrige kapitlene.
Takk for tilbakemeldingene dine!