Tf-idf

La funzione di peso tf-idf (term frequency–inverse document frequency) è una funzione utilizzata in information retrieval per misurare l'importanza di un termine rispetto ad un documento o ad una collezione di documenti. Tale funzione aumenta proporzionalmente al numero di volte che il termine è contenuto nel documento, ma cresce in maniera inversamente proporzionale con la frequenza del termine nella collezione. L'idea alla base di questo comportamento è di dare più importanza ai termini che compaiono nel documento, ma che in generale sono poco frequenti.

Un'indagine condotta nel 2015 ha mostrato che l'83% dei sistemi di raccomandazione basati sul testo nelle biblioteche digitali utilizza tf-idf.[1]

Studio delle frequenze

Frequenza di termine

Ipotizziamo di avere un insieme di documenti di testo in italiano e di volerli classificare in base a quale sia il documento più rilevante per l'interrogazione "la mucca marrone". Un modo semplice per iniziare è escludere i documenti che non contengono tutte e tre le parole "la", "mucca" e " marrone", ma ciò lascerebbe ancora molti documenti. Per distinguerli ulteriormente, potremmo contare il numero di volte in cui ogni termine ricorre in ogni documento; il numero di volte in cui un termine ricorre in un documento è chiamato frequenza di termine. Tuttavia, nel caso in cui la lunghezza dei documenti sia molto variabile, spesso vengono apportate delle correzioni. La prima forma di ponderazione dei termini è dovuta a Hans Peter Luhn (1957) e può essere riassunta come segue[2]:

Il peso di un termine che ricorre in un documento è semplicemente proporzionale alla frequenza del termine.

Frequenza inversa del documento

Poiché il termine "la" è estremamente comune, la frequenza del termine tenderà a enfatizzare erroneamente i documenti che utilizzano più frequentemente la parola "la", senza dare sufficiente peso ai termini più significativi "mucca" e "marrone". Per questo motivo, viene incorporato un fattore inverso di frequenza dei documenti che diminuisce il peso dei termini che ricorrono molto frequentemente nell'insieme dei documenti e aumenta il peso dei termini che ricorrono raramente. Nel 1972, Karen Spärck Jones ha concepito un'interpretazione statistica della specificità dei termini chiamata Inverse Document Frequency (idf), che è diventata una pietra miliare della ponderazione dei termini[3]:

La specificità di un termine può essere quantificata come una funzione inversa del numero di documenti in cui compare.

Formula matematica

La funzione può essere scomposta in due fattori:Il primo fattore della funzione è il numero dei termini presenti nel documento. In genere questo numero viene diviso per la lunghezza del documento stesso per evitare che siano privilegiati i documenti più lunghi.

dove è il numero di occorrenze del termine nel documento , mentre il denominatore è semplicemente la dimensione, espressa in numero di termini, del documento .

L'altro fattore della funzione indica l'importanza generale del termine nella collezione:

dove è il numero di documenti nella collezione, mentre il denominatore è il numero di documenti che contengono il termine .

Abbiamo quindi che:

Esempio

Consideriamo un documento contenente 100 parole e nel quale il termine pluto compare 5 volte. Il fattore TF per il termine pluto è . Assumiamo di avere ora 1 000 documenti nella collezione e pluto compare in 10 di questi. Quindi . Da questo possiamo calcolare il valore Tf-idf relativo alla parola pluto nel documento iniziale: .

Note

Voci correlate

Collegamenti esterni

Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica