Tf-idf

De Viquipèdia
Dreceres ràpides: navegació, cerca
Gràfic del descriptor tf-idf
TF-IDF

'Tf-idf' (de l'anglès Term frequency – inverse document frequency), és la freqüència d'ocurrència del terme en una col·lecció concreta de documents. És una mesura numèrica que expressa com de rellevant és una paraula en un document de una col·lecció. Aquesta mesura s'utilitza sovint com un factor de ponderació en la recuperació d'informació. El valor tf-idf augmenta proporcionalment al número de vegades que una paraula apareix en un document, el que permet esbrinar quines paraules són generalment més comuns que altres.

A vegades s'utilitzen variacions de tf-idf en els motors de cerca com eina fonamental per mesurar la rellevància d'un document donada una consulta d'un usuari, establint així una orde entre els documents cercats. Tf-idf es pot utilitzar amb èxit en el filtrat de les anomenades stop-words (paraules que s'utilitzen en tots els documents com són: articles, determinants...), en diferents camps com la classificació i el resum de text.

Una de les funcions més senzilles per ordenar termes és el tf-idf, sumant dels valors de cada terme de la consulta. Moltes funcions per ordenar termes més complexes, fan servir la idea d'aquest model més simple.

Concepte[modifica | modifica el codi]

Dins l'àrea de la búsqueda d'informació, l'algorisme més senzill de cerca és la búsqueda binaria. Consisteix en trobar aquells arxius que contenen la paraula que estem buscant.

Això té un problema: Aquesta búsqueda mostrarà els arxius ordenats tal com se'ls troba a la base de dades. D'aquesta manera, no vigilem si estem donant més pes a un arxiu que conte, per exemple, una repetició de la paraula que estem buscant o a un document que contingui 100 repeticions.

Evidentment, voldrem donar més pes a l'arxiu que conté 100 vegades la paraula en qüestió i això ho resoldrem donant pes a les paraules.

El mètode TF-IDF és una tècnica senzilla i eficaç per a ordenar els arxius depenent de la paraula de la nostra cerca.

Motivació[modifica | modifica el codi]

Suposem que tenim una col·lecció de documents i volem determinar el document més rellevant a una determinada consulta. Aquesta consulta pot ser, per exemple: " el processament digital d'àudio".

Una manera senzilla de començar és eliminar aquells documents que no continguin les tres paraules: "el" / "processament"/"digital" / " àudio ", però encara seguim tenint molts documents que no s'han eliminat.Per diferenciar encara més els documents, hem de mirar el nombre de vegades que apareix cada terme al text i sumar-los. El nombre de vegades que apareix un terme dins un document es denomina Freqüència de terme.

No obstant això, com que el terme "el" és tan comú, provocarà que destaquin documents que utilitzin molt el terme "el" i no tindran en compte les altres paraules més rellevants com "processament", "digital" o "àudio".

El terme "el" no és una bona paraula clau per a distingir documents rellevants/no rellevants. Em canvi, les paraules menys comuns si que ho són.

Per tant, s'incorpora un analitzador de freqüència inversa del document, atenuant el pes dels termes que tenen una freqüència més elevada a tots els documents, i es dóna més pes a les paraules clau que apareixen amb menys freqüència.

Posem un exemple:

Un cercador web té 70000 resultats a la cerca “ el processament digital de so ”. Malgrat tot, aquest cercador només ens mostrarà 1000 d'aquests resultats. A més a més, l'usuari no es mirarà els 1000 resultats, en consultarà un centenar en el millor dels casos.

Si aquest cercador web utilitza la búsqueda binaria, és molt probable que els arxius que consulti l'usuari no siguin els més rellevants.

En canvi, si donem pes a les paraules assegurem que els primers documents que apareixen, són els més rellevants, així l'usuari troba l'arxiu que estava cercant molt ràpidament.

Detalls matemàtics[modifica | modifica el codi]

