Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

12
Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos Francisco Berrizbeitia Universidad Simón Bolívar [email protected] Resumen Usar los actuales paquetes de software para análisis cualitativo de texto para el trabajo con mensajes cortos resulta tremendamente tedioso dado que el etiquetado de cada mensaje debe hacerse de forma manual. En este trabajo proponemos un acercamiento basado en aprendizaje automático supervisado para reducir la carga de trabajo de esta tarea de un modo significativo. Palabras Clave Twitter, Minería de datos, Minería de Texto, Aprendizaje automático, Etiquetado de tuits J48, Naïve Bayes 1 Introducción La adopción masiva de las redes sociales por la población general para compartir sus opiniones y vivencias ha generado una enorme cantidad de datos públicos que pueden servir, y de hecho lo hacen, como insumo para el análisis cualitativo en estudios de opinión. Existen varios paquetes comerciales de software diseñados para realizar esta tarea como (1) (2) entre otros, en estos paquetes los investigadores deben etiquetar manualmente todos los mensajes lo que puede llegar a ser sumamente tedioso o

description

Usar los actuales paquetes de software para análisis cualitativo de texto para el trabajo con mensajes cortos resulta tremendamente tedioso dado que el etiquetado de cada mensaje debe hacerse de forma manual. En este trabajo proponemos un acercamiento basado en aprendizaje automático supervisado para reducir la carga de trabajo de esta tarea de un modo significativo.

Transcript of Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

Page 1: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

Francisco BerrizbeitiaUniversidad Simón Bolí[email protected]

ResumenUsar los actuales paquetes de software para análisis cualitativo de texto para el trabajo con mensajes cortos resulta tremendamente tedioso dado que el etiquetado de cada mensaje debe hacerse de forma manual. En este trabajo proponemos un acercamiento basado en aprendizaje automático supervisado para reducir la carga de trabajo de esta tarea de un modo significativo.

Palabras Clave

Twitter, Minería de datos, Minería de Texto, Aprendizaje automático, Etiquetado de tuits J48, Naïve Bayes

1 Introducción

La adopción masiva de las redes sociales por la población general para compartir sus opiniones y vivencias ha generado una enorme cantidad de datos públicos que pueden servir, y de hecho lo hacen, como insumo para el análisis cualitativo en estudios de opinión. Existen varios paquetes comerciales de software diseñados para realizar esta tarea como (1) (2) entre otros, en estos paquetes los investigadores deben etiquetar manualmente todos los mensajes lo que puede llegar a ser sumamente tedioso o incluso inviable si la cantidad de información recolectada es muy grande.

En este trabajo proponemos un acercamiento basado en aprendizaje automático supervisado que permita reducir considerablemente la carga de trabajo en esta tarea. El método propuesto logra reducir el trabajo manual en un 80% ya que el etiquetado se realiza sobre una muestra (sistemática) del 20% de los mensajes.

Los datos del estudio fueron obtenidos a través del API de Twitter (3) mediante una aplicación desarrollada en PHP (4) especialmente para el estudio, los mensajes fueron guardados en una base de datos MYSQL (5) localmente para su posterior procesamiento.

Page 2: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

La aplicación obtuvo los mensajes referentes al término “CNE” durante entre el 15 de Octubre de 2013 al 3 de Noviembre de 2013 en Venezuela, siendo el total de mensajes de 1866.

.

Figura 1. Esquema general del método para usado para el tratamiento de los datos para generar el cuerpo de entrenamiento

En la figura 1 vemos el proceso usado en el tratamiento de los datos para generar el cuerpo de entrenamiento del clasificador. Una vez obtenidos los mensajes se realizó un muestreo sistemático (6). Este conjunto de 373 mensajes fue etiquetado manualmente y luego fue sometido a un proceso de limpieza o eliminación de ruido, hecho esto y basado el acercamiento de bolsa de palabras (“Bag Of Words”) se convirtieron los mensajes en arreglos de palabras. Para la selección de atributos se implementó un algoritmo para minimizar la dimensionalidad de la matriz resultante basado en el criterio de cobertura.

