Contenido del curso
Técnicas Tradicionales de NLP para Documentos Empresariales
- 4

Tokenización con NLTK y SpaCy en español
06:51 min - 5

Stemming vs lematización en nubes de palabras
Viendo ahora - 6

Bag of Words y TF-IDF para representación vectorial de texto
05:32 min - 7

Análisis LDA para detectar temas ocultos en reseñas de texto
03:08 min - 8

Naive Bayes para clasificar reseñas con TF-IDF
07:41 min
Introducción y Profundización en Transformers para Aplicaciones Empresariales
Proyecto Final y Estrategia Comercial B2B
Stemming vs lematización en nubes de palabras
Resumen
Las nubes de palabras son una forma visual de identificar la frecuencia con la que aparecen ciertos términos en un conjunto de reseñas, y resultan clave para entender el sentimiento de los usuarios hacia un producto. Aquí vas a ver cómo generarlas en Python usando WordCloud y Matplotlib, comparando tres escenarios: reseñas limpias, reseñas con stemming y reseñas con lematización.
¿Cómo generar una nube de palabras básica con WordCloud?
El primer paso es importar el método WordCloud para construir la visualización y Matplotlib para mostrarla. La función recibe una sola variable principal: el texto que vas a analizar, que en este caso proviene de la columna clean_review del data frame filtered_data.
WordCloud trae su propio detector de stop words, así que puedes pasárselas directamente. También puedes definir el background_color (en blanco, por ejemplo) y las dimensiones de la imagen.
¿Qué es una stop word? Es una palabra muy frecuente y poco informativa, como es, muy, de o lo, que suele eliminarse para que el análisis capture mejor las ideas principales del texto.
Al ejecutar este primer caso, el proceso tarda alrededor de 35 segundos. El resultado muestra muchos conectores como es, muy, de o lo, lo que confirma que sin un procesamiento adicional la nube no logra capturar la idea principal de las reseñas.
¿Cómo aplicar stop words personalizadas y stemming a las reseñas?
Para mejorar el resultado, conviene definir tus propias stop words en lugar de quedarte con las que trae la librería por defecto, y luego aplicar stemming para reducir cada palabra a su raíz.
El método se construye en tres pasos:
- Eliminar las stop words usando una función propia definida previamente.
- Aplicar stemming a cada palabra.
- Eliminar los espacios extra que queden después del proceso.
El resultado se guarda en una nueva columna llamada clean_review_stemming, aplicando el método sobre clean_review. Este procesamiento tarda alrededor de 1 minuto con 6 segundos, una diferencia notable frente a otras técnicas más pesadas.
Al comparar la columna original con la versión transformada se ve claro qué hace el algoritmo: bueno se convierte en buen, horrible pierde la e final y queda como horribl. La nube generada con esta columna tarda unos 20 segundos y muestra términos como gust, sí, buen o cálid. Son raíces reconocibles, aunque pierden parte de su sentido semántico.
¿Cuándo conviene usar stemming en NLP? Cuando trabajas con hardware limitado o necesitas tiempos de respuesta muy cortos. Es rápido y eficiente, aunque sacrifica precisión semántica.
¿Qué diferencia hay entre stemming y lematización en una nube de palabras?
La lematización procesa el texto con spaCy, eliminando stop words y reduciendo cada palabra a su forma base real, no solo a una raíz cortada. El método se aplica sobre clean_review y genera una nueva columna llamada clean_review_lematizacion.
Aquí aparece el contraste más fuerte del proceso. Mientras el stemming tardó cerca de un minuto, la lematización con CPU demoró 38 minutos con 32 segundos. Es un dato importante a la hora de elegir tu técnica según el hardware disponible y los tiempos del proyecto.
¿Qué resultados visuales entrega cada técnica?
El resultado vale la diferencia de tiempo cuando lo que buscas es interpretación. La columna lematizada muestra palabras completas y con sentido como recibir, comprar, saber u obligar. La nube de palabras se genera en 23 segundos y deja ver términos claros como buen, calidad, funcionar, esperar y aunque.
Comparando los tres casos puedes ver el recorrido completo:
- Reseñas limpias sin procesar: muchos conectores y poca claridad.
- Stemming: muy rápido, pero con pérdida de sentido semántico.
- Lematización: más lento, pero con palabras completas y significado claro.
¿Cómo guardar el resultado para usarlo en entrenamiento?
Una vez tienes la columna lematizada, conviene guardarla junto con la puntuación en un nuevo archivo CSV llamado clean_and_pass. Ese archivo será la base para entrenar modelos en etapas posteriores del proyecto, donde la calidad semántica del texto impacta directamente en el desempeño del modelo.
La nube de palabras te muestra la frecuencia de aparición de los términos y se vuelve un recurso visual potente para entender qué sienten los usuarios hacia un producto. ¿Ya tienes un data set en mente para probarlo? Compártenos en los comentarios la nube que generaste y cuéntanos qué técnica usaste.