Tf-Idf
Comprensión de TF-IDF
Aunque el modelo de bolsa de palabras es sencillo y eficaz, tiende a sobrevalorar los términos comunes, lo que dificulta identificar palabras menos frecuentes pero más informativas. Para abordar esto, a menudo se utiliza el modelo TF-IDF en su lugar.
TF-IDF (frecuencia de término-frecuencia inversa de documento) es una medida estadística que refleja la importancia de una palabra en un documento específico en relación con un corpus más grande.
A diferencia de BoW, que se basa en el recuento bruto de términos, TF-IDF tiene en cuenta tanto la frecuencia de un término dentro de un documento como su frecuencia inversa en todo el corpus. Esto reduce la influencia de los términos comunes y resalta aquellos más raros y significativos.
Cómo funciona TF-IDF
La puntuación TF-IDF para un término en un documento se calcula como:
tf-idf(t,d)=tf(t,d)×idf(t)donde:
- t es el término (una palabra o n-grama);
- d es el documento.
Existen muchas variantes para calcular los valores de tf y idf. Veamos una opción común para cada uno:
Frecuencia de término (TF)
Indica cuántas veces aparece un término en un documento, capturando su importancia relativa dentro de ese documento. Similar al modelo de bolsa de palabras, a menudo se utiliza un conteo simple:
tf(t,d)=count(t,d)Frecuencia inversa de documento (IDF)
Mide cuán raro es un término en todo el corpus. Puede calcularse como el logaritmo natural de la razón entre el número total de documentos y el número de documentos que contienen el término:
idf(t)=log(1+df(t)1+Ndocuments)+1Esta fórmula utiliza suavizado (sumando 1) para evitar la división por cero y asegura que incluso los términos comunes reciban una puntuación IDF distinta de cero. En efecto, IDF reduce el peso de los términos frecuentes y enfatiza aquellos más informativos y raros.
Sin el componente IDF, TF-IDF se reduciría a un simple conteo de términos — esencialmente volviendo al modelo de bolsa de palabras.
Cálculo de TF-IDF
Veamos un ejemplo sencillo:
En este caso, tenemos solo dos documentos y utilizamos únicamente unigramas (palabras individuales), por lo que los cálculos son sencillos. Comenzamos calculando las frecuencias de término para cada palabra en ambos documentos, seguidas de los valores de IDF para los términos "a" e "is".
Dado que solo hay dos documentos en nuestro corpus, cada término que aparece en ambos documentos tendrá un valor de IDF de 1, mientras que otros términos tendrán un valor de IDF de ~1.406465.
Finalmente, podemos calcular los valores de TF-IDF para cada término en cada documento multiplicando TF por IDF, lo que da como resultado la siguiente matriz:
Normalización L2
Los vectores TF-IDF resultantes pueden variar significativamente en magnitud, especialmente en grandes corpus, debido a diferencias en la longitud de los documentos. Por eso se aplica comúnmente la normalización L2: para escalar todos los vectores a una longitud uniforme, permitiendo comparaciones justas e imparciales entre documentos de diferentes longitudes.
La normalización L2, también conocida como normalización euclidiana, es un proceso aplicado a vectores individuales que ajusta sus valores para asegurar que la longitud del vector sea 1.
La normalización L2 se realiza dividiendo cada término del vector por la norma euclidiana del vector.
Si el vector del documento se ve así:
d=(w1,w2,w3,...,wN)donde wi es el peso del término i,
entonces la norma euclidiana se expresa así:
∥d∥2=w12+w22+w32+...+wN2y el vector normalizado se expresa así:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Así es como funciona la normalización L2 para un vector bidimensional (un documento con 2 términos):
No te preocupes si las fórmulas parecen complejas. Todo lo que hacemos es dividir cada valor de TF-IDF en un documento por la longitud (o magnitud) del vector TF-IDF de ese documento. Esto escala el vector para que su longitud sea 1, asegurando comparaciones consistentes entre vectores.
Ahora apliquemos la normalización L2 a nuestra matriz TF-IDF, que calculamos anteriormente:
La matriz resultante es exactamente la que tuvimos como ejemplo en uno de los capítulos anteriores.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.45
Tf-Idf
Desliza para mostrar el menú
Comprensión de TF-IDF
Aunque el modelo de bolsa de palabras es sencillo y eficaz, tiende a sobrevalorar los términos comunes, lo que dificulta identificar palabras menos frecuentes pero más informativas. Para abordar esto, a menudo se utiliza el modelo TF-IDF en su lugar.
TF-IDF (frecuencia de término-frecuencia inversa de documento) es una medida estadística que refleja la importancia de una palabra en un documento específico en relación con un corpus más grande.
A diferencia de BoW, que se basa en el recuento bruto de términos, TF-IDF tiene en cuenta tanto la frecuencia de un término dentro de un documento como su frecuencia inversa en todo el corpus. Esto reduce la influencia de los términos comunes y resalta aquellos más raros y significativos.
Cómo funciona TF-IDF
La puntuación TF-IDF para un término en un documento se calcula como:
tf-idf(t,d)=tf(t,d)×idf(t)donde:
- t es el término (una palabra o n-grama);
- d es el documento.
Existen muchas variantes para calcular los valores de tf y idf. Veamos una opción común para cada uno:
Frecuencia de término (TF)
Indica cuántas veces aparece un término en un documento, capturando su importancia relativa dentro de ese documento. Similar al modelo de bolsa de palabras, a menudo se utiliza un conteo simple:
tf(t,d)=count(t,d)Frecuencia inversa de documento (IDF)
Mide cuán raro es un término en todo el corpus. Puede calcularse como el logaritmo natural de la razón entre el número total de documentos y el número de documentos que contienen el término:
idf(t)=log(1+df(t)1+Ndocuments)+1Esta fórmula utiliza suavizado (sumando 1) para evitar la división por cero y asegura que incluso los términos comunes reciban una puntuación IDF distinta de cero. En efecto, IDF reduce el peso de los términos frecuentes y enfatiza aquellos más informativos y raros.
Sin el componente IDF, TF-IDF se reduciría a un simple conteo de términos — esencialmente volviendo al modelo de bolsa de palabras.
Cálculo de TF-IDF
Veamos un ejemplo sencillo:
En este caso, tenemos solo dos documentos y utilizamos únicamente unigramas (palabras individuales), por lo que los cálculos son sencillos. Comenzamos calculando las frecuencias de término para cada palabra en ambos documentos, seguidas de los valores de IDF para los términos "a" e "is".
Dado que solo hay dos documentos en nuestro corpus, cada término que aparece en ambos documentos tendrá un valor de IDF de 1, mientras que otros términos tendrán un valor de IDF de ~1.406465.
Finalmente, podemos calcular los valores de TF-IDF para cada término en cada documento multiplicando TF por IDF, lo que da como resultado la siguiente matriz:
Normalización L2
Los vectores TF-IDF resultantes pueden variar significativamente en magnitud, especialmente en grandes corpus, debido a diferencias en la longitud de los documentos. Por eso se aplica comúnmente la normalización L2: para escalar todos los vectores a una longitud uniforme, permitiendo comparaciones justas e imparciales entre documentos de diferentes longitudes.
La normalización L2, también conocida como normalización euclidiana, es un proceso aplicado a vectores individuales que ajusta sus valores para asegurar que la longitud del vector sea 1.
La normalización L2 se realiza dividiendo cada término del vector por la norma euclidiana del vector.
Si el vector del documento se ve así:
d=(w1,w2,w3,...,wN)donde wi es el peso del término i,
entonces la norma euclidiana se expresa así:
∥d∥2=w12+w22+w32+...+wN2y el vector normalizado se expresa así:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Así es como funciona la normalización L2 para un vector bidimensional (un documento con 2 términos):
No te preocupes si las fórmulas parecen complejas. Todo lo que hacemos es dividir cada valor de TF-IDF en un documento por la longitud (o magnitud) del vector TF-IDF de ese documento. Esto escala el vector para que su longitud sea 1, asegurando comparaciones consistentes entre vectores.
Ahora apliquemos la normalización L2 a nuestra matriz TF-IDF, que calculamos anteriormente:
La matriz resultante es exactamente la que tuvimos como ejemplo en uno de los capítulos anteriores.
¡Gracias por tus comentarios!