Análisis de Sentimientos en Python utilizando Flair

'Análisis de Sentimientos en Python con Flair'

Bienvenido al siguiente artículo de blog de la serie sobre análisis de sentimientos. Hoy exploraremos Flair, uno de los métodos utilizados en la biblioteca de Python para el análisis de sentimientos.

Foto de Brian Lundquist en Unsplash

El análisis de sentimientos se realizó para la película “Extraction 2” utilizando los datos recopilados de Twitter. Puedes encontrar los datos en kaggle.com descárgalos desde este enlace. Puedes encontrar la lista completa de la serie de análisis de sentimientos en este enlace, que incluye extracción de datos de Twitter, preprocesamiento, análisis de sentimientos utilizando TextBlob y análisis de sentimientos utilizando Vader.

Flair para el Análisis de Sentimientos: Una Potente Biblioteca de Procesamiento del Lenguaje Natural (NLP)

Flair es una biblioteca de NLP desarrollada por Zalando Research [1], enfocada en tareas de análisis de sentimientos. Utiliza etiquetado de secuencias, un enfoque de aprendizaje profundo, para entrenar modelos que predicen etiquetas de sentimiento para cada palabra o token en un texto [2]. Esto permite que el modelo capture el sentimiento expresado por palabras individuales o frases dentro de una oración o documento. Flair proporciona modelos pre-entrenados en una variedad de idiomas [3] que se pueden utilizar sin requerir un entrenamiento inicial considerable. Además, permite afinar los modelos pre-entrenados utilizando conjuntos de datos únicos relevantes para una aplicación o área específica.

El principal beneficio de Flair es su capacidad para extraer información contextual [2], teniendo en cuenta las palabras cercanas y la construcción de las oraciones, para comprender mejor el estado de ánimo comunicado en textos complicados y confusos. Los datos de texto deben ser preprocesados antes de cargar y utilizar el modelo pre-entrenado para predecir la emoción de las entradas utilizando Flair. La API amigable y sencilla de usar facilita la integración de capacidades de análisis de sentimientos en aplicaciones de NLP. Flair es una herramienta eficaz para académicos y desarrolladores para crear modelos precisos de análisis de sentimientos para una variedad de aplicaciones, incluyendo monitoreo de redes sociales, análisis de comentarios de clientes y minería de opiniones [2].

Nota: Para instalar Flair, podemos utilizar pip install flair

classifier = TextClassifier.load('en-sentiment')for index, row in df.iterrows():    text = row['tokens']      sentence = Sentence(text)    classifier.predict(sentence)    sentiment = sentence.labels[0].value    score = sentence.labels[0].score    df.loc[index, 'sentiment'] = sentiment    df.loc[index, 'score'] = scoreprint(df.head())

A continuación se muestra el fragmento de código principal que se utiliza para el análisis de sentimientos utilizando Flair.

# Cargar el modelo pre-entrenado de análisis de sentimientosclassifier = TextClassifier.load('en-sentiment')# Iterar sobre cada fila en el DataFrame # :( lleva mucho tiempo :(for index, row in df.iterrows():    text = row['tokens']      sentence = Sentence(text)        # Predecir el sentimiento para la oración actual    classifier.predict(sentence)        # Obtener el sentimiento y la puntuación predicha    sentiment = sentence.labels[0].value    score = sentence.labels[0].score        # Actualizar el DataFrame con el sentimiento y la puntuación    df.loc[index, 'sentiment'] = sentiment    df.loc[index, 'score'] = score# Imprimir la columna 'sentiment' del DataFrameprint(df['sentiment'])

El ejemplo de código categoriza los sentimientos en un DataFrame utilizando el paquete Flair. Cada entrada en el DataFrame es procesada utilizando un modelo de análisis de sentimientos cargado que ya ha sido entrenado. El clasificador se utiliza para determinar el sentimiento y las predicciones de puntuación para cada texto. Luego, el sentimiento y la puntuación proyectados se agregan al DataFrame.

El código anterior agrega dos nuevas columnas, que son

Fuente de la imagen: Del autor.

Visualización

A continuación, se importa la biblioteca matplotlib como plt. El código cuenta las ocurrencias de cada categoría de sentimiento en la columna ‘sentiment’ del DataFrame y almacena los conteos en la variable sentiment_counts. Luego, se crea un gráfico de barras.

