OpenWebinars

Inteligencia Artificial

Embeddings: Qué son y cómo transforman datos en información

Imagina poder convertir datos complejos y no estructurados en información útil y fácil de interpretar. Los embeddings hacen posible esta transformación al convertir palabras, imágenes y otros datos en vectores numéricos que las máquinas pueden entender y procesar. ¿Quieres saber más sobre ellos? En este artículo abordamos los mismos en profundidad.

Pablo Huet

Pablo Huet

Experto Frontend

Lectura 9 minutos

Publicado el 12 de julio de 2024

Compartir

Introducción

En el mundo del aprendizaje automático, una duda frecuente suele ser: ¿cómo logran las máquinas comprender y procesar el lenguaje humano con tanta precisión?

La respuesta radica en una poderosa técnica conocida como embeddings, que no solo capturan relaciones semánticas entre palabras, sino que también mejoran la precisión de los modelos de inteligencia artificial.

Si te interesa profundizar en este tema, deberías seguir leyendo este artículo, en el que desentrañaremos qué son los embeddings, cómo se generan y su impacto en diversas aplicaciones prácticas.

Además, aprenderás cómo están transformando grandes volúmenes de datos en información útil, así como también analizaremos sus aplicaciones prácticas en diversas áreas, como el procesamiento de lenguaje natural o la recomendación de contenidos.

La idea final es terminar con una comprensión general de cómo los embeddings están mejorando la precisión de los modelos, capturando la semántica de los datos y reduciendo la dimensionalidad de los conjuntos de datos, lo que los convierte en una técnica esencial en el arsenal de cualquier profesional de la inteligencia artificial y el aprendizaje automático.

Qué son los embeddings

Los embeddings son representaciones vectoriales densas de palabras o frases en un espacio continuo de baja dimensión. Estas representaciones permiten capturar relaciones semánticas y contextuales entre las palabras, lo que facilita su procesamiento y análisis por parte de los modelos de aprendizaje automático.

En lugar de tratar cada palabra como una entidad independiente, los embeddings permiten a los modelos entender las similitudes y diferencias entre las palabras en función de su contexto.

A diferencia de las representaciones tradicionales basadas en frecuencias de palabras, los embeddings capturan relaciones semánticas y contextuales entre las palabras, lo que permite a los modelos de aprendizaje automático entender mejor el lenguaje natural.

Relevancia de los embeddings

Resultan cruciales en el Procesamiento de Lenguaje Natural (NLP) porque permiten a los modelos entender y procesar el lenguaje de manera más efectiva.

Al mapear palabras en un espacio vectorial donde la proximidad refleja similitud semántica, los embeddings facilitan tareas como la búsqueda de información, la clasificación de textos y la traducción automática.

  • Similitud semántica: Los embeddings posicionan palabras con significados similares cerca unas de otras en el espacio vectorial. Por ejemplo, “rey” y “reina” tendrán vectores cercanos, lo que refleja su relación semántica.

  • Reducción de dimensionalidad: También reducen la dimensionalidad del espacio de características, lo que hace que los modelos sean más eficientes y manejables. Esto es especialmente útil cuando se trabaja con grandes volúmenes de datos textuales.

  • Aplicaciones prácticas: Se utilizan en una amplia variedad de aplicaciones, desde la recomendación de contenidos hasta el análisis de sentimientos y la visión por computador.

Dicho de otro modo, los embeddings transforman datos textuales en información útil y manejable, permitiendo una comprensión más profunda y precisa del lenguaje natural por parte de los modelos de aprendizaje automático.

Aprende a desarrollar algoritmos de Machine Learning
Conviértete en un profesional de Machine Learning. Domina las habilidades y herramientas necesarias para implementar algoritmos de aprendizaje automático y Deep Learning en Python.
Comenzar gratis ahora

Fundamentos de los embeddings

Los embeddings se basan en la idea de representar palabras, frases o documentos en un espacio vectorial continuo de baja dimensión, donde las relaciones semánticas y contextuales se capturan a través de la proximidad en este espacio.

Esto lleva a dos conceptos clave: la representación vectorial y los espacios de alta dimensionalidad.

Representación vectorial

