Evaluación de Similitudes Semánticas: Métodos y Aplicaciones
Clase 4 de 26 • Curso de Embeddings y Bases de Datos Vectoriales para NLP
Contenido del curso
- 9

Uso práctico de Sentence Transformers en procesamiento de textos
11:16 - 10

Análisis Semántico: Buscar Textos con Sentence Transformers
04:42 - 11

Manejo de Embeddings con OpenAI: API, Instalación y Datasets
10:28 - 12

Manejo y Visualización de Embeddings con OpenAI: Guía Práctica
07:24 - 13

Creación de un Motor de Búsqueda Semántico con Python
12:20 - 14

Transformación de Texto a Embeddings con Sentence Transformer
03:53 Quiz_Usando embeddings preentrenados
- 15

Qué es y cómo usar una base de datos vectorial
05:36 - 16

Gestión de Bases de Datos Vectoriales con ChromaDB: Instalación y Uso
11:45 - 17

Generación y manejo de embeddings en Chroma con Sentence Transformer
04:20 - 18

Consultas avanzadas y filtrado en bases de datos con Chroma
09:24 - 19
Cargar colección de Chroma previamente creada
00:40 - 20

Configuración y Uso de Pinecone: Desde la Instalación hasta la Inserción de Datos
05:08 - 21

Optimización de Ingesta de Datos en Pinecone: Procesos y Estrategias
07:48 - 22

Consultas Avanzadas en Pinecone: De Texto a Vector y Filtros
05:57 - 23

Carga de índices en Pinecone: Gestión eficiente en la nube
02:35 - 24

Carga de embeddings en Pinecone para búsqueda semántica
09:22 - 25

Creación de buscador semántico con Gradio y Sentence Transformer
16:22 Quiz_Bases de datos vectoriales
¿Por qué es importante calcular distancias en vectores?
Trabajar con vectores es una ventaja significativa en el análisis del lenguaje, pues nos permite evaluar distancias entre ellos para determinar similitudes o diferencias semánticas entre palabras. Al conocer la distancia, identificamos qué tan cercanas o alejadas están ciertas palabras en un contexto semántico, lo que es crucial para comprender cómo se relacionan en nuestro lenguaje.
¿Qué es la similitud por coseno?
Esta es una de las primeras métricas para evaluar la similitud entre vectores. En esencia:
- Coseno de vectores: Los vectores con direcciones similares poseen palabras similares. El ángulo entre estos vectores indica su semejanza: cuanto menor es el ángulo, mayor es la similitud.
- Método de similitud por coseno: Multiplicamos cada uno de los elementos de los vectores y sumamos los resultados. A continuación, el vector A y B se elevan al cuadrado y se aplica una raíz cuadrada para normalizarlos. Finalmente, se establece la relación entre el producto punto y la normalización de ambos vectores para obtener un valor entre 0 y 1.
Ejemplo en Python:
import numpy as np
# Definimos los vectores gato y perro
gato = np.array([0.8, 0.22, 0.5])
perro = np.array([0.7, 0.3, 0.4])
# Calculamos la similitud por coseno
dot_product = np.dot(gato, perro)
gato_norm = np.linalg.norm(gato)
perro_norm = np.linalg.norm(perro)
cosine_similarity = dot_product / (gato_norm * perro_norm)
print(cosine_similarity) # Resultado entre 0 y 1
¿Qué otros métodos de distancia se utilizan?
Distancia euclidiana
A diferencia de la similitud por coseno, la distancia euclidiana evalúa tanto la dirección como la magnitud de los vectores:
- Resta de vectores: Restamos los valores de los vectores A y B.
- Normalización: Elevamos al cuadrado sus diferencias, sumamos, y aplicamos una raíz cuadrada.
La distancia euclidiana mide en particular qué tan cercanos están dos puntos en un espacio vectorial.
Producto punto
Ya utilizado en el cálculo de la similitud por coseno, el producto punto se puede utilizar por separado. Este método tiene tres interpretaciones clave según el resultado:
- Mayor a 0: ángulo menor a 90° = vectores más similares.
- Igual a 0: vectores ortogonales.
- Menor a 0: ángulo mayor a 90° = vectores menos similares.
¿Cómo podemos automatizar el cálculo de estas métricas?
Gracias a bibliotecas como NumPy, es posible realizar estos cálculos de manera sencilla en Python. Los ejemplos de código antes mencionados son aplicables en entornos de programación estándar para analizar vectores semánticos sin tener que realizar cálculos matemáticos manualmente.
Finalmente, conocer y utilizar estas métricas no solo te permitirá analizar palabras de manera eficiente, sino también te ayudará a construir modelos más robustos y entrenar sistemas de inteligencia artificial que dependen de estas representaciones vectoriales. ¡Anímate a explorar con vectores distintos y descubre nuevas relaciones semánticas!