Está en la página 1de 80

Minera de textos

en la red social
Twitter
TESIS
QUE PARA OBTENER EL TTULO DE
INGENIERO EN COMPUTACIN
PRESENTA:
RUBN GUEVARA LPEZ

DIRECTOR DE TESIS:
DR. ALFONSO MEDINA URREA

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO


FACULTAD DE INGENIERA
OCTUBRE DE 2011

El presente trabajo de tesis se llev a cabo gracias al apoyo del Grupo de Ingeniera Lingstica (GIL)
de la Universidad Nacional Autnoma de Mxico (UNAM) y al patrocinio del Consejo Nacional de
Ciencia y Tecnologa (CONACYT) en el marco del proyecto Extraccin de conocimiento lexicogrfico
a partir de textos de Internet con clave de registro 105711, dirigido por el Dr. Alfonso Medina Urrea.

Resumen

Las Redes Sociales basadas en tecnologa han convertido las acciones y comportamientos naturales
de una comunidad; desarrollndose ahora en un nuevo formato-contexto electrnico capaz de generar
conocimiento compartido de una manera ms eficaz y eficiente. El presente trabajo tiene como objetivo
conjuntar tcnicas de procesamiento del lenguaje natural y aprendizaje automtico para el desarrollo de
un sistema capaz de tomar informacin de Twitter, procesarla y reportar los problemas ms importantes
de la ciudad de Mxico as como su ubicacin geogrfica de ser posible.

Palabras clave: Red, Internet, Redes Sociales, Twitter, Minera de textos, conocimiento colectivo.

iii

Minera de textos en la red social Twitter

Agradecimientos
Agradezco al grupo de ingeniera lingstica de la Universidad Nacional Autnoma de Mxico que hizo
posible la publicacin de este trabajo. En particular a mi director de tesis, el Dr. Alfonso Medina Urrea,
quien me enseo mucho sobre el procesamiento del lenguaje natural y cuyo celo por el estudio del lenguaje ha llegado hasta m, instigando mi trabajo en aplicaciones inteligentes.

Mi agradecimiento tambin al Dr. Rodrigo Alarcn Martnez. Quien oriento los primeros pasos de este
trabajo. Seria descuidado sino reconociera su apoyo.

Un reconocimiento especial a las siguientes personas por dar lectura de este trabajo varias veces en
distintas etapas de su desarrollo y por compartir sus comentarios: Ing. Laura Sandoval Montao, Dr.
Gerardo Eugenio Sierra Marines, M.C. Gabriel Castillo Hernndez y M.I. Carlos Francisco Mndez
Cruz. Soy consciente de lo limitado y precioso de su tiempo libre. Sepan que sus aportes fueron muy
apreciados.

Les estoy agradecido a mis padres, Rubn S. Guevara y Florencia E. Lpez. Que han inculcado en m
el nivel apropiado de curiosidad y la pasin por el aprendizaje que me hace escribir e investigar hasta
altas horas de la noche. La deuda es demasiado grande para pagar en una sola vida.

A mi hermano Lenin Guevara para el que siempre he querido ser un ejemplo de esfuerzo y perseverancia, con lo que espero inspirar en l la misma aficin para que pueda lograr sus metas.

Es innecesario decir que este libro fue imposible sin la inspiracin y el apoyo de Claudia Medina.
Claudia, cuntos das deje de verte con tal de terminar este trabajo? me hiciste seguir adelante ya que
no queras ver la decepcin en mis ojos. Gracias, Claudia, por apoyarme a travs de esta aventura, por
hacerme sentir como si yo fuera el mejor escritor del mundo. No habra sido posible sin tu sacrificio.
Claudianos acercamos el uno al otro. Nuestras manos se han unido como si no fueran a soltarse nunca ms. Quiero creer que encontramos la recompensa eterna y la tristeza, y que podemos ver su verdad.

A mi amigo de juventud Csar Bello por estos pocos y al mismo tiempo tantos aos compartidos, quien
no tiene necesidad de inventarse un toque especial de timbre, todos sabemos que eres t.

Para Anglica Rodrguez, Mayra Balbuena, Patricia Flores y Sac-Nict Guzmn, a quienes se hacer
cosquillas en la barriga y les hablo en un lenguaje entre tonto y misterioso, con citas a plazo fijo, consejos y advertencias.

iv

Agradecimientos

A mis amigos que se inquietan por mis noches recoletas, Jordi Mendoza, Marco Gonzlez, Jess Arguello, Miguel ngel Flores y Juan Francisco Garca. Noches en las que nos entretenernos cuando no
tenemos nada que leer, o nada que hacer, pudiendo consumirnos incluso en un inconcebible acto de
canibalismo intelectual.

Cinthya Bibiano. Un da me pedirs que te hable de la verdad, del milagro de conocernos, que explique
lo que es inexplicable. Y si titubeo o fallo en ese da sabes que existe una respuesta, una verdad sagrada
y efmera. Cinthya, para ti ha sido un pacer conocerme, para m ha sido ms que eso. La distancia entre
amigos, creadora solo de confianza y mutuo respeto, ha desaparecido.

Finalmente a mis colegas pasados y presentes, Abraham Vergara, Alberto Perrusquia, Alejandro De la
Cruz, Alejandro Snchez, Ariadna Lpez, Cesar Garca, Daniel Pantoja, Ethel Aparicio, Eva Jurez,
David Duran, Diego Monroy, Francisco Cruz, Flix Flores, Gonzalo Flores, Humberto Len, Sergio
Cortes, Sergio Lpez, Ivonne Espinosa, Jonathan Vega, Jos Luis Figueroa, Jos Machorro, Josu Careaga, Juan Crdenas, Juan Prez, Luis Cano, Luis Zainos, Luis Prado, Oscar Monroy, Pamela Lpez,
Pavel Soriano, Ramn Aguirre, Ronald Rodrguez, Trinidad Martin, Vctor Vlez y muchos otros, que
alientan y apoyan toda la inteligencia e iniciativas relacionadas con este trabajo: slo hay unas pocas
lneas que puedo escribir aqu, pero mi agradecimiento es mucho mayor que eso.

Rubn Guevara Lpez

Minera de textos en la red social Twitter

Minera de textos en la red social Twitter

ndice de contenidos

RESUMEN .......................................................................................................................................................... III


AGRADECIMIENTOS ..................................................................................................................................... IV
1

INTRODUCCIN ..................................................................................................................................... 1

1.1

MOTIVACIN ............................................................................................................................................... 1

1.2

OBJETIVOS ................................................................................................................................................... 2

1.3

LMITES DE LA TESIS .................................................................................................................................... 3

1.4

VISTA GENERAL DE LA TESIS ....................................................................................................................... 4

PANORAMA GENERAL ......................................................................................................................... 7

2.1

MINERA DE TEXTOS.................................................................................................................................... 7

2.2

MINERA WEB .............................................................................................................................................. 7

2.3

REDES SOCIALES .......................................................................................................................................... 8

2.4

ACERCA DE TWITTER................................................................................................................................... 9

MODELO DE ESPACIOS VECTORIALES ....................................................................................... 13

3.1

CONSTRUCCIN ......................................................................................................................................... 14

3.2

PESO LOCAL ............................................................................................................................................... 14

3.3

3.4

3.5

vi

3.2.1

Binaria ............................................................................................................................... 15

3.2.2

Frecuencia del trmino ...................................................................................................... 15

3.2.3

Frecuencia aumentada de trminos normalizados ............................................................ 15

3.2.4

Logartmico ....................................................................................................................... 16

PESO GLOBAL............................................................................................................................................. 16

3.3.1

Sin cambios ....................................................................................................................... 17

3.3.2

Frecuencia inversa de documentos (IDF) ......................................................................... 17

3.3.3

Otros esquemas IDF .......................................................................................................... 17

3.3.4

Entropa normalizada ........................................................................................................ 18

NORMALIZACIN ....................................................................................................................................... 18

3.4.1

Sin cambios ....................................................................................................................... 19

3.4.2

Normalizacin de coseno .................................................................................................. 19

3.4.3

Otros esquemas de normalizacin de coseno .................................................................... 19

3.4.4

Normalizacin del peso mximo....................................................................................... 19

3.4.5

Normalizacin de pivote nico ......................................................................................... 19

MTODOS MS UTILIZADOS....................................................................................................................... 20

ndice de contenidos

ANLISIS DE GRUPOS (CLUSTERING) ........................................................................................... 21

4.1

DISTANCIAS Y SIMILITUDES ....................................................................................................................... 21

4.2

4.1.1

Distancias para variables continuas .................................................................................. 23

4.1.2

Similitudes para variables binarias ................................................................................... 24

MTODOS JERRQUICOS ............................................................................................................................ 26

4.2.1

Dendograma y jerarqua indexada .................................................................................... 26

4.2.2

Mtodo del mnimo ........................................................................................................... 27

APLICACIONES EMPRESARIALES CON TECNOLOGA JAVA EE. ........................................ 31

5.1

INTRODUCCIN A LA TECNOLOGA JAVA EE. ........................................................................................... 33

5.1.1

Arquitectura ...................................................................................................................... 33

5.1.2

Componentes de aplicacin .............................................................................................. 35

5.1.3

Los API de Java EE .......................................................................................................... 36

5.1.4

Tecnologas de comunicacin ........................................................................................... 38

5.1.5

Java EE para cualquier aplicacin? ................................................................................. 39

IMPLEMENTACIN Y RESULTADOS ............................................................................................. 40

6.1

PRESENTACIN GENERAL DEL SISTEMA .................................................................................................... 40

6.2

OBTENCIN DE LOS GORJEOS Y PREPROCESAMIENTO ............................................................................... 41

6.3

6.2.1

Obtencin de gorjeos ........................................................................................................ 42

6.2.2

Preprocesamiento .............................................................................................................. 43

6.2.3

Clasificacin...................................................................................................................... 44

PROCESAMIENTO DE LOS GORJEOS ............................................................................................................ 45

6.3.1

Construccin del espacio vectorial ................................................................................... 45

6.3.2

Clculo de la energa textual ............................................................................................. 46

6.3.3

Agrupamiento de gorjeos .................................................................................................. 48

6.4

PRESENTACIN DE DATOS ......................................................................................................................... 50

6.5

CONTROL DE CRECIMIENTO ....................................................................................................................... 55

ANLISIS DE RESULTADOS .............................................................................................................. 56

CONCLUSIONES Y TRABAJO FUTURO ......................................................................................... 66

REFERENCIAS....................................................................................................................................... 69

APNDICE A ...................................................................................................................................................... 71
APNDICE B....................................................................................................................................................... 72
APNDICE C ...................................................................................................................................................... 73

vii

Minera de textos en la red social Twitter

ndice de Diagramas
Figura 1 Matriz documento-termino simple ........................................................................................ 14
Figura 2 Dendograma correspondiente al ejemplo del vecino ms prximo ....................................... 30
Figura 3 Arquitectura de Java EE ........................................................................................................ 34
Figura 4 Arquitectura del sistema propuesto ....................................................................................... 40
Figura 5 Ejemplo de gorjeos ................................................................................................................ 42
Figura 6 Resultado de aplicar las transformaciones a los gorjeos ....................................................... 44
Figura 7 Palabras tomadas en cuenta para el espacio vectorial ........................................................... 45
Figura 8 Grupos generados para gorjeos de ejemplo .......................................................................... 49
Figura 9 Pgina de inicio ..................................................................................................................... 51
Figura 10 Presentacin de datos para el tema Homicidios................................................................... 52
Figura 11 Continuacin de presentacin de datos para el tema Homicidios ....................................... 53
Figura 12 Presentacin de gorjeo original ........................................................................................... 53
Figura 13 Presentacin de gorjeo procesado........................................................................................ 54
Figura 14 Presentacin de gorjeo vectorizado ..................................................................................... 54
Figura 15 Resultados de los agrupamientos para los temas Trfico, Homicidios y Asaltos ............... 62
Figura 16 Ejemplo del clculo de una matriz cofentica. .................................................................... 64

ndice de Tablas
Tabla 1 Frmulas de pesos locales ....................................................................................................... 15
Tabla 2 Frmulas de pesos globales .................................................................................................... 16
Tabla 3 Frmulas de normalizacin ..................................................................................................... 18
Tabla 4 Recuento de las coincidencias de n variables binarias definidas para dos casos i y j con n =
a+b+c+d ......................................................................................................................................... 25
Tabla 5 Espacio vectorial para el ejemplo de 5 gorjeos ....................................................................... 46
Tabla 6 Temas y gorjeos recuperados para el anlisis. ........................................................................ 56
Tabla 7 Resultados de coeficiente de correlacin cofentico para los trminos trfico, homicidios y
asaltos. ............................................................................................................................................. 65

viii

1. Introduccin

1 Introduccin
1.1 Motivacin
En el mundo actual donde la informacin cambia de un da para otro, las redes sociales constituyen una
de las expresiones del hombre para intercambiar y transferir lo que aprende y lo que crea. Dichas creaciones han permitido el acercamiento del pblico a la tecnologa posibilitando la creacin de verdaderas comunidades virtuales como es el caso de Facebook, Twitter o Linkedin, donde las personas se encuentran para discutir, relacionarse, intercambiar informacin y organizarse de forma relativamente
similar a las comunidades presenciales. Segn Nielsen Online, 67% de los usuarios de internet utilizan
alguna de estas redes sociales para mantenerse en contacto con amigos, hacer crecer sus negocios o
simplemente divertirse1.

Twitter es quiz la ms simple de las redes sociales porque consiste en enviar mensajes muy breves de
140 caracteres como mximo a aquellos que nos siguen (followers) y en recibir los mensajes de aquellos a los que seguimos; en esta simplicidad est su poder. No sirve para subir fotografas ni escribir
una reflexin extensa, pero s para que los usuarios informen a los dems de lo que hacen o viven en
cada momento. Y es en este aspecto donde surgen algunas interrogantes: Qu tiene de entretenido
publicar lo que estoy haciendo? o por qu tienen otros que enterarse de las cosas que hago?. Y es
que su poder va ms all, Twitter ha cambiado la forma de comunicarse llegando al punto en el que las
noticias se dan primero por Twitter y luego por los medios convencionales. La novedad, que es el valor
agregado que ofrecen las agencias de noticias, es ahora generada por los usuarios que desean participar
y ser parte del nuevo proceso informativo, brindando informacin al instante con el uso de algn dispositivo mvil o alguna pequea computadora.

Hay que aclarar que lo anterior no quiere decir que las redes sociales como Twitter desplazarn otros
medios de comunicacin masivos. No es lo mismo publicar unas lneas en Twitter, decir en unos cuantos segundos que algo est ocurriendo o mostrar las imgenes ms espectaculares de un hecho, que
explicar cmo y por qu sucede algo.

As, por ejemplo, el aviso en Twitter de un incendio alerta a quienes estn conectados a la computadora. La transmisin en directo de la radio permite al
radioescucha saber que una densa nube de humo se extiende en ese momento
sobre determinada zona de la ciudad. Los televidentes podrn ver la dimen-

CNBC 2010-09-10, Social Networking: Your Key to Easy Credit?

http://m.cnbc.com/us_news/34843251?refresh=true.

Minera de textos en la red social Twitter

sin de las llamaradas y testificar el valor de los bomberos que se internan en


ese infierno. Al da siguiente, el lector de peridico podra conocer, por ejemplo, de qu manera los bomberos combatieron el incendio, las repercusiones
que generarn las prdidas, las historias de los empleados que perdieron su
fuente de trabajo, los avances en las investigaciones sobre el origen del fuego,
etctera. Podra tambin leer una entrevista a fondo con uno de los bomberos
o con una vctima, conocer si la ciudad cuenta con los recursos suficientes para atender siniestros de esa magnitud o saber qu hacer si se encuentra en una
situacin similar, entre muchas otras cosas2.

Por ltimo se puede decir que, con la posibilidad de llegar a ms gente de manera inmediata (antes que
los medios convencionales), el uso de las redes sociales ha revolucionado la necesidad de comunicarse
y es que, aunque siempre hemos utilizado el potencial de las redes de forma intuitiva, la tecnologa slo
ha acelerado el proceso de comunicacin para no tener que decrselo a cada uno de todos nuestros conocidos. Y en este sentido Twitter expone los hechos que viven y reportan miles de usuarios en un solo
momento.

1.2 Objetivos
El objetivo principal de este trabajo es desarrollar un sistema que permita el descubrimiento de informacin interesante en conjuntos de documentos extrados de la red social Twitter.

Los objetivos especficos son:

Implementacin de bases de datos para la experimentacin de la investigacin.

Evaluacin experimental de la eficacia de modelos de espacios vectoriales como mtodos para


la representacin de documentos.

Implementacin y evaluacin de un algoritmo de agrupamiento aplicado sobre una de las bases


de datos desarrolladas.

Desarrollo de una aplicacin empresarial web con Java EE que permita a usuarios la consulta de
los conocimientos obtenidos por el sistema.

Milenio online, 2010-05-09 Para qu sirven los periodistas?

http://impreso.milenio.com/node/8764117. visitado el 11 de septiembre de 2010

1. Introduccin

Para lograr estos objetivos se sigui la siguiente estrategia y metodologa:

a) Se realiz una revisin bibliogrfica de los trabajos que se han desarrollado alrededor de la minera de textos en redes sociales.

b) Se llev a cabo un anlisis del modelo de representacin vectorial de documentos y se establecieron sus caractersticas; as como de las medidas de distancia y similitud ms importantes para
la recuperacin de informacin.

c) Se realiz una revisin de los mtodos de agrupamiento jerrquicos y aglomerativos ms importantes.

d) Una vez identificados los modelos ms importantes para la representacin de textos, las medidas de similitud y el algoritmo de agrupamiento, se elabor una metodologa para disear la arquitectura del sistema. El sistema se desarroll en 4 subsistemas:

a. Un subsistema para realizar consultas al servidor de Twitter con ayuda de Twitter4J, una
librera escrita en el lenguaje de programacin Java de cdigo libre que implementa la
API de Twitter. El mismo subsistema se encarga del pre-procesamiento del texto y la inclusin o no de ese mensaje de Twitter a la base de datos, consiguiendo as una clasificacin.

b. El segundo sistema es responsable de la representacin vectorial y agrupamiento de los


documentos.

