Universidad Nacional del Centro de la
Provincia de Buenos Aires
Facultad de Ciencias Exactas
Obtención de tendencias a partir
del análisis de textos cortos
extraídos de redes microblogging
Trabajo Final de la Carrera de Ingeniería de
Sistemas
Alumnos
Lautaro Emmanuel Bertuzzi
Daniel Alberto Suarez
Directores
Dr. Álvaro Soria
Dedicatorias
Al hombre que me dio la vida, el forjador de mi camino, a mi padre
celestial el cual a pesar de haber perdido a muy temprana edad, ha estado siempre cuidándome, guiándome desde el cielo y siempre me levanta en mis continuos tropiezos. Gracias por siempre desear y anhelar lo mejor para mi vida, por cada consejo y por cada una de sus palabras que me guiaron, guían y guiarán durante mi vida.
A mi madre, tus esfuerzos son impresionantes y tu amor para mi
invaluable. Sos una mujer que sencillamente me hace llenar de orgullo, te amo y no va a haber manera de devolverte tanto que me has ofrecido desde que incluso no hubiera nacido. Esta tesis es un logro mas que llevó a cabo, y sin lugar a dudas ha sido en gran parte gracias a vos, no se en donde me encontraría de no ser por tus ayudas tu compañía y tu amor. Te doy mis sinceras gracias.
Lautaro.
Agradecimientos
El amor recibido, la dedicación y la paciencia con la que cada dia se
preocupan nuestros padres, por nuestros avances y desarrollo de esta tesis, es simplemente único y se refleja en la vida de sus hijos.
Gracias a nuestros padres por ser los principales promotores de nuestros sueños, gracias a ellos por cada día confiar y creer en nosotros y en nuestras espectativas. Gracias de corazón a nuestros jefes de tesis por la paciencia, dedicación y motivación, criterio y aliento. Ha sido un privilegio poder contar con su guía y ayuda.
Gracias a nuestros amigos porque siempre estuvieron pendientes de nuestro progreso universitario día con día y nos dieron su apoyo cuando lo
necesitamos sin pedir nada a cambio. Ustedes nos acompañaron a lo largo de este proceso estuvieron pendientes de que todas las cosas nos salieran bien y de que no tomaramos una mala decisión, les agradecemos la
confianza que depositaron en nosotros para poder estar siempre en las buenas y las malas juntos. Gracias por confiar, creer y haber hecho de esta etapa universitaria un trayecto de vivencia que nunca vamos a olvidar. ¡A todos muchas gracias!
4.7 Interfaz de usuario 4.8 Resumen
5. Resultados experimentales 5.1 Estructura del Experimento
5.2 Pruebas con y sin temas candidatos 5.3 Pruebas completas con validación cruzada
5.3.1 Medidas de precisión
5.3.2 Medidas de tiempos de entrenamiento y deducción 5.4 Resumen
6. Conclusiones 6.1 Contribuciones
6.2 Limitaciones y trabajos futuros 6.3 Resumen
7. Anexos y referencias
Índice de Ilustraciones
Ilustración 1.1: Esquema conceptual de la solución propuesta Ilustración 2.1: Esquema conceptual del algoritmo KNN Ilustración 2.2: Ejemplo de las funciones kernel Ilustración 2.3: Esquema conceptual del funcionamiento de SVM Ilustración 2.4: Esquema conceptual del algoritmo ID3 Ilustración 2.5: Logotipo de la herramienta SocialMention Ilustración 2.6: Logotipo de la herramienta WhosTalkin Ilustración 2.7: Logotipo de la herramienta Addictomatic Ilustración 2.8: Logotipo de la herramienta SocialSearch Ilustración 2.9: Logotipo de la herramienta Smashfuse Ilustración 3.1: Esquema conceptual de la solución propuesta Ilustración 3.2 : Árbol de temas candidatos Ilustración 3.3 : Clasificación de algoritmo SVM Ilustración 3.4 : Grafico de barras Ilustración 3.5 : Grafico de radar Ilustración 3.6 : Grafico de líneaIlustración 4.1. Diagrama de componentes de la arquitectura implementada Ilustración 4.2. Diseño general del sistema
Ilustración 4.3. Diagrama de clases del paquete Recepción y simplificación de publicaciones Ilustración 4.4. Diagrama de secuencias del proceso de recepción y simplificación de
Ilustración 5.4 : Precisión de los algoritmos tras la validación cruzada Ilustración 5.5 : Tiempo de entrenamiento y clasificación, algoritmo SVM
Ilustración 5.6 : Tiempo de entrenamiento y clasificación, algoritmo Naive Bayes Ilustración 5.7 : Tiempo de entrenamiento y clasificación, algoritmo KNN
Índice de Formulas
Fórmula 2.1: Fórmula para determinar el peso según su distancia Fórmula 2.2: Fórmula para determinar la distancia entre dos vecinos Fórmula 2.3: Fórmula general del Teorema de Bayes
Fórmula 2.4: Fórmula de la probabilidad de un documento
Fórmula 2.5: Fórmula de la probabilidad de un documento dada su clase
Fórmula 2.6: Fórmula de la probabilidad de un documento dada su clase, utilizando el Teorema de Bayes
Fórmula 2.7: Fórmula de la entropía del algoritmo ID3
Fórmula 2.8: Ejemplo fórmula de la entropía del algoritmo ID3
Fórmula 2.9: Fórmula de la ganancia de información del algoritmo ID3 Fórmula 5.1: Fórmula para determinar la precisión resultante de una prueba
Tabla 7.25 : Distribución de tuits Tabla 7.26: Conectores en ingles
CAPÍTULO 1
1. Introduccion
Históricamente, el manejo de la información ha sido una de las principales causas de la innovación en las TIC, principalmente por la importancia del conocimiento se puede extraer. Hace unos años no se pensaba en conocimiento oculto dentro de la información. Sin embargo, con el arribo de las nuevas tecnologías y el desarrollo del area de informatica, un nuevo sector dentro de la ciencia de la información surgió. Dicho sector denominado Minería de datos (Data Mining en inglés) ha sido el precursor de un nuevo interés por parte del área de inteligencia de negocios, relacionado con la extracción de información a partir de grandes volúmenes de datos para distintos fines. [1]
La investigación de la Minería de datos tiene como objetivo principal el diseño y la implementación de sistemas de software para descubrir patrones en grandes conjuntos de datos. Para ello utiliza los métodos de la inteligencia artificial como aprendizaje automático, estadística y sistemas de bases de datos. [2]
Observando el avance a lo largo del tiempo, ya desde el año 1970 los estadísticos manejaban términos como Data Fishing, Data Mining (DM) o Data Archaeology con la idea de encontrar correlaciones sin una hipótesis previa en bases de datos con ruido. A principios de los años ochenta, Rakesh Agrawal, Gio Wiederhold, Robert Blum y Gregory PiatetskyShapiro entre otros, empezaron a consolidar los términos de Minería de Datos y KDD. Desde entonces esta tecnología ha sido un buen punto de encuentro entre personas pertenecientes al ámbito académico y al de los negocios, por lo que el interés en esta nueva área se intensificó y nuevos intereses se despertaron en búsqueda de software capaces de llevar a cabo la tarea de análisis. [3]
que buscan los usuarios en un momento determinado para ejecutar acciones en consecuencia. [4]
En general, la detección de tendencias temáticas realiza un conjunto de procesos intermedios para realizar detecciones de temas y a partir de los mismos detectan tendencias bajo una idea particular del usuario. Entre tales procesos tenemos la obtención de la información, el pre procesamiento, la detección de temas candidatos, algoritmos de clasificación, visualización de la información, etc. Haciendo énfasis en esto último, la detección de tendencias temáticas es uno de los campos de la informática contemplado por la Minería de Datos y es este paradigma en el que nos enfocaremos a lo largo del trabajo.
1.1 Motivación
Hoy en dia vivimos en un mundo donde la información está en todos lados; esta en la televisión, radio, revistas, diarios, productos, pero sobre todas las cosas, la información se encuentra en la red. La información es algo social que compartimos y generamos, esta es una cita perfecta cuando hablamos de redes sociales. Los seres humanos somos un motor de generación de información de manera casi constante. En este contexto, resulta significativamente útil poder interpretar esta información para poder determinar temas populares y relevantes para la sociedad.
Con la masificación de las redes sociales, tanto la ciudadanía como distintas empresas, se han volcado a las mismas para publicar opiniones o publicitar sus productos. Usualmente, este tipo de publicación representa información que puede ser útil para empresarios o asesores, ya que a partir de la misma, es posible determinar el punto de vista hacia cierto producto o personalidad. La utilidad de esta información está dada a partir de la cantidad de publicaciones que referencian a un determinado tema, ya que eso determina la importancia del mismo. Usualmente los temas más referenciados se conocen como tendencias.
Sin embargo, el uso de los sitios de redes sociales con el fin de detectar tendencias de temas importantes para cierto grupo de personas, presenta una serie de complicaciones. En primer lugar, la gran dispersión de los datos. Los usuarios de las redes sociales hablan de muchos temas distintos, por lo que la puesta en común se vuelve una tarea dificil. En segundo lugar, la complejidad que implica analizar textos que se escriben en un lenguaje natural. Esto puede producir errores de interpretación en los mecanismos de detección, por lo que dichos métodos deben pasar por alto errores de escritura, o conocer los significados de las abreviaciones. En tercer y último lugar, dentro de dichos canales existe mucha información poco formada o inútil, es decir muchas personas expresan poca informacion o informacion que no posee una relevancia aceptable.
Dentro de este contexto, nuestro objetivo a lo largo del desarrollo de esta tesis, será la detección de tendencias temáticas partir de redes sociales. Por la naturaleza del problema, utilizaremos técnicas de minería de datos, ya que el problema a resolver está relacionado con la deducción de datos a través de otros datos, siendo esto, parte de dicha rama de estudio . El proceso comienza con la obtención de temas candidatos mediante técnicas de minería de datos. Posteriormente, por medio de agrupamientos y técnicas de machine learning, se determinarán las tendencias. En particular el enfoque será sobre una red del tipo microblogging llamada Twitter la cual provee a sus usuarios la posibilidad de realizar un post, llamado tuit que posee como máximo un largo de 140 caracteres.
1.2 Objetivos
En este contexto, la idea principal de esta tesis se basó en aplicar distintos mecanismos para extraer información relevante (temas de los cuales se habla) de la fuente de información. En este caso se aplican sobre textos cortos (tuits) obtenidos del canal público de la red social Twitter. Una vez extraído los datos, se utilizarán para realizar relaciones entre temas particulares y crear una serie de representaciones gráficas de las tendencias a las cuales apunta la información extraída.
Para alcanzar este objetivo se desarrolló a TweetAnalyser como herramienta para el reconocimiento de tendencias temáticas a partir del análisis de tuits. En la ilustración 1.1 se muestra el esquema conceptual del enfoque propuesto.
Ilustración 1.1: Esquema conceptual de la solución propuesta
desea. Para llevar a cabo esta tarea, TweetAnalyser provee una interfaz gráfica sencilla con el objetivo de simplificar la tarea de configuración. Luego la herramienta comienza su proceso de captura de información a partir de la red social Twitter, siguiendo la configuración realizada por el analista en el paso anterior. Esta captura obtiene tuits del canal público.
Por cada tuit capturado se realiza el análisis del texto, determinando posibles temáticas, para detectar tendencias. Finalmente, cuando se ha obtenido una cantidad de información suficiente para tener en cuenta, TweetAnalyser a través de su interfaz gráfica, provee un conjunto de gráficos que muestran una representación visual de los datos analizados. Estos gráficos son representaciones visuales que permiten al analista observar la información desde distintos ángulos.
A modo de conclusión TweetAnalyser es una herramienta que provee al usuario final un conjunto de herramientas, centralizadas en una sola aplicación. Las mismas facilitan el análisis de tendencias temáticas sin tener que acudir a herramientas externas. La ventaja que esto aporta es la posibilidad de realizar análisis sobre un gran número de usuarios de forma fácil, completa y rapida.
1.3 Estructura de la tesis
Hasta aquí se presenta un resumen del campo de aplicación del trabajo dentro del area de Mineria de Datos. Se prestó especial énfasis en el análisis de texto libre para determinar temas con los cuales inferir temáticas ya que es el enfoque utilizado en la tesis. Por otro lado se analizó cuál es la problemática que un desarrollador debe afrontar a la hora de hacer una aplicación que pueda realizar estos procesos. Finalmente, se describió el objetivo del enfoque propuesto que busca crear una aplicación que permita realizar reconocimiento de tendencias temáticas a partir de una red microblogging.
En el capítulo 2 se presentan los conceptos de Minería de datos aplicados. Luego se hace una explicación teórica de los algoritmos de machine learning que fueron implementados. Por último se concluye el capítulo con un relevamiento acerca de los trabajos relacionados y una tabla comparativa resaltando las ventajas y desventajas de cada uno.
El capítulo 3 muestra la solución al enfoque propuesto desde un punto de vista abstracto. Aquí se detalla principalmente el funcionamiento de la aplicación y los aspectos principales del enfoque propuesto.
En el capítulo 4 se especifican todas aquellas particularidades de implementación que fueron realizadas en el desarrollo de TweetAnalyser. Para esto se incluyeron diversos diagramas UML (del inglés Unified modeling language) tales como diagramas de paquetes, diagramas de secuencia y diagramas de clases. También se presentan diferentes capturas de pantalla de la interfaz gráfica de la herramienta explicando el funcionamiento de cada componente presente.
En el capítulo 6 se finaliza el informe de la tesis con las conclusiones del trabajo realizado junto con las limitaciones de la herramienta y se adicionan también algunos trabajos futuros.
CAPÍTULO 2
2. Estado del arte
La masificación de la internet y el constante uso de la misma para distintos fines como comunicación, comercio, medicina, etc. producen día a día una gran cantidad de datos. La gente no dispone de tiempo de observar toda esta información, por lo que la atención se ha vuelto un recurso valioso. A partir de esto, surge un nuevo campo de aplicación para el análisis de textos a partir de grandes volúmenes de datos denominada Minería de Datos.[5]
La Minería de Datos posee posee dos tipos de enfoques. El enfoque puede ser descriptivo, (descubrir temas recurrentes interesantes o relaciones describiendo los datos), o predictivo (clasificar nuevos datos basándose en los anteriormente disponibles). En otras palabras, es un campo interdisciplinar con el objetivo general de predecir las salidas y revelar relaciones en los datos.[6]
En este contexto, el objetivo de este trabajo es definir de qué se está hablando en primer lugar y bajo ese descubrimiento ser capaces de capturar una tendencia temática. Una tendencia temática es un término que se encuentra cada vez de manera más frecuente en el área de Minería de datos. Su definición formal es: “Es una corriente o preferencia hacia determinados fines o temas”.
Este reconocimiento puede ser visto como una manera de comenzar a entender cual es la preferencia de un grupo de individuos en un momento específico del tiempo hacia ciertos temas específicos.[7]
Existen una variedad de procesos utilizados para realizar la obtención de las temáticas [8], entidades y palabras claves de un texto, que posteriormente se utilizaran para categorizar ese texto particular y posteriormente parte de una tendencia. Diversos metodos matematicos y estadisticos son aplicados para interpretar la información recibida y de esta forma encontrar algún significado válido en forma de personalidades u objetos relevantes denominados entidades, palabras claves y temas.
definitivos son temas particularmente deducidos por un algoritmo de clasificación supervisada que utiliza como base de razonamiento dichos temas junto con las entidades y las palabras clave.
2.1 Algoritmos de clasificación supervisada
A continuación se muestra un relevamiento de las técnicas aplicadas. Se explican brevemente cada una y se citan algunos autores científicos que han hecho uso de las mismas para el reconocimiento de tendencias temáticas.
2.1.1 KNearest Neighbors (KNN)
El método knn pertenece al grupo de métodos para tareas de clasificación de datos que se pueden encontrar dentro de minería de datos. Más específicamente, KNN es un método de vecindad basado en casos o instancias. Se asume que el conjunto completo de entrenamiento incluye no sólo los datos sino también la clasificación deseada. Los datos de entrenamiento son entonces el modelo. [9]
El algoritmo funciona como sigue:
Primeramente se definen los modelos presentes en el espacio solución del algoritmo y un valor resultado.
En la ilustración 2.1 se puede visualizar un ejemplo de como quedaria un espacio de relación dentro del algoritmo. Cada figura representa a un modelo y su forma y color representa el tema principal.
Para realizar una deducción se debe definir un K. Este K representa a la cantidad de vecinos que se tendrán en cuenta para realizar la clasificación. Siguiendo con el ejemplo de la ilustración, para K = 2, se tomarán en cuenta solamente los dos triángulos rojos, dado que son los 2 vecinos más cercanos. Por otro lado, para K = 5, se toman 3 cuadrados azules y dos triángulos rojos. En este caso el círculo verde se vería relacionado con el color y forma del modelo con mayor representatividad dentro del conjunto de modelos alcanzados por el K. Para el caso del ejemplo, el círculo verde se clasifica como un cuadrado azul.
Para la clasificacion con KNN, la tupla (punto) desconocida es asignado a la clase mas común de los K vecinos mas proximos. KNN pierde precisión si se utilizan datos ruidosos o con atributos irrelevantes. Si k es demasiado pequeño, entonces el resultado es muy sensible a puntos ruidosos. Por otro lado si k es demasiado grande, la vecindad del punto desconocido incluirá muchos puntos de otras clases lejanas.
Es interesante sopesar los vecinos con la distancia que lo separa de la tupla desconocida, weighted knearest neighbors
Fórmula 2.1: Fórmula para determinar el peso según su distancia
La elección de la métrica de la distancia es crıtica para el rendimiento del algoritmo.
Fórmula 2.2: Fórmula para determinar la distancia entre dos vecinos
2.1.2 Support vector machine (SVM)
Las máquinas de vectores soporte (SVM, del inglés Support Vector Machines) aunque originariamente fueron pensadas para resolver problemas de clasificación binaria, actualmente se utilizan para resolver otros tipos de problemas (regresión, agrupamiento, multiclasificación).
Son diversos los campos en los que han sido utilizadas con éxito, tales como visión artificial, reconocimiento de caracteres, categorización de texto e hipertexto, clasificación de proteínas, procesamiento de lenguaje natural, análisis de series temporales, etc. De hecho, desde su introducción, han ido ganando un merecido reconocimiento gracias a sus sólidos fundamentos teóricos. [10]
Los SVM pertenecen a la familia de clasificadores lineales puesto que inducen separadores lineales o hiperplanos en espacios de características de muy alta dimensionalidad (introducidos por funciones núcleo o kernel) con un sesgo inductivo muy particular. Derivan de la Teoría del aprendizaje estadístico, según la cual un sistema con aprendizaje debe, a partir de un conjunto de información acerca de un proceso computacional, construir un modelo que permita predecir nuevos fenómenos asociados a él. De manera general para clasificación, las Máquinas de Vectores de Soporte buscan un hiperplano que separe de forma óptima los puntos de una clase de la otra. Las funciones kernel, también conocidas como núcleo, realizan la separación y traslado de las muestras a un espacio de características de mayor dimensión, el cual aumenta la capacidad computacional de la máquinas de aprendizaje lineal, como se muestra en la figura.
Ilustración 2.2: Ejemplo de las funciones kernel
En la figura que se muestra a continuación se puede ver un ejemplo visual del funcionamiento de SVM en R en el que se obtiene un buen comportamiento predictor de las diferentes clases clasificadas.
Ilustración 2.3: Esquema conceptual del funcionamiento de SVM
Dentro de la clasificación SVM multiclase, hay dos filosofías para resolver el problema de querer clasificar los datos en más de dos categorías:
a) Oneagainstone (1A1). Se construyen k(k1)/2 modelos donde k es el número de
categorías. En esta categoría el clasificador es entrenado entre cada par de
clases.
b) Oneagainstall (1AA). Consiste en dividir cada categoría en otras y combinarlas todas. En esta aproximación se entrena un clasificador entre una clase y las k1 otras clases (donde k es el número total de clases). Cada discriminante k representa la decisión de que k pertenezca o no a esa clase.
2.1.3 Multinomial Naive Bayes
Clasificador Naive Bayes
El clasificador Naive Bayes es un término de estadística, que consiste en un simple clasificador probabilístico basado en el teorema de Bayes con supuestos de independencia entre datos. Un término más descriptivo para este sería “Modelo de características independientes”.[12]
Fórmula 2.3: Fórmula general del Teorema de Bayes
En términos simples, Naive Bayes asume que la presencia (o ausencia) de una característica particular no tiene ninguna relación a la presencia (o ausencia) de cualquier otra característica.
Por ejemplo, una fruta puede ser considerada como una manzana si es roja, redonda y con un diámetro de 4 pulgadas. A pesar de que estas características dependen de la existencia de otras características, un clasificador Naive Bayes considera que todas estas características contribuyen independientemente a la probabilidad de que esta fruta es una manzana.
Para otros modelos de probabilidad, los clasificadores de Bayes se pueden entrenar de manera muy eficiente en un entorno de aprendizaje supervisado. En muchas aplicaciones prácticas, la estimación de parámetros para los modelos Bayes utiliza el método de máxima verosimilitud , es decir, se puede trabajar con el modelo de Bayes sin aceptar probabilidad bayesiana o cualquiera de los métodos bayesianos.
Una ventaja del clasificador de Bayes es que solo se requiere una pequeña cantidad de datos de entrenamiento para estimar los parámetros (las medias y las varianzas de las variables) necesarias para la clasificación. Como las variables independientes se asumen, solo es necesario determinar las varianzas de las variables de cada clase y no toda la matriz de covarianza.
vida real y puede explicar sus decisiones como la suma de las ganacias de información. Ahora bien, su ingenuidad puede resultar en un bajo rendimiento en dominios con fuertes dependencias entre atributos.
Framework Naive Bayes
Se considera que los documentos de texto se generan por un modelo de mezcla parametrizado por θ. El modelo de mezcla consiste en una mezcla de componentes c(j) pertenecientes a C = { c(1), …, c(j) }. Cada componente es parametrizado por un conjunto disjunto de θ. Por lo tanto, es posible caracterizar la probabilidad de un documento como la suma de la probabilidad total sobre todos los componentes.[8]
Fórmula 2.4: Fórmula de la probabilidad de un documento
Cada documento tiene una etiqueta de clase. Se asume que hay una correspondencia uno a uno entre las clases y los modelos mixtos de componentes y por lo tanto es posible usar c(j) para indicar ambas cosas (la clase y el modelo)
Naive Bayes Multinomial
El modelo multinomial captura la frecuencia de la palabras en un documento. Un documento es una secuencia ordenada de palabras escritas en un vocabulario V. Se asume que que la longitud del documento es independiente de clase, aquí se hace una suposición similar a la de naive Bayes: la probabilidad de que aparezca una palabra en el documento es independiente del contexto de la palabra y de su posición en el documento. Así, cada documento d(i) puede ser descrito a partir de una distribución multinomial de palabras con tantos intentos independientes como la longitud de d(i). A partir de aquí, surge la representación de documentos denominada “bolsa de palabras”.
Se define como N(it) al número de veces que la palabra wt aparece en el documento di.
Fórmula 2.5: Fórmula de la probabilidad de un documento dada su clase
Los parámetros de los parámetros generativos para cada clase son probabilidades para cada palabra θ(wt |cj) = P(wt|cj; θ), donde 0 < θ(wt |cj) ≤ 1 y SUMt θwt |cj = 1.
Clasificación
Dadas las estimaciones de los parámetros calculados del entrenamiento, la clasificación puede ser realizada calculando la probabilidad a posterior de cada clase dada la evidencia del documento de prueba, para finalmente seleccionar la clase con mayor probabilidad. Realizando el reemplazo en la fórmula general del teorema de Bayes la función queda:
Fórmula 2.6: Fórmula de la probabilidad de un documento dada su clase, utilizando el Teorema de Bayes
2.1.4 ID3 Tree
Los algoritmos basados en árboles de decisiones son métodos de aproximación de valores discretos donde la función de aprendizaje está representada en un árbol de decisión. Este tipo de algoritmos son famosos en el aprendizaje inductivo y han sido utilizados en una amplia gama de tareas.
Los árboles de decisiones clasifican instancias ordenando las instancias desde la raíz hasta las hojas. Cada nodo en el árbol especifica una prueba de algún atributo de la instancia y cada rama por debajo de esta, corresponde a un posible valor para dicho atributo. Por ejemplo en la siguiente figura se muestra un árbol de decisión basado en un atributo llamado Outlook. [13]
Ilustración 2.4: Esquema conceptual del algoritmo ID3
En la figura anterior, la instancia con el valor “overcast” para el atributo Outlook es positivo. Para las demás opciones “Sunny” y “Rain” se arman subárboles particulares.
Algoritmo ID3
ID3 es un algoritmo de decisión desarrollado por J. Ross Quinlan (1986). ID3 construye un árbol de decisión utilizando una búsqueda greedy de arriba hacia abajo a través de los conjuntos de entrenamiento para poner a prueba los atributos de cada nodo. El algoritmo utiliza una propiedad estadística llamada ganancia de información para seleccionar cual atributo probar de cada nodo del árbol. La ganancia de información mide el grado de separación que produce la utilización de dicho atributo para clasificar los datos de entrenamiento.
Entropía
Es una medida de información que indica la impureza de un conjunto arbitrario de ejemplos. Si el atributo candidato puede tomar c distintos valores, entonces la entropía S se define como:
Fórmula 2.7: Fórmula de la entropía del algoritmo ID3
donde p es la probabilidad de que S pertenezca a la clase i . El logaritmo en base dos es necesario ya que la entropía es una medida de la codificación esperada, medida en bits.
Por ejemplo, si el conjunto de entrenamiento dispone de 14 instancias, 6 positivas y 8 negativas, la entropía se calcula como:
Fórmula 2.8: Ejemplo fórmula de la entropía del algoritmo ID3
Ganancia de Información
Mide la reducción esperada en la entropía a partir de la partición de los ejemplos de acuerdo a atributo seleccionado. La ganancia de información Gain(S, A) de un atributo A, relativa a la colección de ejemplos S, se define como:
Fórmula 2.9: Fórmula de la ganancia de información del algoritmo ID3
Donde Values(A) es el conjunto de todos los posibles valores para el atributo A, y S(v) es el subconjunto de S para los que el atributo A tiene el valor V. Esta medida se puede utilizar para ordenar los atributos y así formar el árbol de decisión donde en cada nodo se encuentra el atributo con el valor más alto de ganancia de información entre los atributos en el camino desde la raíz.
2.2. Trabajos relacionados
La exploración de tendencias temáticas es un tópico que se ha explotado en los últimos años con el avenimiento de las nuevas tecnologías y la masificación de las redes sociales. A continuación se presentan distintos trabajos realizados por empresas que permiten la detección de tendencias a partir de diferentes fuentes de información.
2.2.1 Social Mention
SocialMention es una herramienta web que permite monitorear publicaciones relacionadas a un tema particular en más de 80 sitios, entre ellos: Twitter, Facebook, LinkedIn, Google, Youtube, etc. Entre las características principales de SocialMention podemos encontrar: visualización en tiempo real de la influencia de un tema u evento, capacidad de crear seguimientos particulares, API para desarrollo y fácil integración a sitios web por medios de widgets, entre muchas otras.
El funcionamiento básico se basa en cuatro parámetros
● Pasión: cantidad de autores que hablan sobre un tema. ● Alcance: influencia del tema.
● Sentimiento: menciones positivas y negativas.
● Fuerza: número de publicaciones sobre el tema en cuestión en las últimas 24 horas.
Socialmention permite además, ver cuáles son las palabras claves más utilizadas para referir a un tema. Muestra los Hashtags asociados, los usuarios que realizaron una mención al tema y las fuentes de dichas menciones.
Ilustración 2.5: Logotipo de la herramienta SocialMention
2.2.2 WhosTalkin
WhosTalkin es un herramienta de búsqueda social que brinda la posibilidad a los usuarios de encontrar conversaciones acerca de aquellos temas de interés.
El servicio funciona gracias a una combinación de algoritmos de búsqueda junto con información obtenida de más de 60 de los más populares puentes de comunicación social, añadiendo algo de AJAX para presentar al usuario una interfaz prolija y organizada.
Trabaja con sitios como Twitter, WordPress, YouTube, MySpace, Google News, Flickr, entre muchos otros.
Los resultados son ordenados según su fecha de publicación, ubicando en los primeros lugares a aquellas conversaciones más actuales.
WhosTalkin tiene como objetivo poner al alcance del colectivo, las conversaciones más relevantes y actuales que están teniendo lugar en el mundo social acerca de aquellos tópicos que resultan de interés.
Ilustración 2.6: Logotipo de la herramienta WhosTalkin
2.2.3 Addictomatic
Addictomatic dispone de dos mecanismos de investigación. El primero, consiste en el filtrado de información por medio de palabras clave. Esto permite al usuario obtener las últimas noticias de un tema particular. Por otro lado el segundo método se encuentra en su página de inicio la cual muestra un orden de las últimas noticias y da un rápido vistazo de la actualidad en general.
Ilustración 2.7: Logotipo de la herramienta Addictomatic
2.2.4 SocialSearch.com
SocialSearch brinda múltiples resultados provenientes de varias redes sociales como son son Twitter, Facebook, Instagram, etc. La herramienta provee un campo de texto para búsquedas personalizadas en todas las redes y herramientas para cada una en particular. Por ejemplo para la red social Twitter, la herramienta provee un visor de hashtags más utilizados en el momento.
Ilustración 2.8: Logotipo de la herramienta SocialSearch
2.2.5 Smashfuse
Smashfuse captura gran parte de la información online mediante la exploración de casi todos los principales sitios web de medios sociales. Dicha información es presentada como un mosaico de imágenes que viene a representar un árbol de exploración. Haciendo click en cada de estas la herramienta redirige a fotos, videos , o tweets relacionados con el tema en cuestión. Las búsquedas se pueden actualizar para captar el pulso más actual de la información.
El gran problema que adolece es que al tener tanta información, una búsqueda en general sobre un tema puede ser tediosa ya que obliga al usuario a scrollear entre grandes volúmenes de información relacionada.
Ilustración 2.9: Logotipo de la herramienta Smashfuse
2.2.6 Comparación de algoritmos
En esta sección se realiza una comparativa de los distintos trabajos con TweetAnalyser y entre ellos a partir de distintos aspectos que se detallan a continuación:
● Búsquedas personalizadas: Poseer este atributo indica que la herramienta provee alguna forma de realizar búsquedas personalizadas sobre el análisis.
● Extensibilidad: este atributo indica si la herramienta permite añadir nueva funcionalidad a futuro.
● Análisis de información: este atributo indica si la herramienta provee distintos mecanismos de análisis de la información, como por ejemplo gráficos comparativos, etc.
Búsquedas
personaliza das
Extensibilidad Obtención de tendencias
Análisis de información
Social Mention Si No No No
WhosTalkin Si No No No
Addicctomatic Si No No No
SocialSearch.com Si No Si No
Smashfuse Si No Si No
TweetAnalyser Si Si Si Si
Tabla 2.1: Tabla comparativa de los trabajos relacionados
A partir de este análisis, podemos interpretar que las herramientas de procesamiento de datos provenientes de redes sociales no permiten extender su funcionalidad ni brindan mecanismos de análisis de información como pueden ser gráficos o tablas. Esto último se debe a que la mayoría se dedican a obtener información de múltiples redes sociales y no se detienen en formalizar dichos datos en gráficos.
A su vez, se puede notar que casi ninguna aplicación permite realizar detección de tendencias. Solo SocialSearch y Smashfuse presentan de forma simple las tendencias a través de un panel en la página principal que muestra las temáticas actuales. Ante esta circunstancia, es posible observar cómo las organizaciones que usen este tipo de herramientas están limitadas al análisis de la información.
2.3. Resumen
En este capítulo se analizaron los conceptos básicos aplicados. Dichos conceptos pertenecen al área de Data Mining la cual, junto con el área de Machine Learning, son áreas claves en el desarrollo de este trabajo.
Por otra parte fueron presentados, de forma teórica, los distintos algoritmos de Machine Learning que fueron implementados para la deducción de tópicos principales.
CAPÍTULO 3
3. Enfoque de detección de tendencias
temáticas
La utilización de mecanismos para detectar tendencias temáticas ha facilitado la forma en la cual los analistas de información pueden trabajar para detectar patrones. Hoy en dia, es muy importante poder detectar este tipo de información, dado que las estrategias de mercadeo desde hace unos años han cambiado drásticamente. Actualmente, el mercado trata de adaptarse dinámicamente al gusto de los usuarios, dándole la posibilidad cargar opiniones por medio de comentarios o utilizando mecanismos de observación que monitorean las preferencias de cada uno. Gracias a todo esto, resulta posible analizar la información que genera un grupo de personas.
Muchas empresas utilizan este tipo de procesos, para buscar información y luego venderla a otras que se dedican a manejarla. Un ejemplo de esto es Google, ya que a partir de su conocido buscador obtiene grandes volúmenes de información de múltiples usuarios, la cual posteriormente analiza y vende a empresas como Mercadolibre, para que esta publique ofertas o publicite en base a los datos recopilados.
Existen otro tipo de estrategia, en la cual la misma empresa que realiza el análisis es la que utiliza dicha información como pie para realizar ventas. Un ejemplo puntual de esto también es Mercadolibre. La estrategia detrás de Mercadolibre consiste en, además de lo enunciado anteriormente con Google, analizar las búsquedas dentro de su propio sitio y a partir de ahí, realizar recomendaciones. Dichas recomendaciones siguen patrones del estilo, aquellos usuarios que buscaron cierto tipo de producto, también buscaron de este otro tipo. Dada esta tendencia, Mercadolibre genera publicaciones para atraer potenciales compradores. Es normal que un usuario registrado del portal luego de realizar una búsqueda por cierto tipo de objetos reciba al otro dia un mail de mercadolibre con ofertas relacionadas.
poseer una gran cantidad de usuarios interactuando todo el tiempo y hablando de temas aleatorios. Las redes sociales podrían ser un lugar muy fructífero para explotar, pero la información administrada muchas veces no tiene coherencia o es muy variable como para capturar un patrón. Este inconveniente está dado por la falta de estandarización, lo que genera que el conjunto de temas deducible, a partir de dicha información, sea inmanejable. Todo esto, junto a que la sintaxis con la cual los usuarios de las redes sociales se manejan no es necesariamente correcta ni completa, genera que el análisis sea dificultoso.
Ilustración 3.1: Esquema conceptual de la solución propuesta
La ilustración anterior muestra una representación completa de TweetAnalyser. Como se puede observar, el enfoque consiste en dos fases: fase de reconocimiento y fase de entrenamiento.
El primer paso del enfoque consiste en la fase de entrenamiento. El objetivo de esta fase es preparar los algoritmos de clasificación para el reconocimiento del tema principal de un tweet. Para esto, el desarrollador debe proveer de un conjunto de tuits de entrenamiento. Cada tuit de entrenamiento posee el tema principal que se quiere reconocer.
Con este conjunto de tuits clasificados manualmente, el desarrollador inicia la etapa de entrenamiento. En este punto, el enfoque toma un tuit y realiza una simplificación que remueve información irrelevante para el reconocimiento. Es decir, se analiza el texto del tuit y se eliminan conectores (Ej: “also”, “due”, “also”,etc.)y stopwords (Ej: “the”, “this”, “from”, “to”, “meanwhile”, etc.) ya que estas palabras no aportan contenido a la hora de deducir la temática. Este paso busca facilitar la tarea de reconocimiento del enfoque ya que utilizaran solo información relevante al problema en cuestión. (Vease anexo 3.1 y 3.2)
Una vez que el tuit contiene sólo información relevante, el siguiente paso consiste en la extracción de entidades y palabras claves. Las entidades son personas u objetos que dentro de la frase tienen una gran relevancia. Por ejemplo, para la frase “Lionel Messi is the best football player”, la entidad sería “Messi” ya que se consideran entidades a aquellos sustantivos propios los cuales poseen una considerada popularidad, como por ejemplo personas físicas famosas, nombres de compañías, etc. Para la extracción de entidades, el enfoque se basa en la detección de secuencias de palabras en mayúscula, mediante lo que se consigue tener en cuenta nombres, como por ejemplo “Messi”. Además, a modo de verificación, los nombres son cruzados con la información guardada en un diccionario de entidades. Cabe destacar, que además de las entidades anteriormente descritas, también se consideran como entidades a aquellos usuarios de la red citados en los tuits que dentro de la red social sean populares, como por ejemplo: cantantes, futbolistas, actores,etc.
Por otro lado, las palabras claves son las palabras que definen el texto. Es decir, son las palabras más importantes del mismo. Siguiendo con en el ejemplo anterior, la palabra clave sería “football” ya que esta palabra describe al texto en cuestión. Para la extracción de palabras clave se seleccionan todas las palabras que componen al tuit como candidatas. Luego cada una de estas, es enviada a un buscador para calcular un valor de referencia y asì para poder discernir la importancia entre ellas. Este valor de referencia, se calcula por medio de la cantidad de ocurrencias y la importancia cada palabras. Por último se ordenan todas las palabras por el valor de referencia y se toman las primeras tres como relevantes.
subir por el árbol encontrar los temas.La utilización de temas candidatos como parte del entrenamiento de los algoritmos se realizó para aumentar la precisión de los mismos. (ver sección 5.2 capítulo 5 para más detalle.)
En el último paso, el tuit con entidades, palabras claves y temas candidatos, es utilizado para entrenar el algoritmo seleccionado. La selección de un algoritmo depende del contexto de utilización del enfoque. En el caso en que el conjunto de datos para entrenar el algoritmo contiene menos de 300 elementos, se utiliza el algoritmo de clasificación SVM (Support Vector Machine). Este algoritmo es muy eficiente para conjuntos de datos de estas características, dado que la precisión obtenida en las deducciones es muy alta a pesar del poco entrenamiento recibido. Cuando el conjunto de entrenamiento es de mas de 300 se recomienda utilizar el algoritmo Naive Bayes, ya que es el algoritmo más eficiente en la generalidad de los casos en cuanto a precisión y tiempo. SVM es descartado en estos casos, dado que el tiempo de entrenamiento es muy alto, a menos que se considere reentrenar el algoritmo con poca frecuencia. Por último el algoritmo KNN se presenta como una opción ligera temporalmente para conjuntos de datos altos ya que no requiere entrenamiento y alcanza una precisión aceptable. Solamente es recomendado para casos en los cuales se tengan conjuntos de datos de mas de 5000 elementos y el reentrenamiento sea muy frecuente (KNN no entrena).
Luego de seleccionar el algoritmo adecuado a la problemática, se realiza el entrenamiento del algoritmo seleccionado.
Una vez que se realiza la fase de entrenamiento, el siguiente paso del enfoque consiste es la fase de reconocimiento. El objetivo de esta fase consiste en realizar la deducción del tema principal de los tuits provenientes de Twitter.
Esta fase comienza con la llegada de un tuit a TweetAnalyser. En este punto, el tuit sigue el mismo proceso que en la etapa de entrenamiento. Al ingresar a TweetAnalyser, el tuit pasa al proceso de simplificación, donde se elimina la información irrelevante. Luego se extraen palabras claves, entidades y temas candidatos. En este punto, se reutiliza el proceso explicado en la anterior fase. Por último, en el paso de clasificación se utiliza el algoritmo de clasificación entrenado. Este clasificador deduce la temática principal de un tuit utilizando la información del mismo.
3.1 Fase de entrenamiento
El objetivo de esta fase es preparar los algoritmos de clasificación para el reconocimiento del tema principal de un tweet. Para clarificar la explicación de nuestro enfoque seguiremos un ejemplo conductor. Supongamos que un usuario quiere identificar temas relacionados al mundo del fútbol. Este provee al enfoque un training set con un conjunto de tuits con su tema principal deducido manualmente. La siguiente tabla muestra una pequeña lista de ejemplos que forman parte del training set, en la columna “ Texto ” se muestra el texto original del tuit y en la columna “ Tema principal ” se encuentra la etiqueta deducida manualmente por el desarrollador:
Texto Tema Principal
“Lewy fired #FCBayern to victory in Cologne check out the match gallery
here: http://fcb.de/KOEAlbum2003”
Football
“Messi playing like Xavi? whaaaat!
Messi plays like God” Football “Ivan Rakitić & Neymar on target as
Liga leaders Barcelona go 9 points clear despite being held to a 22 draw”
Football
“HALFTIME Man City 01 Man Utd. It's advantage United at the break thanks
to Marcus Rashford's cool finish #MCIMUN”
Football
Tabla 3.1 : Conjunto de tuits de entrenamiento 1
3.1.1 Simplificación
Teniendo el trainingset, el primer paso de la fase de entrenamiento consiste en la extracción de información relevante de los tuits. En este punto, se realiza el proceso de simplificación, el cual consiste en analizar, detectar y eliminar conectores, stopwords y signos de puntuación. Para esto se recorre el texto del tuit, verificando por cada palabra si es un conector o un stop word. Esta verificación se realiza buscando la palabra en cuestión en un diccionario de palabras claves y stop words. Tomando como ejemplo el primer tuit del dataset “Lewy fired #FCBayern to victory in Cologne check out the match gallery here: http://fcb.de/KOEAlbum2003” se recorre palabra por palabra y se verifica si es un conector o stop word. (véase anexo 3.1 y 3.2). Como resultado, se quita del tuit las palabras to, in, out , the, here dejando como resultado “Lewy fired #FCBayern victory Cologne check match gallery: http://fcb.de/KOEAlbum2003”
En la siguiente tabla se muestra el resultado de la simplificación de todos los tuits del dataset, en la columna “ Reducción de texto ” se observa las palabras a eliminar en negrita tachadas y en la columna “ Texto simplificado” el texto resultante de la eliminación de dichas palabras:
Reducción de texto Texto simplificado
“Lewy fired #FCBayern to victory in
Cologne check out the match gallery
here: http://fcb.de/KOEAlbum2003”
“Lewy fired #FCBayern victory Cologne check match gallery
http://fcb.de/KOEAlbum2003” “Messi playing like Xavi? whaaaat!
Messi plays like God” “Messi playing Xavi Messi plays God” “Ivan Rakitić & Neymar on target as
Liga leaders Barcelona go 9 points
clear despite being held to a 22 draw”
“Ivan Rakitić Neymar target Liga leaders Barcelona 9 points despite held
22 draw”
“HALFTIME Man City 01 Man Utd. It's
advantage United at the break thanks
to Marcus Rashford's cool finish #MCIMUN”
“HALF TIME Man City 0 1 Man Utd. advantage United break thanks Marcus
Rashford's cool finish #MCIMUN”
Tabla 3.2 : Conjunto de tuits de entrenamiento
Este paso busca aumentar la precisión de deducción ya que al eliminar conectores y stopwords se eliminan palabras que no aportan ningun contenido para los siguientes procesos de análisis. Es decir, al simplificar el texto en este paso, se trata de eliminar todo lo que pueda hacer perder precisión a los algoritmos (Menos palabras a ser evaluadas como entidades o palabras clave).
3.1.2 Extracción de entidades
A continuación se procede a realizar la extracción de entidades, palabras clave y temas candidatos del texto reducido. En el proceso de extracción de entidades se extraen aquellas palabras que comienzan con mayúsculas. El motivo de esto es que una palabra con esas características refieren a sustantivos propios. Adicionalmente, también se incluyen aquellas palabras que comienzan con un arroba. Estos últimos son los usuarios de la red social Twitter y se incluyen ya que generalmente cuando se cita a un usuario relevante de la red no se lo hace por su nombre, si no que se usa el nombre que utiliza en la red. Estas palabras extraídas son consideradas posibles entidades.
En la tabla siguiente en la columna “ Texto simplificado ”, se observa el resultado del paso anterior resaltando en negrita las entidades candidatas detectadas y en la columna “ Entidades candidatas ” se listan las mismas individualmente:
Texto simplificado Posibles Entidades
“Lewy fired #FCBayern victory
Cologne check match gallery http://fcb.de/KOEAlbum2003”
“Lewy”, “FCBayern”, “Cologne”
“Messi playing Xavi Messi plays God” “Messi”, “Xavi”, “God” “Ivan Rakitić Neymar target Liga
leaders Barcelona 9 points despite held 22 draw”
“Ivan”, “Rakitić, “Neymar”, “Liga”, “Barcelona”
“HALF TIME Man City 0 1 Man Utd. advantage United break thanks
Marcus Rashford's cool finish #MCIMUN”
“HALF”, “TIME”, “Man”, “City”, “Man”, “Utd” “United”, “Rashford's”, “MCIMUN”
Cada palabra del conjunto de posibles entidades es cruzada con la información provista por un servicio que ratifica que son entidades [14]. Este servicio dispone para su uso un repositorio de entidades que es alimentado por servicios de consultoría de IBM. Estos servicios se encargan de buscar por la red personas u objetos relevantes para nutrir este repositorio central [10]. A continuación se presenta una tabla con el resultado del proceso. La columna “ Posibles Entidades ” contiene la lista de palabras del paso anterior, remarcando con negrita y tachado a aquellas que no serán consideradas por no pertenecer al diccionario de entidades. Por otro lado, la columna “Entidades” se encuentran aquellas que sí lo fueron.
Posibles Entidades Entidades
“Lewy”, “FCBayern”, “Cologne” “FCBayern”, “Cologne” “Messi”, “Xavi”, “God” “Messi”, “Xavi”, “God”
“Ivan”, “Rakitić, “Neymar”, “Liga”,
“Barcelona” “Rakitić, “Neymar”, “Barcelona”
“HALF”, “TIME”, “Man”, “City”,
“Utd” “United”, “Rashford's”,
“MCIMUN”
“United”, “Rashford's”
Tabla 3.4 : Conjunto de entidades elegidas
3.1.3 Extracción de palabras clave
En el proceso de extracción de palabras clave se toman a todas las palabras del texto reducido para evaluar. Con el conjunto de palabras y el texto reducido, TweetAnalyser envía dichos datos a un servicio que calcula un valor de referencia para cada una de las palabras. Este se calcula por medio de la cantidad de sitios donde dicha palabra aparece y la importancia de los mismos. A partir de este valor se priorizan las palabras ordenandolas de mayor a menor. Por último la herramienta toma las primeras tres como relevantes, bajo la consideración de que esta es un número óptimo. [15]
referencia y se resaltan en negrita las 3 primeras palabras, que serán las que se van a utilizar.
Texto simplificado Palabras clave
“Lewy fired #FCBayern victory Cologne check match gallery
http://fcb.de/KOEAlbum2003”
“Match” 0.84 “FCBayern” 0.82
“Cologne” 0.7 “Victory” 0.4 “Lewy” 0.34 “Gallery” 0.26 “Fired” 0.24 “Check” 0.2 “Messi playing Xavi Messi plays God” “Messi” 0.92 “God” 0.6 “plays” 0.5 “Xavi” 0.42 “playing” 0.24 “Ivan Rakitić Neymar target Liga leaders Barcelona 9 points despite held 22 draw” “Barcelona” 0.82 “Neymar” 0.8 “Despite” 0.4 “Rakitić” 0.4 “Draw” 0.32 “Leaders” 0.3 “Target” 0.2 “Liga” 0.2 “Ivan” 0.2 “Points” 0.2 “Held” 0.1 “HALF TIME Man City 0 1 Man Utd. advantage United break thanks Marcus Rashford's cool finish #MCIMUN”
“United” 0.82 “Rashford's” 0.5 “Cool” 0.4 “Utd” 0.4 “Marcus” 0.4 “Break” 0.4 “Advantage” 0.3 “TIME” 0.3 “Thanks” 0.3 “Finish” 0.3 “MCIMUN” 0.3
“Man” 0.2 “HALF” 0.2
3.1.4 Extracción de temas candidatos
Para este proceso se utiliza un servicio que identifica temas candidatos de un texto. La representación que utiliza dicho servicio para generar un espacio con el conjunto de posibles temáticas de un texto es un árbol de temas. Estos temas se encuentran ordenados desde la raíz hasta sus hojas desde los temas más generalizadores en la raíz hasta los más específicos en las hojas. Los temas más específicos están descritos por un conjunto de entidades y palabras clave [16].
Con esto, el proceso de detección de temas candidatos consiste en ubicar las palabras claves y entidades en las hojas para luego al subir a través del árbol ir encontrando los temas candidatos. Por ejemplo para el tuit “Messi playing like Xavi? whaaaat! Messi plays like God” con las entidades: “Messi” y “Xavi”, “God”, y las palabras clave: “Messi”, “God” y “Xavi” se obtiene el siguiente árbol:
Ilustración 3.2 : Árbol de temas candidatos
spiritualism”) se determinan los temas candidatos: “Football”, “Religion”, “Sports”, “Art and Entertainment” y “Religion and spiritualism” para el tuit elegido. Realizando el mismo procedimiento para todos los tuits de ejemplo se obtiene la siguiente tabla. La cual muestra un resumen de los datos anteriormente deducidos y la columna “Temas candidatos” muestra los temas deducidos por el árbol de temas :
Texto
simplificado Entidades Palabras clave candidatos Temas
“Lewy fired #FCBayern victory
Cologne check match gallery http://fcb.de/KOE
Album2003”
“FCBayern”,
“Cologne” “FCBayern“Match”, ”, “Cologne” “Football”, “Sports”, “Art and entertainment” “Messi playing Xavi Messi plays God” “Messi”, “Xavi”,
“God” “Messi”, “God”, “plays” “Football”,”Religion”, “Sports”, “Art and entertainment”, “Religion and Spiritualism” “Ivan Rakitić Neymar target Liga leaders Barcelona 9 points despite held 22 draw” “Rakitić, “Neymar”, “Barcelona” “Barcelona”, “Neymar”, “Despite” “Football”, “Sports”, “Art and entertainment” “HALF TIME Man City 0 1 Man Utd. advantage United break thanks Marcus Rashford's cool finish #MCIMUN”