La representación vectorial implica convertir palabras u otros elementos textuales en vectores numéricos. Estos vectores encapsulan información semántica y sintáctica, permitiendo que los modelos de aprendizaje automático comprendan mejor el lenguaje.

  • Vectores densos: A diferencia de las representaciones dispersas (como la bolsa de palabras, “bag of words” en inglés), los embeddings son vectores densos de dimensiones más pequeñas. Cada palabra se representa como un vector de números reales en un espacio de dimensiones predefinidas, típicamente entre 50 y 300.

  • Contexto: Los embeddings se entrenan para capturar el contexto en el que aparecen las palabras. Por ejemplo, la palabra “banco” tendrá diferentes representaciones dependiendo de si se usa en el contexto de “institución financiera” o “asiento”.

  • Entrenamiento: Los modelos asociados, como Word2Vec, GloVe y FastText, utilizan grandes corpus de texto para aprender las representaciones vectoriales. Estos ajustan los vectores de manera que las palabras con significados similares estén cerca en el espacio vectorial.

Espacios de alta dimensionalidad

Los embeddings operan en espacios de alta dimensionalidad donde las palabras se mapean a puntos en un espacio continuo. Este enfoque permite capturar complejas relaciones semánticas y contextuales entre las palabras.

  • Proximidad semántica: En el espacio vectorial, palabras con significados similares están más cerca unas de otras. Por ejemplo, como dijimos anteriormente, “rey” y “reina” estarán cerca, pero sin embargo “rey” y “mesa” estarán más alejadas.

  • Operaciones vectoriales: Una de las ventajas de los embeddings es la posibilidad de realizar operaciones aritméticas en los vectores para capturar relaciones semánticas. Por ejemplo, en Word2Vec, la operación vectorial “rey - hombre + mujer” resultará en un vector cercano a “reina”.

  • Dimensionalidad y eficiencia: Aunque los embeddings son de alta dimensionalidad, generalmente tienen menos dimensiones que las representaciones tradicionales de texto (como la bolsa de palabras). Esto reduce la complejidad computacional y mejora la eficiencia de los modelos.

Veamos un ejemplo básico de cómo entrenar un modelo de embeddings usando Word2Vec en Python:

from gensim.models import Word2Vec

# Corpus de ejemplo
sentences = [["gato", "y", "perro", "son", "animales", "domésticos"],
             ["me", "gusta", "mi", "coche", "nuevo"]]

# Entrenar el modelo Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)

# Obtener el embedding de la palabra 'gato'
vector_gato = model.wv['gato']
print(vector_gato)

Técnicas para generar embeddings

Existen diversas técnicas para generar embeddings, cada una con sus propias características y ventajas. A continuación, describimos algunas de las más populares y efectivas:

Word2Vec

Desarrollado por Google, Word2Vec es una técnica que utiliza redes neuronales para aprender representaciones vectoriales de palabras. Existen dos arquitecturas principales en Word2Vec:

  • CBOW (Continuous Bag of Words): Predice una palabra basada en su contexto. Por ejemplo, en la frase “el gato duerme en la cama”, el modelo intentará predecir la palabra “duerme” utilizando las palabras “el”, “gato”, “en”, y “cama” como contexto.
  • Skip-Gram: Predice el contexto basado en una palabra. En el mismo ejemplo, el modelo intentará predecir las palabras “el”, “gato”, “en”, y “la” utilizando “duerme” como contexto.

Ambos enfoques son eficientes y permiten capturar relaciones semánticas y contextuales entre las palabras.

from gensim.models import Word2Vec

# Corpus de ejemplo
sentences = [["el", "gato", "duerme", "en", "la", "cama"],
             ["el", "perro", "juega", "con", "la", "pelota"]]

# Entrenar el modelo Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)

# Obtener el embedding de la palabra 'gato'
vector_gato = model.wv['gato']
print(vector_gato)

GloVe (Global Vectors for Word Representation)

GloVe, desarrollado por Stanford, es otra técnica popular para generar embeddings. A diferencia de Word2Vec, que se enfoca en el contexto local, GloVe utiliza una matriz de co-ocurrencia global que captura la probabilidad de que dos palabras aparezcan juntas en un corpus.

