Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Tokenización, embeddings y vectores, Unidad 1 — Por qué el lenguaje debe convertirse en números, 1.2 — Evolución histórica ·

Vectores densos

Vectores densos: Por qué el lenguaje debe convertirse en números

Introducción

En el camino hacia la transformación de texto en datos numéricos, los vectores densos son una herramienta poderosa y esencial. En esta unidad, exploraremos por qué es necesario convertir el lenguaje en vectores densos para su procesamiento en modelos matemáticos. Aprenderás sobre las representaciones numéricas modernas que permiten a las máquinas comprender mejor el significado de las palabras y frases.

Explicación principal con ejemplos

Lección 1.2.1 — Conteos y frecuencias

En la etapa inicial del NLP, los textos se transformaban en contados y frecuencias simples. Esto era útil para tareas como el conteo de las palabras más comunes, pero carecía de contexto y significado semántico. Por ejemplo, considera una lista de palabras:

texto = "El perro del hortelano es muy listo"
palabras = texto.split()
frecuencias = {}
for palabra in palabras:
    if palabra in frecuencias:
        frecuencias[palabra] += 1
    else:
        frecuencias[palabra] = 1
print(frecuencias)

Este código muestra las ocurrencias de cada palabra, pero no captura el significado relativo o contextual.

Lección 1.2.2 — Vectores dispersos

Los vectores dispersos mejoran sobre la representación basada en frecuencias al asignar un valor a cada posible palabra, con ceros donde no aparece la palabra. Esto crea una forma de matriz con filas correspondientes a documentos y columnas a palabras posibles:

from sklearn.feature_extraction.text import CountVectorizer

vectorizador = CountVectorizer()
documentos = ["El perro del hortelano es muy listo", "Los gatos son felinos"]
vectores_dispersos = vectorizador.fit_transform(documentos)
print(vectorizador.get_feature_names_out())
print(vectores_dispersos.toarray())

Lección 1.2.3 — Vectores densos

Los vectores densos, en contraste, asignan una representación numérica continua a cada palabra, capturando tanto el significado como la relación con otras palabras. Estas representaciones se crean mediante técnicas como Word2Vec o GloVe:

from gensim.models import Word2Vec

sentencias = ["El perro del hortelano es muy listo", "Los gatos son felinos"]
model = Word2Vec(sentencias, min_count=1)
print(model.wv['perro'])

Errores típicos / trampas

Convertir el lenguaje en vectores densos presenta varios desafíos:

  1. Falta de contexto: Los modelos basados en frecuencias o contados no capturan el significado del contexto, lo que puede llevar a interpretaciones erróneas.
  2. Sesgos semánticos: Los embeddings pueden reflejar sesgos históricos presentes en los datos de entrenamiento, como la desigualdad o el racismo, lo cual es crucial considerar para evitar errores en aplicaciones prácticas.
  3. Dimensiones excesivas: Las representaciones densas pueden volverse muy grandes y difíciles de manejar, especialmente con un vocabulario grande.

Checklist accionable

Asegúrate de abordar los siguientes puntos al trabajar con vectores densos:

  1. Tokenización adecuada: Usa técnicas modernas como BPE o WordPiece para obtener tokens significativos.
  2. Escalabilidad: Implementa técnicas de reducción de dimensionalidad si el espacio vectorial se vuelve demasiado grande, como PCA o t-SNE.
  3. Validación cruzada: Valida tus modelos con datos no vistos para asegurarte de que no hay sesgos ocultos.
  4. Manejo eficiente del almacenamiento: Usa índices vectoriales como Annoy o HNSW para buscar y recuperar embeddings rápidamente.
  5. Normalización: Normaliza los vectores antes de su uso en modelos para asegurar consistencia.

Siguientes pasos

Ahora que has aprendido sobre la importancia de convertir el lenguaje en vectores densos, considera los siguientes pasos:

  • Explorar embeddings contextuales: Aprende a trabajar con embeddings como BERT o XLNet que capturan mejor el contexto.
  • Integración con modelos de clasificación: Utiliza tus embeddings para mejorar la precisión y precisión en tareas de clasificación.
  • Desarrolla habilidades en NLP avanzado: Explora técnicas como generación de texto, resumen y análisis de sentimientos.

Siguiendo estos pasos, podrás aplicar vectores densos efectivamente en tus proyectos de NLP.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).