Modelado del texto y la imagen
El modelado de texto
El procesamiento del lenguaje natural (NLP, por Natural Language Processing) es un área clave de la ciencia de datos, cuyo objetivo es permitir que las máquinas interactúen eficazmente con el lenguaje humano. Como se mencionó en el capítulo Análisis de los datos, las fases de preprocesamiento y vectorización son cruciales para preparar datos textuales y realizar un modelado efectivo.
Para aquellos que no han leído el capítulo Análisis de los datos, he aquí un diagrama resumido de los pasos de preprocesamiento:

Python ofrece varios módulos para esta preparación, incluidos NLTK, TextBlob y spaCy.
1. Los módulos del NLP
Los módulos de Python de NLP hacen que la preparación de texto sea mucho más fácil, al ofrecer una amplia gama de funciones para transformar y enriquecer datos textuales. Sin embargo, varían significativamente en términos de características, ergonomía y rendimiento.
a. NLTK
Desarrollado en 2005, NLTK, de Natural Language Toolkit, es una de las primeras herramientas desarrolladas para el lenguaje natural. Ofrece una amplia variedad de funciones y es una opción sólida para tareas lingüísticas complejas.
He aquí el comando para instalarlo:
pip install nltk
Al importarlo, es importante descargar los recursos necesarios de NLTK para que esté completamente operativo. Esto se puede hacer cargando los recursos más populares de las siguiente manera:
import nltk
nltk.download('popular')
También puede ser oportuno descargar recursos específicos en función de nuestras necesidades, como corpus para el análisis de sentimientos o modelos para etiquetar partes de la oración. Estos son algunos ejemplos:
# Recurso de tokenización
nltk.download('punkt')
# Recurso para etiquetar las partes del discurso
nltk.download('averaged_perceptron_tagger')
# Recursos para la lemmatización
nltk.download('wordnet')
# Recursos para las palabras a excluir
nltk.download('stopwords')
Si bien daremos prioridad al uso del módulo spaCy para que sea más fácil comenzar con NLP, he aquí un breve ejemplo de cómo...
El modelado de imágenes
En un mundo inundado de imágenes, las necesidades en términos de modelado son muy significativas. Al igual que ocurre con el NLP, se trata de una disciplina por derecho propio en la ciencia de datos, que es muy rica en posibilidades. Las operaciones de modelado son comunes a otros dominios, pero requieren un procesamiento previo que puede ser extremadamente complejo en algunos casos. De hecho, para extraer correctamente la información contenida en las imágenes, a menudo es necesario aplicar varias transformaciones, como el cambio de tamaño, la conversión de formatos y la aplicación de filtros o algoritmos específicos.
La introducción de las Convolutional Neural Networks (CNN) marcó un punto de inflexión en este campo. Conceptualizadas en los años 80, las CNN han experimentado un gran auge desde 2012, revolucionando el campo de la visión por ordenador. Automatizan gran parte de los complejos pasos de preprocesamiento de imágenes, lo que permite extraer características directamente de los datos sin procesar. Esta automatización simplifica en gran medida el proceso de análisis de datos visuales y mejora significativamente el rendimiento de la clasificación.
Sin embargo, no todo el mundo busca necesariamente automatizar por completo el procesamiento de imágenes y los módulos tradicionales siguen siendo muy utilizados porque permiten, en ciertas áreas de aplicación, gestionar con precisión cada etapa de la transformación.
Por ello, comenzaremos con una descripción general de los módulos de Python dedicados al procesamiento de imágenes y exploraremos sus características prácticas a través de ejemplos concretos. Por último, hablaremos de las Convolutional Neural Networks (CNN), mostrando cómo iniciarse fácilmente con esta tecnología.
1. Las soluciones de Machine Learning destinadas a las imágenes
Entre los muchos módulos dedicados a la imagen, exploraremos tres soluciones que permiten iniciarse de manera progresiva en el procesamiento de imágenes: Pillow, Scikit-Image y OpenCV.
a. Pillow para iniciarse en el pretratamiento
Pillow es el módulo ideal para dar los primeros pasos en la manipulación de imágenes. Es fácil de usar y tiene todas las funciones...