Con los datos tratados de la forma anterior fue posible entrenar y evaluar varios clasificadores utilizando validación de 10 pliegues (“10 - cross fold validation”) obteniendo los mejores resultados con Naïve Bayes (80% de instancias correctamente clasificadas) y con árboles J48 (82% de instancias correctamente clasificados), en el análisis de la matriz de confusión notamos que gran parte de los problemas tiene que ver con los mensajes clasificados como SPAM y creemos que agregando un buen filtro de SPAM en el pre procesamiento lograremos tasas de clasificación correctas superiores al 90%.

El resto del artículo está organizado de la siguiente manera: Trabajos relacionados, Descripción detallada de los datos, Presentación de la metodología, Trabajos futuros, Conclusiones y Referencias.

Page 3: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

2 Trabajos Relacionados

Mucho se ha investigado en el campo de las redes sociales, específicamente en Twitter debido la cantidad y disponibilidad de los datos así como la importancia que tiene en el mundo actual.

Se han realizados trabajos muy interesantes relacionados con clasificación de usuarios como(7) (8) que utilizan técnicas de aprendizaje automático supervisado para esta tarea.

También se ha estudiado el uso de estas técnicas de aprendizaje para la detección automática de sentimientos en (9) (10) con buenos resultados.

En cuanto al análisis del contenido se han publicado trabajos en cuanto a la polarización política de usuarios (11), técnicas de agrupamiento para mensajes cortos (12).

3 Descripción de los datos

Un tuit es un mensaje corto que tiene a lo sumo 140 caracteres, estos mensajes pueden contener menciones a otros usuarios, etiquetas llamadas hashtags y vínculos externos a otras páginas web además de texto. Cada tuit tiene asociado un identificador único de mensaje, y el ID del usuario que lo envía, esto nos permitió asegurarnos de no tener mensajes repetidos.

Figura 2. Tuit de ejemplo tomado de la base de datos del estudio

En la Figura 2 vemos un mensaje de ejemplo tomado de la base datos del estudio, podemos ver una mención a un usuario @CaraotaDigital, un hashtag #CNE, y un link.

La base de datos del estudio consistió en 1866 de estos mensajes obtenidos entre el 15 de octubre y el 3 de noviembre, relacionados con el término CNE que corresponde con el acrónimo para el Consejo Nacional Electoral generados por usuarios en Venezuela.

Page 4: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

4 Metodología

En esta sección hablaremos de forma más detallada de cada uno de los pasos ejecutados en el estudio: obtención de los datos, muestreo, etiquetado, limpieza, generación y selección de los atributos y entrenamiento del clasificador.

4.1 Obtención de los datos

Para poder realizar el estudio lo primero que hicimos fue implementar un módulo en PHP para obtener los tuits a través de API público de Twitter. En la Figura 3 vemos el flujo de los datos en la obtención de los mensajes.

Figura 3. Esquema de la arquitectura de la aplicación para la obtención de los mensajes (Tuits)

Los datos que queremos obtener debían contar con tres características: Hablar sobre el CNE, haber sido escritos desde Venezuela y en español. Esto lo hicimos haciendo una búsqueda y restringiendo la ubicación geográfica y el idioma de los tuits recuperados directamente en la consulta realizada a través del API.

Figura 4. Restricción geográfica impuesta en la consulta realizada a Twitter

Page 5: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

En la figura 4 podemos observar la restricción geográfica impuesta, la forma es definida por un punto de (latitud, longitud) en nuestro caso (9.62897349763074,-67.08569313258183) y un radio que en el estudio fue de 650 km. Con esto logramos cubrir casi todo el país dejando fuera zonas poco pobladas, e incluyendo algunas islas del caribe con poblaciones bajas e idiomas distintos al español.

Cada consulta realizada es capaz de recuperar hasta 1000 mensajes por vez, dado que el tema que nos interesa no estaba generando un gran volumen de conversación corrimos el script una vez al día y guardamos solo los nuevos. Realizando este proceso obtuvimos los 1866 mensajes sobre los cuales se realizó el estudio.

4.2 Muestreo

