Procesamiento y Limpieza de Datos para IA con Word2Vec y Gensim
Clase 6 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
¿Cómo se realiza la limpieza y preprocesamiento de un corpus?
La limpieza de un corpus es un paso crucial al trabajar con modelos de inteligencia artificial basados en el procesamiento del lenguaje natural (NLP). Los corpora que utilizamos para reentrenar nuestros modelos no siempre están listos para ser procesados directamente. Por lo tanto, es esencial llevar a cabo unas cuantas etapas de preprocesamiento para mejorar la calidad de nuestros datos y, en última instancia, el rendimiento del modelo.
¿Qué incluye la función cleanText?
Para limpiar y preprocesar el corpus, se utiliza la función cleanText, que opera sobre baches de datos, denominados sentenceBatch. A continuación, se describen los pasos llevados a cabo por la función:
-
Convertir a minúsculas: Se inicia convirtiendo todo el texto a minúsculas para estandarizar el conjunto de datos.
-
Eliminar URLs: Utilizando expresiones regulares, se eliminan las URLs, ya que estas no contribuyen al entendimiento del lenguaje y varían constantemente.
import re
# Quitando URLs del texto
texto = re.sub(r'http\S+|www\S+|https\S+', '', texto)
- Quitar menciones y hashtags: De igual forma que con las URLs, se eliminan las menciones de redes sociales y hashtags.
# Quitando menciones (@usuario) y hashtags (#etiqueta)
texto = re.sub(r'@\w+|#\w+', '', texto)
-
Eliminar signos de puntuación: Se utilizan herramientas de la librería
HensingcomoStripPunctation. -
Eliminar números y palabras cortas: Se utilizan herramientas como
StripNumericyStripShortpara eliminar todos los números y las palabras demasiado cortas, que suelen ser poco significativas.
¿Cómo se manejan las stopwords y tokens?
El manejo de stopwords y la tokenización son pasos críticos en el preprocesamiento:
- Eliminar stopwords: Estos son términos que, al ser demasiado comunes, pueden degradar el rendimiento del modelo.
from nltk.corpus import stopwords
# Definiendo las stopwords en español
stopwords_esp = set(stopwords.words('spanish'))
# Filtrando stopwords
filtratext = [word for word in tokens if word not in stopwords_esp]
- Tokenizar el texto: Permite descomponer una oración completa en una lista de palabras individuales.
from nltk.tokenize import word_tokenize
# Tokenizar el texto
tokens = word_tokenize(texto)
¿Cómo se aplica el preprocesamiento al dataset?
Finalmente, la función cleanText se aplica al dataset completo:
- Mapeo sobre el dataset: Utilizando la propiedad
mapde un dataset tipo JoggingFace, se aplica la función sobre el corpus en proceso batch, que optimiza el tiempo de ejecución.
# Aplicando cleanText al dataset
subset = subset.map(cleanText, batched=True)
El resultado es un corpus limpio, listo para ser utilizado en modelos de entrenamiento de Word Embeddings. Las oraciones ahora están tokenizadas por palabras, y se han eliminado elementos innecesarios como números, hipervínculos y stopwords.
¿Por qué es importante un preprocesamiento de calidad en NLP?
El preprocesamiento de calidad es un requisito esencial para el éxito en tareas de NLP con inteligencia artificial. Un corpus bien preparado asegura que el modelo pueda interpretar y aprender el lenguaje de manera eficaz y precisa. Aunque hemos trabajado con un millón de oraciones, los modelos más avanzados requieren de millones o incluso billones de oraciones para su entrenamiento. Hacerlo eficiente y eficaz es uno de los grandes retos en el campo del NLP.