En un mundo cada vez más digital, donde las opiniones y emociones se comparten libremente en la web, extraer información valiosa de estas manifestaciones se ha vuelto crucial. En este contexto, surge una disciplina que explora textos para 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
- Casos De Uso
- Aspectos A Tener En Cuenta
- Desafíos & Limitaciones
- El Futuro De Esta Tecnología
- Conclusión
Explicación
El término análisis de sentimiento, o sentiment analysis en inglés, 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 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 utilización del machine learning 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 machine learning 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. Es eficiente y fácil de implementar, y es recomendable en escenarios donde la cantidad de datos es limitada.
- Árbol de Decisión: este algoritmo realiza clasificaciones basadas en un conjunto de reglas if-then-else. Útiles en el análisis de sentimientos porque pueden capturar relaciones no lineales entre características y la clase, y son fácilmente interpretables.
- Maquinas de Soporte Vectorial: se trata de conjunto de métodos de aprendizaje supervisado utilizados para la clasificación y regresión. Se emplea cuando los datos son complejos y dimensionalmente grandes, ya que puede manejar tanto características lineales como no lineales, y es muy preciso.
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, basándose en 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
- Coca-Cola: la conocida empresa de bebidas ha utilizado el análisis de sentimiento para entender la percepción de su marca en las redes sociales. Mediante este análisis, han conseguido obtener información muy valiosa para guiar sus estrategias de marketing y mejorar sus productos y servicios.
- Amazon: aplica el análisis de sentimientos para interpretar las reseñas de los clientes y así identificar áreas donde necesitan mejorar. Este análisis les permite dar prioridad a los problemas más importantes y mejorar continuamente su servicio al cliente.
- Mayo Clinic: esta clínica ha estado utilizando el análisis de sentimientos y la informática afectiva para obtener una mayor comprensión de los sentimientos no expresados y las sutiles señales emocionales de los pacientes.
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, eso es para nerds, lo único que 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 presenta el sentimiento más negativo, lo cual es razonable dado el cinismo y desprecio hacia 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 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-4o 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 sentimiento.
Transferir el aprendizaje implica 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 machine learning 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. El uso de lenguaje coloquial también presenta desafíos adicionales. 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 avance continuo de la inteligencia artificial y el machine learning, veremos mejoras significativas 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 sentimiento 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.