que es el análisis de sentimiento
gráficos de distintos tipos sobre un fondo semitransparente de una ciudad con edificios altos

¿Qué Es El Análisis De Sentimiento?

En un mundo cada vez más digital, donde las opiniones y emociones se comparten libremente en la web, entender y extraer información valiosa de estas manifestaciones se ha vuelto algo de especial importancia. En este contexto, surge una disciplina capaz de explorar textos y sentimientos y de desentrañar la subjetividad y las percepciones humanas. A lo largo de este artículo, profundizaremos en este interesante campo, exploraremos las técnicas que lo hacen posible y examinaremos sus aplicaciones en diversos contextos:

Explicación

El término análisis de sentimiento -en inglés, sentiment analysis- se refiere al uso de técnicas como el análisis de textos, procesamiento de lenguaje natural (PLN) y la lingüística computacional para identificar y extraer información subjetiva de los materiales de origen.

El Procesamiento de Lenguaje Natural (PLN) es un subcampo de la inteligencia artificial que se centra en la interacción entre las computadoras y el lenguaje humano, mientras que la lingüística computacional es un campo interdisciplinario que se ocupa de utilizar computadoras para procesar o producir lenguaje humano. En conjunto, estas técnicas nos ayudan a determinar la actitud u opinión de un individuo respecto a un tema, o la polaridad contextual presente en un documento.

El análisis de sentimiento se aplica en contextos como las reseñas de un producto, respuestas a encuestas o la opinión general sobre un tema de actualidad en una red social.

Funcionamiento

El análisis de sentimiento, generalmente, consta de 2 pasos: el primero es la extracción de características, donde se identifica el conjunto de palabras o frase relevante que queremos analizar; y el segundo es la aplicación de aprendizaje automático para clasificar el texto en positivo, negativo o neutral. Estos valores pueden estar comprendidos entre -1 & 1, 0 & 1, etcétera. Dependiendo de la librería y el lenguaje utilizado. En este sentido, el análisis de sentimiento se realiza en diferentes niveles de granularidad: desde el documento (opinión general de un todo) hasta el aspecto (sentimiento hacia un aspecto específico del documento a analizar).

I) Existen múltiples métodos que se pueden utilizar para la extracción y clasificación de características en el análisis de sentimiento:

  • Bolsa de palabras: representa el documento como una bolsa de palabras -es decir desordenadas y sin coherencia gramatical- pero que mantienen un registro con la frecuencia de cada una.
  • Etiquetado de partes del discurso: conocido como Part-of-Speech tagging, consiste en analizar morfológicamente cada palabra del documento (sustantivo, adjetivo, verbo…) y usar esa información como características para la clasificación.
  • N-gramas: considera grupos de ‘n’ palabras juntas -en lugar de palabras individuales- para capturar más información contextual.
  • Recursos léxicos de opinión: se hace uso una lista predefinida de palabras y sus puntuaciones asociada (negativo, positivo, neutral) para clasificar el texto.

II) Los algoritmos de aprendizaje automático que se usan comúnmente para la clasificación de textos son:

  • Naive Bayes: algoritmo probabilístico que hace clasificaciones basadas en la máxima verosimilitud de las características, dada la clase.
  • Árbol de decisión: este algoritmo realiza clasificaciones basadas en un conjunto de reglas if-then-else.
  • Maquinas de vector soporte: se trata de conjunto de métodos de aprendizaje supervisado utilizados para la clasificación y regresión.

Casos De Uso

El análisis de sentimiento tiene una amplia gama de aplicaciones, que incluyen:

  • Marketing: las empresas aprovechan el análisis de sentimiento para analizar la opinión predominante en las publicaciones y reseñas de redes sociales sobre su negocio. Obteniendo información sobre los gustos de los clientes; lo cual permite desarrollar campañas de marketing más efectivas, aparte de mejorar los productos y servicios ofrecidos
  • Servicio al cliente: el análisis de sentimiento se utiliza para clasificar y enrutar las consultas de servicio al cliente, en base a la terminología utilizada en el mensaje.
  • Atención médica: también se usa para ayudar a identificar áreas de mejora como el nivel eficiencia en los tratamientos (gracias a las reseñas de pacientes y/o acompañantes).

