Procesamiento de Lenguaje Natural · Inteligencia Artificial

Bolsa de palabras y TF-IDF

Representar documentos de forma dispersa con la bolsa de palabras y ponderar la relevancia léxica con TF-IDF.

Bolsa de palabras y TF-IDF

Contar bien es representar La bolsa de palabras ignora el orden pero conserva la esencia: un vector de recuentos. TF-IDF le añade criterio, bajando el peso de las palabras que salen en todas partes y subiendo el de las diagnósticas.

La idea de la bolsa

Se construye un vocabulario con todos los términos del corpus y cada documento se representa por cuántas veces contiene cada uno. El orden y la gramática se descartan; queda un perfil de frecuencias.

Vectores dispersos

El problema del recuento bruto

Contar favorece documentos largos y las palabras vacías —artículos, preposiciones— dominan. Sin normalizar, un texto extenso parece más «interesante» solo por tamaño.

Un saco volcado derrama fichas cuadradas que se ordenan en una fila de barras verticales de distinta altura.
La bolsa de palabras reduce un texto a un perfil de frecuencias, sin importar el orden.

Frecuencia en el documento (TF)

TF mide cuánto aparece un término en un documento, a menudo normalizado por su longitud. Sube la voz de lo repetido dentro del texto.

Frecuencia inversa en el corpus (IDF)

IDF castiga los términos que salen en casi todos los documentos, pues apenas discriminan. Un término raro y presente pesa más: es informativo.

Multiplicar TF por IDF

TF-IDF combina ambas: puntúa alto lo que abunda en un documento pero escasea en el resto. Es la relevancia léxica clásica para búsqueda y representación.

Más allá del orden

La bolsa pierde «perro muerde hombre» frente a «hombre muerde perro». Los n-gramos recuperan algo de contexto al contar secuencias cortas de términos.

Usos y límites

TF-IDF sigue siendo potente en recuperación y clasificación lineal, y es barato e interpretable. Pero no capta sinonimia: «coche» y «automóvil» son dimensiones sin relación.

Errores frecuentes

Ejemplo resuelto: puntuar un término con TF-IDF

Quieres que tu buscador ordene documentos por relevancia y aplicas TF-IDF:

  1. Cuentas cuántas veces aparece el término en el documento (TF).
  2. Normalizas por la longitud para no premiar textos largos.
  3. Calculas en cuántos documentos aparece el término (IDF).
  4. Multiplicas TF por IDF para ponderar su relevancia.
  5. Ordenas los documentos por la puntuación resultante.

¿Para qué sirve en la realidad?

TF-IDF sigue detrás de muchos motores de búsqueda y clasificadores ligeros: es barato, interpretable y eficaz cuando no hace falta entender el orden ni la sinonimia.

En TF-IDF, el factor IDF sirve principalmente para:

La representación de bolsa de palabras conserva el orden exacto de los términos en el documento.

Bolsa

Representación que ignora el orden y cuenta términos
bolsa de palabras
Factor que mide la abundancia de un término en el documento
tf
Factor que castiga términos presentes en casi todo el corpus
idf
Vectores con la mayoría de entradas en cero son...
dispersos
Contar secuencias cortas para recuperar contexto son los...
n-gramos

Ordena la lógica de TF-IDF para puntuar un término:

Contar
Normalizar
Ponderar
Combinar

TF-IDF
Ponderación de términos para recuperación de información.

Une cada pieza de la bolsa de palabras con su papel.

Contar bien es representar

# Bolsa de palabras y TF-IDF
## Bolsa
### ignora el orden
### perfil de frecuencias
## TF
### abundancia local
### normaliza por longitud
## IDF
### rareza global
### penaliza lo común
## Limites
### sin sinonimia
### n-gramos recuperan orden

TfidfVectorizer
Implementación de la bolsa y TF-IDF en scikit-learn.

Tu buscador de documentos prioriza «de», «la» y «que». ¿Qué parte de TF-IDF está fallando y por qué la normalización por IDF ayuda?