Tf-idf

**Termfrekvens–invers dokumentfrekvens** (engelsk: *term frequency-inverse document frequency*, forkortet **tf–idf**, **TF*IDF**, **TFIDF**, **TF–IDF**, eller **Tf–idf**) er et numerisk mål for hvor viktig en term er i et dokument. TF-IDF er beregnet på bakgrunn av *termfrekvens*  (Term frequency) og *invers dokumentfrekvens *(Inverse Document Frequency). TF-IDF brukes ofte i informasjonsinnhenting, og søk. TF-IDF verdiene brukes ofte til å sammenlikne dokumenter i en samling mot en spørring, for å finne det mest relevante resultatet, for eksempel ved bruk av vektormodellen 

## Definisjoner
Termfrekvens er en målestokk på hvor ofte en term oppstår i et dokument, med andre ord hvor mange ganger eksisterer term *t* i dokument *d*.
Dokumentfrekvens er en målestokk som viser hvor mange av dokumentene i den gjeldende samlingen som inneholder termen. Dette kan for eksempel være antall dokumenter i samlingen som inneholder termen *t*.

I TF-IDF bruker vi inversen av dokumentfrekvens. 

IDF er definert som:
IDF =  Log \frac{N}{df_{t}}

Dermed kan vi definere TF-IDF som:

TF-IDF_{t,d} = tf_{t,d} \timesidf_{t} 

## Fordeler med TF-IDF
Fordeler med TF-IDF er at det alltid blir gitt en vekt til term *t* i et dokument *d* som er:
*Høyest når *t* oppstår mange ganger i få dokumenter
*Lavere når termen *t* oppstår få ganger i et dokument, eller oppstår i mange dokumenter
*Lavest når en term oppstår i tilnærmet alle dokumentene

## Varianter av TF-IDF
### Sublineær TF
Dersom et ord oppstår tretti ganger i et dokument, er ikke ordet nødvendigvis tredve ganger så viktig som dersom ordet oppstår kun en gang i et dokument. For å forhindre at en term blir ansett som tredve ganger så viktig som et ord som kun oppstår en gang, kan vi bruke *sublineær *(Sublinear) tf-skalering. Istedenfor å øke tf verdien med en hver gang ordet oppstår kan vi bruke logaritmen av termfrekvensen. 

*w f*_{t,d} = 
\begin{cases} 
1 + logt f_{t,d},  & \mbox{hvis }tf\mbox{større enn 0} \\
0, & \mbox{ ellers} 
\end{cases}


### Maksimum tf-normalisering
Maksimum tf normalisering er en teknikk der vi normaliserer alle tf-vektene i et dokument, på bakgrunn av den høyeste tf verdien i det gjeldende dokumentet.
For hvert dokument la tfmax(d) = maxτ\in d tfτ, d, der τ dekker alle termene i dokument *d*. Så regner vi ut normalisert term frekvens for alle termer *t* i dokument *d*. Dermed kan vi definere maksimum tf-normalisering som:

ntft,d = a + (1 - A)\frac{tf_{t,d}}{tf_{max}d'}

Der A er en verdi mellom 0 og 1, og er vanligvis satt til 0,4. A er en verdi som brukes til å dempe påvirkningen fra andre termer. Denne metoden normaliserer alle termer avhengig av den største termen i dokumentet. Den største fordelen med denne metoden er at den reduserer påvirkingen av at lengre dokumenter får høyere treffgrad fordi dokumentene inneholder flere ord. 

## Bruk av TF-IDF
TF-IDF brukes som rangeringsfunksjon i flere implementasjoner av søk. TF-IDF verdiene er verdiene som oftest blir brukt i vektormodellen, en modell som sammenlikner dokumenter for å finne det dokumentet som er mest relevant. I tillegg er det flere forbedrede søkealgoritmer som BM25 som bruker TF-IDF til å finne de mest relevante artiklene. 

## Referanser