Una vez obtenidos los tuits el siguiente paso fue generar una muestra para crear el cuerpo de entrenamiento del clasificador. En este punto pudimos notar que los comentarios de los usuarios suelen llegar en rachas, es decir, un comentario realizado por un usuario influyente, genera una serie de reenvíos (“retweets” o “RT”) o comentarios originales sobre el tema introducido. Debido a este fenómeno consideramos mejor realizar un muestreo sistemático (6) donde tomamos 1/5 de los tuits comenzando por el primer mensaje de forma de obtener la mayor representatividad posible. Utilizando este método obtuvimos una muestra de 373 tuits para ser etiquetados manualmente y generar el cuerpo de entrenamiento.

4.3 Etiquetado

Para realizar el etiquetado de los tuits se creó un módulo en PHP para facilitar esta tarea. La aplicación genera una serie de etiquetas sugeridas basadas en ocurrencia de parejas de palabras en los mensajes. Además se sugerir el módulo permite al usuario crear sus propias etiquetas.

La operación de etiquetar un tuit consiste en leer en el texto y escoger de la lista la etiqueta que mejor se adapte o crear una nueva en el momento.

Esto se hizo de forma manual para los 373 mensajes de la muestra obtenida y se obtuvo una clasificación en 22 etiquetas o temas de conversación sobre el CNE.

4.4 Limpieza

La eliminación de ruido en minería de texto consiste en eliminar aquellas palabras que no tienen poder discriminatorio para separar los datos, como por ejemplo preposiciones, conjunciones y artículos. En el caso específico de los mensajes en Twitter debemos excluir también las menciones a otros usuarios, los links y algunas abreviaciones de la jerga propia de la red social. Está tarea se realizó mediante un script de PHP.

Page 6: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

Figura 5. Ejemplo de un tuit antes y después de la eliminación de la limpieza

En la figura 5 tenemos un ejemplo del proceso de eliminación de ruido de los mensajes, podemos ver cómo nos quedamos únicamente con aquellas palabras que tienen mayor poder discriminatorio desechando todo los demás.

4.5 Generación y selección de atributos

Con los mensajes limpios y etiquetados la siguiente tarea consistió en transformar los mensajes en vectores siguiendo el modelo de bolsa de palabras o “Bag of Words” (13). La mayor dificultad consiste en la correcta elección de las palabras que van a formar el diccionario, si tomamos todas la palabras terminaríamos con demasiadas dimensiones y si tomamos muy pocas no sería posible clasificar a muchos de los mensajes.

Figura 6. Proceso de selección de atributos

Para escoger las palabras de diccionario o atributos implementamos un algoritmo en PHP que podemos ver en la figura 6. Como vemos en proceso tiene dos partes: Selección y Validación.

La selección se realiza contando las ocurrencias de todas las palabras en cuerpo de entrenamiento y seleccionando aquellas cuyo número de ocurrencias sea mayor que un umbral especificado, mientras mayor sea el umbral menor será la cantidad de atributos seleccionados.

Page 7: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

En la validación usamos la noción de cobertura, definimos que un mensaje está cubierto si tiene al menos una de sus palabras en el diccionario y que está bien cubierto si contiene al menos dos de las palabras seleccionadas.

La idea es buscar un compromiso razonable entre el número de atributos (dimesionalidad) y cobertura. A mayor cobertura mayor dimensionalidad y viceversa. En nuestro caso nos quedamos con una cobertura del 97% y una cobertura buena del 84%, los mensajes no cubiertos fueron tratados como casos atípicos y dejados fuera del cuerpo de entrenamiento, esto fuero logrado con un diccionario de 196 palabras.

Figura 7. Parte de la tabla resultante del proceso de generación y selección de atributos

Al final de esta etapa obtenemos una tabla como la figura 7 donde los tuits son convertidos en un vector de ceros y unos, donde cero representa que la palabra no se encuentra presente en el mensaje y uno que sí. La primera columna de la tabla representa la clase.

4.6 Entrenamiento del clasificador