Esta técnica combina la eficiencia de las matrices de co-ocurrencia con la capacidad de aprendizaje de los modelos de embeddings, de esta forma captura tanto el contexto global como el local de las palabras, proporcionando representaciones vectoriales más ricas y precisas.

FastText

Desarrollado por Facebook, FastText extiende Word2Vec al considerar subpalabras o n-gramas, lo que permite manejar mejor las palabras raras y fuera de vocabulario (OOV). Esto es particularmente útil para lenguajes con mucha morfología.

  • Subpalabras: En lugar de aprender un solo vector para cada palabra, FastText aprende vectores para todas las subpalabras que componen una palabra. Esto mejora la capacidad del modelo para manejar palabras desconocidas y variaciones morfológicas.
from gensim.models import FastText

# Corpus de ejemplo
sentences = [["el", "gato", "duerme", "en", "la", "cama"],
             ["el", "perro", "juega", "con", "la", "pelota"]]

# Entrenar el modelo FastText
model = FastText(sentences, vector_size=100, window=5, min_count=1, workers=4)

# Obtener el embedding de la palabra 'gato'
vector_gato = model.wv['gato']
print(vector_gato)

Transformers y modelos avanzados

Los transformers, como BERT (Bidirectional Encoder Representations from Transformers) y GPT (Generative Pre-trained Transformer), han revolucionado el campo del NLP. Estos modelos no solo capturan el contexto local y global de las palabras, sino que también permiten el ajuste fino para tareas específicas.

  • BERT: Modelo bidireccional que considera el contexto a ambos lados de una palabra. Es preentrenado en una gran cantidad de datos y luego ajustado para tareas específicas.
  • GPT: Modelo autoregresivo que genera texto de manera coherente y contextualizada, ideal para tareas de generación de texto y comprensión del lenguaje.
from transformers import BertModel, BertTokenizer

# Cargar el modelo y el tokenizador de BERT
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')

# Tokenizar y obtener los embeddings para una frase
inputs = tokenizer("El gato duerme en la cama", return_tensors='pt')
outputs = model(**inputs)

# Embeddings de la frase
embeddings = outputs.last_hidden_state
print(embeddings)

Estas técnicas han demostrado arrojar resultados muy eficientes para capturar relaciones semánticas complejas y mejorar el rendimiento en una variedad de tareas de NLP, desde la clasificación de texto hasta la generación de lenguaje natural.

Aplicaciones prácticas

Los embeddings tienen un amplio rango de aplicaciones prácticas en diversas áreas del procesamiento de lenguaje natural (NLP), aprendizaje automático y más allá.

Procesamiento de Lenguaje Natural (NLP)

Los embeddings son esenciales en muchas tareas de NLP, proporcionando representaciones vectoriales que capturan las relaciones semánticas y contextuales entre las palabras.

  • Clasificación de texto: Los embeddings se utilizan para convertir documentos en vectores de características que pueden ser clasificados mediante algoritmos de aprendizaje automático. Esto es útil para categorizar correos electrónicos, artículos de noticias, reseñas de productos y más.

  • Análisis de sentimientos: Ayudan a identificar y clasificar emociones y opiniones en textos, como reseñas de productos y publicaciones en redes sociales, permitiendo a las empresas entender mejor las percepciones del cliente.

  • Traducción automática: Los modelos de embeddings son fundamentales para la traducción automática, donde capturan las relaciones entre palabras en diferentes idiomas y permiten traducir texto con mayor precisión.

Recomendación de Contenidos

En los sistemas de recomendación, los embeddings se utilizan para representar elementos como productos, películas, canciones y artículos, así como las preferencias de los usuarios.

  • Sistemas de recomendación: Al comparar los embeddings de los usuarios con los de los elementos disponibles, los sistemas pueden recomendar productos o contenidos que son más relevantes para cada usuario. Por ejemplo, Netflix utiliza embeddings para recomendar películas y series basadas en el historial de visualización de los usuarios.

  • Personalización de contenidos: Los embeddings permiten personalizar el contenido que se muestra a los usuarios en plataformas de redes sociales, servicios de noticias y aplicaciones de música, mejorando la experiencia del usuario.

Visión por Computador

