Tabla de Contenidos -...
-
Upload
nguyenthuy -
Category
Documents
-
view
218 -
download
0
Transcript of Tabla de Contenidos -...
Software Design Document
SENTINEL: Analítica sobre percepción de corrupción en
Trabajo de grado 2017-30
Ingeniería de Sistemas
Pontificia Universidad Javeriana
Manuela Forero Pedreros
Jeffrey Torres Arango
Sebastián Gracia Valderrama
Alexandra Pomares Quimbaya Ph.D.
1
Historial de Cambios
Responsable Descripción Fecha Versión
Manuela Forero,
Jeffrey Torres,
Sebastián Gracia
Secciones 5, 6 7 01/10/2017 1.0
Manuela Forero,
Jeffrey Torres,
Sebastián Gracia
Corrección
revisiones
24/10/2017 2.0
2
1. Tabla de Contenidos
Contenido
1. Historial de Cambios..............................................................................................................2
2. Tabla de Contenidos...............................................................................................................3
3. Tabla de Ilustraciones.............................................................................................................4
4. Introducción............................................................................................................................7
5. Arquitectura............................................................................................................................8
5.1. Vista Lógica del Sistema................................................................................................8
5.2. Vista Física del Sistema...............................................................................................10
6. Diseño Detallado..................................................................................................................10
6.1. Estructura del Sistema..................................................................................................11
6.2. Comportamiento del Sistema.......................................................................................16
6.3. Persistencia...................................................................................................................18
6.4. Interfaz de Usuario.......................................................................................................20
7. Referencias...........................................................................................................................30
3
2. Tabla de Ilustraciones Ilustración 1 Vista lógica del sistema...........................................................................................8
Ilustración 2 Vista física del sistema.........................................................................................10
Ilustración 3 Modelo de analítica...............................................................................................11
Ilustración 4 Modulo de análisis de sentimientos con requerimientos........................................12
Ilustración 5 Modulo de agregadas con requerimientos.............................................................13
Ilustración 6 Modulo de sesgo con requerimientos....................................................................14
Ilustración 7 Modulo de correlaciones con requerimientos........................................................14
Ilustración 8 Diagrama de secuencia de análisis de sentimientos...............................................17
Ilustración 9 Diagrama de secuencia de agregadas.....................................................................17
Ilustración 10 Diagrama de secuencia de correlaciones.............................................................18
Ilustración 11 Diagrama de secuencia de sesgo..........................................................................18
Ilustración 12 Modelo de datos..................................................................................................19
Ilustración 13 Proceso de guardado y carga...............................................................................20
Ilustración 14 Visualización del prototipo - descubre (Asociación de palabras)........................20
Ilustración 15 Visualización del prototipo – líder 1 estadísticas de Facebook............................21
Ilustración 16 Visualización del prototipo líderes de opinión – acciones..................................21
Ilustración 17 Visualización del prototipo líderes de opinión - nube de palabras de publicaciones
realizadas por el líder.................................................................................................................21
Ilustración 18 Visualización del prototipo líderes de opinión – tendencias de los comentarios.22
Ilustración 19 Visualización del prototipo líderes de opinión - Reacciones en noticias sobre líder de
opinión.......................................................................................................................................22
Ilustración 20 Visualización del prototipo líderes de opinión - Comentarios populares sobre el líder en
el mes.........................................................................................................................................23
Ilustración 21 Visualización del prototipo Medios - casos de corrupción..................................23
Ilustración 22 Visualización del prototipo Medios - Cantidad de publicaciones sobre líderes de
opinión vs cantidad de publicaciones de corrupción que mencionan a líderes de opinión..........24
Ilustración 23 Visualización del prototipo Medios - Cantidad de publicaciones sobre partido político
vs cantidad de publicaciones de corrupción que mencionan a partido político...........................24
Ilustración 24 Visualización del prototipo Medios - Cantidad de publicaciones sobre la institución vs
cantidad de publicaciones de corrupción que mencionan a la institución...................................25
Ilustración 25 Visualización del prototipo Medios – medios que publican más sobre la institución vs
medios que publican menos sobre la institución.........................................................................25
4
Ilustración 26 Visualización del prototipo Medios – cantidad de publicaciones hecha por un medio de
comunicación vs otro medio de comunicación...........................................................................25
Ilustración 27 Visualización del prototipo Medios – cantidad de publicaciones sobre un caso de
corrupción hecho por dos medios...............................................................................................26
Ilustración 28 Visualización del prototipo Medios – cantidad de publicaciones sobre un líder de
opinión hecho por dos medios....................................................................................................26
Ilustración 29 Visualización del prototipo Medios – cantidad de publicaciones sobre un partido
político hecho por dos medios..................................................................................................27
Ilustración 30 Visualización del prototipo Medios – cantidad de publicaciones sobre una institución
hecho por dos medios.................................................................................................................27
Ilustración 31 Visualización del prototipo Medios - Publicaciones sobre corrupción por cada medio
...................................................................................................................................................28
Ilustración 32 Visualización del prototipo partidos políticos - Sentimientos expresados en los
comentarios................................................................................................................................28
Ilustración 33 Visualización del prototipo partidos políticos – actividad...................................28
Ilustración 34 Visualización del prototipo partidos políticos - reacciones en noticias sobre este partido
político.......................................................................................................................................29
Ilustración 35 Visualización del prototipo casos de corrupción – cantidad de publicaciones sobre el
caso vs cantidad de comentarios sobre el caso...........................................................................29
Ilustración 36 Visualización del prototipo casos de corrupción – reacciones en noticias sobre este
carro de corrupción....................................................................................................................29
5
3. Índice de tablas Tabla 1 Algoritmo nucleo.............................................................................................................16
6
4. IntroducciónEste documento conocido como SDD (por sus siglas en inglés Software Design Document),
contiene la descripción detallada del diseño del SENTINEL. Este proyecto es realizado como trabajo
de grado de la carrera de ingeniería de sistemas de la Pontificia Universidad Javeriana. Este
documento permite identificar los principales componentes que construyen al sistema, su relación y
principal medio de comunicación.
7
5. Arquitectura
5.1. Vista Lógica del SistemaA continuación, en la ilustración 1 se presenta el diagrama de arquitectura de componentes;
identificando capas, controladores e interfaces propuestas y requeridas [1][2].
Ilustración 1 Vista lógica del sistema
A continuación, se detallan las capas y sus componentes:
1. Fuente de datos – Facebook
a. Datos: Representa la fuente principal de datos a extraer: el origen y forma inicial
provendrá de la red social Facebook, el sistema accede constantemente a los datos
abiertos de Facebook y por medio de HTTPS/REST se extraen los datos al sistema.
2. RART 2.0
a. Extracción de datos: Es el componente encargado de extraer datos de Facebook, es
un código desarrollado e implementado en Python que permite por medio de métodos
POST y GET extraer los datos de Facebook y los deja a disposición del sistema de
manera local.
3. Base de datos no relacional: Debido a la forma y estructura de los datos, junto con la
naturaleza del proyecto, los datos extraídos no cumplen con una forma estándar para
almacenarlos en una base de datos relacional, por el contrario, los datos deben ser tratados y
almacenados en base de datos no relacionales, una de las razones principales es que el
formato de intercambio de datos está en formato JSON.
4. Componente de analítica
8
Todos los módulos del componente de analítica fueron desarrollados e implementados en
Python 3.5+ y R 3.1+
a. Módulo de análisis de sentimientos
i. Algoritmos de sentimientos: es una colección de algoritmos enfocados a
realizar análisis de sentimientos sobre los datos extraídos.
b. Módulo de sesgos
i. Algoritmos de sesgos: es una colección de algoritmos enfocados y
desarrollados a realizar sesgos de los datos extraídos.
Bajo este contexto, el sesgo se mide por medio del rango intercuartil, en
donde los valores atípicos son aquellos medios que publican menos sobre un
caso de corrupción.
c. Módulo de agregadas
i. Algoritmos de agregadas: es una colección de algoritmos enfocados y
desarrollados a realizar funciones básicas de agregados, tales como suma,
restar, contar, entre otros.
d. Módulo de correlaciones
i. Algoritmos de correlaciones: es una colección de algoritmos enfocados a
realizar correlaciones sobre los datos extraídos.
5. Componente de visualización
El componente de visualización está definido bajo una arquitectura Cliente-Servidor,
donde el servidor está implementado en Node.js y el cliente con las tecnologías HTML5,
CSS3 y JavaScript. El servidor se encarga de buscar los resultados del proceso de analítica y
enviarlos al cliente para su posterior visualización.
Para la visualización se utilizaron una serie de librerías web que proveen
herramientas gráficas para poder visualizar los resultados obtenidos del componente de
visualización. A continuación, se listan las librerías utilizadas:
1. Vis.js: Librería dinámica de visualización web (http://visjs.org/ )
2. Chartist.js: Librería desarrollada en JavaScript que permite graficar datos en diferentes tipos
de graficas en cavas HTML5 (https://gionkunz.github.io/chartist-js/ )
3. Chart.js: Librería desarrollada en JavaScript que permite graficar datos en diferentes tipos de
graficas en canvas HTML5 (http://www.chartjs.org/ )
9
4. Word_cloud: Generador de nube de palabras desarrollado en Python.
(https://github.com/amueller/word_cloud )
5.2. Vista Física del Sistema
A continuación, en la ilustración 2 se muestra la vista física del sistema en donde se ubican los
componentes de software y cómo estos se despliegan en diferentes unidades de hardware, mostrando
sus protocolos de comunicación.
Ilustración 2 Vista física del sistema
A continuación, se detallan los nodos:
1. Servidor SENTINEL: Este servidor genérico almacena todos los componentes del sistema
de información Sentinel.
a. Base de datos no relacional.
b. Analítica.
c. RART 2.0.
d. Visualización.
2. Device: representa el dispositivo que podrá visualizar los resultados finales de Sentinel, solo
se necesita de un navegador web para desplegar la interfaz, ya sea desde un dispositivo móvil
o un computador personal.
10
3. Facebook: Es la red social de donde se extraerán los datos. Diseño Detallado.
5.3. Estructura del Sistema
Inicialmente el sistema busca ser una herramienta que permita a los interesados tener una
perspectiva real de los casos de corrupción más populares en ambientes virtuales sociales como lo es
Facebook. Para esto es necesario entender qué es la corrupción y cómo se comporta en ambientes
sociales, para esto el grupo de trabajo se asesoró de expertos en el negocio y el tema principal de la
corrupción en Colombia.
Teniendo en cuenta el orden en que los requerimientos van a ser desarrollados e implementados,
por medio de la priorización, se procede a crear un modelo de analítica el cual se muestra en la
ilustración 3 en donde se ubican los algoritmos a utilizar, identificando la firma del método a
implementar.
Ilustración 3 Modelo de analítica.
Finalmente, con ánimos de llevar una trazabilidad completa se identifican cuatro módulos
generales dentro del componente de analítica del sistema, dentro de cada módulo se identifican los
algoritmos mencionados en el modelo de analítica y las preguntas correspondientes a cada módulo.
11
1. Módulo de análisis de sentimientos.
Para el desarrollo del módulo de análisis de sentimientos se utilizarán las siguientes herramientas
y lenguajes de desarrollo:
1. Python 3.5
2. R Studio 3.3.3 o superior
Adicionalmente se cuenta con un trabajo de grado desarrollado por estudiantes de pregrado de la
Pontificia Universidad Javeriana y liderado por el Ingeniero Jorge Andrés Alvarado Valencia
denominado "Análisis del sentimiento político mediante la aplicación de herramientas de minería de
datos a través del uso de redes sociales" para llevar a cabo el análisis de sentimientos sobre las
publicaciones que el sistema extrae.
A continuación, en la ilustración 4 se presentan los requerimientos correspondientes al módulo de
análisis de sentimientos:
Ilustración 4 Modulo de análisis de sentimientos con requerimientos.
2. Módulo de agregadas
12
Para el desarrollo del módulo de análisis de sentimientos se utilizarán las siguientes
herramientas y lenguajes de desarrollo:
1. Python 3.5
2. R Studio 3.3.3 o superior.
A continuación, en la ilustración 5 se presentan los requerimientos correspondientes al módulo de
agregadas:
Ilustración 5 Modulo de agregadas con requerimientos.
3. Módulo de sesgo
Para el desarrollo del módulo de análisis de sentimientos se utilizarán las siguientes
herramientas y lenguajes de desarrollo:
1. Python 3.5
2. R Studio 3.3.3 o superior.
13
A continuación, en la ilustración 6 se presentan los requerimientos correspondientes al módulo de
agregadas:
Ilustración 6 Modulo de sesgo con requerimientos.
4. Módulo de correlaciones
Para el desarrollo del módulo de análisis de sentimientos se utilizarán las siguientes
herramientas y lenguajes de desarrollo:
1. Python 3.5
2. R Studio 3.3.3 o superior.
A continuación, en la ilustración 7 se presentan los requerimientos correspondientes al módulo de
agregadas:
14
Ilustración 7 Modulo de correlaciones con requerimientos.
Ahora, se detallan los algoritmos a implementar por cada categorización de minería de datos
en la tabla 1, indicado la técnica, nombre del algoritmo núcleo, entrada y salida. Es necesario
mencionar que en este documento solo se detalla la entrada y salida mas no como se utiliza a nivel del
sistema.
Tarea Técnica Algoritmo núcleo
Entrada Salida
Predictiva Análisis de sentimientos
Bag-of-words
Cadena de caracteres
-1 negativo, 0 neutral, 1 positivo
Descriptiva Sesgo Rango Intercuartil
Lista de cada medio.
Lista de medios, la cantidad de publicaciones de cada medio y una descripción indicando si es un outlier o no según la cantidad de publicaciones que ha hecho comparado al resto de medios.
Descriptiva Asociación de palabras
Matriz de correlación
Una matriz M cuyas filas i representan cada documento (ej: comentario o
Una estructura de datos que representa un grafo, con cada nodo representando las palabras y las aristas representan la asociación entre las palabras.
El tamaño del nodo indica qué tan fuerte es la asociación entre las
15
publicación) y las columnas j son cada palabra que aparece en todo el corpus de documentos.
El valor de cada celda M[i, j] de la matriz es el peso TF-IDF del término j para el documento i.
palabras. Entre más grande el nodo significa que la asociación para esa palabra es mayor y si el nodo es de menor tamaño indica que la asociación es más pequeña.
Descriptiva Suma sum Lista de elementos del mismo tipo; enteros, decimales, entre otros.
Descriptiva Promedio avg Lista de elementos del mismo tipo; enteros, decimales, entre otros.
Descriptiva Frecuencia count Lista de elementos del mismo tipo; cadena de caracteres, enteros, decimales, entre otros.
Descriptiva Mínimo min Lista de elementos
16
del mismo tipo; enteros, decimales, entre otros.
Descriptiva Máximo max Lista de elementos del mismo tipo; enteros, decimales, entre otros.
Tabla 1 Algoritmo núcleo
5.4. Comportamiento del Sistema
En esta sección se presentan los diagramas de secuencia, mediante estos diagramas de secuencia
se identifica el flujo general del usuario al momento de usar el sistema para consultar y observar
resultados, es necesario aclarar que la gran mayoría de componentes identificados en estos diagramas
hacen parte de la arquitectura previamente descrita mas no los algoritmos utilizados bajo cada
módulo.
Módulo análisis de sentimientos
Ilustración 8 Diagrama de secuencia de análisis de sentimientos
Módulo agregadas
17
Ilustración 9 Diagrama de secuencia de agregadas.
Módulo de correlaciones
Ilustración 10 Diagrama de secuencia de correlaciones.
Módulo sesgo
18
Ilustración 11 Diagrama de secuencia de sesgo.
5.5. Persistencia
El sistema maneja una base de datos no relacional y se presenta a continuación en la ilustración
12 la manera en que se representan los datos y su relación.
Ilustración 12 Modelo de datos
1. Post
a. _id: representa el ID del post.
b. created_time: representa la fecha de creación del post.
c. message: representa la cadena de caracteres que representa el post.
d. name: representa el nombre del post.
e. description: representa una descripción del post.
f. shares: representa la cantidad de veces que un post fue compartido.
g. link: representa la url del post.
19
h. reactions:
i. sad: representa la reacción Sad.
ii. haha: representa la reacción haha.
iii. love: representa la reacción love.
iv. like: representa la reacción like.
v. wow: representa la reacción wow.
vi. angry: representa la reacción angry.
2. Comments
a. _id: representa el ID del post.
b. created_time: representa la fecha de creación del comentario.
c. message: representa la cadena de caracteres del mensaje.
d. like_count: representa la cantidad de veces que los usuarios le han dado like a ese
comentario.
Para almacenar los resultados los algoritmos en la base de datos y garantizar un
procesamiento adecuado y eficiente de los datos que continuamente se extraen, se deben seguir una
serie de pasos que se muestran en la ilustración 13:
Ilustración 13 Proceso de guardado y carga
1. Recopilar datos de base de datos: En esta parte del proceso, el componente de analítica
consume los datos ya extraídos por parte de RART 2.0.
2. Aplicar algoritmos del componente de analítica: Una vez los datos son consumidos por parte
del componente de analítica, los algoritmos empiezan su propio procesamiento y previamente
entregan los resultados y salidas de los algoritmos.
3. Generar y guardar resumen del día: Este es uno de los pasos más importantes del proceso
debido a que es en esta actividad que el sistema almacena resúmenes del día con ánimos de no
20
repetir los pasos anteriores. El sistema consulta el resumen del día y posteriormente entrega
los resultados acumulados finales hasta la fecha actual.
5.6. Interfaz de Usuario
Ilustración 14 Visualización del prototipo - descubre (Asociación de palabras)
Ilustración 15 Visualización del prototipo – líder 1 estadísticas de Facebook
Ilustración 16 Visualización del prototipo líderes de opinión – acciones
21
Ilustración 17 Visualización del prototipo líderes de opinión - nube de palabras de publicaciones realizadas por el líder
Ilustración 18 Visualización del prototipo líderes de opinión – tendencias de los comentarios
Ilustración 19 Visualización del prototipo líderes de opinión - Reacciones en noticias sobre líder de opinión
22
Ilustración 20 Visualización del prototipo líderes de opinión - Comentarios populares sobre el líder en el mes
Ilustración 21 Visualización del prototipo Medios - casos de corrupción
23
Ilustración 22 Visualización del prototipo Medios - Cantidad de publicaciones sobre líderes de opinión vs cantidad de
publicaciones de corrupción que mencionan a líderes de opinión
Ilustración 23 Visualización del prototipo Medios - Cantidad de publicaciones sobre partido político vs cantidad de
publicaciones de corrupción que mencionan a partido político
24
Ilustración 24 Visualización del prototipo Medios - Cantidad de publicaciones sobre la institución vs cantidad de
publicaciones de corrupción que mencionan a la institución
Ilustración 25 Visualización del prototipo Medios – medios que publican más sobre la institución vs medios que publican
menos sobre la institución
Ilustración 26 Visualización del prototipo Medios – cantidad de publicaciones hecha por un medio de comunicación vs
otro medio de comunicación
25
Ilustración 27 Visualización del prototipo Medios – cantidad de publicaciones sobre un caso de corrupción hecho por dos
medios
Ilustración 28 Visualización del prototipo Medios – cantidad de publicaciones sobre un líder de opinión hecho por dos
medios
26
Ilustración 29 Visualización del prototipo Medios – cantidad de publicaciones sobre un partido político hecho por dos
medios
Ilustración 30 Visualización del prototipo Medios – cantidad de publicaciones sobre una institución hecho por dos
medios
27
Ilustración 31 Visualización del prototipo Medios - Publicaciones sobre corrupción por cada medio
Ilustración 32 Visualización del prototipo partidos políticos - Sentimientos expresados en los comentarios
Ilustración 33 Visualización del prototipo partidos políticos – actividad
28
Ilustración 34 Visualización del prototipo partidos políticos - reacciones en noticias sobre este partido político
Ilustración 35 Visualización del prototipo casos de corrupción – cantidad de publicaciones sobre el caso vs cantidad de
comentarios sobre el caso
Ilustración 36 Visualización del prototipo casos de corrupción – reacciones en noticias sobre este carro de corrupción
29
6. Referencias
[1]. Mendoza, Calambás, (2016). Documento de Diseño de Software, RART, Trabajo de Grado,
recuperado de http://pegasus.javeriana.edu.co/~CIS1630AP06/Documentacion/SDD/RART_SDD.pdf
11 de abril de 2017
[2]. López, Iannini, Forero, Torres, Guerrero, Gracia (2015). Software Design Document, JaveShop,
Ingeniería de Software.
[2] 1016-2009 - IEEE Standard for Information Technology--Systems Design--Software Design
Descriptions
30