¿Cómo funcionan los embeddings?

1

Cómo Entender y Aplicar Embeddings en IA: De Teoría a Práctica

2

Introducción a One-Hot Encoding y TF-IDF en IA

3

Representación Vectorial de Palabras

4

Evaluación de Similitudes Semánticas: Métodos y Aplicaciones

Quiz: ¿Cómo funcionan los embeddings?

Creación de embeddings

5

Creación y entrenamiento de modelos Word2Vec con Gensim

6

Procesamiento y Limpieza de Datos para IA con Word2Vec y Gensim

7

Entrenamiento de Modelos Word2Vec con GenSim y Análisis de Similitud

8

Word2Vec: Entrenando IA para Comprender el Lenguaje

Quiz: Creación de embeddings

Usando embeddings preentrenados

9

Uso práctico de Sentence Transformers en procesamiento de textos

10

Análisis Semántico: Buscar Textos con Sentence Transformers

11

Manejo de Embeddings con OpenAI: API, Instalación y Datasets

12

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

13

Creación de un Motor de Búsqueda Semántico con Python

14

Transformación de Texto a Embeddings con Sentence Transformer

Quiz: Usando embeddings preentrenados

Bases de datos vectoriales

15

Qué es y cómo usar una base de datos vectorial

16

Gestión de Bases de Datos Vectoriales con ChromaDB: Instalación y Uso

17

Generación y manejo de embeddings en Chroma con Sentence Transformer

18

Consultas avanzadas y filtrado en bases de datos con Chroma

19

Cargar colección de Chroma previamente creada

20

Configuración y Uso de Pinecone: Desde la Instalación hasta la Inserción de Datos

21

Optimización de Ingesta de Datos en Pinecone: Procesos y Estrategias

22

Consultas Avanzadas en Pinecone: De Texto a Vector y Filtros

23

Carga de índices en Pinecone: Gestión eficiente en la nube

24

Carga de embeddings en Pinecone para búsqueda semántica

25

Creación de buscador semántico con Gradio y Sentence Transformer

Quiz: Bases de datos vectoriales

Conclusiones

26

Potenciando los LLMs: Integración de Embeddings y Datos Vectoriales

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Análisis Semántico: Buscar Textos con Sentence Transformers

10/26
Recursos

Aportes 7

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Realicé el desafío con el dataset de Walmart. Hice una búsqueda semántica en base a una necesidad y me recomendó productos.

Me aventuré en el análisis de contenido de YouTube, específicamente del canal de @ManuelaEcheverri, y…

Scraping: Empecé extrayendo los títulos y enlaces de los videos.

Pandas: Con el curso de Pandas, almacené los datos en un CSV.

Aplicando busqueda semantica, aqui el resultado.

No es necesario que Sentence Transformers se actualice constantemente. Una vez que tengas el modelo entrenado y funcionando, puedes usarlo sin necesidad de actualizaciones frecuentes. Sin embargo, es recomendable revisar y actualizar el modelo de vez en cuando para aprovechar mejoras en la arquitectura o en el entrenamiento, especialmente si estás trabajando con datos en un dominio que cambia rápidamente. Mantener la calidad de los embeddings es clave para obtener buenos resultados en búsqueda semántica.
![](https://static.platzi.com/media/user_upload/imagen-6dcb82b6-3666-44b9-99cc-540afe410ffc.jpg) El que lo entendió... lo entendió
Les comparto un ejercicio en el que se integra más de una capa de embeddings para el caso de los productos de Walmart. Este ejercicio considera el precio de lista y la categoría (además de la descripción del producto), con el objetivo de que el modelo cuente con mayor contexto para identificar las similaridades de los términos de consulta: ```python # Import working libraries import pandas as pd from sentence_transformers import SentenceTransformer, util import os import numpy as np # Set wd directory = '/content/drive/MyDrive/Python Business Cases/Embeddings' os.chdir(directory) # Load data df_walmart = pd.read_csv('marketing_sample_for_walmart_com-ecommerce__20191201_20191231__30k_data.csv') df_walmart.head(10) # Change brand Coste��a df_walmart['Brand'] = df_walmart['Brand'].str.replace('Coste��a', 'Costena') # Set model model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2') # Function to calculate embeddings for different data types def calculate_embeddings(data, is_numeric=False): if is_numeric: # For numeric data, we'll convert to string and add a prefix data = data.astype(str) data = 'Price: ' + data return model.encode(data, batch_size=64, show_progress_bar=True) # Calculate embeddings for Product Name, Sale Price, and Category df_walmart['product_embeddings'] = calculate_embeddings(df_walmart['Product Name']).tolist() df_walmart['price_embeddings'] = calculate_embeddings(df_walmart['Sale Price'], is_numeric=True).tolist() df_walmart['category_embeddings'] = calculate_embeddings(df_walmart['Category']).tolist() # Function to calculate similarity with multiple features def calculate_similarity(query, product_emb, price_emb, category_emb): query_embedding = model.encode([query]) product_sim = util.cos_sim(product_emb, query_embedding[0]) price_sim = util.cos_sim(price_emb, query_embedding[0]) category_sim = util.cos_sim(category_emb, query_embedding[0]) return (product_sim + price_sim + category_sim) / 3 # Simple average of similarities # Example query query = 'cheap chile products' # Calculate similarity df_walmart['similarity'] = df_walmart.apply(lambda row: calculate_similarity(query, row['product_embeddings'], row['price_embeddings'], row['category_embeddings']), axis=1) # Sort and display results results = df_walmart.sort_values('similarity', ascending=False).head(20) print(results[['Product Name', 'Sale Price', 'Category', 'similarity']]) ```
![](<Screenshot 2024-01-12 at 17.30.42>)\[Pregunta] Algo que remarqué en el dataset de Disneyland es que se debe tener en cuenta el ' , ya que si pongo como query "I didn't like it' toma reviews positivos. Cómo me récomiendan manejar esos escenarios ? Pensé en regex para eliminar las ' pero que pasa si el query\_embedding si tiene el ' . ![](https://static.platzi.com/media/user_upload/Screenshot%202024-01-12%20at%2017.30.42-a66f93e4-cee7-4949-ad36-80100d197fb4.jpg)

Realice el reto con dataset de Disneylan Reviews.

query_embedding = model.encode(['Disney magic'])

df_DisneylandReviews['similarity'] = df_DisneylandReviews.embeddings.apply(lambda x : util.cos_sim(x,query_embedding[0]))

df_DisneylandReviews.sort_values('similarity',ascending=False).head(10)