c. Un tercer subsistema se encarga de recibir los grupos generados por el anterior subsistema, almacenarlos en una base de datos y presentar dicha informacin.
d. Y, finalmente, un cuarto encargado de modificar la base de datos de los grupos generados anteriormente.

1.3 Lmites de la tesis


La red social Twitter por su propia naturaleza contiene una gran cantidad de informacin difcil de manejar. Por ello, una limitacin natural del estudio es la imposibilidad de manejar toda la informacin
que se genera, por lo que se enfocan los esfuerzos a una determinada zona geogrfica y la recopilacin
de temas definidos a priori.

Minera de textos en la red social Twitter

El presente trabajo no pretende ser un nuevo paradigma computacional para el desarrollo de sistemas
de minera de textos, pues solo propone una aplicacin de dichos sistemas a la red social Twitter.
No se presenta un mtodo de evaluacin para el algoritmo de agrupamiento, ya que los mtodos existentes evalan la eficacia con respecto al valor de la distancia de corte del dendograma, las muestras
asignadas a un grupo y muestras que no deberan estar dentro de un grupo, cosa que resulta particularmente difcil puesto que el sistema recibe un conjunto variable de gorjeos y el dendograma para cada
conjunto de datos vara para cada conjunto.

Por el momento el sistema solo presenta a los usuarios el resultado del agrupamiento de los gorjeos, no
es posible hacer consultas personalizadas y no se implementan mtodos de resumen automtico; aspectos que se pretenden cubrir en trabajo futo.

1.4 Vista general de la tesis


En el captulo 2 se hace una breve resea sobre los temas tratados en el presente trabajo, temas como
son la minera de textos, la minera web y las redes sociales.

El captulo 3 versa sobre el modelo de representacin vectorial; un modelo algebraico muy utilizado en
el rea de recuperacin de informacin, donde se representan documentos del lenguaje natural por medio de vectores en un espacio lineal multidimensional.

El captulo 4 hace una introduccin al tema de agrupamiento o clustering, medidas de similitud y distancia para finalmente introducir al algoritmo de agrupamiento jerrquico utilizado en esta tesis. Describiendo de esta manera los elementos tericos necesarios para comprender la propuesta de solucin al
problema de agrupamiento que se presenta.

El captulo 5 introduce al lector a la tecnologa de Java empresarial, fundamental para el desarrollo del
presente trabajo por ofrecer los recursos tecnolgicos para la ptima implementacin del sistema.

El captulo 6 detalla la implementacin del sistema; la consulta a la base de datos de Twitter en tiempo
real, la caracterizacin de entrada al algoritmo de agrupamiento y los pasos para conseguir grupos que
reflejen relaciones semnticas.

El captulo 7 trata del anlisis de resultados; cualitativo y cuantitativo de los grupos generados por el
sistema.

Finalmente dentro del captulo 8 se hace un resumen de la tesis y se presentan las areas de oportunidad
para trabajos futuros.
4

2. Panorama general

2 Panorama general
Este captulo presenta un panorama general de los temas que se conjuntan en este documento. Para ello,
y teniendo en cuenta que el presente trabajo ana conceptos de diversos mbitos, se ha estructurado en
cuatro subsecciones. La primera presenta una panormica de lo que se conoce como minera de textos,
partiendo desde la revisin del concepto, su taxonoma y su importancia en reas de especialidad. La
segunda seccin est dedicada a introducir el concepto de minera web. La tercera seccin de este captulo muestra una visin global del mbito de las redes sociales, su uso y aplicaciones importantes generadas alrededor de ellas. Finalmente en la cuarta subseccin se hace una introduccin a los conceptos
bsicos Twitter y sus ventajas sobre otras redes sociales.

2.1 Minera de Textos


La minera de textos es un proceso en donde se interacta con una coleccin de documentos a travs
del tiempo mediante el uso de herramientas de anlisis. La minera de textos al igual que la minera de
datos busca extraer informacin til identificando y explorando patrones interesantes. En el caso de la
minera de texto la fuente de los datos son documentos y los patrones de inters no se encuentran entre
los registros de una base de datos formal, si no en datos no estructurados en el conjunto de documentos.

Ciertamente la minera de textos es inspirada en gran parte por la minera de datos, por lo tanto no es de
sorprender que se empleen las mismas tcnicas y algoritmos para el descubrimiento de patrones. Debido a que la minera de datos supone que los datos han sido almacenados en un formato estructurado,
gran parte del proceso previo cae en dos tareas fundamentales: depuracin y normalizacin de los datos.
En contraste, en la minera de textos el procesamiento se centra en la identificacin y extraccin de
caractersticas representativas de documentos de lenguaje natural, operaciones que intentan transformar
los datos no estructurados de los documentos en un formato explicito para poder aplicar tcnicas de
minera de datos.

2.2 Minera web


La minera web en trminos generales se puede ver como la aplicacin de mtodos de minera de datos
adaptados a la web para descubrir y extraer informacin de documentos y servicios Web, analizando el
contenido de documentos web, las pginas web que estn vinculadas a travs de hipervnculos y estadsticas de uso para ayudar a los usuarios a satisfacer necesidades de informacin. La minera web se
puede categorizar en tres reas: minera de estructura web, minera de contenido web y minera de uso
web [26].

Minera de textos en la red social Twitter

La minera de estructura web explota la informacin que proporcionan los hipervnculos respecto a la
estructura de la pgina que pudiera ser importante [26]. Por ejemplo, se pueden descubrir pginas importantes, tambin se pueden descubrir comunidades de usuarios con intereses en comn, tareas que en
la minera de datos no es posible debido a que usualmente no hay una estructura de enlaces en una tabla
relacional.

En la minera de contenido web se extrae informacin o conocimiento del contenido de la pgina web
[26]. Por ejemplo, se puede clasificar y agrupar las pginas web de acuerdo con ciertos temas. Tareas
que son similares a las de minera de datos. Sin embargo, en la minera de contenido web es posible
descubrir datos tiles tales como descripciones de productos, fotografas publicadas, etc., para muchos
propsitos. Adems, es posible extraer opiniones de clientes y descubrir los sentimientos de los consumidores. Tareas que no son tradicionales de la minera de datos.

Por ltimo la minera de uso web estudia la relacin que existe entre documentos en la web que son
identificados por bsquedas anteriores registrando bsquedas y accesos de los usuarios a dichos contenidos [26].

2.3 Redes sociales


A lo largo de su historia, el ser humano ha buscado el apoyo de las personas que le rodean ya que stas
le pueden resultar de ayuda para satisfacer tanto sus necesidades bsicas, como de seguridad, proteccin y afecto. Esto se debe a que el ser humano es social y vive inmerso en un entramado de vnculos
interpersonales que afectan su vida. As, el comportamiento de cada individuo afecta y a su vez se ve
afectado por las interacciones sociales en las que participa.

El problema de las redes sociales en el mundo no virtual es que la mayora de las conexiones entre las
personas estn ocultas, la red puede tener un gran potencial pero slo es tan valiosa como las conexiones y las personas que una persona puede ver. El valor de las conexiones es explotado por las redes
sociales en internet que se apoyan en el principio de los seis grados de separacin3, una teora que intenta probar la idea de que cualquier persona en la tierra puede estar conectada a otra persona a travs
de una cadena de conocidos que no tiene ms de cinco intermediarios. De esta manera se conectan entre s a ambas personas con slo seis enlaces y esto da como resultado que el conjunto de conocidos de
cada persona forme la poblacin mundial4.
3

Teora inicialmente propuesta en 1930 por el escritor hngaro Frigyes Karinthy en un cuento llamado Chains. Wikipedia

2010-09-11, Seis grados de separacin. http://es.wikipedia.org/wiki/Seis_grados_de_separaci%C3%B3n.


4Semioticon

2010-08-11, The Networked Individual: A Profile of Barry Wellman.

http://www.semioticon.com/semiotix/semiotix14/sem-14-05.html.

2. Panorama general

Las redes sociales en internet son sitios web donde las personas se dan de alta, creando as un perfil
(una pgina web personal) para posteriormente agregar el perfil de sus amigos, personas a quienes invita u otros usuarios que ya pertenecen a la red social. De esta manera permite as la interaccin entre
personas que no necesariamente se conocen pero que comparten intereses, preocupaciones o necesidades. Esto es porque las redes sociales no slo sirven para mostrar fotografas o documentos.

Hay varios tipos de redes sociales para cada inters o necesidad, dividiendo as a las redes sociales en
tres tipos: generales, profesionales y temticas. Ellas permiten al usuario dejarse ver en internet, encontrar personas, mantener relaciones distantes, conocer gente nueva, compartir conocimientos, aprender,
compartir contenidos, participar en grupos de inters comunes, debatir, divertirse, realizar negocios,
encontrar y ofrecer trabajo e incluso realizar trabajo colaborativo.

2.4 Acerca de Twitter


Twitter es un servicio de red social en internet basado en lo que se conoce como microblogging o nanoblogging. Una mezcla entre la accin de postear5 o escribir en los blogs6 (blogging) con red social y
mensajera instantnea7 que permite a los usuarios enviar y publicar mensajes breves (en promedio 140
caracteres) generalmente slo de texto [27].

Los usuarios de Twitter (tweeteros) escriben actualizaciones cortas, o tweets (gorjeos: el sonido emitido
por las aves), de 140 caracteres o menos. Acto llamado por algunos usuarios como twittear (o tweetear).
Estos mensajes son publicados en la pgina principal del usuario y enviados a sus followers (seguidores), usuarios de Twitter que reciben los gorjeos y descubren las noticias ("qu est pasando?") relacionadas con los temas que le interesan.

Los mensajes de los usuarios que se siguen son mostrados en una cronologa, o timeline (TL), un trmino utilizado para describir gorjeos que son ordenados cronolgicamente en Twitter. Es como recibir
un peridico en el que siempre se encuentran titulares interesantes, pudiendo descubrir noticias mien5

El acto de crear temas o escribir mensajes en algn medio informtico.

Un blog, o en espaol tambin una bitcora, es un sitio web peridicamente actualizado que recopila cronolgicamente

textos o artculos de uno o varios autores, apareciendo primero el ms reciente, donde el autor conserva siempre la libertad
de dejar publicado lo que crea pertinente. Habitualmente, en cada artculo de un blog, los lectores pueden escribir sus comentarios y el autor darles respuesta, de forma que es posible establecer un dilogo. Wikipedia 2011-04-16 Blog,
http://es.wikipedia.org/wiki/Blog.
7

La mensajera instantnea es una forma de comunicacin en tiempo real entre dos o ms personas basada en texto. El texto

es enviado a travs de dispositivos conectados a una red como Internet. . Wikipedia 2011-04-16 Mensajera Instantnea,
http://es.wikipedia.org/wiki/Mensajer%C3%ADa_instant%C3%A1nea.

Minera de textos en la red social Twitter

tras estn sucediendo, aprender ms sobre los temas que son importantes para el usuario, y obtener las
novedades en el momento. Informacin que puede ser utilizada por los usuarios para encontrar su propia voz y mostrar a otros lo que les interesa. Los gorjeos pueden tener un inters periodstico, informativo, o simplemente divertido y los usuarios pueden retwittear, o retweetear los gorjeos (hacer un retweet) para compartir informacin rpidamente a sus seguidores, o responder con su reaccin a un gorjeo haciendo un retweet y agregando un comentario. Los retweets pueden ser de dos tipos, uno donde
se publica directamente el gorjeo original en la lnea del tiempo del usuario y otro donde se inicia con
el termino RT seguido de la mencin del usuario original utilizando su nombre en Twitter precedido
por el signo @. Estos retweet pueden ser vistos por sus creadores en el apartado de sus gorjeos retwitteados (o tweets retweetteados). Las menciones no slo sirven para identificar de qu usuario se retwitteo (o retweeteo) un gorjeo, tambin sirve como su nombre lo indica para mencionar a otros usuarios y
atraerlos as al mensaje o incluso iniciar una conversacin a partir de la respuesta a un gorjeo interesante. Los usuarios pueden ver sus menciones en el apartado de menciones.

Adems de las actualizaciones pblicas @respuestas, es posible enviar gorjeos privados a los seguidores, tambin llamados mensajes directos (MD o DM). Al igual, la gente a la que se sigue puede enviar
un mensaje privado. Estos mensajes se escriben iniciando con la letra "d" y el nombre de usuario del
seguidor.

