Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Tf-Idf | Modelos Básicos de Texto
Introducción al PLN

bookTf-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.

Note
Definición

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)\def\tfidf{\operatorname{tf-idf}} \def\tf{\operatorname{tf}} \def\idf{\operatorname{idf}} \tfidf(t, d) = \tf(t, d) \times \idf(t)

donde:

  • tt es el término (una palabra o n-grama);
  • dd es el documento.

Existen muchas variantes para calcular los valores de tf\operatorname{tf} y idf\operatorname{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)\def\tf{\operatorname{tf}} \def\count{\operatorname{count}} \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+Ndocuments1+df(t))+1\def\idf{\operatorname{idf}} \def\df{\operatorname{df}} \idf(t) = \log\Bigl(\frac{1 + N_{documents}}{1 + \df(t)}\Bigr) + 1

Esta 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".

Note
Nota

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.

Note
Estudiar más

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)d = (w_1, w_2, w_3, ..., w_N)

donde wiw_i es el peso del término ii,

entonces la norma euclidiana se expresa así:

d2=w12+w22+w32+...+wN2\|d\|_2 = \sqrt{w^2_1 + w^2_2 + w^2_3 + ... + w^2_N}

y el vector normalizado se expresa así:

dnorm=(w1d2,w2d2,w3d2,...,wNd2)d_{norm} = \Bigl(\frac{w_1}{\|d\|_2}, \frac{w_2}{\|d\|_2}, \frac{w_3}{\|d\|_2}, ..., \frac{w_N}{\|d\|_2})

Así es como funciona la normalización L2 para un vector bidimensional (un documento con 2 términos):

Note
Nota

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.

question mark

¿Cuál es la principal ventaja del modelo TF-IDF en comparación con el modelo BoW?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 3.45

bookTf-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.

Note
Definición

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)\def\tfidf{\operatorname{tf-idf}} \def\tf{\operatorname{tf}} \def\idf{\operatorname{idf}} \tfidf(t, d) = \tf(t, d) \times \idf(t)

donde:

  • tt es el término (una palabra o n-grama);
  • dd es el documento.

Existen muchas variantes para calcular los valores de tf\operatorname{tf} y idf\operatorname{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)\def\tf{\operatorname{tf}} \def\count{\operatorname{count}} \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+Ndocuments1+df(t))+1\def\idf{\operatorname{idf}} \def\df{\operatorname{df}} \idf(t) = \log\Bigl(\frac{1 + N_{documents}}{1 + \df(t)}\Bigr) + 1

Esta 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".

Note
Nota

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.

Note
Estudiar más

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)d = (w_1, w_2, w_3, ..., w_N)

donde wiw_i es el peso del término ii,

entonces la norma euclidiana se expresa así:

d2=w12+w22+w32+...+wN2\|d\|_2 = \sqrt{w^2_1 + w^2_2 + w^2_3 + ... + w^2_N}

y el vector normalizado se expresa así:

dnorm=(w1d2,w2d2,w3d2,...,wNd2)d_{norm} = \Bigl(\frac{w_1}{\|d\|_2}, \frac{w_2}{\|d\|_2}, \frac{w_3}{\|d\|_2}, ..., \frac{w_N}{\|d\|_2})

Así es como funciona la normalización L2 para un vector bidimensional (un documento con 2 términos):

Note
Nota

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.

question mark

¿Cuál es la principal ventaja del modelo TF-IDF en comparación con el modelo BoW?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6
some-alt