Máster de Especialista en Procesamiento del Lenguaje Natural (NLP) con Python.
Máster en Redes neuronales profundas para Procesamiento del Lenguaje Natural con Python y Keras. De 0 a experto.
Instructor: PhD. Manuel Castillo.
Requisitos previos: Antes de realizar el curso se recomienda encarecidamente tener conocimientos sobre Deep Learning. Se recomienda haber desarrallado previamente uno de estos dos cursos, también de Udemy:
Máster de Especialista en Procesamiento del Lenguaje Natural (NLP) con Python.
Máster en Redes neuronales profundas para Procesamiento del Lenguaje Natural con Python y Keras. De 0 a experto.
Instructor: PhD. Manuel Castillo.
Requisitos previos: Antes de realizar el curso se recomienda encarecidamente tener conocimientos sobre Deep Learning. Se recomienda haber desarrallado previamente uno de estos dos cursos, también de Udemy:
Deep Learning con Python y Keras. Redes Neuronales avanzado. Aprendizaje profundo con la librería Keras-Python. Aprende a diseñar y desarrollar redes neuronales de básico a experto; o también
Máster de especialista en Ciencia de Datos con Python. Aprenda a desarrollar proyectos de Machine Learning y Deep Learning con Python. Data Science de básico a Experto
Descripción del Curso:
Bienvenido al curso de Máster de Especialista en Procesamiento del Lenguaje Natural (NLP) con Python y Keras. En este curso trataremos la librería Keras de Python para Deep Learning y cómo usarla para desarrollar y evaluar modelos de Deep Learning para Procesamiento del Lenguaje Natural. En este curso, descubriremos las técnicas, código y habilidades de Deep Learning que luego puede llevar a sus propios proyectos de Aprendizaje profundo para Procesamiento del Lenguaje Natural con Python y Keras.
Si está interesado en Deep Learning, tenemos que comenzar por desarrollar y evaluar modelos de Deep Learning. Luego, si descubres que realmente le gusta o tienes una habilidad especial para ello, más adelante podrás profundizar más en los antecedentes y la teoría, según lo necesites para ayudarte a desarrollar mejores y más valiosos resultados.
En este contexto, para este curso se ha escogido la mejor plataforma para comenzar y desarrollar muy rápidamente modelos de Deep Learning potentes a través de la librería Keras de Python.
La librería Keras envuelve la complejidad de la computación numérica de Theano y TensorFlow proporcionando una API concisa que usaremos para desarrollar nuestra propia red neuronal y modelos Deep Learning. Además, trataremos las habilidades de Deep Learning para llevar esta nueva tecnología asombrosa a nuestros propios proyectos.
El curso está dirigido a personas que tengan conocimientos de Deep Learning, conocimientos intermedios del lenguaje de programación y que quieran adentrarse a este apasionante mundo de dentro del campo de Deep Learning y redes neuronales.
Contenidos del Curso:
MÓDULO I. Introducción.
Anaconda como nuestro gestor de trabajo.
Jupyter Notebook o Google Colab como nuestro entorno de Deep Learning.
Curso rápido de Python.
Introducción a la librería Keras.
MÓDULO II. Fundamentos de Deep Learning.
Neurona como unidad fundamental.
Como trabaja una neuronal.
Perceptrón multicapa.
Cómo opera el perceptrón multicapa.
Curso intensivo en perceptrones multicapa.
Nuestra primera red neuronal con Keras.
Modelos de Keras para Machine Learning general (Clasificación/Regresión).
MÓDULO III. Redes Neuronales Recurrentes.
Redes Neuronales Recurrentes.
Redes LSTM.
Desarrollar un proyecto con RNN.
Desarrollar un proyecto con LSTM.
Proyecto de Generación de texto.
MÓDULO IV. Procesamiento de texto.
Limpiar, preparar y codificar (encoded) el texto.
Procesamiento de datos en scikit-learn y Keras.
Representación del vocabulario en Bolsa de palabras (BoW).
Proyecto: Sentiment analysis en un modelo de BoW.
MÓDULO V. Word embeddings.
Word Embeddings con Gensim.
Word Embeddings con Keras.
Proyecto: Word embeddings con un modelo CNN.
Proyecto: Word embeddings con un modelo CNN n-gramas.
MÓDULO VI. Modelado del lenguaje.
Modelo del lenguaje neuronal basado en caracteres.
Modelo del lenguaje neuronal basado en palabras.
Modelo del lenguaje neuronal para generación de texto.
Proyecto con modelado del lenguaje.
MÓDULO VII. Modelos de PLN avanzados.
Latent Dirilecht Allocation
Transformers.
HuggingFace para modelos preentrandos.
Extracción de keywords.
Reconocimiento de entidades.
MÓDULO VIII. Proyectos avanzados.
Modelo para la traducción automática.
Análisis de programas electorales con NLP con modelos clásicos.
Análisis de programas electorales con NLP con modelos basados en transformers.
Proyectos avanzados con Transformers.
Actividad virtual
Sesiones de videoconferencias
Análisis de casos
Foros de discusión
Trabajos parciales de los módulos
Examen tipo test
Lecturas comentadas y
Búsquedas de información científica.
Procedimiento de la formación:
La formación te permitirá convertirte en un experto en la materia, y todo ello desde una formación principalmente práctica. A través de variadas actividades y proyectos completos podrás adquirir los conocimientos suficientes para ejercer profesionalmente de forma solvente. Además conocerás en detalle mi flujo de trabajo a la hora de afrontar un proyecto profesional. Para la realización de este curso no vas a necesitar el equipo informático más potente del mercado, ya que el software empleado durante formación online se encuentra perfectamente optimizado y su uso es muy fluido en todo tipo de equipos, tanto en PC como en Mac.
El aprendizaje será un proceso continuo donde los estudiantes tienen la oportunidad de ir trabajando con el editor de texto practicando lo expuesto en la parte de teoría.
Puedes elegir ver todas las lecciones de forma secuencial (lineal) y aprovecharlas al máximo la formación. Pero también puedes decidir ver este curso como una guía de referencia. Las clases están claramente organizadas en secciones lógicas y puedes decidir visualizar solo las clases que te resulten más importantes según tus necesidades formativas. A excepción de las lecciones PRO, la mayoría de las lecciones son independientes para que puedas comprender los conceptos de cada lección sin tener que ver las lecciones anteriores del curso.
Es excepcional el aumento en la demanda de profesionales en este ámbito por parte de las empresas de todo el mundo actualmente. Para desarrollar el programa formativo propuesto no ser requieren grandes conocimientos previos, ya que la formación se acomete desde un nivel de usuario 0. El curso está orientado a aquellos creativos que quieran ampliar sus skills (habilidades) y conocer múltiples trucos, consejos, recursos y recomendaciones, de la mano del instructor Dr. Manuel Castillo-Cara. Además todas las formaciones de Udemy disponen acceso automático al curso, sin limitación de tiempo, disponibilidad 24/7 (24 horas al día los 7 días de la semana), sin caducidad y con garantía de devolución.
Características del Curso:
Recuerda que esta formación incluye lecciones en vídeo fullHD con audio de estudio (compatible con
¿A qué esperas?, este curso es ideal para ti, atrévete a convertirte en un experto. Adelante, nos vemos dentro de la formación.
Udemy es una plataforma de cursos online donde puedes encontrar formación audiovisual sobre diversas temáticas. En esta clase te explico como usar y sacar el máximo partido a esta plataforma de formación online.
El funcionamiento es muy sencillo. Sólo tienes que acceder a la plataforma y buscar el curso que necesitas, normalmente hacen grandes campañas rebajando los precios de los cursos.
Una vez hayas adquirido un curso, podrás acceder a su plataforma de eLearning donde podrás consumir el contenido, generalmente, en vídeo.
Cuando compras un curso, tienes acceso de por vida, puedes volver a él en cualquier momento para recordar aquella habilidad que quieras repasar.
Los cursos de Udemy ofrecen certificados de finalización que podrás descargar tras acabar el curso. Esto es muy útil para tu currículum cuando quieres demostrar que has aprendido una habilidad concreta.
La mayoría de los cursos ofrecen un vídeo con "vista previa habilitada" de cómo es la clase por dentro. Puedes echarle un vistazo para ver si es lo que buscas, el estilo de enseñanza del instructor o el material.
Las opiniones y valoración del curso también sirve como referente a la hora de comprar un curso en esta plataforma. Encontrarás una puntuación como esta y comentarios de los estudiantes que lo han cursado.
En esta clase te cuento en detalle como acceder, configurar tu perfil, moverte por la intranet y aprovechar al máximo el contenido, foros y recursos del curso que acabas de adquirir.
¡Bienvenid@!
En esta lección aprenderás los más importante sobre el uso correcto y óptimo del portal formativo Udemy. Recuerda que si aún sigues tienes algún problema o dificultad durante la formación puedes contactar conmigo.
Mis Cursos en Udemy.
Te invito a conocer el resto de mis formaciones disponibles en la plataforma Udemy.
Y por ser alumno y haber finalizado este curso, te ofrezco un gran descuento en mis cursos online como agradecimiento por tu apoyo y confianza prestada en mis formaciones. Accede al contenido exclusivo de esta lección y consigue tu curso con descuento.
En la siguiente clase te detallo como está organizado y configurado el curso que estas comenzando. El objetivo es que aproveches al máximo la formación y saques el mayor beneficio de la misma.
¡Comencemos!
Para ir conociéndonos todos, te invito a presentarte. Ponle cara a tu perfil y sube un par de proyectos, personales o profesionales, compártelos en el foro de esta clase y cuéntanos en qué lugar o proyecto desearías trabajar idealmente.
Recuerda que desde el apartado de "Preguntas y Respuestas" podrás presentarte al resto de alumnos de este curso y plantear todas las inquietudes que tengas.
Contenidos principales y plan docente del curso.
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
Comenzamos nuestro curso de Máster especialista en Lenguaje Procesamiento del Natural con Python realizando una introducción del proceso paso a paso que se debe de utilizar en el mundo del modelado predictivo con el lenguaje de programación Python. Veremos como Python es un potente lenguaje de programación que nos permitirá analizar y tomar decisiones sobre cualquier conjunto de datos de manera muy sencilla con los conocimientos ya adquiridos de programación que ya deberemos de poseer.
Finalmente, recordarle que la estructura del curso está diseñada de manera que cada unidad está compuesta por una parte de teoría y otra de práctica. Cada una de las unidades dispondrá del PDF de lectura (y presentación) que tendrá todos los conceptos teóricos y varios vídeos que tendrá los conceptos prácticos que deberás reproducir usted en su estudio. Por tanto, es importante, antes de ver la parte de práctica, se entienda y estudie la parte de teoría.
¡Manos a la obra!
A continuación se muestra el procedimiento a la hora de crear la función a trabajar:
Crea una red simple completamente conectada con una capa oculta de 8 neuronas.
La capa oculta utiliza una función de activación ReLu.
Debido a que utilizamos One-Hot Encoding, la capa de salida debe crear 3 valores de salida, uno para cada clase.
El valor de salida con el valor más grande se tomará como la clase predicha por el modelo. La topología quedaría así:
4 inputs -> [8 hidden nodes] -> 3 outputs
Tendremos una función de activación Softmax en la capa de salida.
Finalmente, la red utiliza Adam con una función de pérdida logarítmica (categorical_crossentropy).
Análisis de Background sobre Redes Neuronales
Sesión teórica sobre Parámetros en redes neuronales
Sesión teórica sobre Algoritmo de Gradiente Descendiente
Sesión teórica sobre Multilayer Perceptron
Sesión teórica sobre Coste, sesgo y activación
Sesión teórica sobre Backpropagation
Como tenemos un problema de clasificación multiclase recordemos que debemos de utilizar One-Hot Encoding para poder formatear la salida.
Por ejemplo, en este problema los tres valores de clase:
Iris-setosa
Iris-versicolor
Iris-virginica
Por lo que convertimos esta salida en una codificación binaría como:
Iris-setosa, Iris-versicolor, Iris-virginica
1, 0, 0
0, 1, 0
0, 0, 1
Por tanto,
Codificando primero las cadenas de manera coherente en números enteros utilizando la clase LabelEncoder de scikit-learn.
Luego, conviertimos el vector de números enteros en One-Hot Enconding usando la función de Keras to_categorical().
En este problema vamos a utilizar un problema de clasificación binaria como es Sonar en el cual los resultados de Accuracy rondan el 84%.
Creemos un modelo de referencia y un resultado para este problema. Comenzaremos importando todas las clases y funciones que necesitaremos.
Para usar modelos de Keras con scikit-learn, debemos usar el contenedor KerasClassifier. También toma argumentos que pasará a la llamada a fit() como el número de épocas y el tamaño del batch.
Comencemos por definir la función que crea nuestro modelo de línea de base.
Tendrá una única capa oculta completamente conectada.
Se utilizara la función de activación ReLu.
La capa de salida contiene una sola neurona para hacer predicciones utilizando función de activación Sigmoidal.
Se usará la función de pérdida logarítmica binaria (binary_crossentropy).
Utilizar el algoritmo de optimización Adam y Accuracy como métrica.
La estandarización preserva las distribuciones gaussianas mientras normaliza las tendencias centrales para cada atributo. Para ello utilizamos StandardScaler de scikit-learn.
Es una buena práctica entrenar el procedimiento de estandarización en los datos de entrenamiento dentro de una ejecución de validación cruzada y usar la instancia de estandarización entrenada para preparar el fold de validación no etiquetada. Podemos lograr esto en scikit-learn usando una clase Pipeline.
Proyecto de Regresión (Parte 1) - Procesamiento de datos
Comencemos por definir la función que crea nuestro modelo de línea de base.
Tiene una sola capa oculta completamente conectada con el mismo número de neuronas que los atributos de entrada (13).
La red utiliza la función de activación ReLU para la capa oculta.
Al ser problema de regresión no tiene función de activación la capa de salida
Utiliza el algoritmo de optimización ADAM y se optimiza una función de pérdida de error cuadrático medio.
El objeto Wrapper para regresión se llama KerasRegressor.
Evaluamos este modelo de línea de base con 10-fold.
Otro enfoque para aumentar la capacidad de representación del modelo es crear una red más amplia. Aquí, hemos aumentado el número de neuronas en la capa oculta en de 13 a 20. La topología de nuestra red más amplia se puede resumir de la siguiente manera:
13 entradas -> [20] -> 1 salida
Examen referente a la Unidad que tendrá preguntas que pueden ser de Verdadero/Falso y opción múltiple.
Sesión de teoría que describel el proceso de tokenización en un documento.
Las incrustaciones de palabras se pueden aprender a partir de datos de texto y reutilizar entre proyectos. También se pueden aprender como parte del ajuste de una red neuronal en datos de texto. Por tanto, en este cuaderno trabajaremos:
Cómo Keras admite incrustaciones de palabras a través de la capa de incrustación.
Cómo aprender a incrustar una palabra mientras se ajusta una red neuronal.
Cómo usar una palabra preentrenada incrustada en una red neuronal.
Cuando trabajamos cualquier proyecto de Machine o Deep Learning primero nos toca elaborar la fase de procesamiento de datos; en NLP igual.
Primero debemos limpiar el texto, lo que significa dividirlo en palabras y manejar la puntuación y el caso. En este tutorial, descubrirá cómo puede limpiar y preparar su texto para modelarlo con aprendizaje automático. Después de completar este tutorial, sabrás:
Cómo desarrollar nuestras propias herramientas de limpieza de texto.
Cómo utilizar los métodos más sofisticados de la librería NLTK.
Consideraciones al preparar texto para modelos de NLP.
Este tutorial se divide en las siguientes partes:
Libro de metamorfosis de Franz Kafka.
La limpieza de texto en el libro.
Tokenización manual.
Tokenización y Limpieza con NLTK.
Consideraciones adicionales en la limpieza de texto.
Una técnica popular para desarrollar modelos de análisis de sentimientos es usar un modelo de bolsa de palabras que transforma los documentos en vectores donde a cada palabra del documento se le asigna una puntuación. Por tanto, estudiaremos:
Cómo preparar los datos del texto para modelar con un vocabulario restringido.
Cómo usar el modelo de bolsa de palabras para preparar datos train/test.
Cómo desarrollar un modelo de bolsa de palabras de perceptrón multicapa.
Este tutorial se divide en las siguientes partes:
Conjunto de datos de reseñas de películas.
Preparación de datos.
Representación de bolsa de palabras.
Modelos de aprendizaje.
Comparación de métodos de puntuación de palabras.
Predeción en nuevas reseñas.
El texto debe analizarse para eliminar palabras (tokenización). Luego, las palabras deben codificarse como números enteros o valores de punto flotante para usar como entrada en un algoritmo de aprendizaje automático, i.e., extracción de características (vectorización). En este tutorial, aprenderemos como procesar texto con scikit-learn, específicamente veremos:
Convertir texto en vectores de conteo de palabras con `CountVectorizer`.
Convertir texto a vectores de frecuencia de palabras con `TfidfVectorizer`.
Convertir texto en enteros únicos con `HashingVectorizer`.
Keras proporciona algunas herramientas para convertir datos de formato texto a numérico para preparar un corpus que pueda ser ejecutado por los modelos. En este tutorial trabajaremos:
Los métodos para procesar datos de texto.
La API Tokenizer que codifica documentos, y realiza el proceso de validación y prueba.
Los 4 esquemas de codificación de documentos diferentes que ofrece Tokenizer.
El proceso de limpieza de datos en texto es un proceso complejo que debemos llevar con cuidado y orden, desde que cargamos los datos hasta que quedan listos para el modelado. Para ello veremos los siguientes ítems:
Limpiar datos como eliminar la puntuación y palabras que no se usen.
Desarrollar un vocabulario, adaptarlo y guardarlo en un archivo.
Preparar un problema real usando la limpieza y vocabulario predefinido.
Este tutorial se divide en las siguientes partes:
Conjunto de datos de reseñas de películas
Cargar datos de texto
Limpiar datos de texto
Desarrollar el vocabulario
Guardar datos preparados
El Procesamiento de Lenguaje Natural es un area de las ciencias de la computación cuyo objetivo es el diseño de programas capaces de procesar el lenguaje humano. Esta tarea es difícil ya que, en muchos casos, implica el análisis de texto a distintos niveles, y el uso de información de contexto. Sin embargo, para la resolución de algunos problemas de ciencia de datos, como por ejemplo la predicción o la clasificación, no es necesaria una comprensión total del lenguaje, y se pueden utilizar modelos más sencillos. En esta práctica, se construirá un modelo de clasificación a partir de 50000 comentarios sobre películas subidos a Internet Movie Data Base, y que están almacenados en archivos de texto. Este modelo ha de predecir con cierta tasa de acierto si un nuevo comentario es positivo o negativo.
Para poder entrenar un clasificador a partir de un conjunto de documentos de texto, es necesario representar estos datos en una matriz bidimensional. En el modelo Bag of Words, cada documento se representa a partir del conjunto de palabras que aparecen en él. Como paso previo a la construcción de la matriz de datos, se elabora un vocabulario con la unión de todos los términos que aparecen en algún documento. A partir de éste, se construye una matriz en la que cada fila representa un documento, y cada columna (cada característica) corresponde a un término.
Una técnica popular para desarrollar modelos de análisis de sentimientos es usar un modelo de bolsa de palabras que transforma los documentos en vectores donde a cada palabra del documento se le asigna una puntuación. Por tanto, estudiaremos:
Cómo preparar los datos del texto para modelar con un vocabulario restringido.
Cómo usar el modelo de bolsa de palabras para preparar datos train/test.
Cómo desarrollar un modelo de bolsa de palabras de perceptrón multicapa.
Este tutorial se divide en las siguientes partes:
Conjunto de datos de reseñas de películas.
Preparación de datos.
Representación de bolsa de palabras.
Modelos de aprendizaje.
Comparación de métodos de puntuación de palabras.
Predeción en nuevas reseñas.
En este proyecto, trabajaremos el desarrollo de modelos de word embedding con redes neuronales convolucionales para clasificar documentos. Más a detalle, trabajaremos:
Preparar datos de texto para su clasificación con métodos de aprendizaje profundo.
Desarrollar un modelo de clasificación neuronal con incrustación de palabras y capas convolucionales.
Evaluar el modelo de clasificación neuronal.
Sesión de teoría - Introducción
Examen referente a la Unidad que tendrá preguntas de opción y selección múltiple sobre los conceptos teórico/prácticos visto en clase.
Diferencias principales entre las redes totalmente conectadas con las redes feed forward.
Las incrustaciones de palabras (word embeddings) son un enfoque de representación de texto en PLN. Los algoritmos como Word2Vec y GloVe son clave para los resultados obtenidos en este área. En este tutorial nos enfocaremos en la librería Gensim, específicamente, trabajaremos:
Cómo entrenar su propio modelo Word2Vec para texto.
Cómo visualizar un modelo de incrustación de palabras entrenado mediante PCA.
Cómo cargar los modelos preentrenados Word2Vec y GloVe.
Como hemos estudiado en la unidad anterior, hemos realizado un modelo CNN para sentiment analysis. El modelo se puede expandir usando múltiples CNN paralelas que leen el documento fuente usando diferentes tamaños de kernel. Esto crea una CNN multicanal para texto que procede a su lectura con diferentes tamaños de n-gramas (grupos de palabras).
En este tutorial, descubrirá cómo desarrollar una red neuronal convolucional multicanal, específicamente:
Preparar datos de texto de sentiment analysis para el modelado.
Desarrollar una CNN multicanal para texto.
Evaluar un modelo de ajuste en datos no etiquetados.
Sesión de teoría - Redes Neuronales Recurrentes
Background sobre Redes Neuronales Recurrentes
Sesión de teoría - Redes LSTM
Las redes neuronales de aprendizaje profundo son muy fáciles de crear y evaluar en Python con Keras, pero debe seguir un ciclo de vida de modelo estricto. En este cuaderno trabajaremos el ciclo de vida básico que consta de crear, entrenar y y evaluar redes neuronales en Keras; así mismo, aprenderemos como hacer predicciones con un modelo entrenado. Después de leer este capítulo sabrás:
Cómo definir, compilar, ajustar y evaluar una red neuronal de aprendizaje profundo en Keras.
Cómo seleccionar valores estándar para problemas de modelado predictivo de clasificación y regresión.
Cómo utilizar la API para desarrollar redes neuronales recurrentes, convolucionales y de perceptrón multicapa.
Un modelo de lenguaje predice la siguiente palabra en la secuencia basándose en las palabras específicas que la preceden en la secuencia. El beneficio de los modelos de lenguaje basados en caracteres es su pequeño vocabulario y flexibilidad en el manejo de cualquier palabra, puntuación y otra estructura del documento.
Por tanto, en este cuaderno estudiaremos cómo:
Preparar texto para modelado del lenguaje basado en caracteres.
Desarrollar un modelo de lenguaje basado en caracteres utilizando LSTM.
Generar texto usando un modelo de lenguaje basado en caracteres.
Un modelo de lenguaje predice la siguiente palabra en la secuencia basándose en las palabras específicas que la preceden en la secuencia. En este cuaderno, a diferencia del anterior que trabajamos por caracteres, trabajaremos las secuencias por apalabras. Por tanto, en este cuaderno estudiaremos cómo:
Desarrollar modelos del lenguaje basados en palabras.
Generar secuencias usando un modelo de lenguaje ajustado.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.