Tf-idf

Term Frequency-Inverse Document Frequency (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 = 
  
    
      
        L
        o
        g
        
          
            N
            
              d
              
                f
                
                  t
                
              
            
          
        
      
    
    {\displaystyle Log{\frac {N}{df_{t}}}}
  
Dermed kan vi definere TF-IDF som:
TF-IDF
  
    
      
        
          
          
            t
            ,
            d
          
        
      
    
    {\displaystyle _{t,d}}
   = tf
  
    
      
        
          
          
            t
            ,
            d
          
        
        ×
      
    
    {\displaystyle _{t,d}\times }
  idf
  
    
      
        
          
          
            t
          
        
      
    
    {\displaystyle _{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
          
        
      
    
    {\displaystyle _{t,d}}
   = 
  
    
      
        
          
            {
            
              
                
                  1
                  +
                  l
                  o
                  g
                  t
                  
                    f
                    
                      t
                      ,
                      d
                    
                  
                  ,
                
                
                  
                    
                      hvis 
                    
                  
                  t
                  f
                  
                    
                      større enn 0
                    
                  
                
              
              
                
                  0
                  ,
                
                
                  
                    
                       ellers
                    
                  
                
              
            
            
          
        
      
    
    {\displaystyle {\begin{cases}1+logtf_{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τ
  
    
      
        ∈
      
    
    {\displaystyle \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
        )
        
          
            
              t
              
                f
                
                  t
                  ,
                  d
                
              
            
            
              t
              
                f
                
                  m
                  a
                  x
                
              
              
                d
                ′
              
            
          
        
      
    
    {\displaystyle 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 ==