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.
Un enfoque de aprendizaje automático supervisado para el etiquetado de mensajes cortos
1. Un enfoque de aprendizaje automático supervisado
para el etiquetado de mensajes cortos
Francisco Berrizbeitia
Universidad Simón Bolívar
fberrizbeitia@gmail.com
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áticosupervisadoparareducirlacarga de trabajo de esta tarea de un modo
significativo.
Palabras Clave
Twitter,Mineríade datos,Minería de Texto, Aprendizaje automático, Etiquetado de tuits J48,
Naïve Bayes
1 Introducción
La adopciónmasivade lasredessocialesporlapoblacióngeneralparacompartirsusopiniones
y vivenciashageneradounaenorme cantidadde datospúblicosque puedenservir,yde hecho
lo hacen, como insumo para el análisis cualitativo en estudios de opinión. Existen varios
paquetescomercialesde software diseñados para realizar esta tarea como (1) (2) entre otros,
enestospaqueteslosinvestigadoresdebenetiquetarmanualmentetodoslos mensajes lo que
puede llegar a ser sumamente tedioso o incluso inviable si la cantidad de información
recolectada es muy grande.
En este trabajoproponemosunacercamientobasadoen aprendizaje automático supervisado
que permitareducirconsiderablemente lacarga de trabajoenesta tarea. El métodopropuesto
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 datosdel estudiofueronobtenidosatravésdel APIde Twitter (3) mediante unaaplicación
desarrolladaenPHP (4) especialmenteparael estudio,losmensajes fueron guardados en una
base de datos MYSQL (5) localmente para su posterior procesamiento.
2. La aplicación obtuvolosmensajesreferentesal 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 figura1 vemosel procesousado enel tratamientode losdatos para generarel 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
acercamientode bolsade 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 losdatos tratados de la formaanteriorfue posible entrenaryevaluarvarios 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
SPAMy creemosque agregandoun buen filtro de SPAMen el pre procesamiento lograremos
tasas de clasificación correctas superiores al 90%.
El restodel artículoestá organizadode lasiguiente manera:Trabajosrelacionados,Descripción
detallada de los datos, Presentación de la metodología, Trabajos futuros, Conclusiones y
Referencias.
3. 2 Trabajos Relacionados
Mucho se ha investigadoenel campode lasredessociales,específicamente en Twitter debido
la cantidady disponibilidadde losdatosasícomo laimportanciaque tiene enel 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énse ha estudiadoel usode estastécnicasde aprendizajeparala 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
contenermencionesaotrosusuarios, etiquetasllamadas hashtagsyvínculos externos a otras
páginaswebademásde texto.Cada tuit tiene asociadounidentificadorúnicode 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.
4. 4 Metodología
En estasecciónhablaremosde formamásdetalladade cada unode lospasos ejecutados en el
estudio:obtenciónde losdatos, muestreo, etiquetado, limpieza, generaciónyselección de los
atributos y entrenamiento del clasificador.
4.1 Obtención de los datos
Para poderrealizarel estudioloprimeroque hicimosfue implementarunmó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
5. En la figura4 podemosobservar larestriccióngeográficaimpuesta,laformaesdefinida 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 consultarealizadaescapazde recuperar hasta 1000 mensajespor vez, dado que el tema
que nos interesanoestabagenerandoungranvolumende conversacióncorrimosel script una
vezal día y guardamossololosnuevos.Realizandoeste proceso obtuvimos los 1866 mensajes
sobre los cuales se realizó el estudio.
4.2 Muestreo
Una vez obtenidoslos tuits el siguiente pasofue generar una muestra para crear el cuerpo de
entrenamiento del clasificador. En este punto pudimos notar que los comentarios de los
usuariossuelenllegarenrachas, 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. Debidoaeste fenómenoconsideramosmejorrealizarunmuestreosistemático (6)
donde tomamos 1/5 de los tuits comenzando por el primer mensaje de forma de obtener la
mayor representatividadposible. Utilizandoeste 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énlasmencionesaotrosusuarios,loslinks yalgunasabreviaciones de la jerga propia de
la red social. Está tarea se realizó mediante un script de PHP.
6. 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,
podemosvercómonos quedamosúnicamente conaquellaspalabras 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 escogerlaspalabrasde diccionariooatributosimplementamos un algoritmo en PHP que
podemosverenlafigura6. Comovemos 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.
7. 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 ideaesbuscarun compromisorazonable 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 estaetapaobtenemos unatablacomola figura7 donde lostuitsson convertidos en
un vectorde ceros y unos,donde cerorepresentaque 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
8. 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.
Vistoesto creemosque agregarunfiltroanti SPAMcomoel propuestoen (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 incluirunpasoprevioque separe el SPAMde losmensajesverdaderosde podrá aumentar
significativamente la efectividad del clasificador.
Referencias
1. MAXQDA. MAXQDA.[Enlínea] [Citadoel:2 de 1 de 2014.] http://www.maxqda.com.
2. Bitext Innovations,S.L. Bittext.com.[Enlínea] [Citadoel:2de 1 de 2013.]
http://www.bitext.com/.
3. Twitter. Twitter.com.[Enlínea] [Citadoel:10 de 11 de 2013.] https://dev.twitter.com/.
9. 4. The PHP Group. PHP:Hypertex Preprocesing. [Enlínea] [Citadoel:10 de 11 de 2013.]
http://php.net/.
5. Oracle Corporation and/or its affiliates. MYSQL.[En línea] [Citadoel:3 de 1 de 2014.]
http://www.mysql.com/about/.
6. Wikipedia.[Enlínea] [Citadoel: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 LearningApproachtoTwitterUser
Classification. Proceedingsof theFifthInternationalAAAIConferenceon Weblogsand Social
Media. Barcelona: s.n.,2011.
8. Benevenuto,Fabrício,y otros, y otros. DetectingSpammersonTwitter. CEAS2010 Seventh
annualCollaboration,Electronicmessaging,AntiAbuseand SpamConference. Redmond,
Washington,US : s.n.,2010.
9. Pak, AlexanderyParoubek, Patrick. Twitteras a Corpusfor SentimentAnalysisandOpinion
Mining. Proceedingsof LREC. 2010.
10. Barbosa, Luciano y Feng,Junlan. RobustSentimentDetectiononTwitterfromBiasedand
NoisyData. Coling 2010. Beijing:s.n.,2010.
11. Conover,M. D., y otros, y otros. Political PolarizationonTwitter. Proceedingsof theFifth
InternationalAAAIConferenceon Weblogsand SocialMedia. Barcelona: s.n.,2011.
12. Karandikar, Anand. Clusteringshortstatusmessages:A topicmodel basedapproach.
GraduateThesis. 2010.
13. Wikipedia.Bag-Of-WordsModel.[En línea] [Citadoel:4de 1 de 2014.]
http://en.wikipedia.org/wiki/Bag-of-words_model.
14. UniversityOfWaikato. Weka3: Data MiningSoftware inJava. [En línea] [Citadoel:4de 1
de 2014.] http://www.cs.waikato.ac.nz/ml/weka/index.html.