Problemática a resolver.
El procesamiento del lenguaje natural (PLN) se refiere a la comprensión del lenguaje natural por parte de las máquinas, y uno de los campos del PLN es el análisis de sentimientos, que consiste en la obtención de información a partir de los sentimientos y opiniones que se pueden encontrar en textos. Dentro del análisis de sentimientos se pueden distinguir diferentes tipos de análisis, como la polaridad, la intención y la emoción. El análisis de sentimientos tiene aplicaciones en campos como los negocios, la política y los sistemas de transporte inteligente. A pesar de las dificultades que presenta, como la definición de neutral, el tono del lenguaje y el sarcasmo, el análisis de sentimientos se ha visto favorecido por la aparición del modelo BERT, que ha mejorado el procesamiento del lenguaje natural mediante el entrenamiento bidireccional de transformadores. La capacidad de BERT para codificar secuencias enteras y conocer mejor el contexto de la palabra ha permitido su aplicación al análisis de sentimientos en diferentes idiomas, incluyendo el español. Twitter es un entorno ideal para el análisis de sentimientos debido a la gran cantidad de mensajes no estructurados que se pueden encontrar en la red social, aunque presenta problemas como el sarcasmo, la ironía y los emoticonos. Los objetivos del trabajo realizado se centran en analizar con éxito el análisis de sentimientos en español y sobre tuits que presentan sus particularidades, así como en analizar la viabilidad y facilidad de uso de BERT para el procesamiento del lenguaje natural en español.
Información empleada.
El objetivo de la tarea es analizar las capacidades de BERT para realizar análisis de sentimientos sobre tweets en español. Para ello, se utilizará un conjunto de datos disponible en formato XML que contiene 1008 tweets en español con sus etiquetas de sentimiento correspondientes. El conjunto de datos se centrará en la tarea de análisis de sentimientos a nivel de tweet. Es importante tener en cuenta que la muestra de datos es limitada y esto podría afectar al análisis realizado.
El dataset se puede obtener aquí http://www.sepln.org/workshops/tass/2017/#datasets
El conjunto de datos se compone de varios campos, como Tweetid, User, Content, Date, Lang y Sentiment. El campo Sentiment almacena la etiqueta de sentimiento asociada al tweet y puede ser None, N (negativo), P (positivo) o Neu (neutral). El campo Content, que es el contenido del tweet, es la primera parte del análisis que se utilizará como entrada para BERT-as-service y la primera parte sobre la que será necesario trabajar. El contenido de los tweets es complejo debido a la presencia de abreviaturas, errores ortográficos y otros elementos que pueden dificultar el análisis. Por lo tanto, será necesario limpiar el texto de guiones, tabulaciones y caracteres que no son letras, espacios o signos de puntuación.
En general, el análisis de sentimientos para tweets en español puede ser más complicado debido a la naturaleza de la muestra elegida para el conjunto de datos y la presencia de elementos que dificultan la interpretación del contenido del tweet. Sin embargo, se espera que BERT tenga una buena capacidad para realizar esta tarea debido a su capacidad de procesamiento de lenguaje natural.
Procesamiento de los datos.
El procesamiento de datos es esencial para el procesamiento del lenguaje natural. En este caso, el texto se convierte de XML a CSV, se utiliza BeautifulSoup para extraer el texto de las páginas web, se eliminan los emojis y los signos de puntuación, se tokeniza el texto, se eliminan las palabras vacías y se eliminan los saltos de línea. Finalmente, se convierten las columnas del dataframe en listas y se modifican las etiquetas de sentimientos para que sean compatibles con BERT-as-service. Se exploraron otras opciones como la lematización y la eliminación de la primera palabra de cada tuit, pero no se obtuvieron resultados satisfactorios.
Modelos utilizados.
Son modelos de clasificación que se pueden usar en la biblioteca Scikit-learn de Python. Uno de ellos es Naive Bayes, que se puede aplicar con dos opciones: BernoulliNB y GaussianNB. También el modelo Random Forest, que se basa en árboles de decisión. Otro modelo es LogisticRegression, que se utiliza para clasificación lineal y puede configurarse con varios parámetros. LabelPropagation y LabelSpreading son dos algoritmos semi-supervisados de propagación de etiquetas que se pueden usar para problemas de clasificación semi-supervisados. Finalmente, el método KNeighborClassification que se basa en el “voto de la mayoría” de los vecinos más cercanos para la clasificación.
Resultados o conclusiones obtenidas.
En resumen, las conclusiones deben dividirse en dos líneas distintas: una relacionada con BERT y otra con el análisis de sentimientos. En cuanto al análisis de sentimientos, la pobre calidad del dataset disponible ha sido un problema, pero se han obtenido resultados positivos al centrarse en análisis binarios con muestras similares. Aunque no se han logrado resultados óptimos con BERT al analizar todos los sentimientos a la vez, se ha demostrado que es posible utilizarlo para el análisis de sentimientos en español a través de BERT-as-service.