Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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.
ndice de contenidos
INTRODUCCIN ..................................................................................................................................... 1
1.1
MOTIVACIN ............................................................................................................................................... 1
1.2
OBJETIVOS ................................................................................................................................................... 2
1.3
1.4
2.1
MINERA DE TEXTOS.................................................................................................................................... 7
2.2
2.3
2.4
ACERCA DE TWITTER................................................................................................................................... 9
3.1
CONSTRUCCIN ......................................................................................................................................... 14
3.2
3.3
3.4
3.5
vi
3.2.1
Binaria ............................................................................................................................... 15
3.2.2
3.2.3
3.2.4
Logartmico ....................................................................................................................... 16
PESO GLOBAL............................................................................................................................................. 16
3.3.1
3.3.2
3.3.3
3.3.4
NORMALIZACIN ....................................................................................................................................... 18
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
MTODOS MS UTILIZADOS....................................................................................................................... 20
ndice de contenidos
4.1
4.2
4.1.1
4.1.2
4.2.1
4.2.2
5.1
5.1.1
Arquitectura ...................................................................................................................... 33
5.1.2
5.1.3
5.1.4
5.1.5
6.1
6.2
6.3
6.2.1
6.2.2
Preprocesamiento .............................................................................................................. 43
6.2.3
Clasificacin...................................................................................................................... 44
6.3.1
6.3.2
6.3.3
6.4
6.5
REFERENCIAS....................................................................................................................................... 69
APNDICE A ...................................................................................................................................................... 71
APNDICE B....................................................................................................................................................... 72
APNDICE C ...................................................................................................................................................... 73
vii
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-
http://m.cnbc.com/us_news/34843251?refresh=true.
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.
Desarrollo de una aplicacin empresarial web con Java EE que permita a usuarios la consulta de
los conocimientos obtenidos por el sistema.
1. Introduccin
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.
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.
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.
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.
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.
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.
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].
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
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.
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
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.
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
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.
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
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
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
10
11
13
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
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,
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).
14
Nombre
Frmula para
Binaria
Frecuencia del trmino
Frecuencia aumentada de trminos normali-
zados
Logaritmo
(
Logaritmo alternativo
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
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
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
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].
Nombre
Frmula para
Sin cambios
de documentos
16
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, 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
Se utiliza raramente como una variante del IDF, y no es ms que la frmula de IDF elevada al cuadrado
[1].
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
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
18
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
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
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
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,
la pendiente se encuentra en 0.2 y el pivote se establece como el promedio de trminos distintos por
documento en una coleccin.
19
)
(
))
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
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
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.
una distancia, o mtrica, entre ellos, si se ha definido una funcin d con las siguientes propiedades [18]
[19] [8].
1.
2.
21
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 (
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 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
(
que la matriz de distancias, pero con la caracterstica de que la diagonal principal est compuesta de
unos.
(
22
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-
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
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
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
]
]
),
([
] )
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
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
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
Caso i
1
Caso j
a+b
c+d
a+c b+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.
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
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.
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.
4.2.1
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
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.
y un ndice de fusin
1. Interseccin: Si
2. Unin: Si
, entonces
, entonces
},
},
{
Y el ndice de fusin
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
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
27
{ }}
{}
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.
{
mtrica.
{{ } { }
{ }}
se repiten los pasos 2 y 3 del algoritmo hasta que todos los casos de X formen un nico grupo.
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.
||
(
Como dice el paso 1, en la particin inicial
)
cada caso forma un grupo; as,
{{ } { } { } { } { }}
28
}, se
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
)|
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:
{
) |{
}
}
}{
} , por lo tanto
{
)|
29
} { } { } { }}
{{
}{
} { }}
{{
} { }}
{{
}}
30
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.
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
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
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
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
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.
Un conjunto de varios API de extensin Java para construir aplicaciones. Estos API definen un
modelo de programacin para aplicaciones Java EE.
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
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
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.
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
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
5.1.3
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
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
SOAP (Simple Object Access Protocol) es un protocolo estndar que define cmo dos objetos en diferentes procesos
Los
RESTful
Web
Services
son
servicios
basados
en
una
tcnica
de
arquitectura
Protocolo que permite a un programa ejecutar cdigo en otra mquina remota sin tener que preocuparse por las comuni-
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
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.
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].
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
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
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
Internet
Temas iniciales
DB
Clasificacin
Presentacin de datos
Temas DB
Control de crecimiento
Manejo de la informacin de das
pasados
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.
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.
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
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.
G2: Me dispongo a salir a la ciudad a sufrir del trfico, me dirijo a marina nal desde nter a ver
cuanto tiempo hago
G4: Buenos dias! Miercoles de plaza... y de cierres viales con motivo del Bicentenario, tardaran
100aos en llegar a su destino
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
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.
G2: dispong sal ciud sufr trafic dirij marin nal inter ver
G4: buen dias miercol plaz cierr vial motiv bicentenari tardar 100an lleg destin
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
44
6. Implementacin y resultados
6.3.1
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.
G2: dispong sal ciud sufr trafic dirij marin nal inter ver
G4: buen dias miercol plaz cierr vial motiv bicentenari tardar 100an lleg destin
45
G2
G3
G4
G5
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
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.
46
6. Implementacin y resultados
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.
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
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:
G2: Me dispongo a salir a la ciudad a sufrir del trfico, me dirijo a marina nal desde nter a
ver cuanto tiempo hago
GRUPO 2:
G4: Buenos dias! Miercoles de plaza... y de cierres viales con motivo del Bicentenario, tarda-
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
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.
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
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
52
6. Implementacin y resultados
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.
53
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.
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
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
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
Trfico
313
Homicidios
100
Asaltos
365
Total
778
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.
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---------------------------------
25
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
58
7. Anlisis de resultados
59
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.
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
27
61
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
||
(
||
(
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
Tema
Trfico
0. 9618416733503183
Homicidios
0. 9828575149307823
Asaltos
0. 9912319664290344
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
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
66
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.
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.
67
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]
[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]
[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]
[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]
[17]
M.F. Porter, An algorithm for suffix stripping, Computer Laboratory, Corn Exchange Street,
69
Cambridge 1980.
[18]
[19]
[20]
Andrew R. Webb, Statistical Pattern Recognition, John Wiley & Sons Ltd, 2a edicin 2002.
[21]
[22]
[23]
[24]
Anil K. Jain y Richard C. Dubes, Algorithms for Clustering Data, Prentice Hall, 1988.
[25]
[26]
Bing Liu, Web DataMining: Exploring Hyperlinks, Contents, and Usage Data, Springer, 2007
[27]
[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]
[31]
[32]
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
I
I
I
I
I
I
I
I
I
I
~ . .- ------
O Text VARCHI>R(300)
.
::
I
I
I
BIGINT
o Created_At DATE
Id_EvenlD BIGINT
f - - - - -1 ~
id....Qorjeo BIGINT
Evento
:J causa
TO_USff_Id INT
Id_Causa BIGINT
O Latitude DOUB LE
O lcngitude DOUBL E
O Version INT
-1
71
Apndice B
Apndice B
Diagrama entidad relacin de la base de datos Temas DB
ro
id_date_tana_sub1E:ma BIGINT
O fehca DATE
l. id_lema BIGINT
- - - - - - - - ---t<::
I
I
I
f>I - - - - - - - - 1
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)
O version INT
::J GerjeO
:t
'O'
Id_Gorjeo BIGINT
) Crffited _AtDATE
O From _User VAACHAR( lOO)
ro
1+- - - - - - - - - - - - - - - - ----f<
O Lcngib.Jde DOUBLE
<,) Version INT
72
'O'
id...,gorjeo_9.Jb1E:ma BIGINT
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