En este estudio entrenamos dos clasificadores diferentes con los mismos datos y usado la misma técnica de validación de 10 pliegues (“10 fold cross validation”). Los algoritmos probados fueron Naïve Bayes y árbol J48.

Para esta tarea utilizamos WEKA (14) por la facilidad de uso, la amplia documentación disponible y ser distribuido bajo licencia “GNU general public license”.

Figura 8. Resultado después de entrenar y validar ambos algoritmos

Page 8: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

En la figura 8 vemos que ambos algoritmos exhiben un comportamiento similar clasificando correctamente alrededor del 80% de los mensajes, resultando un poco superior J48.

Figura 9. Matriz de confusión para Naïve Bayes

Analizando la matriz de confusión de la figura 9 correspondiente a algoritmo Naïve Bayes, notamos que la mayoría de las clasificaciones erróneas están relacionadas con la etiqueta SPAM, esta dificultad es coherente con las observaciones de (8). El clasificador de árbol J48 tiene un comportamiento muy similar.

Visto esto creemos que agregar un filtro anti SPAM como el propuesto en (8) pudiera tener un impacto positivo y elevar la tasa de clasificaciones correctas.

6 Conclusiones

En este estudio logramos definir un método que utiliza técnicas de aprendizaje supervisado para reducir la carga de trabajo manual en el etiquetado de mensajes cortos proveniente de Twitter para su uso en análisis cualitativo.

Nuestros resultados muestran que es posible lograr una efectividad superior al 80% en las clasificaciones correctas utilizando el método descrito en este artículo. Igualmente creemos que incluir un paso previo que separe el SPAM de los mensajes verdaderos de podrá aumentar significativamente la efectividad del clasificador.

Referencias1. MAXQDA. MAXQDA. [En línea] [Citado el: 2 de 1 de 2014.] http://www.maxqda.com.

2. Bitext Innovations, S.L. Bittext.com. [En línea] [Citado el: 2 de 1 de 2013.] http://www.bitext.com/.

3. Twitter. Twitter.com. [En línea] [Citado el: 10 de 11 de 2013.] https://dev.twitter.com/.

Page 9: Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos

4. The PHP Group. PHP: Hypertex Preprocesing. [En línea] [Citado el: 10 de 11 de 2013.] http://php.net/.

5. Oracle Corporation and/or its affiliates. MYSQL. [En línea] [Citado el: 3 de 1 de 2014.] http://www.mysql.com/about/.

6. Wikipedia. [En línea] [Citado el: 3 de 1 de 2014.] http://es.wikipedia.org/wiki/Muestreo_(estad%C3%ADstica)#Muestreo_sistem.C3.A1tico.

7. Pennacchiotti, Marco y Popescu, Ana-Maria. A Machine Learning Approach to Twitter User Classification. Proceedings of the Fifth International AAAI Conference on Weblogs and Social Media. Barcelona : s.n., 2011.

8. Benevenuto, Fabrício, y otros, y otros. Detecting Spammers on Twitter. CEAS 2010 Seventh annual Collaboration, Electronic messaging, AntiAbuse and Spam Conference. Redmond, Washington, US : s.n., 2010.

9. Pak, Alexander y Paroubek, Patrick. Twitter as a Corpus for Sentiment Analysis and Opinion Mining. Proceedings of LREC. 2010.

10. Barbosa, Luciano y Feng, Junlan. Robust Sentiment Detection on Twitter from Biased and Noisy Data. Coling 2010. Beijing : s.n., 2010.

11. Conover, M. D., y otros, y otros. Political Polarization on Twitter. Proceedings of the Fifth International AAAI Conference on Weblogs and Social Media. Barcelona : s.n., 2011.

12. Karandikar, Anand. Clustering short status messages: A topic model based approach. Graduate Thesis. 2010.

13. Wikipedia. Bag-Of-Words Model. [En línea] [Citado el: 4 de 1 de 2014.] http://en.wikipedia.org/wiki/Bag-of-words_model.

14. University Of Waikato. Weka 3: Data Mining Software in Java. [En línea] [Citado el: 4 de 1 de 2014.] http://www.cs.waikato.ac.nz/ml/weka/index.html.