Tf – idf
En recuperación de información, tf–idf (también TF*IDF, TFIDF, TF–IDF, o Tf–idf), abreviatura de frecuencia del término–frecuencia inversa del documento, es una medida de la importancia de una palabra para un documento en una colección o corpus, ajustada por el hecho que algunas palabras aparecen con más frecuencia en general. A menudo se utilizaba como factor de ponderación en búsquedas de recuperación de información, extracción de textos y modelado de usuarios. Una encuesta realizada en 2015 mostró que el 83% de los sistemas de recomendación basados en texto en bibliotecas digitales usaban tf-idf.
Los motores de búsqueda solían utilizar variaciones del esquema de ponderación tf-idf como herramienta central para calificar y clasificar la relevancia de un documento dada la consulta de un usuario.
Una de las funciones de clasificación más simples se calcula sumando tf–idf para cada término de consulta; Muchas funciones de clasificación más sofisticadas son variantes de este modelo simple.
Motivaciones
Karen Spärck Jones (1972) concibió una interpretación estadística de la especificidad de los términos llamada Frecuencia Inversa de Documentos (idf), que se convirtió en la piedra angular de la ponderación de términos:
La especificidad de un término puede cuantificarse como una función inversa del número de documentos en los que ocurre.
Por ejemplo, el df (frecuencia del documento) y el idf de algunas palabras en las 37 obras de Shakespeare son los siguientes:
Palabra | df | idf |
---|---|---|
Romeo | 1 | 1.57 |
ensalada | 2 | 1.27 |
Falstaff | 4 | 0.967 |
bosque | 12 | 0.489 |
batalla | 21 | 0,246 |
# | 34 | 0,037 |
tonto. | 36 | 0,012 |
Bien. | 37 | 0 |
dulce | 37 | 0 |
Vemos que "Romeo", "Falstaff" y "ensalada" Aparece en muy pocas obras de teatro, por lo que al ver estas palabras uno podría hacerse una buena idea de qué obra podría tratarse. Por el contrario, los "buenos" y "dulce" aparece en cada obra y no informan en absoluto de qué obra se trata.
Definición
- El tf-idf es el producto de dos estadísticas, frecuencia y frecuencia de documento inverso. Hay varias maneras de determinar los valores exactos de ambas estadísticas.
- Una fórmula que pretende definir la importancia de una palabra clave o frase dentro de un documento o una página web.
esquema de ponderación | peso tf |
---|---|
binario | 0,1{displaystyle {0,1}} |
crudo | ft,d{displaystyle f_{t,d} |
frecuencia | ft,d/. . t.▪ ▪ dft.,d{displaystyle F_{t,d}{ Bigg /}{sum _{t'in ♪♪ |
normalización del registro | log ()1+ft,d){displaystyle log(1+f_{t,d}} |
doble normalización 0.5 | 0.5+0.5⋅ ⋅ ft,dmax{}t.▪ ▪ d}ft.,d{displaystyle 0.5+0.5cdot {frac {f_{t,d}{max ¿Qué? ♪♪ |
doble normalización K | K+()1− − K)ft,dmax{}t.▪ ▪ d}ft.,d{displaystyle K+(1-K){frac {f_{t,d}{max ¿Qué? ♪♪ |
Frecuencia de plazos
Frecuencia del término, tf(t,d), es la frecuencia relativa del término t dentro del documento d,
- tf()t,d)=ft,d. . t.▪ ▪ dft.,d{displaystyle mathrm {tf} (t,d)={frac {f_{t,d}{sum - No. ♪♪,
Donde ft,d es crudo de un término en un documento, es decir, el número de veces que término t ocurre en el documento d. Nota el denominador es simplemente el número total de términos en el documento d (contando cada ocurrencia del mismo término por separado). Existen varias otras formas de definir la frecuencia del término:
- la cuenta cruda en sí misma: tf(t,d) ft,d
- "frecuencias" booleanas: tf(t,d) = 1 si t ocurre en d y 0 de otro modo;
- frecuencia logarítmicamente escalada: tf(t,d) = log (1 + ft,d);
- frecuencia aumentada, para prevenir un sesgo hacia documentos más largos, por ejemplo, frecuencia cruda dividida por la frecuencia cruda del término más frecuente en el documento:
- tf()t,d)=0.5+0.5⋅ ⋅ ft,dmax{}ft.,d:t.▪ ▪ d}{displaystyle mathrm {tf} (t,d)=0.5+0.5cdot {frac {cHFF} {cH00}} {cH00} {cH00}}} {ccH00}}} {ccH00}}}}} {ccH00}}}}} {ccH00}}}}} {ccccH00}}}}}}}}} {cccccccH00}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {cccccccccccccccccccccccccccccccccccccccccc}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
Frecuencia de documentos inversa
esquema de ponderación | peso idf (nt=Silencio{}d▪ ▪ D:t▪ ▪ d}Silencio{displaystyle No. D:tin d}Sobrevivir) |
---|---|
una vez | 1 |
frecuencia de documento inverso | log Nnt=− − log ntN{displaystyle log {frac {N}{n_{t}=-log {fnh} {fn}} {fnh}}} {fn}}} {fn}} {fn}}} {fn}}} {fn}}}} {fn}}}} {fn}}} {fn}}} {fn}}}}}}}} {fn}}}}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {f}}}}}}}}}}}}} {f}}}}}}}}}}}}}}}}} {f}}}}}}}}}}}}}}}} {f}}}}}}}}}}}} {f}}}} |
frecuencia de documento inverso suave | log ()N1+nt)+1{displaystyle log left({frac {N}{1+n_{t}right)+1} |
frecuencia de documento inverso max | log ()max{}t.▪ ▪ d}nt.1+nt){displaystyle log left({frac {max _{t'in ¿Qué? |
frecuencia de documento inverso probabilístico | log N− − ntnt{displaystyle log {frac {N-n_{t} {n_{t}}} |
La frecuencia inversa de documentos es una medida de cuánta información proporciona la palabra, es decir, si es común o rara en todos los documentos. Es la fracción inversa escalada logarítmicamente de los documentos que contienen la palabra (que se obtiene dividiendo el número total de documentos por el número de documentos que contienen el término, y luego tomando el logaritmo de ese cociente):
- idf()t,D)=log NSilencio{}d▪ ▪ D:t▪ ▪ d}Silencio{displaystyle mathrm { t,D=log {frac {N}{din D:tin d\}}}}}
con
- N{displaystyle N}: número total de documentos en el corpus N=SilencioDSilencio{displaystyle No.
- Silencio{}d▪ ▪ D:t▪ ▪ d}Silencio{fnMicrosoft Sans Serif}: número de documentos donde el término t{displaystyle t} aparece (es decir, tf()t,d)ل ل 0{displaystyle mathrm {tf} (t,d)neq 0}). Si el término no está en el cuerpo, esto conducirá a una división por cero. Por lo tanto, es común ajustar el numerador 1+N{displaystyle 1+N} y denominación a 1+Silencio{}d▪ ▪ D:t▪ ▪ d}Silencio{displaystyle 1+Operada{din D:tin d}.

Frecuencia de plazos–frecuencia de documentos inversa
esquema de ponderación | tf-idf |
---|---|
Cuenta-df | ft,d⋅ ⋅ log Nnt{displaystyle f_{t,d}cdot log {frac {N}{n_{t}}} |
doble normalización-idf | ()0.5+0.5ft,qmaxtft,q)⋅ ⋅ log Nnt{displaystyle left(0.5+0.5{frac {f_{t,q}{max {f} {f}}cdot log {frac}{n_}}} |
log normalization-idf | ()1+log ft,d)⋅ ⋅ log Nnt{displaystyle (1+log f_{t,d})cdot log {frac {N}{n_{t}}} |
Entonces tf–idf se calcula como
- tfidf()t,d,D)=tf()t,d)⋅ ⋅ idf()t,D){displaystyle mathrm {tfidf} (t,d,D)=mathrm {tf} (t,d)cdot mathrm {idf} (t,D)}
Un alto peso en tf–idf se alcanza mediante una alta frecuencia de términos (en el documento dado) y una baja frecuencia de documentos del término en toda la colección de documentos; por lo tanto, las ponderaciones tienden a filtrar términos comunes. Dado que la proporción dentro de la función log de idf es siempre mayor o igual a 1, el valor de idf (y tf-idf) es mayor o igual a 0. Como aparece un término en más documentos, la proporción dentro el logaritmo tiende a 1, acercando el idf y el tf–idf a 0.
Justificación de las FDI
Idf se introdujo como "especificidad de término" por Karen Spärck Jones en un artículo de 1972. Aunque ha funcionado bien como heurística, sus fundamentos teóricos han sido problemáticos durante al menos tres décadas después, y muchos investigadores intentaron encontrar justificaciones teóricas de la información para ello.
La propia explicación de Spärck Jones no proponía mucha teoría, aparte de una conexión con la ley de Zipf. Se han hecho intentos de poner al idf en una base probabilística, estimando la probabilidad de que un documento dado d contenga un término t como frecuencia relativa del documento,
- P()tSilencioD)=Silencio{}d▪ ▪ D:t▪ ▪ d}SilencioN,{displaystyle P(t imperdible)={frac {fnMicrosoft Sans Serif} ♪♪
para que podamos definir idf como
- idf=− − log P()tSilencioD)=log 1P()tSilencioD)=log NSilencio{}d▪ ▪ D:t▪ ▪ d}Silencio{displaystyle {begin{aligned}mathrm {f} {f}\\fnK}\\fnK}\\fnK}\\cH00=log {f} {fn} {fn} {fn} {fn}}\\cH00}\\cHFF}\cH00}cH0cH00}cH00}cH00}}\\cH00}\cH00}cH00}cH00}cH00}cH00}cH00}\\\\cH00}\\cH00}\\cH00}cH00}\cH00}\\cH00}\cH00\\cH00}\cH00}cH00}cH00}\\cHFF}\cH00}\\cH ¿Qué?
Es decir, la frecuencia inversa del documento es el logaritmo de la frecuencia "inversa" frecuencia relativa de los documentos.
Esta interpretación probabilística, a su vez, toma la misma forma que la de la autoinformación. Sin embargo, aplicar tales nociones teóricas de la información a problemas de recuperación de información genera problemas al intentar definir los espacios de eventos apropiados para las distribuciones de probabilidad requeridas: no solo es necesario tener en cuenta los documentos, sino también las consultas y los términos.
Vínculo con la teoría de la información
Tanto la frecuencia de término como la frecuencia de documento inversa pueden formularse en términos de teoría de la información; ayuda a entender por qué su producto tiene un significado en términos de contenido informativo conjunto de un documento. Una suposición característica sobre la distribución p()d,t){displaystyle p(d,t)} es que:
- p()dSilenciot)=1Silencio{}d▪ ▪ D:t▪ ▪ d}Silencio{displaystyle p(d habitt)={frac {1}{}{din D:tin d}persecuentes}
Esta suposición y sus implicaciones, según Aizawa: "representan la heurística que emplea tf-idf".
La entropía condicional de un documento "aleatoriamente elegido" en el cuerpo D{displaystyle D}, condicional al hecho de que contiene un término específico t{displaystyle t} (y asumiendo que todos los documentos tienen la misma probabilidad de ser elegidos) es:
- H()DSilencioT=t)=− − . . dpdSilenciotlog pdSilenciot=− − log 1Silencio{}d▪ ▪ D:t▪ ▪ d}Silencio=log Silencio{}d▪ ▪ D:t▪ ▪ d}SilencioSilencioDSilencio+log SilencioDSilencio=− − idf()t)+log SilencioDSilencio{displaystyle H({cal {D}tuvo {cHFF} {T}=t)=-sum ################################################################################################################################################################################################################################################################ p_{d habitt}=-log {frac {1}{}{din D:tin ♪♪ {fnMicroc {fn\fn\fn\fn\fn\\\\\\fn\\\\\\\\\\fn\\\\\fn\\\\\\\\\\\\\fn\\\\\\\\\\\\\\cH\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ D:tin ♪♪♪ TENIDO TERRITORIO ANTERITORIO=-mathrm {idf} (t)+log TENJO ANTERITORIO ANTERIOR ANTERIOR
En términos de notación, D{displaystyle {cal {}}} y T{displaystyle {cal {}}} son "variables raras" correspondientes a dibujar un documento o un término respectivamente. La información mutua puede expresarse como
- M()T;D)=H()D)− − H()DSilencioT)=. . tpt⋅ ⋅ ()H()D)− − H()DSilencioW=t))=. . tpt⋅ ⋅ idf()t){displaystyle M({cal {}};{cal {})=H({cal {}})-H({cal {cal {cal}) {D}tuvo {cal {fn}}=sum} ¿Por qué? {D} sobrevivirW=t)=sum ¿Qué?
El último paso es ampliar pt{displaystyle P_{t}, la probabilidad incondicional de trazar un término, con respecto a la elección (aleatoria) de un documento, para obtener:
- M()T;D)=. . t,dptSilenciod⋅ ⋅ pd⋅ ⋅ idf()t)=. . t,dtf()t,d)⋅ ⋅ 1SilencioDSilencio⋅ ⋅ idf()t)=1SilencioDSilencio. . t,dtf()t,d)⋅ ⋅ idf()t).{displaystyle M({cal {}};{cal {}}=sum ¿Qué? p_{d}cdot mathrm {idf} (t)=sum _{t,d}mathrm {tf} (t,d)cdot {frac {1}{ vidasD vidas}}cdot mathrm {idf} (t)={frac {1}{ minusválido}sum _{t,d}mathrm {tf}(t,d)cdot mathrm {idf} (t).}
Esta expresión muestra que la suma de Tf–idf de todos los términos y documentos posibles recupera la información mutua entre documentos y términos teniendo en cuenta todas las especificidades de su distribución conjunta. Por lo tanto, cada Tf–idf lleva el "bit de información" adjunto a un término x par de documentos.
Ejemplo de tf–idf
Supongamos que tenemos tablas de recuento de términos de un corpus que consta de solo dos documentos, como se enumera a la derecha.
Mandato | Cuenta de mandato |
---|---|
esto | 1 |
es | 1 |
otro | 2 |
ejemplo | 3 |
Mandato | Cuenta de mandato |
---|---|
esto | 1 |
es | 1 |
a | 2 |
muestra | 1 |
El cálculo de tf–idf para el término "este" se realiza de la siguiente manera:
En su forma de frecuencia bruta, tf es solo la frecuencia de "esto" para cada documento. En cada documento, la palabra "este" aparece una vez; pero como el documento 2 tiene más palabras, su frecuencia relativa es menor.
- tf().this.,d1)=15=0.2{displaystyle mathrm {tf} ({mathsf {' this''},d_{1})={frac {1}{5}=0.2}
- tf().this.,d2)=17. . 0.14{displaystyle mathrm {tf} ({mathsf {' this'},d_{2})={frac {1}{7}approx 0.14}
Un idf es constante por corpus y cuenta para la proporción de documentos que incluyen la palabra "esto". En este caso tenemos un corpus de dos documentos y todos ellos incluyen la palabra "este".
- idf().this.,D)=log ()22)=0{displaystyle mathrm {idf} ({mathsf {' this'}},D)=log left({frac {2}{2}right)=0}
Entonces tf–idf es cero para la palabra "esto", lo que implica que la palabra no es muy informativa tal como aparece en todos los documentos.
- tfidf().this.,d1,D)=0.2× × 0=0{displaystyle mathrm {tfidf} ({mathsf {' this''},d_{1},D)=0.2times 0=0}
- tfidf().this.,d2,D)=0.14× × 0=0{displaystyle mathrm {tfidf} ({mathsf {' this''},d_{2},D)=0.14times 0=0}
La palabra "ejemplo" es más interesante: aparece tres veces, pero sólo en el segundo documento:
- tf().example.,d1)=05=0{displaystyle mathrm {tf} ({mathsf {''''example'},d_{1}={frac {0}{5}=0}
- tf().example.,d2)=37. . 0.429{displaystyle mathrm {tf} ({mathsf {''''example'},d_{2}={frac {3}{7}approx 0.429}
- idf().example.,D)=log ()21)=0.301{displaystyle mathrm {idf} ({mathsf {''''example'},D)=log left({frac {2}{1}right)=0.301}
Finalmente,
- tfidf().example.,d1,D)=tf().example.,d1)× × idf().example.,D)=0× × 0.301=0{displaystyle mathrm {tfidf} ({mathsf {''''example'},d_{1},D)=mathrm {tf} ({mathsf {''''''example'},d_{1})times mathrm {idf} ({mathsf {''''example'},D)=0times 0.301=0}
- tfidf().example.,d2,D)=tf().example.,d2)× × idf().example.,D)=0.429× × 0.301. . 0.129{displaystyle mathrm {tfidf} ({mathsf {''''example'},d_{2},D)=mathrm {tf} ({mathsf {''''''example'},d_{2})times mathrm {idf} ({mathsf {''''example'},D)=0.429times 0.301approx 0.129}
(usando el logaritmo en base 10).
Más allá de los términos
La idea detrás de tf–idf también se aplica a entidades distintas a los términos. En 1998, el concepto de idf se aplicó a las citas. Los autores argumentaron que "si una cita muy poco común es compartida por dos documentos, esto debería ponderarse más que una cita hecha por una gran cantidad de documentos". Además, se aplicó tf–idf a las "palabras visuales" con el fin de realizar coincidencias de objetos en videos y oraciones completas. Sin embargo, el concepto de tf-idf no resultó ser más efectivo en todos los casos que un esquema de tf simple (sin idf). Cuando se aplicó tf-idf a las citas, los investigadores no pudieron encontrar ninguna mejora con respecto a una ponderación simple del recuento de citas que no tenía ningún componente idf.
Derivados
Varios esquemas de ponderación de términos se han derivado de tf–idf. Uno de ellos es TF–PDF (frecuencia de término * frecuencia de documento proporcional). TF-PDF se introdujo en 2001 en el contexto de la identificación de temas emergentes en los medios. El componente PDF mide la diferencia de frecuencia con la que aparece un término en diferentes dominios. Otro derivado es TF – IDuF. En TF–IDuF, el idf no se calcula en función del corpus de documentos que se va a buscar o recomendar. En cambio, el IDF se calcula en función de los datos de los usuarios. colecciones de documentos personales. Los autores informan que TF-IDuF fue igualmente efectivo que tf-idf, pero también podría aplicarse en situaciones en las que, por ejemplo, un sistema de modelado de usuarios no tiene acceso a un corpus de documentos global.
Enlaces externos y lecturas sugeridas
- Gensim es una biblioteca Python para modelar el espacio vectorial e incluye el peso tf-idf.
- Anatomía de un motor de búsqueda
- tf-idf y definiciones relacionadas como se utiliza en Lucena
- TfidfTransformer in scikit-learn
- Text to Matrix Generator (TMG) MATLAB toolbox que se puede utilizar para diversas tareas en la extracción de texto (TM) específicamente i) indexación, ii) recuperación, iii) reducción de dimensionalidad, iv) agrupación, v) clasificación. El paso de indexación ofrece al usuario la capacidad de aplicar métodos de ponderación local y global, incluyendo tf-idf.
- Term-frecuencia explicada Explicación de la frecuencia