Non avevo mai sentito parlare di questa funzione, il cui nome completo è “term frequency–inverse document frequency”. Eppure è una funzione del tutto naturale nel caso si voglia trovare documenti “simili” a quello di partenza in una collezione di testi.
L’idea sottostante è a posteriori ovvia. Se ho un documento in cui una parola appare molto spesso, altri documenti in cui questa parola compare spesso dovrebbero essere simili. Ma ci accorgiamo subito che questa euristica non funziona: connettivi come “che”, “perciò” oppure articoli e forme dei verbi ausiliari appariranno spesso in praticamente ogni documento. La funzione tf-idf relativa a una parola P tiene conto di tutto questo: è direttamente proporzionale alla probabilità che P appaia nel testo, ma inversamente proporzionale alla probabilità che P appaia nella collezione completa di testi. In altri termini, la funzione assume un valore tanto maggiore quanto la parola è in genere meno usata rispetto a quanto lo sia nel testo iniziale; una parola usata sempre più o meno allo stesso modo ha i due fattori che si elidono a vicenda.
In formule, abbiamo che tf-idf è il prodotto di due funzioni: tf, la frequenza del termine nel nostro documento, e idf, l’inverso della frequenza in tutti i documenti. Più precisamente,
$$\mathrm{tf_{i,j}} = \frac{n_{i,j}}{|d_j|},$$
dove $n_{i,j}$ è il numero di occorrenze del termine $i$ nel documento $j$ e il denominatore (il numero di parole nel documento) serve per perequare i valori per i documenti di lunghezza variabile, e
$$\mathrm{idf_{i}} = \log_{10} \frac{|D|}{|\{d: i \in d\}|},$$
dove $|D|$ è il numero di documenti nella collezione e al denominatore c’è il numero di documenti che contengono il termine $i$. (Per definizione ce n’è almeno uno, altrimenti non calcoleremmo idf, e quindi il denominatore non può mai essere nullo).
Il tutto funziona? Diciamo che funzionicchia. Già il concetto di idf è più euristico che altro, perché applica la legge di Zipf che come sappiamo non è scolpita nel granito; e visto che a quanto pare le raccomandazioni di libri simili nelle librerie online pare basarsi anche su tf-idf direi che ci sono ampi margini di miglioramento. Secondo Wikipedia in inglese la formula è stata anche applicata in altri campi, con risultati deludenti. Però è sempre meglio una cattiva formula che nessuna formula, e spesso si può usare il sistema “al rovescio”, per esempio cercando di scoprire se alcune delle lettere paoline siano o no state effettivamente scritte dall’apostolo. L’idea è che in questo modo brutale non si può riconoscere lo stile ma almeno si verifica che la terminologia non sia cambiata troppo, e si ha un punteggio numerico e non una sensazione come si faceva un tempo. Insomma, è comunque una freccia all’arco dei filologi.