Twitter identifica los Temas del Momento (o trending topics). Temas que se estn popularizando(o que
son promovidos) y que son representados por sus palabras clave8. Pero, aunque los usuarios pudieran
estar hablando de un tema en comn, en Twitter no exista una forma para que los usuarios pudieran
darle seguimiento a un tema por ellos mismos, por lo que los usuarios crearon un mtodo de categorizacin [25]. Actualmente los usuarios clasifican sus gorjeos con lo que se conoce como etiquetas o
hashtags, las cuales se componen del smbolo de almohadilla o smbolo de gato (#) antecediendo a las
palabra que identifica la categora9, como por ejemplo: #Mxico, #msica, #peliculaX. Y son estas etiquetas precisamente las que aparecen ms frecuentemente como temas del momento en comparacin
con las palabras que pudieran tener en comn muchos gorjeos en un momento dado.
Una etiqueta muy utilizada es la de #FF que significa "Follow Friday." algo as como Viernes para
Seguir y la utilizan los usuarios de Twitter para sugerir a otros a quines seguir los Viernes.

A diferencia de otras redes sociales Twitter no tiene soporte nativo para compartir videos o archivos;
no estn contenidos dentro del gorjeo, en vez de esto el mensaje tiene que contener la direccin URL
8

Palabras o trminos ms representativos de un contenido.

A parte de no utilizar las etiquetas con propsitos de enviar spam, no hay reglas formales para su utilizacin, por lo que

cualquier palabra clave con una # delante puede ser considerada una etiqueta.

10

2. Panorama general

de lo que se desea compartir. Esto lo deja a servicios de terceros como son por mencionar algunos:
YouTube, Dailymotion, Vimeo, Tu.tv, justin.tv y Megavideo para videos y Megaupload, Rapidshare,
Mediafire y Hotfile para compartir archivos. Recientemente se agreg la opcin de incluir imgenes
dentro del gorjeo de forma nativa, pero en sus inicios Twitter lo dejaba a servicios como Twitpic,
Yfrog, Instagram, Lockerz y Flickr.

Claro que incrustar una direccin URL podra consumir los 140 caracteres. Para hacer frente a este
problema Twitter ofrece un servicio de enlaces donde los enlaces compartidos en Twitter.com sern
acortados a un enlace http://t.co. de 19 caracteres de longitud (Muy parecido al servicio de bit.ly).

Todos los gorjeos guardan la fecha y la hora en la que se publicaron, el identificador del usuario y su
nombre de usuario de Twitter de quien lo publica y a quien va dirigido (de ser el caso). Tambin se
incluye la direccin URL del gorjeo, la imagen del usuario, el mensaje del gorjeo, el idioma que especfico el usuario en su perfil de Twitter y finalmente la ubicacin geogrfica.

La funcin de Tweets con Ubicacin permite aadir selectivamente informacin de ubicacin en los
gorjeos. Esta funcin est desactivada al inicio, y es necesario activarla para poder usarla. Una vez activada la opcin es posible aadir la ubicacin individualmente a cada gorjeo en Twitter.com y va
otras aplicaciones o dispositivos mviles que den soporte a esta opcin. La informacin que se comparte pblicamente puede ser ya sea la ubicacin exacta (coordenadas) o un lugar (barrio o cuidad), aadiendo as contexto a las actualizaciones de los usuarios y puede ayudar a unir los gorjeos en una conversacin local.

Twitter

ofrece

ciertas

(https://www.tumblr.com/),
(http://picotea.com/es/),

ventajas
Meme
Google

sobre

otros

de
buzz

microbloggingins

Yahoo

como

lo

son

(http://meme.yahoo.com/),

(http://www.google.com/buzz),

Tumblr
Picotea

Friendfeed

(http://friendfeed.com/) o Identi.ca (http://identi.ca/). En algunos de ellos es posible incrustar videos,


imgenes o archivos en sus mensajes, pero pocos de ellos cuentan con geolocalizacin. Por defecto los
mensajes de Twitter son pblicos, algo que no es muy comn en los ya mencionados. Por otra parte, la
API de Twitter es accesible y fcil de implementar, algo que en otras redes puede no estar disponible
para los desarrolladores externos. Finalmente Twitter tiene muchos ms usuarios en trminos generales,
especialmente en Mxico siendo de particular inters para el presente trabajo.

Lo anterior se puede extender a otras redes sociales de propsito general como Facebook
(http://www.facebook.com/), Google+ (https://plus.google.com/), redes mucho muy utilizadas donde
tambin es posible publicar el "qu est pasando? pero que por su caracterstica de compartir informacin personal como nombre, direccin, correo electrnico, fotografas personales y actividades que
se realizan en el da, se han convertido en redes sociales privadas. Es posible hacer uso de las actualiza11

Minera de textos en la red social Twitter

ciones de los usuarios, siempre y cuando dichos usuarios acepten el vnculo entre su perfil y una aplicacin de terceros, algo que resulta particularmente complicado. Por otro lado las publicaciones de los
usuarios van dirigidas a su crculo de amigos: que hace en su trabajo, como le fue hoy, etc. Publicaciones que difieren a las que se encuentran en Twitter, donde se publica generalmente para sus seguidores;
gente desconocida que quiere saber no slo de lo que hace otro usuario, sino tambin qu piensa o qu
ocurre donde l est presente.

12

3. Modelo de espacios vectoriales

3 Modelo de espacios vectoriales


Muchas de las tareas de recuperacin de informacin como la bsqueda, agrupamiento o categorizacin
de textos tienen como primer objetivo procesar documentos en lenguaje natural. El problema que surge
es que los algoritmos que pretenden resolver estas tareas necesitan representaciones internas explcitas
de los documentos. En el rea de recuperacin de informacin normalmente se usa una expresin vectorial, donde las dimensiones del vector representan trminos, frases o conceptos que aparecen en el
documento. En este aspecto la representacin ms adoptada es la conocida como bolsa de palabras: una
coleccin de documentos compuesta por n documentos indexados y m trminos representados por una
matriz documento-trmino de n x m. Donde los n vectores rengln representan los n documentos; y el
valor asignado a cada componente refleja la importancia o frecuencia ponderada que produce el trmino, frase o concepto ti en la representacin semntica del documento j.

Donde m es la cardinalidad del diccionario10 y

representa la contribucin del termino ti

para la representacin semntica del documento dj.


En esta representacin vectorial de documentos el xito o fracaso se basa en la ponderacin o peso de
los trminos. Aunque ha habido mucha investigacin sobre tcnicas de ponderacin de trminos, en
realidad no hay un consenso sobre cul mtodo es el mejor [2]. Tambin hay que destacar que el espacio de renglones de la matriz documento-trmino determinan el contenido semntico de la coleccin de
documentos. Sin embargo, una combinacin lineal de dos vectores-documento no representa necesariamente un documento viable de la coleccin. Ms importante an, mediante el modelo espacio vectorial se pueden explotar las relaciones geomtricas entre dos vectores documento (y trminos) a fin de
expresar las similitudes y diferencias entre trminos.
Si bien el rendimiento de un sistema de recuperacin de informacin depende en gran medida de las
medidas de similitud entre documentos, la ponderacin de trminos desempea un papel fundamental
para que esa similitud entre documentos sea ms confiable. As, por ejemplo, mientras que una representacin de documentos basada solo en las frecuencias o apariciones de trminos no es capaz de representar adecuadamente el contenido semntico de los documentos [1], la representacin de trminos
ponderados11 hace frente a errores o incertidumbres asociadas a la representacin simple de documentos.

10

Un diccionario es una lista de trminos nicos que aparecen en un conjunto de documentos.

11

Aplicacin de mtodos de normalizacin a la matriz documento-trmino.

13

Minera de textos en la red social Twitter

3.1 Construccin
Una coleccin de n documentos indexados por m trminos puede ser representada por una matriz A de
dimensin n x m, donde cada elemento aij es usualmente definido por una frecuencia ponderada del
trmino i en el documento j cuyo objetivo principal es mejorar el rendimiento en la recuperacin de
informacin; entendiendo como rendimiento la habilidad de recuperar informacin relevante y descartar informacin irrelevante. La siguiente figura (ver figura 1) muestra una matriz documento-trmino
simple, donde cada columna representa un trmino en la coleccin, cada rengln un documento y cada
celda o elemento de la matriz la ocurrencia del trmino en el documento.

Trmino 1

Trmino 2

Trmino 3

Documento 1

Documento 2

Documento 3

Documento 4

Figura 1 Matriz documento-termino simple

En ella podemos ver que el trmino 1 aparece en el documento 1 y 3, pero no en los otros dos documentos. Se demuestra as que cada rengln de la matriz de 43 puede ser representado en un espacio de
tres dimensiones.

Siguiendo la nomenclatura usada en [1], cada elemento aij de la matriz documento-termino A queda
definido como
,

donde

es el peso local del trmino i en el documento j, el cual mide la importancia de dicho trmino

en el documento,

el peso global del trmino i en la coleccin de documentos y

es el factor de nor-

malizacin para el j-simo documento. Los siguientes apartados contienen las frmulas ms populares
usadas en sistemas de indexado automtico. Usualmente los componentes principales son el factor trmino-frecuencia (TF) y el factor de frecuencia inversa del documento, inverse document frequency
(IDF).

3.2 Peso local


El peso local mide la importancia del trmino i en el documento j y slo depende de las frecuencias en
el documento y no de otros documentos.

14

3. Modelo de espacios vectoriales

Nombre

Frmula para

Binaria
Frecuencia del trmino
Frecuencia aumentada de trminos normali-

zados
Logaritmo
(

Logaritmo alternativo

Tabla 1 Frmulas de pesos locales

3.2.1

Binaria

Da a cada palabra del mismo documento la misma importancia, siendo especialmente til cuando el
nmero de veces que aparece la palabra no se considera importante [1] [2] [28].

3.2.2

Frecuencia del trmino

Esta frmula hace un conteo de los trminos en el documento, cuantas ms veces se produce un trmino t en el documento j es ms probable que t sea relevante para el documento. Es usado principalmente para favorecer a palabras comunes y documentos largos, aunque, por ejemplo, una palabra que
aparece diez veces en un documento no quiere decir que sea diez veces ms importante que una palabra
que aparece una sola vez [1] [2] [28].

Los pesos binarios y frecuencia del trmino son utilizados frecuentemente en consultas donde los trminos aparecen una o dos veces; ninguno de estos dos es mejor que el otro. Por un lado un peso binario
no hace diferencia entre los trminos que aparecen con frecuencia y por el otro lado el peso frecuencia
del trmino da demasiada importancia a trminos que aparecen muy a menudo.

3.2.3

Frecuencia aumentada de trminos normalizados

Esta frmula hace un conteo de los trminos que aparecen en el documento y al mismo tiempo da importancia adicional a trminos que aparecen con frecuencia. Esta frmula fue propuesta por [3] y est
parametrizada por una variable K que toma valores inferiores a 0.5. En este aspecto [3] sugiri que se
debe establecer la variable K con un valor bajo (comnmente 0.3) para documentos de gran tamao y el
valor ms alto (0.5) para los documentos ms breves [4]. Con esta frmula (ver tabla 1), el valor de
salida slo vara entre 0.5 y 1 para los trminos que aparecen en el documento. Al limitar los factores
15

Minera de textos en la red social Twitter

de TF a un valor mximo de 1.0, esta tcnica slo compensa el problema de la presencia de la frecuencia alta de trminos para la normalizacin. Esta frmula es especialmente til cuando no se usa con
alguna otra frmula de normalizacin en documentos muy extensos [1] [2] [28].

3.2.4

Logartmico

Algunos autores proponen a los logaritmos como los mejores porque minimizan el efecto de la frecuencia [1] [2] [28], partiendo del planteamiento de que un trmino que aparece diez veces en un documento no necesariamente es diez veces ms importante que un trmino que aparece una vez en ese
documento. La literatura propone a la normalizacin logaritmo y logaritmo alternativo como los ms
utilizados [28].

3.3 Peso global


Estas frmulas son utilizadas para medir la importancia de un trmino y se basan en la dispersin de un
trmino en particular en todos los documentos. En general, el peso global asocia valores ms bajos a
trminos que aparecen muy frecuentemente o en muchos documentos y es por esta razn que en teora
puede eliminar la necesidad de usar una lista de palabras de paro (una lista de palabras funcionales:
artculos, preposiciones, verbos auxiliares, etc) para eliminar las palabras ms comunes en el lenguaje,
aunque en la prctica este proceso no es complicado y se hace en la etapa de pre-procesamiento del
texto [1] [2].

Nombre

Frmula para

Sin cambios

Frecuencia inversa de documentos


(IDF)
Frecuencia cuadrtica inversa de
documentos
Frecuencia probabilstica inversa

de documentos

Tabla 2 Frmulas de pesos globales

16

Frecuencia global inversa GFIDF


Entropa

3. Modelo de espacios vectoriales

3.3.1

Sin cambios

til cuando solo se desea considerar la frecuencia de los trminos, cuando las frecuencias de los trminos son muy pequeas o cuando nos interesa destacar la frecuencia de los trminos en un documento [1]
[2] [28].

3.3.2

Frecuencia inversa de documentos (IDF)

Frecuencia inversa de documentos (IDF, por sus siglas en ingls) es una medida muy popular para medir la importancia de una palabra [2]. Definido como el logaritmo de la relacin del nmero total de
documentos n y el nmero de documentos k que contienen un trmino dado [1] [2] [28]. De esta manera las palabras raras o poco frecuentes tienen un valor IDF alto, mientras que las ms comunes, el IDF
ms bajo. Por ejemplo, para obtener un valor de 0 el trmino debe aparecer en cada documento y para
que aumente el valor IDF el nmero de documentos donde aparece un trmino debe disminuir con respecto al nmero total de documentos. He aqu un ejemplo para una coleccin de 10 000 documentos:

3.3.3

Otros esquemas IDF

3.3.3.1 Frecuencia cuadrtica inversa de documentos

Se utiliza raramente como una variante del IDF, y no es ms que la frmula de IDF elevada al cuadrado
[1].

3.3.3.2 Frecuencia probabilstica inversa de documentos

Asigna pesos que van desde

para trminos que aparecen en ms de un documento y

para trminos que aparecen en un solo documento [1] [2].

3.3.3.3 GFIDF

En esta frmula se calcula la relacin del nmero total de apariciones de un trmino en el documento
con el nmero de documentos en el que aparece [1] [2] [28].

17

Minera de textos en la red social Twitter

3.3.4

Entropa normalizada

La entropa se basa en las ideas de la teora de la informacin y es el esquema de ponderacin ms sofisticado. En esta medida se asignan pesos entre 0 y 1. Si un trmino aparece una vez en cada documento de la coleccin, entonces a ese trmino se le da una ponderacin de 0. Si un trmino aparece una vez
en un solo documento de la coleccin, entonces a ese trmino se le asigna un peso de 1. Cualquier otra
combinacin de las frecuencias dar un peso en algn punto entre 0 y 1. La entropa es un peso til
porque da mayor peso a los trminos que aparecen menos veces en un pequeo nmero de documentos.
As que esta frmula toma en cuenta la distribucin de los trminos sobre los documentos [1] [2] [28].

3.4 Normalizacin
El tercer componente del esquema de pesos es el factor de normalizacin, el cual se utiliza para corregir las discrepancias en la longitud de los documentos, para que de esta manera sean recuperados con
independencia de su longitud. Ver tabla 3.
Dos razones principales por lo que se requiere el uso de la normalizacin de pesos son:

Frecuencias de trminos muy altas: los documentos largos suelen utilizar los mismos trminos en repetidas ocasiones y como resultado los factores trmino-frecuencia pueden ser grandes
para documentos muy extensos [28].

Nmero de trminos: los documentos extensos tienen una gran cantidad de trminos y esto
aumenta las coincidencias entre una consulta y un documento largo, aumentando las posibilidades de recuperacin de documentos largos en preferencia sobre los documentos ms breves [28].

Nombre

Frmula para

Sin cambios

Normalizacin de coseno

Suma de pesos

Cuarta normalizacin

Normalizacin del peso mximo

Normalizacin de pivote nico


(
Tabla 3 Frmulas de normalizacin

18

3. Modelo de espacios vectoriales

3.4.1

Sin cambios

Se utiliza cuando se quiere dar nfasis a los documentos largos sobre otros ms cortos. Algunas veces
es usada en conjunto con la normalizacin trmino frecuencia aumentada como peso local.

3.4.2

Normalizacin de coseno

La normalizacin coseno cubre las dos necesidades por las cuales es importante implementar la normalizacin (frecuencias de trminos muy altas y el gran nmero de trminos), siendo el mtodo de normalizacin ms popular. Su objetivo es favorecer a documentos pequeos con trminos de pesos pequeos
contra documentos grandes.

3.4.3

Otros esquemas de normalizacin de coseno

Tanto la suma de pesos como la cuarta normalizacin son una variante de la normalizacin de coseno y
rara vez son utilizados [5].

3.4.4

Normalizacin del peso mximo

No es una normalizacin real. Aunque asigna pesos entre 0 y 1, esta frmula no toma en cuenta la distribucin de los trminos sobre los documentos. Es til cuando queremos dar importancia a los trminos ponderados ms relevantes dentro de un documento.

3.4.5

Normalizacin de pivote nico

El problema de la normalizacin de coseno es que a menudo toma valores muy altos. Cuanto mayor es
el valor de normalizacin, menor es la probabilidad de recuperar ese documento. La normalizacin de
pivote nico trata de corregir este problema favoreciendo a los documentos ms cortos [28].

En la formula,

es el nmero de trminos distintos en el documento j y gracias a la sugerencia de [28]

la pendiente se encuentra en 0.2 y el pivote se establece como el promedio de trminos distintos por
documento en una coleccin.

19

Minera de textos en la red social Twitter

3.5 Mtodos ms utilizados


Salton y Buckley [7] confirman que el mtodo ms utilizado de ponderacin de trmino documento se
obtiene con el producto de las funciones frecuencia del trmino (tf) y la frecuencia inversa de documentos (idf) con una normalizacin coseno.
(

)
(

))

Salton y Buckley tambin proponen la combinacin Frecuencia aumentada de los trminos normalizados en conjunto con IDF y normalizados por coseno como el mejor esquema de ponderacin de trminos.

(
((

)
(

))

Por el contrario, Basilio [8] asegura que da mejores resultados la combinacin de peso local logaritmo
y entropa como peso global.

)
)

Singal [28] propone los pesos de frecuencia del trmino y frecuencia inversa de documentos normalizados utilizando la normalizacin de pivote nico.

Donde

es el nmero de trminos distintos en el documento j, el pivote es el promedio de trminos

distintos por documento en una coleccin y la pendiente toma el valor de 0.2. [28] mostr la debilidad
de la funcin coseno como mtodo de normalizacin en documentos muy largos y propone la normalizacin de pivote nico con estos valores para la mayora de las aplicaciones.

20

4. Anlisis de grupos (clustering)

4 Anlisis de grupos (clustering)


Clasificar casos u objetos en diferentes grupos es una necesidad en el mundo en el que vivimos donde
hace falta poner orden y agrupar desde libros, organismos, personas, eventos, autos o, como en el presente trabajo, texto. El anlisis de grupos o clustering, es una coleccin de mtodos estadsticos que
permiten agrupar casos sobre los cuales se miden diferentes variables que representan rasgos o caractersticas de los textos [8]. As, casos que presenten caractersticas muy similares quedarn agrupados en
conjuntos llamados grupos o clusters, de manera que se diferencien respecto de los casos agrupados en
otros grupos. Estos grupos deben ser hallados sin informacin a priori y sern sugeridos nicamente
por la propia esencia de los datos.

Uno de los problemas fundamentales del anlisis de grupos es que no existe una definicin precisa de
grupo. Ello ha dado lugar al desarrollo de una gran cantidad de mtodos; as, podemos hablar de dos
grandes bloques de mtodos de agrupamiento: los jerrquicos y los no jerrquicos o particionales. En
los mtodos jerrquicos, la pertenencia a un grupo en un nivel o jerarqua condiciona la pertenencia a
grupos de nivel superior. Adems, se dividen en aglomerativos y divisivos o disociativos, segn la jerarqua, ya sea construida agrupando casos o bien dividindolos secuencialmente. Los mtodos particionales obtienen una nica particin de los datos mediante la optimizacin de alguna funcin adecuada. Estos mtodos son tambin conocidos como mtodos de optimizacin.

Los mtodos particionales utilizan una matriz de datos mientras que los jerrquicos parten de una matriz de distancias o similitudes.

4.1 Distancias y similitudes


Supngase un conjunto de datos X representado por una matriz m x n donde se conjuntan datos correspondientes a m casos con n variables. Cada rengln (caso) es un vector Xi = (x1, x2, x3,,xn) de observaciones de n variables. Ahora, teniendo en cuenta que nuestro objetivo principal es hallar grupos que
contengan casos similares, va a ser necesario medir las similitudes o bien las distancias que hay entre
los casos.

Concepto de distancia: Dados dos puntos Xi y Xj pertenecientes a

, se dice que se ha establecido

una distancia, o mtrica, entre ellos, si se ha definido una funcin d con las siguientes propiedades [18]
[19] [8].

1.

2.

21

Minera de textos en la red social Twitter

3.

La primera de las propiedades dice que todas las distancias deben ser no negativas. La segunda dice
que cada caso tiene una distancia de cero respecto a s mismo y la ltima de las propiedades establece
la simetra, es decir, la distancia que puede haber de un caso Xi a otro caso Xj es la misma que hay del
caso Xj al Xi. Obviamente, cuanto mayor sea la distancia (

), ms alejados estarn los casos Xj y

Xi .
Adems de lo anterior, la distancia debe verificar que si tenemos tres puntos, la suma de las longitudes
de dos lados cualesquiera del tringulo formado por los tres puntos debe siempre ser mayor que el tercer lado. Esta propiedad se conoce como la propiedad triangular. (

Como el nmero de casos es finito, es posible ordenar las interdistancias en una matriz simtrica de
, conocida como matriz de distancias sobre X:

Una matriz simtrica donde su diagonal principal son ceros.


Concepto de similitud: Dados dos puntos Xi y Xj pertenecientes a

, se dice que se ha establecido

una medida de similitud entre ellos si se ha definido una funcin s con las siguientes propiedades.

1.

2.
3.

(
(

)
)

La primera propiedad nos dice que la similitud debe ser no negativa y establece una escala entre cero y
uno. La segunda, que cada caso se parece a s mismo ms que a cualquier otro caso y la ltima establece la simetra. En cuanto a la interpretacin se puede decir que cuanto mayor sea la similitud
(

) ms parecidos sern los casos

. La matriz de similitud se construye de la misma forma

que la matriz de distancias, pero con la caracterstica de que la diagonal principal est compuesta de
unos.
(

22

4. Anlisis de grupos (clustering)

La idea de similitud en esta matriz est muy asociada a la distancia y en ocasiones puede ser ms fcil
de calcular la distancia. Existen varias formas de pasar de una matriz de similitud a una matriz de distancias sobre X y viceversa.
Trasformacin de una matriz de distancias a matriz de similitud: Dados dos casos

, la trans-

formada de Gower [9] asegura que se cumple la siguiente relacin:

En general, sobre cada caso de X se habrn medido n variables y por lo tanto cada caso puede ser representado como un punto

de

, de manera que cada

es el valor que toma la i-

sima variable medida sobre el caso p. Dependiendo de la naturaleza de las variables que se hayan considerado (variables continuas, binarias o mixtas) utilizan diferentes tipos de distancias o similitudes.
As pues, hay una enorme variedad de distancias y similitudes. En esta tesis slo se pretende dar una
introduccin al tema y exponer algunos de los mtodos ms utilizados, especficamente distancias para
variables continuas y similitudes para variables binarias.

4.1.1

Distancias para variables continuas

Supongamos que las n variables consideradas sean continuas. A continuacin se presentan algunos
ejemplos de distancias estadsticas entre dos casos de X representados por los puntos
y

1. Distancia euclidiana [18] [19] [21],


[
[

2. Distancia de Minkowsky [8][19] (

]
]

),

([

] )

Cuando q=2 sta se reduce a la distancia euclidiana. Cuando q=1, se obtiene la distancia tambin conocida como mtrica de Manhattan o distancia de Hamming.

23

Minera de textos en la red social Twitter

3. Distancia valor absoluto[8],

4. Distancia de Clark

] )

Cuando r=2, esta distancia corresponde a una distancia euclidiana normalizada. Cuando r=1 (corresponde a una de Hamming normalizada) se obtienen buenos resultados, pero implica mucha carga de
procesamiento. Hay que notar que es muy parecida a la distancia de Minkowsky. La diferencia entre
ambas es la ponderacin que realiza la distancia de Clark a partir del valor de los mismos atributos que
se estn evaluando. Este factor de ponderacin o normalizacin permite que comparativas numricas
entre atributos muy distantes se equilibren y por lo tanto mejoren los resultados [6].

4.1.2

Similitudes para variables binarias

Cuando todas las variables x1, x2,,xn de un caso Xi medidas sobre los casos son binarias, es decir, solamente toman valores 0 o 1, es ms fcil calcular las similitudes para luego transformar estas en distancias. Habitualmente, el valor 0 indica que la caracterstica en estudio no est presente, mientras que
el valor 1 indica la presencia de la caracterstica. Consideremos los casos Xi y Xj de algn conjunto de
casos X representados como

Para calcular la similitud entre ellos se usa la tabla que sigue (ver tabla 4). En ella se resume el recuento de las coincidencias de los valores que han tomado las n variables en los dos casos [8] [19]. Es decir:

24

Los dos casos han tomado el valor de 1 simultneamente en a variables,

Los dos casos han tomado el valor de 0 simultneamente en d variables,

El caso i ha tomado el valor de 0 mientras que el caso j ha tomado el valor de 1 en b variables,

El caso i ha tomado el valor de 1 mientras que el caso j ha tomado el valor de 0 en c variables.

4. Anlisis de grupos (clustering)

Caso i
1
Caso j

a+b

c+d

a+c b+d

Tabla 4 Recuento de las coincidencias de n variables binarias definidas para


dos casos i y j con n = a+b+c+d

Hay muchas maneras de definir similitudes con base en las cantidades a, b, c y d, pero slo se presentarn las tres ms habituales y una nueva medida conocida como energa textual [10] la cual no depende
de la tabla 4.

1. Similitud de Sokal-Michener [19] [8],

2. Similitud de Rogers-Tanimoto [19],

3. Similitud de Jaccard [8],

4. Energa textual

Para el anlisis de la energa textual es necesario tomar todos los casos en su conjunto. As pues, consideramos una matriz A donde cada vector rengln es un elemento sobre X, y donde los valores Aij representan la presencia o ausencia de la caracterstica.

25

Minera de textos en la red social Twitter

Para calcular la energa textual (esto es, la matriz de similitud) se utiliza la siguiente frmula:

Sin prdida de generalidad, es posible considerar las magnitudes de la matriz de energa, pues todos los
elementos obtenidos de la formula anterior son negativos. Esto es:

Cuya estructura cumple con la definicin de similitud, donde cada vector de X se parece ms a s mismo y menos con los otros vectores de X.

4.2 Mtodos jerrquicos


Los llamados mtodos jerrquicos tienen por objetivo reunir grupos para formar uno nuevo o bien separar alguno ya existente para dar origen a otros dos, de tal forma que, si se va efectuando este proceso
de aglomeracin o divisin sucesivamente, se minimice alguna distancia o bien se maximice alguna
medida de similitud.

Los mtodos jerrquicos se subdividen en aglomerativos y disociativos. Cada una de estas categoras
presenta una gran diversidad de variantes.

1. Los mtodos aglomerativos, tambin conocidos como ascendentes, comienzan el anlisis con
tantos grupos como casos haya. A partir de estas unidades iniciales se van formando grupos, de
forma ascendente, hasta que al final del proceso todos los casos tratados quedan englobados en
un mismo conglomerado.

2. Los mtodos divisivos o disociativos, tambin llamados descendentes, constituyen el proceso


inverso al anterior. Comienzan con un conglomerado que engloba a todos los casos tratados y, a
partir de este grupo inicial, a travs de sucesivas divisiones, se van formando grupos cada vez
ms pequeos. Al final del proceso se tienen tantas agrupaciones como casos han sido tratados.

4.2.1

Dendograma y jerarqua indexada

Las clasificaciones jerrquicas se pueden representar con un diagrama bidimensional conocido como
dendograma en el cual se puede seguir de forma grfica el procedimiento de unin de los grupos, mos-

26

4. Anlisis de grupos (clustering)

trando qu grupos se van uniendo, en qu nivel concreto lo hacen, as como el valor de la medida de
asociacin entre ellos (ndice de fusin ) cuando stos se agrupan.

Para poder entender este proceso necesitamos la definicin de jerarqua indexada.

Definicin: Una jerarqua indexada


grupos

sobre el conjunto de casos

y un ndice de fusin

1. Interseccin: Si
2. Unin: Si

de manera que C cumple los siguientes axiomas.

, entonces
, entonces

},
},
{

3. La unin de todos los grupos recoge todos los casos:

Y el ndice de fusin

la forman una coleccin de

cumple:

El primer axioma nos dice que, dados dos grupos de la jerarqua, o bien uno est contenido en el otro, o
bien son disjuntos. Esto nos garantiza que un mismo caso no pueda estar en dos grupos diferentes. El
segundo axioma dice que cada grupo es la unin de los grupos ms pequeos que estn contenidos en
l. El ndice de fusin

mide la heterogeneidad de cada grupo. Es decir, cuanto mayor sea el ndice de

un grupo, ms heterogneo ser ste.

Una vez establecida una jerarqua indexada sobre el conjunto de casos X, sta puede resumirse en un
dendograma y viceversa. Para ello representamos en el eje horizontal los elementos y simplemente se
dibuja el proceso de creacin de los grupos teniendo en cuenta el ndice de fusin .

4.2.2

Mtodo del mnimo

Este mtodo tambin se conoce como Single Linkage o vecino ms prximo.


Supngase que se ha construido una matriz de distancias D sobre el conjunto de casos X.

27

Minera de textos en la red social Twitter

1. Inicialmente cada caso forma un grupo. Es decir, la particin inicial es:


{{ } { }

{ }}

2. Supngase la distancia ms pequea en la matriz de distancias; esto es, i y j (


{
{

}). Entonces la unin de estos casos formar un nico nuevo grupo { }

{}

3. Se actualiza la matriz de distancias con la distancia entre dos grupos, definida como el mnimo
de las distancias entre los casos de cada grupo.
{

La matriz de distancias actualizada

de dimensin (n-1) x (n-1) est bien definida porque d es

mtrica.
{{ } { }

4. Considerando la particin obtenida en el paso anterior,

{ }}

se repiten los pasos 2 y 3 del algoritmo hasta que todos los casos de X formen un nico grupo.

Finalmente, se define el ndice de fusin

de la siguiente manera:
{}
(

Donde
so,

son grupos que se han creado en el proceso de aglomeracin. El resultado de este proce, es una jerarqua indexada.

Ejemplo: Supngase que se tiene la siguiente matriz de distancias D definida sobre


calcular paso a paso la jerarqua indexada que da el mtodo del mnimo.

||
(
Como dice el paso 1, en la particin inicial

)
cada caso forma un grupo; as,
{{ } { } { } { } { }}

28

}, se

4. Anlisis de grupos (clustering)

Se buscan los casos i, j ms cercanos. En este caso,

. Por lo tanto, son unidos

para formar el primer grupo {1,2}. Posteriormente, se definen las distancias de cualquier caso al nuevo
grupo {1,2}; as, por ejemplo,
{

=3
{

=7

Con lo que queda la nueva matriz de distancias:


{
(

)|

Como se indica en el algoritmo se deben repetir los pasos 2 y 3. Es decir, se buscan los dos casos que
tengan la distancia mnima. En este caso esta distancia mnima es

y posteriormente actua-

lizar la matriz de distancias, teniendo en cuenta el nuevo grupo {3,4}, as por ejemplo,
{

}{

}
{

=3
Y la nueva matriz queda:
{
) |{

}
}

Al examinar esta nueva matriz se observa que la distancia mnima es 3 =

}{

} , por lo tanto

forma un nuevo grupo {1,2,3,4} y actualizando la matriz de distancias.

{
)|

29

Minera de textos en la red social Twitter

Este proceso ha generado la siguiente jerarqua aglomerativa indexada:


{{ } { } { } { } { }}
{{

} { } { } { }}

{{

}{

} { }}

{{

} { }}

{{

}}

Finalmente se puede ver que el ndice de fusin

muestra la distancia a la que se han unido los grupos.

El dendograma correspondiente a esta jerarqua se puede ver en la siguiente figura.

Figura 2 Dendograma correspondiente al ejemplo del vecino ms prximo

30

5. Aplicaciones empresariales con tecnologa java EE

5 Aplicaciones empresariales con tecnologa java EE.


Esta tesis aborda la creacin de una aplicacin empresarial, pero, a qu se refiere el trmino de aplicacin empresarial? En esencia, las aplicaciones empresariales son aquellas que permiten a una empresa
gestionar sus actividades econmicas como planificacin de recursos, inventarios y catlogos de productos, preparacin de facturas, etc. Todo esto es un reto, y algunos factores que contribuyen a ese reto
y su complejidad son los siguientes [15]:

Diversidad de necesidades de informacin

En una empresa, la informacin es creada y utilizada por varios usuarios en formas diferentes, dependiendo de necesidades especficas. Es muy comn encontrar que cada actividad econmica procese la
informacin de un modo diferente.

Complejidad de procesos econmicos

La mayora de procesos econmicos de las empresas recaban informacin compleja, la procesan y la


distribuyen. Con mucha frecuencia, se enfrentan a una lgica compleja para recabar y procesar informacin. Esto tiene corno resultado unos requisitos tcnicos complejos y requisitos de arquitectura para
crear dichas aplicaciones.

Diversidad de aplicaciones

Debido a la compleja naturaleza de los procesos econmicos en las empresas, es frecuente encontrar
que una empresa desarrolle un gran nmero de aplicaciones, cada una de ellas creada en distintos momentos para satisfacer las necesidades de distintos procesos econmicos que fueron surgiendo. Esto
desemboca con frecuencia en la presencia de aplicaciones creadas utilizando diferentes arquitecturas y
tecnologas. Uno de los retos a los que se enfrentan las empresas hoy en da es la necesidad de conseguir que dichas aplicaciones se comuniquen entre s de modo que los procesos econmicos puedan llevarse a cabo sin interrupciones.
Estos factores son muy comunes y las empresas invierten grandes sumas de dinero para crear y gestionar aplicaciones que hagan frente a estos retos esperando cumplir los siguientes requisitos [15]:

Productividad de programacin

La adopcin directa de nuevas tecnologas es insuficiente si estas no son utilizadas adecuadamente


aprovechando su potencial al mximo y si no son integradas apropiadamente con otras tecnologas relevantes. De este modo, la habilidad para desarrollar y desplegar las aplicaciones tan rpida y efectiva31

Minera de textos en la red social Twitter

mente como sea posible es muy importante. Conseguir este objetivo puede resultar complicado debido
a la gran variedad de tecnologas y normas que requieren capacidades altamente desarrolladas; adquirirlas y mantenerse actualizado, adems, es un problema en s mismo. Adems, el cambio tan rpido en
las mismas normas dificulta la tarea de asegurar una unin eficiente entre las tecnologas.

Fiabilidad y disponibilidad

En Internet el tiempo de inactividad puede resultar fatal para una empresa. La habilidad para organizar
y poner en marcha sus operaciones de base Web, y mantenerlas activas es crucial. Y por si no fuera
suficiente, tambin debe ser capaz de garantizar la fiabilidad de sus transacciones econmicas de modo
que sean procesadas por completo y con exactitud.

Seguridad

Internet no slo ha aumentado exponencialmente el nmero de usuarios potenciales sino tambin el


valor de la informacin de una compaa, de modo que la seguridad de esta informacin se ha convertido en una preocupacin. Es ms, a medida que las tecnologas son ms avanzadas, las aplicaciones
ms sofisticadas y las empresas ms complejas, implantar un modelo de seguridad efectivo es cada vez
ms difcil.

Escalabilidad

La capacidad de una aplicacin para crecer y ajustarse a una nueva demanda, tanto en su operacin
como en el nmero de usuarios que atiende, es esencial. Esta condicin se cumple especialmente cuando consideramos que los usuarios potenciales de una aplicacin pueden ser de millones de usuarios
individuales, va Internet. Su capacidad para escalarse12 depende no slo de la habilidad para manejar
un amplio aumento en el nmero de clientes sino tambin del uso efectivo de los recursos de un sistema.

Integracin

La informacin se ha convertido en un punto clave para las empresas, mucha de esta informacin existe
como datos en sistemas de informacin viejos y obsoletos. Para maximizar la utilidad de esta informa-

12

Escalabilidad

es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el

margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para
estar preparado para hacerse ms grande sin perder calidad en los servicios ofrecidos. Wikipedia 2010-10-11, Escalabilidad, http://es.wikipedia.org/wiki/Escalabilidad.

32

5. Aplicaciones empresariales con tecnologa java EE

cin, las aplicaciones deben poder ser integradas en los sistemas de informacin ya existentes, lo cual
no es necesariamente una tarea fcil ya que las tecnologas actuales con frecuencia han avanzado hasta
superar algunos de estos sistemas. En este aspecto, la habilidad para combinar las nuevas y las viejas
tecnologas es fundamental para el desarrollo de las empresas de hoy en da.

Se puede decir entonces que las empresas estn buscando una tecnologa y una infraestructura permisiva que simplifique algunos de los temas tcnicos complejos. Y no es que estos problemas sean nuevos
para los desarrolladores, si no que resolverlos de forma rentable y exhaustiva sigue siendo algo crucial.
Se puede decir entonces que lo que se necesita es una plataforma con una infraestructura rica y numerosas posibilidades de arquitectura que al mismo tiempo prevea un rpido entorno de desarrollo.

5.1

Introduccin a la Tecnologa Java EE.

Java EE es una de las mejores soluciones encontradas hasta el momento para satisfacer las demandas
de las empresas de hoy en da. Java EE especifica tanto la infraestructura para gestionar sus aplicaciones, como los servicios API para construir sus aplicaciones.

La plataforma Java EE es esencialmente un entorno distribuido aplicacin-servidor, un entorno Java


que ofrece:

Un conjunto de varios API de extensin Java para construir aplicaciones. Estos API definen un
modelo de programacin para aplicaciones Java EE.

Una infraestructura de entornos de ejecucin para albergar y gestionar aplicaciones.

Las aplicaciones que puede desarrollar con estos dos elementos pueden ser programas para controlar
pginas Web o componentes para implementar transacciones complejas de bases de datos, o incluso
applets de Java, todos ellos distribuidos por la red.

5.1.1

Arquitectura

La plataforma Java EE est compuesta por cuatro contenedores, un conjunto de entornos de ejecucin
para gestionar los componentes de la aplicacin y destinados a proporcionar acceso a los API de Java
EE.

La figura 3 muestra la arquitectura de Java EE en trminos de sus contenedores y sus API [14]. Las
flechas representan los protocolos usados por un contenedor para acceder a otro.

33

Minera de textos en la red social Twitter

CONTENEDOR WEB
JSF

JSP

CONTENEDOR EJB
SERVLET

EJB

Java Mail

JPA

JTA

Conectores

JMS

Administracin

JAVA SE
HTTP

SSH

RMI/IIOP

CONTENEDOR DE
APLICACIONES
CLIENTE

JDBC

Aplicacin cliente
JDBC

JPA
Administracin
Metadatos de WS
Servicio web
JAXR
JAX-RS
JAX-WS
SAAJ
JAX-RPC

JAVA SE

Metadatos de WS

Applet

JACC

CONTENEDOR
APPLET

Servicio web

SAAJ

JAVA SE
HTTP
SSH

JASPIC

JAXR

JAX-RS

JAX-WS

JAX-RPC

JSTL

Java Mail

JSF

JPA

JTA

Conectores

JMS

Administracin

Servicio web

SAAJ

Metadatos de WS

JACC

JASPIC

JAXR

JAX-RS

JAX-WS

JAX-RPC

RMI
/
IIOP

Base
Base de
de datos
datos

JAVA SE

Figura 3 Arquitectura de Java EE

Esta arquitectura muestra cuatro contenedores [14] [15]:

Un contenedor Web para albergar servlets Java, filtros, pginas JSP y pginas JSF. Es responsable de
instanciar, inicializar e invocar servlets, apoyo a los protocolos HTTP y HTTPS y es utilizado para alimentar con pginas web a los navegadores web del cliente.

Un contenedor EJB para albergar componentes Enterprise Java Bean13. Da soporte a los componentes
que implementan la capa de lgica de negocio y ofrece servicios de control de acceso y seguridad, control de transacciones y ejecucin concurrente, etc.

Un contenedor applet para albergar applets14 Java.


13

Componentes de negocio que se ejecutan en el servidor. Permiten al programador abstraerse de los problemas generales

de una aplicacin empresarial (concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el desarrollo de la
lgica de negocio en s.
14

Un applet es una clase Java de cliente que se ejecuta normalmente en un navegador Web.

34

5. Aplicaciones empresariales con tecnologa java EE

Un contenedor de aplicaciones cliente para albergar aplicaciones Java estndar. Incluye un conjunto
de libreras, clases y otro tipo de archivos necesarios para brindar inyeccin, seguridad y servicio de
nombres a aplicaciones Java SE. Se puede comunicar tanto con el contenedor web como con el condenador de EJBs.

Cada uno de los contenedores proporciona un conjunto de entornos de ejecucin para los respectivos
componentes. Los componentes de Java EE tambin son denominados objetos gestionados, ya que estos objetos son creados y gestionados en el interior del entorno de ejecucin del contenedor.

En la figura anterior, los bloques verticales situados en la parte inferior de cada contenedor representa
los API de Java EE.

Adems del acceso a estos API a nivel infraestructura, cada contenedor tambin implementa el correspondiente API especfico a cada contenedor (API Java Servlet para el contenedor Web y el API EJB
para el contenedor EJB).

Los rectngulos (servlets, paginas JSP y los EJB) de la figura son los programas que se desarrollan y se
albergan en estos contenedores. En Java EE, estos programas se conocen como componentes de aplicaciones.

5.1.2

Componentes de aplicacin

En el entorno de ejecucin Java EE se definen cuatro tipos de componentes con los que es compatible
[14].

Los applets son aplicaciones grficas que se ejecutan en un navegador web. Estos usan los API Swing
para proporcionar potentes interfaces de usuario.

Las aplicaciones son programas que se ejecutan en un cliente. Son tpicamente GUIs
o programas de procesamiento por lotes que tienen acceso a todas las comodidades que proporciona
Java EE nivel medio.

Aplicaciones Web (servlets, servlets filtro, pginas JSP y JSF) se ejecutan en un contenedor web y responden a las peticiones HTTP de clientes web.

Enterprise Java Beans son componentes controlados por el contenedor para el procesamiento transaccional de la lgica de negocio.

35

Minera de textos en la red social Twitter

5.1.3

Los API de Java EE

Las aplicaciones distribuidas requieren acceso a una serie de servicios de empresa. Los servicios tpicos
incluyen procesamiento de transacciones, acceso a bases de datos, mensajera, multihilos (multithreading), etc. La arquitectura de java EE unifica el acceso a estos servicios en un API de servicios de
empresa. Sin embargo, en lugar de tener que acceder a estos servicios a travs de interfaces de propietario o no estndar, los programas de aplicacin en Java EE pueden acceder a estos API mediante el
contenedor.

Una plataforma Java EE tpica comercial (o servidor de aplicacin Java EE) incluye uno o ms contenedores y el acceso a los API de empresa viene especificado por la Java EE. Cabe mencionar que servidores de aplicacin Java EE no necesitan implementar estos servicios ellos mismos; los contenedores
slo deben proporcionar acceso a cada implementacin de servicio a travs de un API de Java EE [14]
[15] [29].

La especificacin de la plataforma Java EE incluye un grupo de extensiones estndar Java que cada
plataforma Java EE debe mantener:

Java Transaction API (JTA): Este servicio ofrece una interfaz para la demarcacin de transacciones
utilizadas por el contenedor y la aplicacin. Tambin proporciona una interfaz entre el administrador de
transacciones y el administrador de recursos a nivel de la interfaz del proveedor de servicio (SPI, por
sus siglas en ingls).

Java Persistence API (JPA): Es una API estndar para el Mapeo Objeto-Relacional (ORM, por sus siglas en ingls) que proporciona la conversin automtica de tablas relacionales a objetos en memoria;
cabe destacar que es solamente una especificacin, no un software utilizable y que requiere una implementacin particular. JPA utiliza el Java Persistence Query Language (JPQL) para consultar datos almacenados en la base de datos subyacente, un dialecto de SQL portable utilizado para evitar dependencias de SQL en aplicaciones Java.

Java Message Service (JMS): Permite comunicarse de forma asncrona a travs de mensajes, ya sea
punto a punto o Publicador/Suscriptor.

Java Naming and Directory Interface (JNDI): Es una API que provee interfaces estndar para localizar
usuarios, mquinas, recursos y objetos en la red a travs de servicios de Nombre y Directorio.

Java Mail: Es una API de Java que facilita el envo y recepcin de e-mail desde cdigo java.

36

5. Aplicaciones empresariales con tecnologa java EE

JavaBeans Activation Framework (JAF): Es una API que proporciona un framework15 de activacin
utilizado por otros paquetes. El desarrollador puede usar JAF para determinar el tipo de un trozo arbitrario de datos, acceder a l, descubrir las operaciones disponibles e instanciar el Bean apropiado para
ejecutar esas operaciones.

Procesamiento XML: La mayora de los componentes de Java EE pueden desplegarse con ayuda de los
descriptores de despliegue XML, para esto, las aplicaciones tienen que manipular a menudo dichos
documentos y en este sentido API Java de procesamiento de XML (JAXP) presta apoyo con ayuda de
las API SAX16 y DOM17, as como para XSLT.

Java Connector Architecture (JCA): Define una arquitectura estndar para conectar la plataforma Java
EE con recursos externos y sistemas empresariales de informacin (EIS, pos sus siglas en ingles) heterogneos. Pudiendo ser desde bases de datos, mainframes o programas de Planificacin de Recursos
Empresariales (ERP, por sus siglas en ingls).

Web Services: Java EE proporciona soporte para SOAP18 y servicios web RESTful19. Java EE incluye
la API Java XML Web Services (JAX-WS) en sustitucin de la API de Java para XML basado en
RPC20 (JAXRPC) que proporciona soporte a servicios Web utilizando el protocolo SOAP / HTTP y la
API Java REST Web Services (JAX-RS) que proporciona soporte para servicios web utilizando la arquitectura REST21.

Servicios de gestin: Java EE define APIs para la gestin de los contenedores y servidores utilizando
EJBs administrados especiales. El Java Management Extensions (JMX) API se utiliza para proporcionar apoyo a la gestin.

15

Se entiende por framework, un conjunto estandarizado de conceptos, prcticas y criterios para enfocar un tipo de pro-

blemtica particular.
16

SAX (Simple API for XML) es un API de anlisis del acceso serial para el XML.

17

DOM (Modelo de objetos de documento XM) es una representacin donde se genera un rbol jerrquico en memoria del

documento o informacin en XML de un documento XML


18

SOAP (Simple Object Access Protocol) es un protocolo estndar que define cmo dos objetos en diferentes procesos

pueden comunicarse por medio de intercambio de datos XML.


19

Los

RESTful

Web

Services

son

servicios

basados

en

una

tcnica

de

arquitectura

software llamada REST.


20

Protocolo que permite a un programa ejecutar cdigo en otra mquina remota sin tener que preocuparse por las comuni-

caciones entre ambos.


21

REST (Representational State Transfer) es un estilo de arquitectura que se utiliza, como modelo en los

sistemas Web distribuidos. No es un estndar, sino un enfoque que muestra cmo desarrollar y proporcionar servicios en
Internet.

37

Minera de textos en la red social Twitter

Servicios de seguridad: Java Authentication and Authorization Service (JAAS) permite a los servicios
autentificarse y hacer cumplir los controles de acceso a los usuarios.
Servicio de despliegue: La implementacin de la especificacin Java EE define un contrato entre las
herramientas de despliegue y los productos Java EE para estandarizar el despliegue de aplicaciones.

5.1.4

Tecnologas de comunicacin

Proporcionan los medios de comunicacin para los diversos componentes y servicios de la aplicacin
Java EE.

5.1.4.1 Protocolos de Internet

Las solicitudes de un cliente y las respuestas de un servidor se comunican a travs de tres protocolos
principales.

HTTP o Hypertext Transfer Protocol es un protocolo genrico que funciona sobre una base solicitud/respuesta. Un cliente enva una solicitud al servidor, URI (Uniform Resource Identifier) y versin
de protocolo, seguido por un mensaje tipo MIME que contiene notificadores de solicitud, informacin
del cliente y posible contenido de cuerpo en una conexin con un servidor. El servidor a su vez responde con una lnea de estado seguida por un mensaje de tipo MIME que contiene informacin del servidor, meta informacin de entidad y posible contenido entidad-cuerpo [15].

TCP (TransmissionControl Protocol) sobre IP (Internet Protocol) son realmente dos protocolos distintos, que se combinan normalmente en una nica entidad. IP es el protocolo responsable de asegurar que
los datos son recibidos en ambos extremos de la comunicacin a travs de Internet. TCP es el protocolo
que registra los paquetes y certifica que son reunidos en el mismo orden en el que fueron divididos y
sin errores [30].

SSL (Secure Sockets Layer ) utiliza la criptografa para cifrar el flujo de informacin entre el cliente y
el servidor. Tambin proporciona un medio para que ambas partes puedan autentificarse entre s. Secure http (HTTPS) se distingue normalmente del http corriente sin cifrar al ser servido en diferente nmero de puertos [31].

5.1.4.2 Protocolos de objeto remoto

En aplicaciones donde los componentes se distribuyen normalmente en diferentes niveles y servidores,


se requieren algunos mecanismos para utilizar los componentes de forma remota, dejando que el cliente
ignore que el componente no es local respecto a s mismo.
38

5. Aplicaciones empresariales con tecnologa java EE

Remote Method Invocation (RMI) es uno de los mecanismos primarios en las aplicaciones de objetos
distribuidos. Permite utilizar interfaces para definir objetos remotos [32].

RMI-IIOP permite invocar objetos remotos de forma independiente del protocolo subyacente [14].

5.1.5

Java EE para cualquier aplicacin?

El uso de Java EE libera al programador de la necesidad de implementar servicios de bajo nivel, tarea
que queda para los implementadores de plataformas Java EE (Bea, Oracle, JBoss, etc.). Es estndar,
independiente de la plataforma y puede comunicarse sin ningn tipo de problema con otras aplicaciones creadas en otros lenguajes diferentes de Java y viceversa. No obstante, requiere del uso de buenas
prcticas y patrones de diseo para obtener resultados aceptables, lo que se traduce en programadores
expertos en Java EE, siendo inaccesible a programadores Java. Dicho de otro modo, el desarrollo de
una aplicacin java EE se convierte en una pendiente empinada durante el desarrollo, pero como se ha
visto en el presente captulo es una buena opcin a mediano y largo plazo para aplicaciones medianas y
grandes, pensando en trminos de usuarios potenciales y escalabilidad.

39

Minera de textos en la red social Twitter

6 Implementacin y resultados
6.1 Presentacin general del sistema
El sistema que se ha implementado est constituido por un conjunto de aplicaciones Java EE que trabajan de forma conjunta para realizar individualmente las tareas de obtencin de gorjeos, preprocesamiento, clasificacin, agrupamiento, presentacin y control de grupos previamente calculados.

La siguiente figura muestra la organizacin y flujo de los datos del sistema en conjunto:

Poblador DB
Consulta de los
gorjeos
(Twitter4J)

Stemming

Procesamiento de gorjeos

tokenizacin

Eliminar
palabras de paro

Representacin
vectorial de los
gorjeos

Calculo de la energa
textual

Algoritmo de
agrupamiento

Calculo de la distancia
energetica

Preprocesamiento

Envo asncrono de grupos generados

Internet

Temas iniciales
DB

Clasificacin

Presentacin de datos

Recepcin de grupos generados


e insercin a la base de datos

Temas DB

Control de crecimiento
Manejo de la informacin de das
pasados

Presentacin de los datos a


peticin del usuario

Figura 4 Arquitectura del sistema propuesto

El primer sistema, llamado Poblador DB, es el encargado de obtener los gorjeos al hacer consultas al
servidor de Twitter, hacer un preprocesamiento a los gorjeos y realizar una clasificacin de los gorjeos
en temas previamente seleccionados.

Un segundo sistema etiquetado con el nombre de Procesamiento de gorjeos es el encargado de hacer


una representacin vectorial para cada conjunto de gorjeos previamente clasificados en temas dentro de
la base de datos Temas iniciales DB, de procesarlos para generar una matriz de similitud entre documentos, de agruparlos y finalmente de entregarlos a otra aplicacin Java EE en forma de grupos (temas
seleccionados previamente) y subgrupos (grupos generados por el algoritmo de agrupamiento).
40

6. Implementacin y resultados

Presentacin de datos es el tercer subsistema encargado de recibir dichos grupos y subgrupos para su
adicin a la base de datos etiquetada como Temas DB y resolver las peticiones de informacin de los
usuarios respecto a los temas y subtemas de la base de datos.

Finalmente el subsistema Control de crecimiento es el encargado de eliminar gorjeos considerados como antiguos, para evitar el almacenamiento innecesario de informacin. En la seccin de trabajo futuro
se detalla el potencial de este sistema.

En las siguientes secciones se detallan dichos sistemas y subprocesos.

6.2 Obtencin de los gorjeos y preprocesamiento


Tanto la obtencin de gorjeos como el preprocesamiento se implementaron en una sola aplicacin Java
EE (Poblador DB), esto debido principalmente a la necesidad de una clasificacin por temas. La idea
es que no todo lo que se diga en Twitter es de inters en este sistema.

Esto es, adems de que es conveniente ofrecer la posibilidad de restringir el domino de los gorjeos, hay
opiniones de que mucho de lo que se genera no sirve. Por ejemplo, la empresa de investigacin de mercado Pear Analytics, donde se analiz el contenido de 2,000 gorjeos durante un periodo de 2 semanas
[16]. La empresa consider que palabras sin sentido, fue la categora ms importante de los contenidos
de Twitter, que componen 811 gorjeos (40.55%) del nmero total de mensajes incluidos en la muestra22.

Los mensajes de conversacin representaron un total de 751 gorjeos (33%); los tweets repetidos, es
decir, los retweets (RT) representaron 174 gorjeos (8.70%); la autopromocin de empresas forma 117
gorjeos (5.85%); los mensajes basura conforman 75 gorjeos (3.75%), y gorjeos con noticias de medios
de comunicacin representaron 72 (3,60%).
En este contexto, para la clasificacin se decidi insertar en la base de datos de Temas iniciales DB
un conjunto de temas asociados a una lista de palabras que lo representan, para filtrar lo que seran gorjeos con contenido irrelevante desde el punto de vista de los temas de inters que se analizan.

A continuacin se detalla cada uno de los subprocesos realizados por la aplicacin Poblador DB

22

La empresa no hizo pblicos los criterios que utiliz para determinar que una palabra no tiene sentido.

41

Minera de textos en la red social Twitter

6.2.1

Obtencin de gorjeos

Para la obtencin de los gorjeos (tweets) la aplicacin hace uso del servicio de temporizador de Java
EE (timerservice) que permite la ejecucin de procedimientos en intervalos de tiempo definidos por el
desarrollador. Con dicho servicio el sistema realiza las consultas al servidor de Twitter en un determinado intervalo de tiempo (para el presente trabajo se realizan cada 10 segundos) con los parmetros de
ubicacin geogrfica, radio en kilmetros y la cantidad de gorjeos que se desean obtener.

Las consultas se realizan en conjunto con la API Twitter4J, una librera de cdigo abierto escrita en
lenguaje Java que interacta con la API de Twitter. Los gorjeos obtenidos no slo contienen los 140
caracteres de los mensajes publicados, sino tambin datos como: quin lo publico, el identificador (id)
de todos sus seguidores, a qu usuario fue dirigido dicho mensaje e incluso datos relevantes para el
presente trabajo, como lo son la ubicacin geogrfica o el momento exacto en que se gener dicho gorjeo.

Por lo tanto, la entrada del sistema se compone de una coleccin de gorjeos que contienen entre otras
cosas el mensaje publicado por un usuario.

La figura 5 representa un conjunto de gorjeos.

G1: Casi se me haba olvidado el trfico matutino de la ciudad capital!

G2: Me dispongo a salir a la ciudad a sufrir del trfico, me dirijo a marina nal desde nter a ver
cuanto tiempo hago

G3: Y esto, seoras y seores, es el caos vial Bicentenario

G4: Buenos dias! Miercoles de plaza... y de cierres viales con motivo del Bicentenario, tardaran
100aos en llegar a su destino

G5: No bueno k trafico en esta ciudad ossh !!!

Figura 5 Ejemplo de gorjeos

42

6. Implementacin y resultados

Con el objetivo de enfocar la atencin al mensaje de texto contenido en el gorjeo publicado en Twitter,
en el presente trabajo se hace referencia al gorjeo como el mensaje y a sus atributos.
Hay que tener en cuenta que la misma naturaleza de Twitter hace que estos mensajes contengan una
gran cantidad de trminos impredecibles, como faltas ortogrficas y mezcla de maysculas con minsculas. Es importante considerar lo anterior puesto que para una computadora trminos como lo son
trafico, trfico y Trfico son totalmente diferentes, lo que hace necesario un mtodo para facilitar
el procesamiento de los mensajes y unificacin de trminos .

La siguiente seccin describe el tratamiento por el que pasan los gorjeos para facilitar su representacin
y procesamiento.

6.2.2

Preprocesamiento

Esta etapa est conformada de seis transformaciones aplicadas a cada uno de los gorjeos para representarlos slo por tokens, un conjunto de trminos en minsculas, truncados (para eliminar las flexiones),
libres de puntuacin y separados por espacios en blanco para as reducir el tamao del espacio vectorial.

Como primera transformacin se agrega un atributo extra al gorjeo, dicho atributo es una copia del
mensaje original publicado por el usuario y es en ste donde se hacen las siguientes transformaciones.

La segunda transformacin extrae temporalmente las direcciones URL, ya que stas se deben considerar como una sola palabra y no deben sufrir ningn cambio.

En la tercera transformacin se cambia todo el mensaje a minsculas y elimina los signos de puntuacin y diacrticos con el objetivo de unificar smbolos, como por ejemplo U, y en el smbolo
u.

Posteriormente una cuarta transformacin elimina las palabras con poca informacin semntica haciendo pasar el gorjeo por una comparacin con una lista de paro; es decir, una lista de palabras funcionales
(preposiciones, determinantes, conjunciones) y palabras frecuentemente utilizadas en el contexto del
sistema.

La quinta transformacin reduce las palabras a sus bases o races mediante el algoritmo de Porter [17].
Dicha transformacin es una tcnica muy utilizada en el rea de recuperacin de informacin, ya que
unifica palabras como efecta, efectuar, efectuaron, efectuarse en un solo smbolo efectu
que es su raz, con el objetivo de mejorar la relacin de gorjeos semnticamente parecidos.

43

Minera de textos en la red social Twitter

Finalmente la sexta transformacin inserta de nuevo la direccin URL si es que fue extrada en la primera transformacin considerndola as como un token ms.

La figura 6 muestra los gorjeos despus de pasar por todas las transformaciones.

G1: habi olvid trafic matutin ciud capital

G2: dispong sal ciud sufr trafic dirij marin nal inter ver

G3: senor senor caos vial bicentenari

G4: buen dias miercol plaz cierr vial motiv bicentenari tardar 100an lleg destin

G5: buen trafic ciud ossh

Figura 6 Resultado de aplicar las transformaciones a los gorjeos

Con todas estas transformaciones se reduce el nmero de palabras, mejorando as las coincidencias
entre todos los gorjeos, pero, por ejemplo, no se hace ninguna diferenciacin entre nombres propios o
comunes, o los trminos que cambian de sentido segn el contexto.

6.2.3

Clasificacin

Con los tokens obtenidos durante el preprocesamiento se hace una bsqueda en la base de datos Temas Iniciales DB en la que se encuentran almacenados un conjunto de trminos enraizados23 igualmente por el algoritmo de Porter. Cada uno de estos trminos se asocia a otro conjunto de trminos que
conforman un tema en comn, consiguiendo as que los gorjeos que contengan palabras referidas o
relacionadas a un tema sean clasificados en uno o varios de los temas en la base de datos.

El lector se preguntar, cules son esos temas y que trminos los relacionan? La respuesta a esta pregunta es: los temas y las palabras que el usuario desee. El sistema se ha pensado con la idea de ser flexible a los temas de inters. Ver apndice C.

23

Palabras truncadas donde se eliminan los sufijos .

44

6. Implementacin y resultados

6.3 Procesamiento de los gorjeos


La aplicacin Java EE encargada del procesamiento realiza un tratamiento al conjunto de gorjeos para
facilitar la generacin de un espacio vectorial que sea representativo para el agrupamiento, el clculo de
la distancia entre los gorjeos a partir de una matriz de similitud conocida como energa textual y la generacin de grupos semnticamente similares.

6.3.1

Construccin del espacio vectorial

En esta etapa se construye una matriz concebida como un arreglo de vectores que representan los gorjeos. El nmero de renglones est determinado por el nmero de gorjeos en dicho tema y el nmero de
columnas por el tamao del diccionario de palabras graficas que aparecen por lo menos dos veces en
todo el conjunto de gorjeos. La generacin de la matriz documento-trmino se lleva a cabo iniciando
una matriz de ceros de n x m donde n es el nmero de gorjeos y m el nmero de palabras grficas en el
diccionario. Ya creada dicha matriz, el conjunto de gorjeos es recorrido uno por uno y un valor de 1 es
insertado a la matriz documento-trmino en la posicin correspondiente a la entrada de dicha palabra
en el diccionario de palabras grficas.

G1: habi olvid trafic matutin ciud capital

G2: dispong sal ciud sufr trafic dirij marin nal inter ver

G3: senor senor caos vial bicentenari

G4: buen dias miercol plaz cierr vial motiv bicentenari tardar 100an lleg destin

G5: buen trafic ciud ossh

Figura 7 Palabras tomadas en cuenta para el espacio vectorial

45

Minera de textos en la red social Twitter

trafic ciud vial bicentenari buen


G1

G2

G3

G4

G5

Tabla 5 Espacio vectorial para el ejemplo de 5 gorjeos

La matriz resultante es una matriz con peso local binario, peso global sin cambios y ningn tipo de
normalizacin, pero esto no impide realizar un anlisis ms sofisticado con valores de frecuencia del
trmino y otras combinaciones. La razn principal radica en que el clculo de la energa textual es solamente con una matriz binaria [10] y que dicho mtodo resulta computacionalmente menos costoso
que otras tcnicas.

6.3.2

Clculo de la energa textual

Una vez generado el espacio vectorial surge la necesidad de tener una representacin que sirva de mecanismo para conocer grupos semnticos, es decir, qu tan similares son unos gorjeos de otros. Se eligi como medida de similitud la energa textual propuesta en [10], la cual ofrece numerosas ventajas
como la rapidez para realizar su clculo, su eficacia y que desde sus inicios fue concebida como una
aproximacin para las relaciones entre documentos.

Dado que el algoritmo de agrupamiento conocido como mtodo del mnimo requiere una matriz de distancias, a continuacin se deduce la medida de distancia energtica a partir de la frmula de energa
textual.

Considrese la matriz documento-trmino X

La matriz de energa textual (matriz de similitud) E asociada a X se calcula como:

46

6. Implementacin y resultados

Que como se mencion en el captulo 4 es equivalente a decir que:

Donde E es una matriz de n x n dada por:

Al ser la energa textual una medida de similitud, la mxima energa (la mayor magnitud) se encuentra
en la diagonal principal, lo que significa que un documento es ms parecido a s mismo que otros documentos.

Una vez construida la matriz de energa textual, basta usar la transformada de Gower [9] para calcular
la distancia energtica entre gorjeos.

De esta forma, se tiene la posibilidad de utilizar un algoritmo de agrupamiento para generar grupos
utilizando la distancia entre gorjeos como criterio.

En algunas ocasiones se desea que las distancias estn normalizadas y que tengan un rango de [0,1] y
para ello slo hace falta toma la matriz de distancia energtica y dividir cada uno de sus elementos entre el valor mximo. Esto es:

)(

Hay que aclarar que la normalizacin no tiene efecto sobre los resultados pero consume tiempo de
cmputo innecesario, por lo que no se usa en el presente trabajo.

Continuando con el ejemplo, es posible calcular a partir de la matriz documento-trmino la energa


textual y, de sta, la matriz de distancia energtica.
47

Minera de textos en la red social Twitter

Sea la matriz documento-trmino calculada anteriormente:

Con la que es posible calcular la matriz de energa textual:

Aplicando la transformada de Gower se calcula la matriz de distancias entre documentos o distancia


energtica (ntese que, como se dijo arriba, no est normalizada):

Esta matriz es necesaria para el algoritmo de agrupamiento jerrquico que en cada paso une dos grupos
cuyos elementos ms cercanos tienen la distancia mnima.

6.3.3

Agrupamiento de gorjeos

Una vez obtenida la matriz de distancia energtica el sistema genera grupos usando un algoritmo de
agrupamiento jerrquico conocido como mtodo del mnimo.

Este algoritmo jerrquico ofrece la ventaja de no requerir especificacin alguna sobre los grupos deseados, pero es necesario especificar un umbral de corte por distancia sobre el dendograma. Este umbral
indica la distancia mxima que puede haber entre dos grupos. Por ejemplo, si el umbral es de 10 unidades significa que aquellos grupos cuya distancia sea menor a 10 sern unificados. El algoritmo de agrupamiento parte de la idea de que cada gorjeo es un grupo y se agrupan los ms cercanos hasta llegar a
ser un solo grupo, por lo que es necesario especificar dicha distancia de corte. En el caso del presente
trabajo no se toman en cuenta los grupos de un solo gorjeo ya que la intencin es encontrar gorjeos que
compartan rasgos similares.

48

6. Implementacin y resultados

Realmente no se conoce por el momento un mtodo capaz de calcular la distancia de corte ptima pero
en general se analizan resultados obtenidos con distintos valores de

hasta obtener resultados acepta-

bles. En el presente trabajo eso no es posible puesto que una distancia de corte ptima para un conjunto
de datos no es necesariamente la mejor para un nuevo conjunto de gorjeos entrante al sistema, por lo
que la distancia es seleccionada arbitrariamente como la mitad del ndice de fusin mximo ( donde
todos los gorjeos se fusionan en un solo grupo) o incluso niveles inferiores a la mitad del dendograma,
consiguindose as un nmero variable de grupos generados y muy parecidos entre s.

Para el ejemplo que estamos manejando, los grupos generados son los siguientes (ver figura 8):

GRUPO 1:

G1: Casi se me haba olvidado el trfico matutino de la ciudad capital!

G2: Me dispongo a salir a la ciudad a sufrir del trfico, me dirijo a marina nal desde nter a
ver cuanto tiempo hago

G5: No bueno k trafico en esta ciudad ossh !!!

GRUPO 2:

G3: Y esto, seoras y seores, es el caos vial Bicentenario

G4: Buenos dias! Miercoles de plaza... y de cierres viales con motivo del Bicentenario, tarda-

ran 100aos en llegar a su destino

Figura 8 Grupos generados para gorjeos de ejemplo

Ya generados los grupos ste subsistema hace uso del Java Message Service (JMS), un estndar de
mensajera para crear, enviar, recibir y leer mensajes permitiendo comunicacin sncrona y asncrona.
En el presente trabajo se utiliz JMS para hacer una comunicacin con el subsistema Presentacin de
datos con un modelo punto a punto. Este modelo asegura la llegada del mensaje, ya que si el receptor
no est disponible para aceptar el mensaje o atenderlo, de cualquier forma se le enva el mensaje y este

49

Minera de textos en la red social Twitter

entra en una estructura conocida como pila. Los mensajes de esta pila se reciben despus segn hayan
sido enviados, dando como resultado la no dependencia de ambos y la mejora en tiempo de procesamiento.

6.4 Presentacin de datos


El subsistema Presentacin de datos es el encargado de recibir los grupos de gorjeos, de hacer un conteo de los trminos ms utilizados y de guardarlos en la base de datos Temas DB con la fecha y la hora
en que ingresan al sistema para posteriormente ser consultados por la capa Web de este subsistema.

Al recibir los mensajes del JMS se toman cada uno de los grupos (subtemas generados por el algoritmo
de agrupamiento) que van llegando y se hace un conteo de los trminos ms utilizados para cada uno de
ellos a fin de mostrar al usuario los trminos con los que fueron unidos los gorjeos a dicho grupo. Ya
por ltimo se guardan los grupos generados en la base de datos temas DB donde son asociados a los
temas definidos a priori para ser consultados por los usuarios.
La figura 9 muestra la ventana principal de navegacin, del lado derecho (ver apartado Selecciona el
tema de inters) se enlistan los temas que se estn actualizando constantemente y el nmero de grupos
que conforman a ese tema especfico en un determinado lapso de tiempo y debajo del mismo (ver apartado Selecciona un periodo de tiempo) es posible navegar por grupos generados tiempo atrs por el
sistema.

50

6. Implementacin y resultados

Figura 9 Pgina de inicio

Tambin es posible consultar los resultados obtenidos por el algoritmo de agrupamiento para un conjunto de pruebas (ver captulo: anlisis de resultados del presente trabajo).

Al seleccionar un tema de inters el sistema imprime un conjunto de tablas donde cada una representa
un subtema (ver figuras 10 y 11); en cada una de las tablas se muestra la imagen del usuario de Twitter
y el gorjeo en s mismo.

En la cabecera de cada una de las tablas se imprimen los 5 trminos truncados con por lo menos dos
apariciones en subconjunto de gorjeos, o lo que es lo mismo, los trminos ms relevantes y por los cuales se fusionaron los gorjeos en la etapa de agrupamiento.

51

Minera de textos en la red social Twitter

Figura 10 Presentacin de datos para el tema Homicidios

52

6. Implementacin y resultados

Figura 11 Continuacin de presentacin de datos para el tema Homicidios

Tambin es posible imprimir el contenido de los gorjeos como fueron publicados (gorjeo original),
su representacin despus de la etapa de preprocesamiento (gorjeo procesado) e incluso imprimir
solo los trminos que lo componen y que corresponden al diccionario de trminos para el procesamiento de los gorjeos (gorjeo vectorizado). Ver figuras 12,13 y 14.

Figura 12 Presentacin de gorjeo original

53

Minera de textos en la red social Twitter

Figura 13 Presentacin de gorjeo procesado

Figura 14 Presentacin de gorjeo vectorizado

El subsistema Presentacin de datos implementa los componentes de vista y controlador con ayuda del
framework de Java Server Faces (JSF), tecnologa basada en servlets y JSPs pero que extiende sus funcionalidades. JSF se enfoca en la vista del patrn MVC y utiliza componentes grficos en el lado del
servidor, procesa peticiones estndares HTTP y adems permite a sus propios componentes comunicarse entre s.

Algunas de las ventajas de usar JSF fueron:

Internalizacin24 del sistema: esto quiere decir que el sistema se muestra en otros idiomas dependiendo de la configuracin del usuario.

Maquetado: se utiliza una tecnologa conocida como facelets permitiendo cambiar la apariencia
con tan solo realizar una modificacin a la plantilla de presentacin.

Manejo de sesiones: El sistema recuerda las acciones del usuario para mantener la vista de la
aplicacin.

Facilidad de integracin: JSF es la manera ms natural para la presentacin de los datos, siendo
tan simple que basta con hacer llamadas a procedimientos de la lgica de negocios para que sea
actualizada la vista.

24

Del termino ingles internationalization, utilizado por desarrolladores web para referirse al soporte multilenguaje de una

aplicacin web.

54

6. Implementacin y resultados

6.5 Control de crecimiento


El subsistema Control de crecimiento es el encargado de administrar la base de datos Temas DB. Hay
que recordar que son datos trados del internet cada 15 segundos. Por lo tanto, el nmero de gorjeos
almacenados es increblemente alto. Para el alcance del presente trabajo, este subsistema slo se encarga de eliminar grupos de gorjeos que hayan superado un tiempo razonable en el sistema, por ejemplo
un mes; lo que es algo trivial y no necesita mayor explicacin, puesto que slo se trata de eliminar informacin de la base de datos Temas DB.

La importancia real de este subsistema se puede ver desde el punto de vista de minera de textos, desde
l se ve qu hacer con dicha informacin, qu ms presentar o qu estadsticas obtener a partir de grupos ya generados, puntos que se tomarn en cuenta en el apartado de conclusiones y trabajo futuro.

55

Minera de textos en la red social Twitter

7 Anlisis de resultados
La variedad de formas en las que se puede presentar la informacin proveniente de Twitter hace que
resulte poco conveniente crear datos propios debido a que no reflejaran la estructura verdadera de un
gorjeo, por ello se opt por ejecutar el sistema Poblador DB el tiempo necesario para contar con datos
suficientes para que los resultados sean representativos.

El anlisis se realiz para los tres temas definidos actualmente en el sistema (Ver tabla 6).

Tema

Numero de gorjeos recuperados

Trfico

313

Homicidios

100

Asaltos

365

Total

778

Tabla 6 Temas y gorjeos recuperados para el anlisis.

La recuperacin de gorjeos se hace, como se explic en captulos anteriores, a partir de una lista de
trminos truncados que se relacionan con cada uno de los temas antes listados (Ver apndice C).

Como ejemplo podemos citar el tema de trfico vehicular o simplemente trfico donde los gorjeos contienen alguno de los trminos truncados que se relacionan con trfico, como lo son trafic- (trfico),
congestion- (congestin, congestionamiento, etc), vialid- (vialidad, vialidades, etc), inund- (inundacin,
inundaciones, etc), manifest- (manifestacion, manifestaciones, etc), march- (marcha, marchas, etc.),
entre otros.

Es claro que un gorjeo que contenga alguno de estos trminos truncados no necesariamente se va a relacionar con el trfico. Por ejemplo en el gorjeo:
Extrae mucho el miercoles de cine y trafico de alimentos ojala pronto todo se arregle para biemmmm jajaja creo haber visto indicios

Es evidente que no est relacionado con el tema de trfico vehicular, pero se apuesta a que la cantidad
de gorjeos no relacionados al tema son pocos y que al calcular la distancia energtica sobre ellos se
alejarn lo suficiente para ser agrupados en niveles superiores, caracterstica propia de un algoritmo de
agrupamiento jerrquico.

56

7. Anlisis de resultados

Como anlisis cualitativo se realiz la lectura de los grupos generados. Para esto se ejecut el subsistema Procesamiento de gorjeos y se report el dendograma normalizado25 del agrupamiento jerrquico
para grupos con por lo menos dos gorjeos, dejando fuera gorjeos que no se alcanzan a incorporar en
algn grupo en un determinado ndice de fusin. Con el fin de que el lector no se sorprenda por una
aparente aparicin de nuevos gorjeos unindose a un grupo o formando uno nuevo, se invita a que se
d lectura del grupo final generado, el cual contiene todos los gorjeos que en un principio son grupos
individuales y que han llegado a fusionarse todos en uno solo.

Los archivos generados para el anlisis tienen la siguiente estructura:

------------- Grupos para: Nivel=N, Distancia=X-------------

/////////////////////////////////// Nmero de gorjeos: Y ///////////////////////////////////


IdGorjeo: gorjeo

/////////////////////////////////// Nmero de gorjeos: Y ///////////////////////////////////


IdGorjeo: gorjeo

W gorjeos en: Z grupos:

Las lneas de guiones (-----) indican un aumento en el nivel N de agrupamiento e indican la distancia
de corte o ndice de fusin X. Los grupos contenidos en ese nivel estn enlistados despus de una serie
de diagonales //// donde se indica igualmente el nmero de gorjeos Y, el identificador del gorjeo y el
gorjeo en s mismo. Al final del nivel se presentan los W gorjeos que componen al nivel N y los Z grupos que se formaron.

Algunos ejemplos de grupos generados para el tema Trfico (el 31 de mayo de 2011) en el nivel 96 con
un ndice de fusin 0.572 son siguientes (se presentan solo algunos con el objetivo de dar un marco de
referencia sobre los resultados):
--------------------------------- Grupos para: Nivel=96, Distancia=0.5720524017467221---------------------------------

/////////////////////////////////// Numero de gorjeos: 101 ///////////////////////////////////////////////


75259946027057152 ->
75265723966046208 ->
75265835916214272 ->
75266924686221314 ->
75268413357948928 ->

25

@mhonividente ya en periodico metro te leo en el trafico del df saludos


@Annie_Islas Y con el trafico es peor...
Gana Trafico O Muere JAJAJAJ http://fb.me/unyCod5g
Muero de calor y estoy atrapado en el trafico en periferico
Noo!El tiempo se me viene encima! Mucho trfico! Ni he llegado a constituyentes D:

La normalizacin del dendograma es nicamente con fines demostrativos y se realiza tomando el ndice de fusin mxi-

mo del dendograma para despus dividir cada ndice de fusin entre el valor mximo.

57

Minera de textos en la red social Twitter

75269211961831424 -> Ay mucho trafico me extrezaaaa!


75270548594241536 -> Pinche trafico en la del valle, pinches nios ni les gusta estudiar, pa que los traen a la escuela??
75272448949489665 -> Calor + trafico = Yo estresada!
75273295116767232 -> Piden a EU parar trfico de armas http://t.co/3NuGrJS
75273626311589890 -> ya de lo encabronado en este terrible trafico le acabo de recordar a su mama a varios cafres jaja
75273811871805440 -> Q belleza las calles de L.A Nada de trafico... #MemorialDay
75277175976247296 -> Y ya llegue :) hubo algo de trafico pero todo normal :3
75277742664466433 -> Telefnica niega que obstruya el trfico de llamadas de Axtel http://tinyurl.com/3e6bf7m
75277933392039936 -> @MAI_ARTON: Disfrutando del calor y e trafico !!! Jajajajaj be happy <woooralee eso es ACTITUD! Bien!!!
75281324159680512 -> y todo esto de las obras publicas, el calor ,la gente odiosa, el trafico y tu me tienen hasta la ma#!&
75285789055004672 -> Me esta dando miedo. A donde se fue el trafico?
75287231908155392 -> Para variar, a vuelta de rueda.. (@ Trafico Tuneles de Santa Fe) http://4sq.com/j4AvFs
75288757510737920 -> esse papo de que querem liberar o uso da maconha pra inibir o comrcio dos traficantes, liberar ou no, o traficante vai continua vendendo.
75291744924741632 -> @jorolverao no se te olvide el del trafico, revisa a quien sigo
75292453250400256 -> @HOSTINGWEBPRO buen sistema el de Site Analytics para medir el trfico de mi sitio web
www.hostingwebpro.com.mx
75293030025920512 -> Este trfico que da tiempo de pensar y ya tengo nombre artstico: Tamalta Guadarrama alias Tamalguada...
Jajajaja #estoydesimple!!! Jajajaja
75293435120197632 -> @Elizabeth_boni y con el trafico se siente mas se encierra el calor en el coche y es sofocante
75299290376978433 -> RT @Profepa_Informa: Como resultado del 2do Operatino Nacional Contra el Trfico Ilegal de Vida Silvestre
se logr asegurar 1,899 ejemplares de flora y fauna
75300533107294208 -> Sorprendido d q no agarre nada d trfico
75302383638417408 -> RT @malenahurtado:Antes me molestaba mucho el trfico.. ahora tengo BlackBerry / con razon todo mundo
tiene BB en el DF #enmiranchonoesasi
75304429175324672 -> Trafico, calor, tengo sueo, tengo hambre, arrrgggghhhh!
75305510307508224 -> Los oficiales del trafico #pormiquesemueran
75310274411900928 -> #DeboConfesar que odio el trafico y el calor de la cd de mexico
75313957048565760 -> @Formato21GRC Gracias y por fa como se encuentra el trafico en constituyentes hacia Toluca
75315669331222528 -> monos, voy a plaza satelite, alguien que tenga reporte del trafico? no? naidien? que gachos bye
75316161465683968 -> #PENSANDOENELFUTURO Obra que desquicio el trafico de #HUIXQUILUCAN............ CLARO EL
TRIANGULO @colonosteca @AlexFerCa
75317154643329024 -> I'm at Trafico de Zaragoza (Calzada Ignacio Zaragoza, Mexico City) http://4sq.com/k24Nk4
75317615270166528 -> A que trfico
75319332502110208 -> No! No! No es normal el trafico de hoy! Esta caon!
75320024612610048 -> Q calor q trafico y cuanta gente en el banco esto esta cabron
75321013398806528 -> Haha Q belleza necesitaba trafico para hacer tiempo en el Periferico y no me toco Nada !! Ley de Murphy
75321876569800704 -> @Luis_arturoRS #GRRR SUERTE EN EL TRFICO! Abrazoooo :)
75322624271585280 -> Malvado calor ya no lo soporto!!! Trafico y calor, pesima combinacion!!!
75325031244238849 -> Tarde para dar clase odio el trafico!!
75325727658086400 -> @stabilimentum ha de ser porque siguen a gente que slo escribe "estoy en el trfico" o "ya va a empezar mi
telenovela" Comprndelos!
75326816277118976 -> Trafico http://twitpic.com/54shxe
75326999979237376 -> @alfredodelmazo cuando van a poner foco en el trfico en jess del monte y el paso a santiago? #fail #huixquilucan
75328916390285312 -> Debido al gran trafico y a la dilatacin de las vas del metro, no se como regresar a casa?
75330855115038720 -> @guznava @thanissalazar yo digo que si. Es ejemplo de inseguridad de trafico de caminos gachos. En fin tantos
y tantos. #ecatepec s ejemplar
75333009749970944 -> @labedwell en el trafico reinis
75333277770203136 -> @Mrbrown16 ah, es el de trfico del Universal! Jajaja...
75334787530899456 -> La Superva solucin a 1.5% del trfico http://bit.ly/jpGEOp
75337874286985218 -> saliendo de la oficina a junta en santa fe esperemos el trafico este leve !!
75338579328503808 -> Q dice mi taxi q sta atorado entre el trfico y la lluvia... O sea ya vali y no va a llegar.... #muymal
75338566468775936 -> @Formato21GRC y en este momento? como va el trfico en el circuito en la misma zona?
75360927062568960 -> En el trafico, tomando the con mi papa, q fue por mi a la Of , platicando de lo mas agusto, amo a mi padre es un
hombre extraordinario!
75361077759717377 -> "@Karyamm: Trfico te AMO!"// no mames!!! :||#]
[#|2011-06-06T17:15:50.0450500|INFO|glassfish3.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=371;_ThreadName=Ejb-Timer-Thread10;|75361231359311872 -> Las 3 gotas de lluvia que cayeron, sirvieron para que el trafico se pusiera de locosss!!
75361421671661568 -> Ya es imposible circular en la ciudad, trafico por todos lados...
75361587900317696 -> Con este trfico ya estuvo que no llegue a entrenar...
75361662110142464 -> Trfico.... :( Tengo hambre... (@ Trafico de Marina Nacional y Laguna de Mairan) http://4sq.com/lCXTm2
75361658482065408 -> @YazminAlmazan Trfico te AMO!"// no mames!!! :| // todo lo q amas hace dao porq no amar lo q te daa
jajaja
75361840154165248 -> Atorado en el trafico wtf

58

7. Anlisis de resultados

75362000338817025 -> @monst5p por toda la ciudad esta pesadisimo el trafico


75361987462299649 -> @LAUcubanita Ah! No me consta, pero lo deca por ellos. He visto trafico en lluvia y literal la mayonesa tiene
mas iniciativa al volante.
75368129588494336 -> Que pinchi trafico carajo
75368103994859522 -> Es una mentada de madre el trafico!!!
75368295804571648 -> Es increble lo que voy a escribir, pero s, en este semforo si hace falta un Poli que "dirija" el trfico.
75368465669685250 -> Atrapado en el trafico y cantando high and dry.
75368636264628224 -> En serio como amo a mi bicicleta en momentos de trafico
75369063802617857 -> Una bomba ahuyentar al trfico #espregunta
75369132593397760 -> He cumplido mis 2 horas en el trafico! #NPPVM
75369105154244608 -> PoRQuE. Ya QuieRo LlegaRts. A. Mi cASiTa. PinKy TraFiCO Me DeSEspEroOoo !!
75369487616061440 -> Calor + trfico = #fail
75369646198497280 -> El dia que alguien entienda la logica detras del trafico se va a ganar el premio nobel de la paz y de economia...
Algo inedito
75370371662086144 -> @MarcePaquini jaja pobree amiga!! Yo tmb apenas voy a mi ksa y si el trafico esta del ascoo!!!
75370370038890497 -> "@dadomdadom: El trfico est "inmamable""/ @el_gabe. Aguas!
75370364875714560 -> El trfico raya en lo obseno...
75370464372985857 -> Este trafico es una burla .....
75376755002707968 -> @Atteconqueso ya vez por que no tienes novio!! Tienes que dejar de quejaste y disfrutar de todo (eso incluye
trfico, lluvia y dems)
75377158528307200 -> Quiero llegar a mi casaaa. El trafico #memata.
75377840027213824 -> Pinshi trafico!!!a las 9pm??#noesdedios
75379034711789568 -> Atorada n el trafico yo y mi camiobetita, escuchando Al buen @digitaldiego. Bss pa ti
75379859613954048 -> El trafico al mil #noesdedios
75380625435148288 -> Maldito trafico de insurgentes... Ya no?
75380956273455104 -> Atorado en el trfico (@ Pueblo de San Lorenzo Tezonco) http://4sq.com/mExSWh
75381884116418561 -> El trafico de esta noche #EsEmputante :@
75382713187708928 -> @dmimica qu lindo lugar para el trafico
75383148313186305 -> Llegu y 792 trafifantes se columpiaron, pinche trfico.
75383616389120000 -> @RafagaMix solo trafico
75385476692967424 -> @monerohernandez trfico?inundacin?... bueno , ya llegaste.
75387392944635905 -> Estoy hasta el huevo del puto trafico!!!! -exclamo el siempre cortes doctor75391415168942081 -> Pff que trfico,y eso qu la lluvia estuvo bien leve , ya van cmo siete accidentes lelos que veo
75391531653152768 -> @mpcl78 si! Es una delicia, ya imagino el trafico, pero no importa.
75394188375625728 -> llegando a casita (@ Trafico de churubusco :s) http://4sq.com/m9yaKx
75397313203417088 -> Finalmente no me toc lluvia. Por el contrario el trfico para bajar de Interlomas estuvo de lo ms light. #WIN
75397400327499776 -> de regreso a casa.....mucho calor aun pero...nada de trafico wiiiiiiii
75399975550468097 -> @ralvarezbanzo al rancho en chihuahua a pasar unos dias y descansar del trfico de esta cd jaaa
75400250914914304 -> Vamos por Luky... (@ Trfico 2o Piso) http://4sq.com/m7whVp
75400584609538048 -> RT @renobartilotti: Alguien olvid decirle al trfico que se quedara en su fucking casa!!! Y eso que vengo en
(cont) http://tl.gd/apum10
75404611804073985 -> @dannie_prado me estresaaaa el trafico y la gente pendeja para manejar ajajaja
75405097915518976 -> Que mala vibra de la gente de trafico que no me dio chance de irme,... :(... Mugres envidiosos!!!
75407215502176256 -> RT: @Am_der #frasesdenovioceloso....Por qu tan tarde? // Respuesta: es que haba muuucho trfico, si aj.
75408553350926336 -> I'm at El trafico horrible (Revolucion, Mexico City) http://4sq.com/jcSvs5
75409214436151297 -> Voy a cantar un corrido escuchen muy bien ms comps para la #reinadelsur traficante muy famosa nacida all en
Sinalo la ta Teresa Mendoza
75412161198948352 -> Pobres de los q se chutan diario el trfico de la tarde en Revolucin. Malditos microbuseros dispararon mis
nervios y @0oBeKeRo0 tambin

/////////////////////////////////// Numero de gorjeos: 12 ///////////////////////////////////////////////


75304148110819328 -> Zona Poniente: Obras viales sobre la Carretera Federal Mxico-Toluca desde Carlos Echanove hasta Puente
Ancona. Continua Alternativas
75314583706931201 -> Insurgentes y A. Obregn / Semforo peatonal en verde, cruzo la calle y el imbcil de "Apoyo Vial" le da el
paso a los coches.
75318153177071616 -> RT @DavidhijodeZeus Acabo de reportar un congestionamiento. Mi nimo: acelerado, http://bit.ly/khWjaR con
el GPS social @waze_es
75318150576603137 -> Acabo de reportar un congestionamiento. Mi nimo: acelerado, http://bit.ly/khWjaR con el GPS social
@waze_es
75320190337941504 -> Usaran el #fondometropolitano para obra vial para coches de 1,700 mdp en Monterrey http://bit.ly/mwj9X5 ... y
MTY se ir llenando de autos.
75326726258962432 -> Gracias por a tu preferencia @ApoyoVial continua trabajando para T.... Recuerde que puedes marcarnos al
5905 VIAL (8524).

59

Minera de textos en la red social Twitter

75327168477011969 -> 17:25 Congestionamiento vial sobre la Av. Benito Jurez de Sebastin Lerdo de Tejada a Instituto Literario.
75327340787412992 -> RT @ApoyoVial: Gracias por a tu preferencia @ApoyoVial continua trabajando para T.... Recuerde que puedes marcarnos al 5905 VIAL (8524).
75327841474052096 -> 17:28 Congestionamiento vial sobre Nicols Bravo de Gmez Faras a Sebastin Lerdo de Tejada.
75331574421393408 -> Identifique los sealamientos informativos y respete las indicaciones de los agentes de transito y bandereros de
seguridad vial
75338297567756288 -> RT @xtrevi: #fondometropolitano a obra para coches de 1,700 mdp en Monterrey http://bit.ly/mwj9X5 // Ms
#autos y + congestionamiento
75381795171991552 -> Identifique los sealamientos informativos y respete las indicaciones de los agentes de transito y bandereros de
seguridad vial
/////////////////////////////////// Numero de gorjeos: 3 ///////////////////////////////////////////////

75299708641357824 -> ZN Ligera carga vehicular en Av. 608 del Circuito Interior hasta Av. 412.
75300218299629568 -> Ligera carga vehicular en Av. 608 del Circuito Interior hasta Av. 412.
75303080278765568 -> Ligera carga vehicular en Av. 608 del Circuito Interior hasta Av. 412.

/////////////////////////////////// Numero de gorjeos: 2 ///////////////////////////////////////////////


75317154643329024 -> I'm at Trafico de Zaragoza (Calzada Ignacio Zaragoza, Mexico City) http://4sq.com/k24Nk4
75408553350926336 -> I'm at El trafico horrible (Revolucion, Mexico City) http://4sq.com/jcSvs5

Las caractersticas que destacan sobre los resultados son:

Los grupos de gorjeos ms grandes contienen informacin general relacionada para cada uno de
los temas. En el ejemplo anterior de Trfico podemos recuperar las palabras ms importantes:
trafic, calor, maldit, normal, ator, lleg y lluvi, donde trafic es el trmino comn en todos los
gorjeos pertenecientes al grupo siendo la razn por la que estn unificados.

Los grupos ms pequeos se componen por eventos o noticias muy especficas y generalmente
son una mezcla entre retweets y comentarios sobre esos temas en especfico, tambin es muy
comn encontrar retweets que son extendidos en su contenido por otros usuarios para informar
ms a los lectores. Cuando algo muy importante emerge ste tipo de grupos son los ms grandes
y se pueden observar otros grupos con los mismo retweets pero con trminos que pueden extender la misma noticia en direcciones diferentes.

Ahora bien, los resultados cualitativos son buenos y alentadores, pero no proporcionan informacin de
qu tan bueno es el proceso que se est realizando o en qu ndice de fusin se debe hacer un corte al
dendograma para obtener los mejores resultados.

Se realiz un anlisis cuantitativo el cual consisti en la evaluacin de las caractersticas de los grupos
generados en funcin del ndice de fusin y de la evaluacin del algoritmo de agrupamiento.

60

7. Anlisis de resultados

Para la evaluacin de las caractersticas de los grupos se utiliz la medida de recuerdo, medida muy
utilizada en el rea de recuperacin de la informacin, la cual define la completitud26 del algoritmo que
en el contexto del presente trabajo indica qu tan rpido se unifican todos los gorjeos en un solo grupo
al variar el ndice de fusin. No se implement una medida de precisin27 al no haber una certeza para
definir cuando un gorjeo no pertenece a un subtema. Y es que imponer los resultados de un conjunto de
datos de prueba no reflejaran el verdadero comportamiento debido a que siempre llegan datos diferentes al sistema que pueden o no estar mal formados o que pueden hablar del mismo tema pero de aspectos totalmente diferentes.

Se defini el recuerdo r como la proporcin de gorjeos integrados en un grupo con por lo menos dos
elementos. El recuerdo es una funcin que devuelve un valor de 0 cuando todos los gorjeos se han unido en un solo grupo y 1 cuando no se ha generado ningn grupo con por lo menos dos gorjeos.

Por otro lado, se realiz la evaluacin de la cantidad de grupos generados en funcin del ndice de fusin que junto con el recuerdo da una idea del ndice de fusin ms adecuado para realizar el corte del
dendograma.

En la figura 15 se presentan los resultados de nmero de grupos (en funcin del ndice de fusin) y
recuerdo (en funcin de ndice de fusin) para los temas Trfico, Homicidios y Asaltos. Tmese en
cuenta que los dendogramas para cada uno de los temas fueron normalizados con el objetivo de observar las tendencias de los agrupamientos en un ndice de fusin de 0 a 1.

26

Proporcin de material relevante recuperado.

27

Proporcin de material recuperado realmente relevante.

61

Minera de textos en la red social Twitter

Nmero de grupos en funcin del ndice de fusin.

Recuerdo en funcin del ndice de fusin.

Figura 15 Resultados de los agrupamientos para los temas Trfico, Homicidios y Asaltos

De la figura anterior se puede observar que se inicia con un nmero muy alto de grupos y que el recuerdo es inferior al 20% (lo que significa que se han agrupado ms del 80% de los gorjeos). Y es que
realmente son pocos los trminos que logran conformar el diccionario de trminos, dando como resultado que un gorjeo termine siendo representado por pocos rasgos contenidos en l y que, en el momento de calcular la matriz de distancia energtica, tiene una distancia de 0 con otros gorjeos, cosa que ocurre con los retweets donde las palabras que agregan los usuarios a nuevos retweets no afectan al clculo
de la distancia con un mismo retweet porque puede que los trminos nuevos no aparezcan en ms gorjeos. Por lo tanto, se tienen al inicio del agrupamiento muchos grupos formados por gorjeos semnticamente iguales.

Aclarado lo anterior se puede observar que, independientemente del tema analizado, el comportamiento
del dendograma se puede dividir en tres zonas segn su valor de fusin para hacer el corte posteriormente en el dendograma:

Valor de corte entre 0.0 y 0.2: En esta zona el recuerdo es muy bajo y se encuentran la mayor
cantidad de grupos conformados casi en su totalidad por gorjeos semnticamente muy idnticos
y algunos muy cercanos a los ya mencionados.
- Los grupos de gorjeos con mayor cantidad de stos son semnticamente parecidos y dan
informacin en general sobre la temtica.
- Tambin se encuentran varios grupos formados por retweets y retweet semnticamente
idnticos.

62

7. Anlisis de resultados

Valor de corte entre 0.2 y 0.5: Se cumplen las caractersticas de grupos grandes para representar
las generalidades del tema y se unifican grupos de retweets que son idnticos en grupos de retweets y gorjeos semnticamente parecidos donde se encuentran retweets y gorjeos que confirman los retweets existentes agregando ms informacin.

Valor de corte entre 0.5 y 1.0: Se forman pocos grupos donde destacan generalidades de diferentes subtemas. Se pierde la informacin muy especfica para formar conjuntos de palabras alrededor de subtemas.

Retomando la idea de que se normaliz el dendograma para el anlisis anterior y que cada dendograma
tiene un ndice de fusin mximo distinto para cada conjunto de datos, para presentar los datos, el ndice de fusin mximo de cualquier dendograma se debe multiplicar por las proporciones de corte.

Ahora, una vez obtenido el dendograma, es importante evaluar su concordancia con la matriz de distancia para saber hasta qu punto el agrupamiento jerrquico es adecuado para los datos de la investigacin. Para este fin, existen tcnicas que permiten medir el ajuste, o lo que es lo mismo medir esa distorsin, ya que las relaciones de distancias son necesariamente distorsionadas al ser llevadas a una representacin bidimensional [22].
Parta medir esa distorsin se opt por calcular el grado de relacin a travs del coeficiente de la correlacin producto-momento conocido como coeficiente de correlacin cofentico (CPCC). Para su clculo, primeramente se parte de la matriz de distancia y se forma el dendograma sealando en ste los valores del ndice de fusin segn su orden consecutivo de creacin igual a como se mencion en el captulo 4. Con estos se confecciona una matriz de las mismas dimensiones que la matriz de distancias, la
cual ser la matriz cofentica C donde las relaciones entre cada elemento vendrn dadas por el valor de
afinidad que le corresponda en la jerarqua del agrupamiento [22] [24].

Para el ejemplo del captulo 4, los valores de C que relacionan a los elementos (1,2) y (3,4); se puede
observar que forman grupos particulares y es claro que los valores correspondientes son 1 y 2 respectivamente. Para los valores correspondientes a elementos ms alejados, por ejemplo 2 y 4, se asciende
por el rbol y se toma el valor del ndice de fusin que corresponde al nodo superior de unin de dichos
elementos, en este caso 3. El mismo valor corresponder a la relacin (1,4), lo cual es tpico de las matrices cofenticas, donde siempre habr varios valores repetidos.

63

Minera de textos en la red social Twitter

||
(

||
(

Figura 16 Ejemplo del clculo de una matriz cofentica.

Para calcular el CPCC son necesarias las dos matrices de


res,

de ambas matrices debido a que son simtricas.

Siguiendo la notacin utilizada en el captulo 4,


elementos i y j y

elementos, pero basta tomar los M valo-

representa la distancia que existe entre los

es la distancia cofentica o el nivel en el dendograma donde los elementos i y

j son agrupados para un algoritmo de agrupamiento en particular. Por lo tanto, el CPCC para las matrices D y C se define como:

Donde
( )
( )

Una alta correlacin entre matrices ser seal de poca distorsin, por lo que escogiendo los resultados
de la tcnica que brinde el mayor valor de CPCC podemos considerar que las relaciones implcitas en
la matriz de distancias estn siendo reflejadas con la mayor fidelidad. Los valores de CPCC van de -1 a
1 y, segn [22] [23] [24], los valores superiores a 0.8 indican una buena representacin de la matriz de
afinidad por parte del dendograma, aunque hay autores que consideran que valores superiores a 0.90 no
garantizan necesariamente que el dendograma resumiera adecuadamente las relaciones.

Especficamente para el sistema desarrollado se utiliz la matriz de distancia energtica y se implement una pequea aplicacin que recorre el dendograma obtenido como resultado del agrupamiento de los
gorjeos para formar la matriz cofentica y calcular as el CPCC.

64

7. Anlisis de resultados

En la tabla 7 se presentan los resultados asociados al coeficiente de correlacin cofentico:

Tema

coeficiente de correlacin cofentico

Trfico

0. 9618416733503183

Homicidios

0. 9828575149307823

Asaltos

0. 9912319664290344

Tabla 7 Resultados de coeficiente de correlacin cofentico para los trminos


trfico, homicidios y asaltos.

Estos resultados al ser muy cercanos a 1 permiten un grado de confiabilidad muy alto creando muy baja
distorsin, es decir, que el dendograma representa la matriz de distancia energtica original de una manera confiable.

Con todo lo anterior se puede concluir que por un lado el algoritmo de agrupamiento implementado
hace un trabajo excelente para agrupar los gorjeos y que el anlisis cualitativo en conjunto con el anlisis cuantitativo del dendograma permiti establecer la distancia de corte ptima de 0.3 del ndice de
fusin mximo.

65

Minera de textos en la red social Twitter

8 Conclusiones y trabajo futuro


El objetivo general de la tesis se cumpli al desarrollar una aplicacin capaz de encontrar informacin
semnticamente parecida en datos obtenidos en la red social Twitter, logrando as los objetivos particulares planteados al inicio del presente trabajo. Especficamente:

Se implement un subsistema para la consulta a la base de datos de Twitter, clasificacin y persistencia de gorjeos que comparten rasgos seleccionados a priori.

Se analizaron e implementaron mtodos estadsticos para la representacin vectorial de los gorjeos, las medidas de similitud y agrupamiento de gorjeos semnticamente parecidos.

Se implement una base de datos para la persistencia de los grupos generados por el algoritmo
de agrupamiento, as como subsistemas para el control de crecimiento de la base de datos y la
presentacin de los mismos.

Como ya se dijo. el sistema est implementado en la plataforma Java EE, la cual proporciona un conjunto de APIs que seran difciles de programar. Tambin se hace uso de frameworks que abstraen al
programador de los detalles de la tecnologa Java EE, permitiendo que se concentre en la lgica del
negocio. Todo esto sin la necesidad de una licencia de uso. Adems, Java EE es multiplataforma porque es capaz de integrarse con otras tecnologas y con la posibilidad de desplegarse en sistemas distribuidos.

El problema principal es la curva empinada de aprendizaje para poder implementar sistemas en esta
plataforma. Adicionalmente, la separacin entre el modelo, la vista y el controlador es hecha por componentes con diferentes especificaciones, desde el uso de mapeo objeto relacional para la comunicacin
con la base de datos, pasando por los EJBs para as formar el modelo de la aplicacin y poder comunicarse posteriormente con clases conocidas como Java Beans que hacen el intercambio con los componentes grficos de JFSs; tareas casi imposibles para un principiante en la tecnologa Java.
Por otra parte, el sistema de clasificacin implementado en esta tesis es muy simple. Actualmente, se
clasifican gorjeos por la aparicin o ausencia de una palabra truncada en una lista de trminos que se
asocian a un tema definido a priori por el usuario, dejando pasar gorjeos con temas como trfico de
rganos, trfico de personas o traficantes de drogas en un tema correspondiente a trfico vehicular, ya que todos contienen el trmino truncado trafic-. En este contexto, se plantea para un futuro la
posibilidad de implementar mquinas de vector-soporte28 para refinar la clasificacin de resultados, as

28

Conjunto de algoritmos de aprendizaje supervisado.

66

8. Conclusiones y trabajo futuro

como la mejor seleccin de rasgos pensando en el uso de bigramas o el orden de ocurrencia de ciertas
palabras.
Cuando el algoritmo de agrupamiento tiene malos resultados, es por esta deficiente clasificacin y la no
correcta eleccin de la distancia de corte ideal del dendograma que cambia con cada grupo analizado de
gorjeos. Para arreglar esto, puede contemplarse en un futuro el cambio de algoritmo de agrupamiento,
pensando en el uso de mapas auto-organizados, esto es, un modelo de red neuronal artificial no supervisado.

Como trabajo futuro se espera que el sistema sea ms flexible y permita peticiones de informacin del
usuario. El sistema hasta el momento slo procesa y muestra los grupos generados al usuario para que
el usuario los lea, sin ningn tipo de estadstica e impidindole al usuario alguna intervencin en esos
resultados o incluso hacer consultas. Tambin, a futuro se espera que el sistema pueda resolver y guardar consultas generadas por usuarios.

Actualmente los grupos generados son eliminados al pasar cierto tiempo de vida dentro de la base de
datos Temas DB, aunque esta informacin eliminada tiene mritos desde el punto de vista histrico.
La posibilidad de seguir un tema, evaluar qu personas lo han consultado y la posibilidad de que los
usuarios puedan almacenar gorjeos y grupos de gorjeos de su inters son algunos otros de los procesos
que se plantean a futuro.
Debido a la naturaleza de los mensajes de Twitter no se concret en una evaluacin sobre la precisin
de los resultados, pero como trabajo futuro se pretende estudiar algn mtodo que d certeza de qu tan
bien estn formados los subtemas en un conjunto de gorjeos.

En cuanto a las virtudes del sistema desarrollado, se pueden enumerar:

Al eliminar signos de puntuacin y transformar las palabras a sus races, el sistema unifica trminos
que podran considerarse por s mismos diferentes, esto es importante porque hay que recordar que una
coma, una letra mayscula o un sufijo hacen que una palabra sea totalmente diferente para la computadora.

Al eliminar palabras con poca informacin semntica y tomar como rasgos las palabras que aparecen
por lo menos en dos gorjeos no slo se reduce el espacio vectorial, tambin se asegura que las palabras
que representan el espacio vectorial sean palabras que relacionen a gorjeos y evitar de esta forma el que
dicho espacio est compuesto por palabras exticas de aparicin unitaria en el conjunto de gorjeos.

La representacin vectorial se basa en la aparicin o ausencia de algn trmino, lo cual resulta en el


clculo ms rpido del espacio vectorial en comparacin de una representacin ms sofisticada como se

67

Minera de textos en la red social Twitter

vio en el captulo 2 donde se toma en cuenta el peso local de una palabra, el peso global de una palabra
en el conjunto de gorjeos y una posterior normalizacin.

Se eligi derivar la matriz de distancias a partir de la matriz de energa textual, una aproximacin que
desde sus inicios fue concebida como una aproximacin terica para ponderar la similitud entre documentos. La energa textual no slo da buenos resultados, su clculo es sumamente sencillo y mucho
menos costoso de lo que pudiera parecer. De no usar energa textual se tiene que pensar en una representacin vectorial compleja y en una medida de distancia ms robusta que la distancia euclidiana para
obtener una matriz de distancias, eleccin que resulta particularmente mala si se considera que el sistema necesita obtener resultados sumamente rpido.
El algoritmo de agrupamiento jerrquico ofrece la ventaja de no requerir que el nmero de grupos sea
especificado y que enfatice relaciones encontradas, formando de esta manera versiones ms completas
de una idea. Asimismo el algoritmo implementado tiene un coeficiente de correlacin cofentico superior al 0.95, dando as un grado de confiabilidad a los resultados muy alto.

Los grupos generados tienen particularidades muy interesantes como lo son el que en los grupos grandes se puedan extraer trminos conforme a las generalidades de un tema y que en grupos pequeos se
observen sucesos particulares de un evento o tema analizado.

Por lo anterior, se puede concluir que el sistema ofrece una aproximacin a la forma en que se puede
extraer informacin de la red social Twitter, red que por su propia naturaleza es difcil de analizar.

68

Referencias

9 Referencias
[1]

Michael W. Berry and Murray Browne, Understanding Search Engines: Mathematical Modeling and Text Retrieval, SIAM, Society for Industrial and Applied Mathematics, 2005.

[2]

Nicola Polettini, The Vector Space Model in Information Retrieval- Term Weighting Problem, Department of Information and Communication Technology, Universidad de Trento,
2004.

[3]

W. B. Croft. Experiments with representation in a document retrieval system,


Information Technology: Research and Development, 1983.

[4]

Gerald Salton and Chris Buckley. Term weighting approaches in automatic text retrieval, Information Processing and Management, 1988.

[5]

Ray Larson, Marc Davis. SIMS 202: Information Organization and Retrieval, UC Berkeley
SIMS, Lecture 18: Vector Representation, 2002.

[6]

M. Salam, E. Golobardes, J.M. Garrell, J. Mart. Clasificacin de microcalcificaciones usando


razonamiento basado en casos, Proceedings CAEPIA'99/TTIA'99, 1999,

[7]

Gerald Salton and Chris Buckley, Term weighting approaches in automatic text retrieval, Information Processing and Management, 24(5):513-523, Issue
5. 1988.

[8]

Basilio Sierra Araujo, Aprendizaje Automtico: Conceptos Bsicos y Avanzados, Pearson Education, 2006.

[9]

J. C. GOWER. Some distance properties of latent root and vector methods used in multivariate
analysis, Biometrika 53(3-4):325-338, 1966.

[10]

Silvia Fernndez, Eric SanJuan, Juan Manuel Torres Moreno, Textual Energy of Associative
Memories: Performant Applications of Enertex Algorithm in Text Summarization and Topic
Segmentation, Lecture Notes in Computer Science, 2007.

[11]

Sitaram Asur, Bernardo A. Huberman. Predicting the Future With Social Media. arXiv.org
Cornell University Library, 29 de marzo de 2010

[12]

Milenio online 2010-05-09 Para qu sirven los periodistas?


http://impreso.milenio.com/node/8764117

[13]

Jaume Vila Rosas,Twitter y el microblogging con fines educativos, Comunicacin y pedagoga: Nuevas tecnologas y recursos didcticos, N 238, 2009 , 26-29

[14]

Antonio Goncalves, Beginning Java EE 6 Platform with GlassFish 3 From Novice to Professional, Apress 2009

[15]

Subrahmanyam Allamaraju, Professional Java Server Programming J2EE, 1.3 Edition, Wrox
Press 2001

[16]

Wikipedia 2010-07-20Twitter, http://es.wikipedia.org/wiki/Twitter

[17]

M.F. Porter, An algorithm for suffix stripping, Computer Laboratory, Corn Exchange Street,

69

Minera de textos en la red social Twitter

Cambridge 1980.
[18]

Sergios Theodoridis, Konstantinos Koutroumbas , Pattern Recognition , Elsevier 2003

[19]

Leonard Kaufman, Peter J. Rousseeuw, Finding Groups in Data: An Introduction to Cluster


Analysis, wiley interscience, 2005.

[20]

Andrew R. Webb, Statistical Pattern Recognition, John Wiley & Sons Ltd, 2a edicin 2002.

[21]

Daniel Pea, Anlisis de datos multivariantes, McGraw-Hill, 2002.

[22]

Alejandro Herrera Moreno, La clasificacin numrica y su aplicacin en la ecologa, INTEC,


2000

[23]

Abdolreza Mirzaei y Mohammad Rahmati, A Novel Hierarchical-Clustering-Combination


Scheme Based on Fuzzy-Similarity Relations, IEEE transactions on fuzzy systems, vol. 18, no.
1, febrero 2010.

[24]

Anil K. Jain y Richard C. Dubes, Algorithms for Clustering Data, Prentice Hall, 1988.

[25]

Wikipedia 2011-05-20Primeros pasos, http://support.twitter.com/groups/31-twitter-basics

[26]

Bing Liu, Web DataMining: Exploring Hyperlinks, Contents, and Usage Data, Springer, 2007

[27]

Wikipedia 2011-04-16 Microblogging, http://es.wikipedia.org/wiki/Microblogging.

[28]

Tamara Gibson Kolda. Limited-Memory Matrix Methods with Applications, Applied Mathematics Program, University of Maryland at College Park, 1997.

[29]

Eric Jendrock, Ian Evans, Ian Evans, The Java EE 6 Tutorial, Oracle Corporation, 2011

[30]

Wikipedia 2011-04-8 Familia de protocolos de Internet,


http://es.wikipedia.org/wiki/Tcpip

[31]

Wikipedia 2011-03-20 Transport Layer Security, http://es.wikipedia.org/wiki/SSL

[32]

Wikipedia 2011-03-20, Java Remote Method Invocation,


http://es.wikipedia.org/wiki/Java_Remote_Method_Invocation

70

Apndice A

Apndice A
Diagrama entidad relacin de la base de datos Temas Iniciales DB

:J evento

gOljeo

10

id_evento...,Qorjeo BIGINT

id_evento BIGINT

Gorjeo
Id _Go~eo

I
I

o From _User _Id INT


<> Iso_La-lgua;e_Code VAACHAR( lO)
O Profile_lm <>;l e_Url VARCHI>R(300)
O Source VARCHI>R(300)

I
I
I
I
I

I
I
I
I
I

~ . .- ------

O Text VARCHI>R(300)

.
::
I
I
I

O From _User VI>RCHAR( lOO)

O Nom bre_E",nto VI>RCHAR(20)

<> versi on INT

<> versi on INT

BIGINT

o Created_At DATE

Id_EvenlD BIGINT

f - - - - -1 ~

id....Qorjeo BIGINT

Evento

O Textoy roc.esado VARCHAR(300)


O TO_USff VARCHI>R( lOO)

:J causa

TO_USff_Id INT

Id_Causa BIGINT

O Latitude DOUB LE
O lcngitude DOUBL E

O Version INT

<> Nom bre_Causa V/lRCHAR( 20)


<> ve-sion INT

-1

<> versi on INT

71

Apndice B

Apndice B
Diagrama entidad relacin de la base de datos Temas DB

ro

dall!_ lEma_subtl!ma 'O'

id_date_tana_sub1E:ma BIGINT
O fehca DATE

l. id_lema BIGINT
- - - - - - - - ---t<::

I
I
I

f>I - - - - - - - - 1

<,) versi on INT

I
I
I
I
::

'O'
PRIMAAY

I
I

id_tema

:j:

::J lEma

l . id_sub1E:ma BIGINT

id subtema
'O'

10

subll!ma

'O'

id_subtema BIGINT

id_lema BIGINT

O tag_9JblEma VARCHAA(45)

<,) nombre_rema VAACHAR(20)

<,) versi on INT

O version INT

::J GerjeO

:t

'O'

Id_Gorjeo BIGINT
) Crffited _AtDATE
O From _User VAACHAR( lOO)

<> From _User _Id INT

ro

O Iso_li31guage_Code VAACHAR( lO)

1+- - - - - - - - - - - - - - - - ----f<

O Tex! VARCHAA( 300)


O Tex1D_Procesado V ARCHAR( 300)
O To_Us" VARCHAA( lOO)
O To_Us,,_Id INT
O lattude DOUBlE

O Lcngib.Jde DOUBLE
<,) Version INT

72

'O'

id...,gorjeo_9.Jb1E:ma BIGINT

O Profile_Im age_UrI VARCHAA(JOO)


O Source VARCHAA( 300)

gajeo_subtl!ma

. id_sublEma BIGINT

id...,gorjeo BIGINT
O versi on INT

Apndice C

Apndice C
Lista de trminos truncados que se relacionan con cada uno de los temas analizados.

Trfico

Homicidios

Asaltos

embotell

asesinat

asalt

trafic

asesin

rob

congestion

homicidi

atrac

vehicul

homic

vial
vialid
atasc

73

FACULTAD DE INGENIERA

También podría gustarte