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.
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].
- Búsqueda de empleo en Ciencia de Datos 5 libros que guiaron mi camino hacia el empleo
- Posibles restricciones de exportación de chips de inteligencia artificial en Estados Unidos sacuden el mercado tecnológico.
- Bailey Kacsmar, estudiante de doctorado en la Universidad de Waterloo – Serie de entrevistas
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.](https://miro.medium.com/v2/resize:fit:640/format:webp/1*8DSSDY9g58X_d3ha0xv5aA.png)
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.](https://miro.medium.com/v2/resize:fit:640/format:webp/1*PSm4CgQOYfGb21hby3_DdA.png)
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Inflection AI asegura una financiación de $1.3 mil millones liderada por titanes tecnológicos y gigantes de la industria.
- Cómo los Modelos de Lenguaje de Gran Escala (LLM) Impulsarán las Aplicaciones del Futuro
- Josh Feast, CEO y Co-Fundador de Cogito – Serie de Entrevistas
- ¿Qué es la Hiperpersonalización de IA? Ventajas, Estudios de Caso y Preocupaciones Éticas
- MPT-30B MosaicML supera a GPT-3 con un nuevo LLM para empujar los límites del PLN
- Explicación de la IA Explicativa utilizando Fórmulas Booleanas Expresivas
- Cómo construir una herramienta de seguimiento de experimentos [Lecciones de los ingenieros detrás de Neptune]