Tf-idf

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

TF-IDF, en forkortelse for Term Frequency-Inverse Document Frequency, er et numerisk nummer som representerer hvor viktig en term er i et dokument. TF-IDF er kalkulert 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[1], for eksempel ved bruk av vektormodellen

Definisjoner[rediger | rediger kilde]

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 gjeldene kolleksjonen 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[rediger | rediger kilde]

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[rediger | rediger kilde]

Sublineær TF[rediger | rediger kilde]

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[rediger | rediger kilde]

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 gjeldene 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[rediger | rediger kilde]

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[1] som bruker TF-IDF til å finne de mest relevante artiklene.

Referanser[rediger | rediger kilde]

  1. ^ a b Manning Christopher D, "Introduction to Information Retrieval" Cambrigde, 2009