Los embeddings también son aplicables en la visión por computador, donde se utilizan para representar imágenes y objetos en un espacio vectorial.

  • Reconocimiento de imágenes: Los modelos de embeddings pueden ser utilizados para identificar y clasificar objetos en imágenes, mejorando la precisión de los sistemas de reconocimiento de imágenes y vídeo.

  • Búsqueda de imágenes: Facilitan la búsqueda de imágenes similares en grandes bases de datos al representar cada imagen como un vector y compararlos en un espacio vectorial continuo.

Análisis de Redes Sociales

En el análisis de redes sociales, los embeddings ayudan a entender las interacciones y relaciones entre usuarios, así como el contenido que comparten.

  • Detección de temas: Los embeddings se utilizan para identificar y agrupar temas comunes en grandes volúmenes de datos de redes sociales, ayudando a las empresas a identificar tendencias y patrones en el comportamiento del usuario.

  • Análisis de influencia: Ayudan a identificar influenciadores clave en las redes sociales al analizar las conexiones y la similitud de contenido entre los usuarios.

Beneficios de utilizar embeddings

Reducción de dimensionalidad

Los embeddings transforman palabras, frases o documentos en vectores densos y de baja dimensión, lo que reduce la cantidad de características necesarias para representar los datos textuales. Esto simplifica el procesamiento y almacenamiento de datos, y mejora la eficiencia computacional.

  • Eficiencia: Al reducir la dimensionalidad, los modelos pueden entrenarse y ejecutarse más rápidamente, lo que es crucial para aplicaciones en tiempo real.
  • Almacenamiento: Menos dimensiones significan menor consumo de memoria, facilitando el manejo de grandes volúmenes de datos.

Captura de semántica

Una de las principales ventajas de los embeddings es su capacidad para capturar relaciones semánticas y contextuales entre palabras. Esto permite que los modelos comprendan mejor el significado y las relaciones entre diferentes términos.

  • Similitud semántica: Los embeddings posicionan palabras similares semánticamente cerca unas de otras en el espacio vectorial. Por ejemplo, “gato” y “perro” estarán más cerca que “gato” y “mesa”.
  • Contexto: Los embeddings permiten capturar el contexto en el que se utilizan las palabras, lo que mejora la precisión en tareas como la traducción automática y la generación de texto.

Mejora en la precisión de modelos

Los embeddings proporcionan representaciones más ricas y significativas de los datos textuales, lo que mejora la precisión de los modelos de aprendizaje automático en diversas tareas.

  • Clasificación de textos: Mejora la capacidad de los modelos para categorizar documentos y correos electrónicos con mayor precisión.
  • Análisis de sentimientos: Permite una identificación más precisa de las emociones y opiniones expresadas en los textos.
  • Traducción automática: Mejora la calidad de las traducciones al capturar mejor las relaciones entre palabras en diferentes idiomas.

Flexibilidad y adaptabilidad

Los embeddings son versátiles y se pueden adaptar a diferentes idiomas y dominios específicos. Esto los hace útiles en una amplia variedad de aplicaciones y contextos.

  • Multilingüismo: Los modelos de embeddings pueden ser entrenados en múltiples idiomas, facilitando aplicaciones multilingües.
  • Dominio específico: Los embeddings pueden ser adaptados a dominios específicos, como el médico o el jurídico, mejorando la precisión y relevancia en esos contextos.

A continuación, te proponemos un pequeño script que demuestra como los embeddings ayudan a mejorar la precisión en una tarea de clasificación de texto, comparando entre scikit-learn y Word2Vec:

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from gensim.models import Word2Vec
import numpy as np

# Corpus de ejemplo
sentences = [["el", "gato", "duerme", "en", "la", "cama"],
             ["el", "perro", "juega", "con", "la", "pelota"]]

# Entrenar el modelo Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)

# Crear vectores promedio para cada documento
def document_vector(doc):
    return np.mean([model.wv[word] for word in doc if word in model.wv], axis=0)

X = np.array([document_vector(doc) for doc in sentences])
y = np.array([0, 1])  # Etiquetas de ejemplo

# Dividir en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)

# Entrenar el clasificador
clf = RandomForestClassifier()
clf.fit(X_train, y_train)