Empresas Que Han Hecho Uso De Ello

Ejemplo De Análisis De Sentimiento Con Python

Un ejemplo sencillo de entender de análisis de sentimiento con Python sería analizar múltiples opiniones en español sobre esta web y la ciencia de datos en general, con el objetivo de saber si el sentimiento es positivo (aproximado a 1) o negativo (aproximado a 0); para ello, haremos lo siguiente:

I) Instalamos sentiment-analysis-spanish y keras tensorflow:

pip install sentiment-analysis-spanish
pip install keras tensorflow

II) Procedemos a realizar el análisis de sentimiento en los 6 textos:

import warnings
warnings.filterwarnings("ignore")
from sentiment_analysis_spanish import sentiment_analysis
spanish = sentiment_analysis.SentimentAnalysisSpanish()

text1 = "¡Esta web es una basura! Va lenta, sus artículos no ayudan en nada y para colmo no tiene usuarios (pese a ser un 'foro')."
text2 = "Estudiar data science es una excelente manera de aprovechar nuestro tiempo libre, a todos nos encanta dedicar horas a aprender programación, matemáticas y estadística para mejorar nuestra inteligencia."
text3 = "El dueño de forodatos necesitaría publicar al menos mil artículos para que la web tuviese algo de éxito. Y aún así, lo más probable es que acabe siendo un fracaso."
text4 = "Aprender ciencia de datos puede hacernos sentir alegría y tristeza."
text5 = "Me encanta la ciencia de datos, cuando era pequeño y me preguntaban que quería hacer de mayor siempre decía: 'analista de datos' y todos me aplaudían (la cara)."
text6 = "A mí en realidad no me interesa nada de lo relacionado con la informática o la ciencia -ya que eso es para nerds-, lo que en realidad quiero es trabajar en remoto por $100k."

print([spanish.sentiment(text) for text in [text1, text2, text3, text4, text5, text6]])

----------------------------------------------------------------------------------------

[2.667024455400901e-06, 0.9450196851984383, 3.9350255648956824e-08, 0.6598922507464235, 0.04191085830850472, 1.9097665432244192e-10]

De estos resultados llama la atención lo siguiente:

  • El texto 2 es el más positivo, pese a tener un subjetivo tono sarcástico.
  • El texto 4 es el más neutro (aproximado a 0.5), seguramente debido al combinar alegría y tristeza en una sola frase.
  • El texto 6 es el que más sentimiento negativo presenta, hecho razonable considerando el cinismo y desprecio a la profesión que se infiere.

También podemos destacar -entre otros- que en el texto 5 al borrar «(por la cara)» la puntuación pasa de ~0.04 a ~0.25, pero no debemos asumir que este incremento ocurre necesariamente por eliminar la implicaciones violentas de la frase; sino que puede ser por las limitaciones y desafíos del análisis de sentimiento que se explicarán más adelante.

Aspectos Importantes A Tener En Cuenta

A la hora de realizar el análisis de sentimiento, debemos considerar lo siguiente:

1. Evaluación De Modelos De Análisis De Sentimiento

La evaluación de los modelos de análisis de sentimientos es un paso importante para garantizar que el modelo funcione bien y también para identificar cualquier área de mejora. Las métricas comúnmente utilizadas para evaluar los modelos de análisis de sentimiento son las siguientes:

  • Precisión & recuperación: se utilizan para evaluar el equilibrio entre falsos positivos y falsos negativos; la precisión es la proporción de instancias positivas verdaderas entre número total de instancias positivas previstas, mientras que la recuperación es la proporción de instancias positivas verdaderas entre el número total de instancias positivas reales.
  • Puntuación F1: se trata de la media armónica de precisión-recuperación, y sirve para equilibrar dichas métricas.
  • Matriz de confusión: muestra el rendimiento -y calidad- del algoritmo de clasificación de sentimiento, incluyendo el número de falsos negativos y positivos.

