Introducción y Fundamentos del NLP
Procesamiento de Lenguaje Natural
Configuración del Entorno y Exploración de Datos
Preprocesamiento Inicial
Quiz: Introducción y Fundamentos del NLP
Técnicas Tradicionales de NLP para Documentos Empresariales
Tokenización, Stemming y Lematización
Visualización y generación de nubes de palabras
Representación Vectorial: Bag-of-Words y TF-IDF
Extracción de Términos Clave y Modelado de Temas
Clasificación Tradicional para Análisis de Sentimientos y Categorías
Quiz: Técnicas Tradicionales de NLP para Documentos Empresariales
Introducción y Profundización en Transformers para Aplicaciones Empresariales
Fundamentos de Transformers y su Relevancia en NLP
Tokenización Avanzada con Transformers y Hugging Face
Uso de Modelos Preentrenados de Transformers para Clasificación
Reconocimiento de Entidades (NER) en Documentos Corporativos con Transformers
Fine-Tuning de Transformers para Datos Empresariales
Quiz: Introducción y Profundización en Transformers para Aplicaciones Empresariales
Proyecto Final y Estrategia Comercial B2B
Desarrollo y Prototipado de la Aplicación Empresarialparte 1
Desarrollo y Prototipado de la Aplicación Empresarialparte 2
Despliegue del proyecto en Hugging Face
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
El análisis de sentimientos a través de nubes de palabras es una técnica poderosa para visualizar las opiniones de los usuarios sobre productos o servicios. Esta metodología permite identificar rápidamente los términos más frecuentes en reseñas, facilitando la comprensión de la percepción general del público. Mediante diferentes técnicas de procesamiento de lenguaje natural, podemos refinar estos análisis para obtener insights más precisos y valiosos.
Para generar nubes de palabras que realmente capturen la esencia de las opiniones de los usuarios, es necesario aplicar técnicas de procesamiento de texto. En nuestro notebook, este proceso corresponde al paso cinco, donde utilizaremos el método WordCloud para la generación de las nubes y Matplotlib para su visualización.
Comenzamos con un enfoque básico, aplicando el método WordCloud directamente a la columna "clean_review" de nuestro dataframe:
# Generación de nube de palabras básica
wordcloud = WordCloud(stopwords=None, background_color='white', width=800, height=400).generate(texto)
Al ejecutar este código, obtenemos una primera nube de palabras en aproximadamente 35 segundos. Sin embargo, esta visualización inicial contiene muchos conectores como "es", "muy", "de", "lo", que no capturan realmente la idea principal de los comentarios. Es aquí donde el procesamiento adicional se vuelve crucial para obtener resultados más significativos.
Existen dos técnicas principales para reducir las palabras a su forma base: stemming y lematización. Cada una tiene características particulares que afectan tanto la calidad de los resultados como el tiempo de procesamiento.
Stemming: Esta técnica reduce las palabras a su raíz mediante la eliminación de sufijos y prefijos.
# Aplicación de stemming y eliminación de stopwords
def clean_with_stopwords_stemming(text):
text = remove_stopwords(text)
text = apply_stemming(text)
text = remove_extra_spaces(text)
return text
df['clean_review_stemming'] = df['clean_review'].apply(clean_with_stopwords_stemming)
El proceso de stemming tomó aproximadamente 1 minuto y 6 segundos. En los resultados, podemos observar transformaciones como "bueno" a "buen", "horrible" a "horribl". El stemming destaca por su velocidad, lo que lo hace ideal para entornos con hardware limitado o cuando se requieren tiempos de respuesta rápidos.
Lematización: Esta técnica reduce las palabras a su lema o forma canónica, considerando el análisis morfológico.
# Aplicación de lematización y eliminación de stopwords
def clean_with_lemmatization(text):
# Procesamiento usando spaCy para lematización
# Código específico de implementación
return processed_text
df['clean_review_lemmatization'] = df['clean_review'].apply(clean_with_lemmatization)
El proceso de lematización fue significativamente más lento, tomando 38 minutos y 32 segundos. Sin embargo, los resultados mantienen mejor el sentido semántico de las palabras, transformándolas a formas como "recibir", "comprar", "saber".
Las diferencias entre las técnicas se reflejan claramente en las nubes de palabras resultantes:
Nube básica (sin procesamiento adicional): Muestra muchos conectores y palabras comunes que no aportan valor analítico.
Nube con stemming: Generada en aproximadamente 20 segundos, muestra términos como "gost", "buen", "calid". Aunque pierde algo de sentido semántico, ofrece una visualización rápida de los términos principales.
Nube con lematización: Generada en 23 segundos (después del procesamiento inicial), muestra términos como "buena calidad", "gustar", "funcionar", conservando mejor el significado original de las palabras.
La elección entre estas técnicas dependerá de nuestras necesidades específicas: si priorizamos la velocidad, el stemming es la opción; si buscamos precisión semántica, la lematización ofrece mejores resultados a costa de un mayor tiempo de procesamiento.
Una vez procesados los datos y generadas las nubes de palabras, es importante guardar estos resultados para análisis futuros. En nuestro caso, guardamos la columna procesada junto con la puntuación en un nuevo archivo CSV:
# Guardar resultados para uso posterior
df[['clean_review_lemmatization', 'score']].to_csv('processed_reviews.csv', index=False)
Este archivo será fundamental para entrenamientos posteriores, como la implementación de modelos de machine learning para clasificación de sentimientos o sistemas de recomendación basados en opiniones.
Las nubes de palabras son herramientas visuales poderosas que nos indican la frecuencia de aparición de términos clave, permitiéndonos identificar rápidamente los sentimientos predominantes de los usuarios hacia productos o servicios.
El análisis de sentimientos mediante nubes de palabras es solo el comienzo de un proceso más amplio de comprensión de la opinión pública. Te invitamos a experimentar con tus propios datasets y compartir en los comentarios las nubes de palabras que generes, para seguir aprendiendo juntos sobre estas fascinantes técnicas de procesamiento de lenguaje natural.
Aportes 2
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?