Tf - idf és el producte de dos estadístiques, freqüència dels termes i la freqüència inversa dels documents. Hi ha diverses maneres per determinar els valors exactes de les dues estadístiques.

En el cas de la freqüència dels termes tf ( t, d), l'opció més senzilla és utilitzar la freqüència d'un terme en un document, és a dir, el nombre de vegades que apareix aquest terme “t” en el document “d”. Si denotem la freqüència de “t” per f ( t, d), llavors l'esquema tf simple és tf ( t, d) = f ( t, d).

Una manera més eficient de calcular la tf dividint la freqüència del terme que busquem per freqüència augmentada (freqüència del terme que apareix més vegades en el text). Això es fa per evitar que baixi la freqüència de terme en documents més llargs. Això ho mostrem a la següent fórmula matemàtica:

\mathrm{tf}(t,d) = 0.5 + \frac{0.5 \times \mathrm{f}(t, d)}{\max\{\mathrm{f}(w, d):w \in d\}}

La freqüència inversa de document és una mesura per veure si el terme és comú o rar en tots els documents. S'obté dividint el nombre total de documents pel nombre de documents que contenen el terme, i després prendre el logaritme d'aquest quocient.

\mathrm{idf}(t, D) =  \log \frac{|D|}{|\{d \in D: t \in d\}|}


  •  |D| : Nombre total de documents en el corpus
  •  |\{d \in D: t \in d\}|  : nombre de documents en els quals apareix el terme  t (exemple:,  \mathrm{tf}(t,d) \neq 0). Si el terme no apareix a cap document, això donarà lloc a una divisió per zero. Per tant, s'acostuma sumar 1 en el denominador. 1 + |\{d \in D: t \in d\}|.


Matemàticament, la base del logaritme no és important i constitueix un factor constant en el resultat final.

Finalment, tf-idf es calcula com:

\mathrm{tfidf}(t,d,D) = \mathrm{tf}(t,d) \times \mathrm{idf}(t, D)

Un pes elevat en tf - idf s'aconsegueix amb una alta freqüència de terme (en el document donat) i una baixa freqüència terme en el conjunt dels documents, per tant aquest mètode filtra les paraules comuns a tots els arxius.

Si un terme apareix en diversos documents, la relació dins del logaritme s'aproxima a 1, de manera que la idf i tf - idf està més a prop de 0.

Si un terme gairebé no apareix en els documents, la relació dins del logaritme és un nombre força gran, de manera que la idf i tf - idf s'allunya del 0, donant més pes al terme en qüestió.

Exemple TF-IDF[modifica | modifica el codi]

Un document conté 100 paraules i la paraula “gat” apareix 3 vegades.Per tan, la paraula “gat” té una freqüència de 3/100=0.03.

La paraula que apareix més al document és l'article “el”. (25 vegades).Per tan, la paraula amb més repeticions, té una freqüència de 25/100= 0,25


Primer apliquem la fórmula del TF:

TF= 0,5+ (0,5*0,03)/0,25= 0.56

Ara, suposem que tenim 10 milions de documents i la paraula gat apareix en 1000 d'ells. Llavors, la freqüència inversa de document es calcula com a:

IDF = log (10000000/(1+1000) = 4


Per tant, el pes de Tf-idf és el producte d'aquestes quantitats: 0.56 * 4 = 2.24.

Referències[modifica | modifica el codi]

Traducció de:. «Tf-Idf» (en anglès). [Consulta: 21 de Novembre del 2013].

  • Millores respecte a la versió anglesa:
  1. Traducció i correcció d'alguns conceptes.
  2. Exemple pràctic de l'algoritme.
  3. Profundització del concepte de l'algoritme i la funcionalitat d'aquest.

Medina González, Manuel. «TF-IDF: pesando las palabras» (en castellà). [Consulta: 21 de Novembre del 2013].

«Tf-Idf :: Information Retrieval» (en anglès). [Consulta: 21 de Novembre del 2013].

«Document and query weighting schemes» (en anglès). [Consulta: 21 de Novembre del 2013].