2. Uso De Modelos Pre-Entrenados & Transferencia De Aprendizaje

Los modelos pre-entrenados como BERT, GPT-4 y RoBERTa han sido entrenados con una gran cantidad datos y han mostrado buen desempeño en tareas de procesamiento del lenguaje natural como el análisis de sentimientos.

Transferir el aprendizaje implica -y significa- ajustar modelos pre-entrenados a un conjunto de datos específico para aprovechar el conocimiento adquirido previamente y mejorar el rendimiento, además de ahorrar tiempo a la hora de entrenar del modelo.

3. Uso De Mecanismos De Atención.

Los mecanismos de atención permiten que el modelo se concentre en partes específicas de la entrada mientras la procesa, lo que resulta útil en situaciones donde ciertas palabras contienen más información sobre el sentimiento que otras; o cuando el sentimiento simplemente no está claro en el contexto general, pero se puede inferir de palabras o frases específicas.

Desafíos & Limitaciones

El análisis de sentimiento es una técnica de gran utilidad dentro de la ciencia de datos, pero aún existen varios desafíos-limitaciones pendientes de solución:

  • Ambigüedad: el lenguaje natural es inherentemente ambiguo, lo que dificulta la clasificación del sentimiento presente en el texto. De todos modos, los avances en el aprendizaje automático y el procesamiento del lenguaje natural están permitiendo el desarrollo de modelos más sofisticados capaces de comprender mejor el contexto y reducir la ambigüedad.
  • Ironía y sarcasmo: dan a entender lo contrario del significado literal, lo que impide que los algoritmos de análisis de sentimiento entiendan correctamente lo que se pretende transmitir.
  • Subjetividad: se basa en la suposición de que el texto expresa una opinión subjetiva, pero no siempre es el caso. Por lo tanto, se están desarrollando técnicas para distinguir entre declaraciones objetivas y subjetivas y para entender cómo las opiniones pueden llegar a ser influenciadas por factores externos.
  • Problemas específicos del idioma: los algoritmos de análisis de opinión generalmente se desarrollan y entrenan en un idioma específico, lo que puede dificultar su aplicación a otros idiomas. Además, el uso de lenguaje coloquial también plantea dificultades. Por lo tanto, es importante utilizar un modelo específicamente desarrollado para el idioma en cuestión. Al mismo tiempo, se están haciendo esfuerzos para desarrollar modelos de lenguaje multilingües y para entender mejor las diferencias entre las lenguas y las culturas.

El Futuro De Esta Tecnología

De cara al futuro, la tecnología del análisis de sentimientos parece encaminarse hacia una mayor precisión y un mejor entendimiento del lenguaje humano. Con el progreso continuo en la inteligencia artificial y el aprendizaje automático, es probable que veamos mejoras significativas en la capacidad de los sistemas para interpretar el tono, el contexto y las sutilezas del lenguaje humano. A medida que la tecnología avance, el análisis de sentimientos puede llegar a ofrecer una comprensión más profunda y precisa de las emociones y opiniones humanas.

Por ende, a pesar de los retos que persisten, el análisis de sentimientos es un campo de estudio que seguirá siendo relevante y cuyo desarrollo se prevé de gran importancia en los años venideros.

Conclusión

El análisis de sentimiento conforma una herramienta de gran valor a la hora de tomar decisiones, haciendo uso de técnicas de procesamiento de lenguaje natural y permitiéndonos identificar la clase de opinión subjetiva presente en un texto. Actualmente se usa en una gran variedad de industrias y su rendimiento está mejorando constantemente, a pesar de sus limitaciones.