# Predecir y calcular la precisión
y_pred = clf.predict(X_test)
print("Precisión:", accuracy_score(y_test, y_pred))

Herramientas y bibliotecas para embeddings

Los embeddings han revolucionado el procesamiento de lenguaje natural (NLP) y el aprendizaje automático, y existen varias herramientas y bibliotecas que facilitan su generación y uso. A continuación, se presentan algunas de las más populares y ampliamente utilizadas.

TensorFlow

TensorFlow es una biblioteca de código abierto desarrollada por Google que se utiliza para el aprendizaje automático y la inteligencia artificial. Proporciona herramientas poderosas para la creación y entrenamiento de modelos de embeddings.

  • TensorFlow Embeddings: TensorFlow permite la implementación de embeddings de manera eficiente a través de su API de capas y su función tf.nn.embedding_lookup. Esta funcionalidad es esencial para proyectos que requieren procesamiento de texto a gran escala.
  • TensorFlow Hub: Contiene módulos preentrenados, incluidos embeddings, que se pueden integrar fácilmente en proyectos para mejorar la precisión y reducir el tiempo de entrenamiento.
import tensorflow as tf

# Ejemplo básico de uso de embeddings en TensorFlow
embedding_dim = 64
vocab_size = 5000

# Capa de embedding
embedding_layer = tf.keras.layers.Embedding(input_dim=vocab_size, output_dim=embedding_dim)

# Ejemplo de entrada
input_data = tf.constant([1, 2, 3, 4])
embedded_data = embedding_layer(input_data)
print(embedded_data)

PyTorch

PyTorch es otra biblioteca de código abierto, desarrollada por Facebook, ampliamente utilizada para el aprendizaje profundo. Es conocida por su facilidad de uso y flexibilidad, especialmente en la investigación y desarrollo de modelos de NLP.

  • PyTorch Embeddings: PyTorch proporciona la clase torch.nn.Embedding, que permite la creación de capas de embeddings de manera sencilla y eficiente.
  • Transformers: La biblioteca Transformers de Hugging Face, compatible con PyTorch, ofrece una gran variedad de modelos preentrenados, incluyendo BERT y GPT, que facilitan el uso de embeddings avanzados.
import torch
import torch.nn as nn

# Ejemplo básico de uso de embeddings en PyTorch
embedding_dim = 64
vocab_size = 5000

# Capa de embedding
embedding_layer = nn.Embedding(num_embeddings=vocab_size, embedding_dim=embedding_dim)

# Ejemplo de entrada
input_data = torch.LongTensor([1, 2, 3, 4])
embedded_data = embedding_layer(input_data)
print(embedded_data)

Gensim

Gensim es una biblioteca especializada en la modelización de temas y el procesamiento de texto no supervisado. Es particularmente conocida por su implementación eficiente de Word2Vec, FastText y otros algoritmos de embeddings.

  • Word2Vec y FastText: Gensim proporciona implementaciones optimizadas de estos algoritmos, facilitando la generación y uso de embeddings en proyectos de NLP.
  • Simplicidad y Eficiencia: Gensim es fácil de usar y eficiente en términos de memoria y tiempo de procesamiento, lo que la convierte en una opción popular para la investigación y el desarrollo de modelos de NLP.
from gensim.models import Word2Vec

# Corpus de ejemplo
sentences = [["el", "gato", "duerme", "en", "la", "cama"],
             ["el", "perro", "juega", "con", "la", "pelota"]]

# Entrenar el modelo Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)

# Obtener el embedding de la palabra 'gato'
vector_gato = model.wv['gato']
print(vector_gato)

Hugging Face Transformers

Hugging Face ha desarrollado la biblioteca Transformers, que ofrece acceso a una amplia gama de modelos de NLP preentrenados, incluyendo BERT, GPT-2, RoBERTa y muchos más. Esta biblioteca es compatible tanto con TensorFlow como con PyTorch, proporcionando flexibilidad y potencia.

  • Modelos Preentrenados: Los modelos preentrenados en Transformers son ideales para tareas como clasificación de texto, análisis de sentimientos y generación de texto.
  • Interfaz Intuitiva: La API de Transformers es fácil de usar, permitiendo a los desarrolladores integrar rápidamente modelos avanzados en sus proyectos.