import matplotlib.pyplot as plt# Contar las ocurrencias de cada etiqueta de sentimientosentiment_counts = df['sentiment'].value_counts()# Crear un gráfico de tortasplt.pie(sentiment_counts.values, labels=sentiment_counts.index, autopct='%1.1f%%')plt.title('Resultados del Análisis de Sentimientos')plt.show()# Imprimir el número de conteos para cada sentimientofor sentiment, count in sentiment_counts.items():    print(f"{sentiment}: {count}")
Fuente de la imagen: Del autor.

Conclusión

Basado en los resultados del análisis de sentimientos obtenidos utilizando Flair para los datos de la película Extraction 2 recolectados de Twitter, tenemos los siguientes recuentos de sentimientos

NEGATIVO: 6073

POSITIVO: 3926

Como podemos ver, solo contiene sentimientos negativos y positivos. Interesantemente, se ignoran los sentimientos neutrales. Una razón obvia para esto es que las etiquetas de sentimiento utilizadas en los modelos de análisis de sentimientos pre-entrenados de Flair típicamente incluyen sentimientos positivos y negativos, pero no neutrales.

Podemos ampliar las capacidades de análisis de sentimientos de Flair entrenando un modelo personalizado que incluya una etiqueta de sentimiento neutral. Sin embargo, tenga en cuenta que esto requeriría recolectar o anotar un conjunto de datos adecuado y entrenar el modelo específicamente para su tarea de clasificación de sentimientos deseada.

Basado en los recuentos de sentimientos anteriores, parece que la película recibió comentarios negativos, lo cual se debe a la falta de sentimientos neutrales en el modelo pre-entrenado. Por lo tanto, es posible que no refleje el análisis claro que estamos buscando. Sería prudente construir un modelo personalizado en nuestros datos y realizar un análisis adicional.

Referencias

[1] Zalando Research. (s.f.). Flair – una potente biblioteca de NLP. Recuperado de https://github.com/zalandoresearch/flair

[2] Akbik, A., Blythe, D., & Vollgraf, R. (2018). Contextual String Embeddings para Sequence Labeling. Recuperado de https://www.aclweb.org/anthology/C18-1139/

[3] Akbik, A., Bergmann, T., Blythe, D., Rasul, K., Schweter, S., Vollgraf, R., & Zalando SE. (2019). FLAIR: Un marco fácil de usar para NLP de vanguardia. Recuperado de https://www.aclweb.org/anthology/N19-4010/

SÍGUEME para ser parte de mi Trayectoria como Analista de Datos en VoAGI.

Conéctate conmigo en Twitter o puedes enviarme un correo electrónico a [email protected] para colaboración en proyectos, intercambio de conocimientos o guía.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Potenciando los tubos RAG en Haystack Presentando DiversityRanker y LostInTheMiddleRanker

Los recientes avances en Procesamiento de Lenguaje Natural (NLP) y Respuesta a Preguntas de Forma Larga (LFQA) hubier...

Inteligencia Artificial

Microsoft presenta Python en Excel uniendo habilidades analíticas con familiaridad para mejorar la comprensión de los datos.

El ámbito del análisis de datos ha luchado durante mucho tiempo por integrar de manera fluida las capacidades de Pyth...

Inteligencia Artificial

Aplicación de juegos bilingües tiene como objetivo combatir la demencia

Una aplicación multilingüe desarrollada por investigadores de la Universidad de Tecnología y Diseño de Singapur tiene...

Inteligencia Artificial

Descifrando el comportamiento colectivo Cómo la inferencia bayesiana activa impulsa los movimientos naturales de los grupos de animales

El fenómeno del movimiento colectivo en animales observado en actividades como los enjambres de langostas, los cardúm...

Inteligencia Artificial

Robot Sudoroso Puede Ayudar a los Humanos a Comprender el Impacto del Calor Abrasador

Un investigador de la Universidad Estatal de Arizona describió al robot Advanced Newton Dynamic Instrument como 'el p...

Inteligencia Artificial

Conoce al Omnívoro Diseñador Industrial combina el Arte y el OpenUSD para crear Activos 3D para el Entrenamiento de IA

Nota del editor: esta publicación es parte de nuestra serie Conoce al Omnivore, que presenta a creadores y desarrolla...