from transformers import BertTokenizer, BertModel

# Cargar el modelo y el tokenizador de BERT
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')

# Tokenizar y obtener los embeddings para una frase
inputs = tokenizer("El gato duerme en la cama", return_tensors='pt')
outputs = model(**inputs)

# Embeddings de la frase
embeddings = outputs.last_hidden_state
print(embeddings)

Estas herramientas y bibliotecas proporcionan una base sólida para trabajar con embeddings, facilitando la implementación de técnicas avanzadas de NLP y mejorando la precisión y eficiencia de los modelos.

Mejora las habilidades de tus analistas de datos
En OpenWebinars lograrás que tu equipo se mantenga a la vanguardia en las últimas tecnologías para implementar y crear algoritmos de Machine Learning.
Solicitar más información

Conclusiones

Los embeddings han demostrado ser una herramienta fundamental en el procesamiento de lenguaje natural (NLP) y el aprendizaje automático. Su capacidad para transformar datos textuales en representaciones vectoriales densas y contextualmente ricas ha revolucionado la manera en que las máquinas entienden y procesan el lenguaje humano.

Además, capturan relaciones semánticas y contextuales entre palabras, permitiendo a los modelos de aprendizaje automático comprender mejor el lenguaje. Utilizan vectores densos y de baja dimensión que representan palabras en un espacio continuo, lo que facilita la reducción de dimensionalidad y mejora la eficiencia computacional.

Entre las técnicas más destacadas para generar embeddings encontramos Word2Vec, GloVe, FastText y los transformers avanzados como BERT y GPT. Este conjunto de métodos ha mejorado significativamente la precisión en tareas de NLP, desde la clasificación de textos y el análisis de sentimientos hasta la traducción automática y la recomendación de contenidos.

Herramientas y bibliotecas como TensorFlow, PyTorch, Gensim y Hugging Face Transformers facilitan la generación y el uso de los mismos, a la vez que nos proporcionan implementaciones eficientes y modelos preentrenados, lo que permite a los desarrolladores integrar rápidamente técnicas avanzadas de NLP en sus proyectos.

En resumen, los embeddings son una tecnología poderosa que transforma datos en información valiosa, mejorando la interacción humano-máquina y permitiendo soluciones innovadoras en el procesamiento de datos textuales. Estos conceptos resultan, a día de hoy, esenciales para cualquier profesional que trabaje en el campo de la inteligencia artificial y el Machine Learning.

Bombilla

Lo que deberías recordar de los embeddings

  • Reducción de dimensionalidad: Los embeddings transforman datos textuales en vectores densos de baja dimensión, lo que reduce la cantidad de características necesarias y mejora la eficiencia computacional.
  • Captura de semántica: Permiten capturar relaciones semánticas y contextuales entre palabras, posicionando palabras similares cerca unas de otras en el espacio vectorial.
  • Mejora en la precisión de modelos: Proporcionan representaciones más ricas y significativas de los datos textuales, mejorando la precisión en tareas de NLP como clasificación de texto, análisis de sentimientos y traducción automática.
  • Flexibilidad y adaptabilidad: Los embeddings son versátiles y pueden adaptarse a diferentes idiomas y dominios específicos, facilitando aplicaciones multilingües y de dominio especializado.
  • Técnicas populares: Entre las técnicas más utilizadas para generar embeddings se encuentran Word2Vec, GloVe, FastText y transformers avanzados como BERT y GPT.
  • Aplicaciones prácticas: Tienen aplicaciones en procesamiento de lenguaje natural, recomendación de contenidos, visión por computador y análisis de redes sociales.
  • Herramientas y bibliotecas: Herramientas como TensorFlow, PyTorch, Gensim y Hugging Face Transformers facilitan la generación y el uso de embeddings, proporcionando implementaciones eficientes y modelos preentrenados.
Compartir este post

También te puede interesar

Icono de la tecnología
Curso

Introducción al PLN

Principiante
2 h. y 15 min.

Esta formación se diseñó para proporcionar una comprensión sólida de los fundamentos del Procesamiento de Lenguaje Natural (NLP,...

Arturo Sánchez Palacio
4.4