universidad central del ecuador · universidad central del ecuador portada facultad de ingenierÍa...
TRANSCRIPT
UNIVERSIDAD CENTRAL DEL ECUADOR
PORTADA
FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y
MATEMÁTICA
CARRERA DE INGENIERÍA EN INFORMÁTICA
“ANÁLISIS DE PREFERENCIAS POLÍTICAS,
SOPORTADO FUNDAMENTALMENTE POR LAS REDES
SOCIALES”
TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO
AUTOR: JUAN PABLO GUEVARA GORDILLO
TUTOR: ING MARIO RAÚL MORALES MORALES
Quito – Ecuador
2015
II
DEDICATORIA
La presente tesis se la dedico principal y especialmente a mis
padres y abuelos, ya que gracias a su apoyo, paciencia y
confianza he culminado mi carrera, gracias por estar siempre a mi
lado apoyándome y aconsejándome incondicionalmente.
A mis hermanos por estar siempre presentes orientándome en
cada una de las decisiones importantes de mi vida.
Además debo agradecer a todos aquellos excelentes Docentes
que con sus conocimientos, sabios consejos y apoyo continuo,
contribuyeron no sólo en darme una formación académica
respetable sino también enriquecieron mi formación personal, así
como el apoyo sincero e incondicional de aquellos buenos
amigos y compañeros que siempre estuvieron a mi lado.
III
AGRADECIMIENTO
A Dios por sus múltiples bendiciones y permitirme cumplir mis
objetivos.
A mis Padres Cesar Guevara y Martha Gordillo por ser mi
motivación, mis amigos, mis confidentes y mí guía.
A mis hermanos Gabriel y Leonardo, por brindarme sus consejos,
apoyo y ánimo.
A todos mis profesores de la Universidad Central del Ecuador en
especial:
A mi Director de Tesis Ing. Mario Morales quien con su esfuerzo y
dedicación, supo guiarme en el desarrollo de este proyecto de tesis.
A los profesores: Mat. Jorge Arroba e Ing. René Carillo porque
gracias a sus conocimientos y experiencia han aportado en mi
formación académica.
A todas las personas que forman parte de mi vida que de una u otra
forma me han brindado su valiosa amistad.
IV
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL
V
VI
VII
VIII
CONTENIDO PORTADA ........................................................................................................................................................................................... I
DEDICATORIA ............................................................................................................................................................................... II
AGRADECIMIENTO ................................................................................................................................................................. III
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL ....................................................................................... IV
CONTENIDO ............................................................................................................................................................................... VIII
LISTA DE TABLAS ................................................................................................................................................................... XI
LISTA DE ILUSTRACIONES ............................................................................................................................................ XII
RESUMEN ..................................................................................................................................................................................... XIV
ABSTRACT ................................................................................................................................................................................... XV
CAPÍTULO I ...................................................................................................................................................................................... 1
1. PRESENTACIÓN DEL PROBLEMA................................................................................................................... 1
1.1. Introducción ....................................................................................................................................................................... 1
1.2. Planteamiento del Problema ................................................................................................................................. 1
1.3. Formulación del Problema ...................................................................................................................................... 1
1.4. Interrogantes ..................................................................................................................................................................... 1
1.5. Objetivos de la Investigación ................................................................................................................................ 2
1.5.1. Objetivo General ....................................................................................................................................................... 2
1.5.2. Objetivo Específicos .............................................................................................................................................. 2
1.6. Justificación ....................................................................................................................................................................... 2
1.7. Alcance ................................................................................................................................................................................. 2
1.8. Delimitación del Proyecto ........................................................................................................................................ 3
CAPÍTULO II ..................................................................................................................................................................................... 4
2. FUNDAMENTACIÓN TEÓRICA ............................................................................................................................. 4
2.1. Procesamiento de lenguajes naturales ......................................................................................................... 4
2.2. Minería de Opinión ....................................................................................................................................................... 5
2.2.1. Polaridad de la Opinión ....................................................................................................................................... 6
2.2.2. Algunas aproximaciones no supervisadas ............................................................................................ 6
2.2.3. Algunas aproximaciones supervisadas ................................................................................................ 10
2.3. Redes Sociales ............................................................................................................................................................ 13
2.4. Gestión de Datos ........................................................................................................................................................ 17
IX
2.4.1. Definición de datos no estructurados ..................................................................................................... 18
2.4.2. NOSQL ......................................................................................................................................................................... 21
2.4.3. Base de Datos NOSQL .................................................................................................................................... 21
2.5. Inteligencia de Negocios ....................................................................................................................................... 22
2.5.1. Datos, información y conocimiento .......................................................................................................... 24
2.5.1.1. Datos ......................................................................................................................................................................... 25
2.5.1.2. Información ........................................................................................................................................................... 25
2.5.1.3. Conocimiento ...................................................................................................................................................... 26
2.6. Marco de Trabajo (FRAMEWORK) ............................................................................................................... 26
2.6.1. ¿Qué es un framework Web? ...................................................................................................................... 27
2.6.2. Patrón MVC ............................................................................................................................................................... 28
2.6.3. Tipos de framework Web ................................................................................................................................ 29
2.6.4. Características. ....................................................................................................................................................... 30
2.7. ODBC .................................................................................................................................................................................. 30
2.8. Metodologías ................................................................................................................................................................. 31
2.8.1. Metodología de Desarrollo Software ...................................................................................................... 31
CAPÍTULO III ................................................................................................................................................................................ 32
3. ANÁLISIS DEL SISTEMA ........................................................................................................................................ 32
3.1. Especificación de Requerimientos ................................................................................................................ 32
3.1.1. Contextualización .................................................................................................................................................. 32
3.2. Requerimientos Funcionales ............................................................................................................................. 33
3.2.1. Características principales del sistema ................................................................................................ 33
3.2.2. Descripción de los Actores ............................................................................................................................ 33
3.2.2.1. Procesos de actores y roles .................................................................................................................... 34
3.2.2.1.1. Actividades del Administrador ..................................................................................................... 34
3.2.2.1.2. Actividades del usuario del sistema ........................................................................................ 34
3.2.3. Requerimientos Específicos ......................................................................................................................... 35
3.3. Casos de Uso ................................................................................................................................................................ 35
3.3.1. Diagrama general de casos de uso ......................................................................................................... 35
3.3.2. Descripción de los Casos de Uso ............................................................................................................. 36
3.4. Requerimientos no funcionales ........................................................................................................................ 39
X
CAPÍTULO IV ................................................................................................................................................................................ 40
4. DISEÑO DEL SISTEMA ............................................................................................................................................. 40
4.1. Arquitectura del Sistema ....................................................................................................................................... 40
4.1.1. Diseño de la Arquitectura Lógica del Sistema ................................................................................. 40
4.2. Descripción de las Entidades ............................................................................................................................ 43
4.3. Diseño de Interfaces ................................................................................................................................................ 45
4.3.1. Interface Sitio Web ............................................................................................................................................... 45
4.3.1.1. Interfaz de Usuario ......................................................................................................................................... 45
4.3.2. Interfaz de Reportes ........................................................................................................................................... 48
CAPÍTULO V ................................................................................................................................................................................. 53
5. HERRAMIENTAS UTILIZADAS Y PRUEBAS DEL SISTEMA ................................................... 53
5.1. Plataforma ........................................................................................................................................................................ 53
5.2. Herramientas Utilizadas ........................................................................................................................................ 53
5.2.1. Herramientas a utilizarse para el desarrollo ..................................................................................... 53
5.2.1.1. Herramientas para modelado informático ..................................................................................... 53
5.2.1.2. Herramientas para desarrollo de interfaces de usuario ...................................................... 55
5.2.1.3. Herramientas para codificación............................................................................................................. 55
5.3. Estándares de Programación ............................................................................................................................ 59
5.4. Pruebas .............................................................................................................................................................................. 60
CAPÍTULO VI ................................................................................................................................................................................ 61
6. CONCLUSIONES Y RECOMENDACIONES ............................................................................................. 61
6.1. Conclusiones ................................................................................................................................................................. 61
6.2. Recomendaciones ..................................................................................................................................................... 61
GLOSARIO DE TÉRMINOS .............................................................................................................................................. 63
BIBLIOGRAFÍA ........................................................................................................................................................................... 66
ANEXOS ........................................................................................................................................................................................... 68
APÉNDICE ...................................................................................................................................................................................... 69
1. ARQUITECTURA DEL SITIO WEB .............................................................................................................. 69
2. MANUAL PARA EL USO DEL SITIO WEB ............................................................................................ 90
3. MANUAL DE USO DEL REPORTE ............................................................................................................. 96
XI
LISTA DE TABLAS
Tabla 1: Frases formadas por dos palabras (WANTON, 2014) ................................................................. 6
Tabla 2: Palabras semillas usadas para crear los vectores de valencia (WANTON, 2014)
.................................................................................................................................................................................................................. 11
Tabla 3: Aproximaciones no supervisadas. (Autoría Personal) .............................................................. 12
Tabla 4: Aproximaciones supervisadas. (Autoría Personal) ...................................................................... 12
Tabla 5: Características de los Frameworks. (Informática, 2015) ....................................................... 30
Tabla 6: Descripción de Entidad Localización. (Autoría Personal)....................................................... 43
Tabla 7: Descripción de Entidad Tabla. (Autoría Personal) ....................................................................... 43
Tabla 8: Descripción de Entidad PolGeneral. (Autoría Personal) ......................................................... 43
Tabla 9: Descripción de Entidad Descod. (Autoría Personal) .................................................................. 44
Tabla 10: Descripción de Entidad Tema. (Autoría Personal) ................................................................... 44
Tabla 11: Descripción de Entidad General. (Autoría Personal) .............................................................. 44
Tabla 13: Diagrama UML de la Clase Conexión. (Autoría Personal) ................................................. 70
Tabla 14: Diagrama UML de la Clase ArchivoBean. (Autoría Personal) ......................................... 71
Tabla 15: Diagrama UML de la Clase ComentarioBean. (Autoría Personal)................................ 73
Tabla 16: Diagrama UML de la Clase DiccionarioBean. (Autoría Personal) ................................. 74
Tabla 17: Diagrama UML de la Clase DiccionarioTemaBean. (Autoría Personal) ................... 75
Tabla 18: Diagrama UML de la Clase EjecutarBean. (Autoría Personal) ........................................ 76
Tabla 19: Diagrama UML de la Clase ArchivoDao. (Autoría Personal) ............................................ 77
Tabla 20: Diagrama UML de la Clase ComentarioDao. (Autoría Personal) .................................. 79
Tabla 21: Diagrama UML de la Clase DiccionarioDao. (Autoría Personal) ................................... 80
Tabla 22: Diagrama UML de la Clase DiccionarioTemaDao. (Autoría Personal) ...................... 82
Tabla 23: Diagrama UML de la Clase Comentario. (Autoría Personal) ............................................ 83
Tabla 24: Diagrama UML de la Clase Diccionario. (Autoría Personal) ............................................. 84
Tabla 25: Diagrama UML de la Clase DiccionarioTema. (Autoría Personal) ............................... 84
Tabla 26: Diagrama UML de la Clase Ejecución. (Autoría Personal) ................................................. 85
Tabla 27: Diagrama UML de la Clase EjecucionTema. (Autoría Personal) ................................... 87
Tabla 28: Diagrama UML de la Clase Objeto. (Autoría Personal) ........................................................ 89
XII
LISTA DE ILUSTRACIONES
Ilustración 1: Conocimiento, Información y Datos (sinnexus, 2015) .................................... 22
Ilustración 2: Acción, Información y Decisión. (Sinnexus, 2015) .......................................... 24
Ilustración 3: Business Intelligence / Business Operation. (Sinnexus, 2015) ..................... 24
Ilustración 4: Framework (Marco). (Informática, 2015). ......................................................... 27
Ilustración 5: Modelo Vista Contralor (MVC). (Informática, 2015) ........................................ 28
Ilustración 6: (MVC). (Informática, 2015) .................................................................................. 29
Ilustración 7: Actividades Administrador. (Autoría Personal) ................................................ 34
Ilustración 8: Actividades del usuario final. (Autoría Personal) ............................................. 34
Ilustración 9: Diagrama de casos de uso Análisis de preferencias Políticas, Soportado
fundamentalmente por las redes sociales. (Autoría Personal) ............................................... 35
Ilustración 10: Diagrama casos de uso Gestionar Información. (Autoría Personal) .......... 36
Ilustración 11: Diagrama de casos de uso Gestionar Reportes. (Autoría Personal) ......... 36
Ilustración 12: Diagrama de casos de uso Gestionar Sitio Web. (Autoría Personal) ........ 37
Ilustración 13: Diagrama de casos de uso Barra de Opciones. (Autoría Personal) .......... 37
Ilustración 14: Diagrama de caso de usos Visualización Comentarios. (Autoría Personal).
........................................................................................................................................................... 38
Ilustración 15: Diagrama de caso de usos Prueba de Comentario. (Autoría Personal) ... 38
Ilustración 16: Capa Presentación (Autoría Personal) ........................................................... 40
Ilustración 17: Capa Negocios ................................................................................................... 41
Ilustración 18: Capa Datos.......................................................................................................... 41
Ilustración 19: Modelo Entidad / Relación del Sistema. (Autoría Personal)........................ 42
Ilustración 20: Página Principal. (Autoría Personal) ............................................................... 45
Ilustración 21: Página de Video. (Autoría Personal) ............................................................... 45
Ilustración 22: Página Diccionario General. (Autoría Personal) ........................................... 46
Ilustración 23: Página Diccionario Temas. (Autoría Personal) ............................................. 46
Ilustración 24: Pagina Tabla Maestra. (Autoría Personal) ..................................................... 47
Ilustración 25: Página de Prueba. (Autoría Personal) ............................................................ 47
Ilustración 26: Pestaña Introducción Reporte. (Autoría Personal) ....................................... 48
Ilustración 27: Pestaña Inicio Reporte. (Autoría Personal) .................................................... 48
Ilustración 28: Pestaña Valores. (Autoría Personal) ............................................................... 49
Ilustración 29: Pestaña Gráficos. (Autoría Personal) ............................................................. 49
Ilustración 30: Pestaña Modelo-Entidad-Relación. (Autoría Personal)................................ 50
Ilustración 31: Pestaña Mapa Geo localización. (Autoría Personal) .................................... 50
Ilustración 32: Pestaña Comentarios. (Autoría Personal) ...................................................... 51
Ilustración 33: Pestaña Diccionarios. (Autoría Personal ........................................................ 51
Ilustración 34: Pestaña Resumen. (Autoría Personal) ........................................................... 52
Ilustración 35: PowerDesigner ................................................................................................... 53
Ilustración 36: Excel 2013 ........................................................................................................... 54
Ilustración 37: QVSOURCE ........................................................................................................ 54
Ilustración 38: QlikView ............................................................................................................... 54
XIII
Ilustración 39: JSF ....................................................................................................................... 55
Ilustración 40: Primefaces ........................................................................................................... 55
Ilustración 41: Netbeans ............................................................................................................. 56
Ilustración 42: JDK ....................................................................................................................... 56
Ilustración 43: JAVA EE7 ............................................................................................................ 56
Ilustración 44: MVC ...................................................................................................................... 57
Ilustración 45: EJB ....................................................................................................................... 57
Ilustración 46: GlassFish ............................................................................................................. 58
Ilustración 47: Arquitectura del Sitio Web. (Autoría Personal) .............................................. 69
Ilustración 48: Paquete Conexiones .......................................................................................... 70
Ilustración 49: Paquete Controladores ...................................................................................... 71
Ilustración 50: Paquete DAO ...................................................................................................... 77
Ilustración 51: Paquete DTO ...................................................................................................... 83
Ilustración 52: Paquete Procesamiento .................................................................................... 85
Ilustración 53: GRÁFICO DE NIVELES DE NAVEGACIÓN EN EL SITIO WEB. (Autoría
Personal) .......................................................................................................................................... 90
Ilustración 54: Menú de Inicio. (Autoría Personal) .................................................................. 91
Ilustración 55: Pantalla de Programas. (Autoría Personal) ................................................... 91
Ilustración 56: Opción de Video. (Autoría Personal)............................................................... 92
Ilustración 57: Opción de Diccionario General. (Autoría Personal) ...................................... 92
Ilustración 58: Pantalla del Diccionario General. (Autoría Personal) ................................... 93
Ilustración 59: Opción de Diccionario por Temas. (Autoría Personal) ................................. 93
Ilustración 60: Pantalla del Diccionario por Temas. (Autoría Personal) .............................. 93
Ilustración 61: Opción de Cometarios. (Autoría Personal) .................................................... 94
Ilustración 62: Pantalla de Comentarios. (Autoría Personal) ................................................ 94
Ilustración 63: Opción de Archivos vs Base de Datos. (Autoría Personal) ......................... 95
Ilustración 64: Pantalla de Ingreso de Comentario. (Autoría Personal) .............................. 95
Ilustración 65: Pestaña Introducción Reporte. (Autoría Personal) ....................................... 96
Ilustración 66: Pestaña Inicio Reporte. (Autoría Personal) .................................................... 96
Ilustración 67: Pestaña Valores. (Autoría Personal) ............................................................... 97
Ilustración 68: Pestaña Gráficos. (Autoría Personal) ............................................................. 98
Ilustración 69: Pestaña Modelo-Entidad-Relación. (Autoría Personal)................................ 98
Ilustración 70: Pestaña Mapa Geo localización. (Autoría Personal) .................................... 99
Ilustración 71: Pestaña Comentarios. (Autoría Personal) .................................................... 100
Ilustración 72: Pestaña Diccionarios. (Autoría Personal) ..................................................... 100
Ilustración 73: Pestaña Resumen. (Autoría Personal) ......................................................... 101
XIV
RESUMEN
“ANÁLISIS DE PREFERENCIAS POLÍTICAS,
SOPORTADO FUNDAMENTALMENTE POR LAS
REDES SOCIALES”
El presente proyecto define, diseña y desarrolla un Análisis de Preferencias
Políticas, soportado fundamentalmente por las Redes Sociales, que presentan
una realidad política del Presidente de la República del Ecuador Econ. Rafael
Correa Delgado. El tratamiento de los comentarios políticos es generado por
personas vinculadas a redes sociales y se graban en una base de datos para
el análisis. Como resultado los diversos comentarios políticos recogidos se
procesan, analizan y finalmente se exhiben de una manera clara sobre el tema
de investigación.
DESCRIPTORES:
ANÁLISIS DE PREFERENCIAS POLÍTICAS / REDES SOCIALES / TWITTER
/ POLÍTICA DEL PAÍS / INTELIGENCIA DE NEGOCIOS / PROCESAMIENTO
DE LENGUAJES NATURALES
XV
ABSTRACT
“ANALYSIS OF POLITICAL PREFERENCES
FUNDAMENTALLY SUPPORTED BY SOCIAL
NETWORKS”
The present Project defines, designs, and develops an analysis of political
preferences fundamentally supported by Social Networks that present the
political reality of the President of the Republic of Ecuador, Economist Rafael
Correa Delgado. The treatment of political comments is based upon generated
content by persons linked to social networks and is recorded to a database for
analysis. As a result, the diverse political comments which have been gathered
are then processed, analyzed, and ultimately presented in a clear manner
about the subject of the inquiry.
DESCRIPTORS:
ANALYSIS OF POLITICAL PREFERENCES / SOCIAL NETWORKS /
TWITTER / COUNTRY POLICY / BUSINESS INTELLIGENCE / NATURAL
LANGUAGES PROCESSING
XVI
XVII
1
CAPÍTULO I
1. PRESENTACIÓN DEL PROBLEMA
1.1. Introducción
En la actualidad existe una gran cantidad de información expuesta en el
internet, la cual puede ser usada para generar conocimiento, análisis y
desarrollo de las tecnologías.
La información es extensa y a la vez compleja, que por tanto surge la idea
de analizar tales contenidos, con el fin de realizar y explorar mediciones de
opinión y sentimientos vertidos en internet.
El uso del análisis sobre opiniones y sentimientos, se dan en varios
estudios, como por ejemplo: Valoraciones de productos o marcas famosas,
determinar la popularidad de un determinado partido político, etc.
En el presente proyecto de Tesis se pretende desarrollar, un Análisis de
preferencias políticas para la toma de decisiones.
1.2. Planteamiento del Problema
La falta de herramientas tecnológicas gratuitas, en favor de la toma de
decisiones estratégicas basadas, en la cantidad de datos generados por los
electores, en el entorno político del país.
1.3. Formulación del Problema
¿Se puede analizar preferencias políticas, al extraer contenidos web,
específicamente opiniones generadas por los actores políticos del país?
1.4. Interrogantes
Los interrogantes que se han planteado al realizar el trabajo de investigación
son los siguientes:
¿Cómo se extraerá los datos para luego ser analizados?
¿Cómo se podrá realizar un análisis de preferencias políticas?
2
1.5. Objetivos de la Investigación
1.5.1. Objetivo General
Analizar las preferencias políticas generadas por los electores, apoyados en
herramientas informáticas, para la obtención y procesamiento de contenido
web.
1.5.2. Objetivo Específicos
Extraer los datos de una red social, a través de las herramientas informáticas.
Implementar algoritmos de programación e inteligencia de negocios, para
realizar el análisis de preferencias políticas, mediante el uso de
herramientas informáticas.
1.6. Justificación
Hoy en día no se cuenta con un análisis respecto a las preferencias políticas,
de ciertos actores que intervienen en la vida política del país. Por lo que es
adecuado realizar un análisis que permita definir preferencias políticas en el
contexto social del país.
Es pertinente señalar, que las sociedades modernas en las que vivimos hoy,
manejan con frecuencia medios sociales, que a su vez permite una libertad de
expresión por parte de los electores. Por este motivo la información de estos
medios sociales, pueden ser un factor importante y desequilibrante en el
análisis de preferencias políticas planteado para el presente proyecto.
1.7. Alcance
A continuación se detalla los módulos previstos para el presente proyecto:
a. MÓDULO PROCESAMIENTO
PROGRAMACIÓN
- Comprende el algoritmo para procesar los comentarios extraídos de Twitter.
- Diccionario de palabras en un contexto general.
- Diccionario de palabras en varios temas como son:
3
o Cultura
o Educación
o Política, Derecho y Economía
o Información y Comunicación
- Creación de un sitio web, para la administración de los datos y la
ejecución de programas relacionados al análisis de preferencias
políticas.
b. MÓDULO DE ANÁLISIS
HERRAMIENTA DE INTELIGENCIA DE NEGOCIOS
Se dispone de esta herramienta para uso de reportes en el proceso de
análisis de preferencias políticas, lo cual permite la obtención de
información de manera clara a la hora de tomar una decisión.
o Mapa Geo referenciales
o Reportes dinámicos
1.8. Delimitación del Proyecto
El sitio web será visible únicamente en una máquina local.
Los datos manejados para el análisis preferencias políticas, serán cargados previamente, con el uso de herramientas informáticas.
El proceso de análisis de preferencias políticas, no se lo realizará en tiempo real.
Los comentarios extraídos por la herramienta informática, serán limitados.
La creación de los diccionarios, no comprende metodología, esto se refiere a que las palabras ingresadas se basan en búsquedas en la web.
Los diccionarios no son capaces de auto aprender.
4
CAPÍTULO II
2. FUNDAMENTACIÓN TEÓRICA
2.1. Procesamiento de lenguajes naturales
El procesamiento de lenguajes naturales abreviado PLN, o NLP del idioma inglés (Natural Language Processing) es un campo de las ciencias de la computación, inteligencia artificial y lingüística que estudia las interacciones entre las computadoras y el lenguaje humano. El PLN se ocupa de la formulación e investigación de mecanismos eficaces computacionalmente para la comunicación entre personas y máquinas por medio de lenguajes naturales. El PLN no trata de la comunicación por medio de lenguajes naturales de una forma abstracta, sino de diseñar mecanismos para comunicarse que sean eficaces computacionalmente que se puedan realizar por medio de programas que ejecuten o simulen la comunicación. Los modelos aplicados se enfocan no sólo a la comprensión del lenguaje de por sí, sino a aspectos generales cognitivos humanos y a la organización de la memoria. El lenguaje natural sirve sólo de medio para estudiar estos fenómenos (CARBONELL, 2015).
Dificultades en el procesamiento de lenguajes naturales
Ambigüedad
El lenguaje natural es inherentemente ambiguo a diferentes niveles
(CARBONELL, 2015):
A nivel léxico, una misma palabra puede tener varios significados, y la
selección del apropiado se debe deducir a partir del contexto oracional o
conocimiento básico. Muchas investigaciones en el campo del
procesamiento de lenguajes naturales han estudiado métodos de resolver
las ambigüedades léxicas mediante diccionarios, gramáticas, bases de
conocimiento y correlaciones estadísticas.
A nivel referencial, la resolución de anáforas y catáforas implica determinar
la entidad lingüística previa o posterior a que hacen referencia.
A nivel estructural, se requiere de la semántica para desambiguar la
dependencia de los sintagmas preposicionales que conducen a la
construcción de distintos árboles sintácticos. Por ejemplo, en la frase
Rompió el dibujo de un ataque de nervios.
A nivel pragmático, una oración, a menudo, no significa lo que realmente
se está diciendo. Elementos tales como la ironía tienen un papel
importante en la interpretación del mensaje.
5
Para resolver estos tipos de ambigüedades y otros, el problema central en
el PLN es la traducción de entradas en lenguaje natural a una representación
interna sin ambigüedad, como árboles de análisis.
En base a lo indicado anteriormente nos permitimos señalar un concepto orientado a nuestro problema. El Procesamiento de lenguaje natural nos permite generar un mecanismo, entre el computador y las personas. Para generar un entendimiento entre los actores involucrados.
2.2. Minería de Opinión
La Minería de Opiniones (conocida en inglés bajo los nombres de opinión
mining, sentiment classification, subjectivity analysis) es un área de la Minería
de Textos consistente en la clasificación de palabras, textos o documentos
de acuerdo a las opiniones, sentimientos, emociones y subjetividades
expresadas (WANTON, 2014).
Aunque ya en la década de los 90 se pueden encontrar algunos estudios en
esta área, no es hasta hace unos pocos años que se retoman los problemas
y las oportunidades que presenta la Minería de Opiniones. En consecuencia,
ya se pueden encontrar muchos artículos y sistemas que abordan esta
temática.
Este despertar se debe a tres factores fundamentales:
La cantidad de métodos de aprendizaje que se han propuesto para el
procesamiento del lenguaje natural y la extracción de información.
La disponibilidad de grandes colecciones de datos para entrenar estos
algoritmos, gracias a Internet y específicamente al desarrollo de sitios de
críticas, blogs, etc.
Desarrollo de los retos intelectuales y comerciales que el área ofrece.
El procesamiento automático de opiniones no es una tarea sencilla. Algunos
de los problemas presentes en el tratamiento de las opiniones son: el uso de
lenguaje informal, las abreviaturas, los errores ortográficos y tipográficos, el
lenguaje irónico y sarcástico, el nivel de conocimiento del lenguaje, el nivel
cultural, entre otros. Estos problemas, en comparación con el procesamiento
de documentos en otras tareas de la Minería de Textos, imponen una mayor
dificultad a la Minería de Opiniones (WANTON, 2014).
6
2.2.1. Polaridad de la Opinión
La determinación de la polaridad (conocida además como orientación
semántica o valencia), es una de las tareas más importantes de la Minería de
Opiniones consistente en determinar cuándo una opinión es positiva,
negativa o neutra con respecto a la entidad a la cual se está refiriendo (una
persona, un producto, un tema, un filme, etc.) (WANTON, 2014).
Por ejemplo, la oración “Casi Famosos es una excelente película con un
argumento fresco, dinámico y original...”, es una opinión positiva, mientras
que, “El resultado es decepcionante, porque los cambios de tono (del drama
a la comedia) son constantes, y rompe muchas escenas...”, expresa una
opinión negativa y una opinión neutra “. La película tiene una duración de casi
dos horas y se podría clasificar como género entre comedia y drama...”
(WANTON, 2014).
2.2.2. Algunas aproximaciones no supervisadas
Turney
La aproximación propuesta clasifica una crítica como recomendada o no
recomendada basándose en un algoritmo no supervisado muy simple
(TURNEY, 2002).
A continuación se detallan los pasos del algoritmo (TURNEY, 2002).
Primer paso del algoritmo consiste en extraer frases que contengan
bigramas formados por un adjetivo o un adverbio y por otra palabra como
contexto. Para ello, primeramente realiza un análisis morfológico y extrae
palabras consecutivas que coincidan con alguno de los patrones presentados
en la Tabla 1 (donde: JJ-adjetivos, NN-sustantivos, RB-adverbios,VB-
verbos):
N⁰ Primera palabra Segunda palabra Tercera palabra
(no se extrae)
1 JJ NN o NNS Cualquiera
2 RB,RBR o RBS JJ ni NN ni NNS
3 JJ JJ ni NN ni NNS
4 NN o NNS JJ ni NN ni NNS
5 RB,RBR o RBS VB,VBD,VBN o VBG Cualquiera
Tabla 1: Frases formadas por dos palabras (WANTON, 2014)
7
Segundo paso estima la orientación semántica (polaridad) de las frases
extraídas usando el algoritmo PMI-IR (Pointwise Mutual Information -
Information Retrieval). PMI permite calcular la fuerza de la asociación
semántica entre palabras y luego, se aplica recuperación de información (IR)
para obtener las estadísticas de la co-ocurrencia de palabras.
Las frases extraídas son consultadas para saber en qué medida se
encuentran más cerca de palabras positivas y negativas (en este caso
“excelente” y “pobre”, respectivamente). La estimación de la orientación
semántica (SO -Semantic Orientation), de una frase se calcula como:
𝑺𝑶(𝒇𝒓𝒂𝒔𝒆) = 𝐏𝐌𝐈(𝐟𝐫𝐚𝐬𝐞,execelente) − 𝐏𝐌𝐈(𝐟𝐫𝐚𝐬𝐞, "𝐩𝐨𝐛𝐫𝐞")
El valor PMI de dos palabras w1 y w2 está dado por la probabilidad de que
las dos palabras ocurran juntas dividido por la probabilidad de cada palabra
por separado, esto es:
𝐏𝐌𝐈(𝐖𝟏,𝐖𝟐) = 𝒍𝒐𝒈𝑷(𝑾𝟏,𝑾𝟐)
𝑷(𝑾𝟏)𝑷(𝑾𝟐)
Aquí, P(w1,w2) es la probabilidad de que las palabras w1 y w2 co-ocurran.
Si las palabras son estadísticamente independientes, la probabilidad de que
ellas co-ocurran está dada por el producto P(w1)P(w2). La razón entre
P(w1,w2) y P(w1)P(w2) es una medida del grado de dependencia estadística
entre estas palabras.
El logaritmo de esta razón corresponde a una forma de correlación, la cual
es positiva cuando las palabras tienden a co-ocurrir y negativa en caso
contrario.
PMI-IR estima PMI empleando un método de recuperación de información
que consulta a un motor de búsqueda y calcula las frecuencias en
dependencia de la cantidad de documentos recuperados:
𝐏𝐌𝐈(𝐖𝟏,𝐖𝟐) = 𝒍𝒐𝒈𝒉𝒊𝒕𝒔(𝑾𝟏,𝑾𝟐)𝑵
𝒉𝒊𝒔𝒕(𝑾𝟏)𝒉𝒊𝒕𝒔(𝑾𝟐)
En este caso, hits (q) es el número de documentos recuperados dada la
consulta q y N es el número total de documentos indexados por el motor de
búsqueda.
8
Haciendo algunas modificaciones algebraicas e interpretando la co-ocurrencia como el operador de búsqueda NEAR, la estimación de SO se puede derivar de las fórmulas anteriores como sigue:
𝐒𝐎(𝐟𝐫𝐚𝐬𝐞) = 𝐥𝐨𝐠𝒉𝒊𝒕𝒔(𝒇𝒓𝒂𝒔𝒆𝑪𝑬𝑹𝑪𝑨excelente)𝒉𝒊𝒕𝒔("𝒑𝒐𝒃𝒓𝒆")
𝒉𝒊𝒕𝒔(𝒇𝒓𝒂𝒔𝒆𝑪𝑬𝑹𝑪𝑨pobre)𝒉𝒊𝒕𝒔("𝒆𝒙𝒄𝒆𝒍𝒆𝒏𝒕𝒆")
Los experimentos se realizaron con el motor de búsqueda Alta Vista1 y
usando el operador NEAR para restringir la búsqueda a los documentos en
los cuales las palabras de la consulta se encuentran en una ventana de 10
palabras y en cualquier orden.
Tercer paso clasifica las críticas como positivas o negativas (recomendadas,
no recomendadas), basándose en el promedio de los valores de orientación
semántica de las frases extraídas.
La crítica es positiva si el promedio también lo es; en caso contrario, es
negativa (TURNEY, 2002).
Kamps et al.
Kamps (KAMPS, 2004)determina la polaridad de una palabra teniendo en
cuenta relaciones léxicas definidas en Word Net. Para ello, definen un grafo
a partir de la relación de sinonimia entre adjetivos. Para obtener la polaridad
de un adjetivo en el subgrafo, tienen en cuenta la distancia del camino más
corto del adjetivo a los términos bueno y malo:
𝐒𝐎(𝒕) =𝒅(𝒕,𝒎𝒂𝒍𝒐) − 𝒅(𝒕, 𝒃𝒖𝒆𝒏𝒐)
𝒅(𝒃𝒖𝒆𝒏𝒐.𝒎𝒂𝒍𝒐)
Se considera que el adjetivo t es positivo si y sólo si SO(t) > 0, y el valor
absoluto de SO(t) determina la fuerza de esta polaridad (el denominador
constante d{bueno, malo}, es un factor de normalización para restringir que
los valores de SO se encuentren en el rango [−1, 1]).
Kim y Hovy
El sistema de Kim y Hovy (KIM & HOVY, 2004) aborda la detección de la
polaridad atribuyendo a cada palabra un valor positivo y otro negativo y luego,
combinando estas polaridades para obtener la clasificación final. Para ello,
primeramente se detecta la entidad que emite la opinión, luego se define la
región del texto donde supuestamente se debe encontrar el sentimiento
expresado por esta entidad acerca del tópico principal de la opinión y
9
finalmente, se clasifica el sentimiento como positivo o negativo. Nótese que
en este método, en la determinación de la polaridad no se tiene en cuenta
toda la opinión, sino que ésta se restringe a regiones que expresan
sentimientos acerca del tópico principal de la opinión.
Dada la definición de un tópico y un conjunto de textos acerca de él,
primeramente el sistema selecciona aquellas oraciones que contengan tanto
a la expresión que define al tópico como entidades candidatas. Para cada
oración identifica las entidades que emiten la opinión utilizando un
etiquetador de nombres de entidades y se selecciona aquella entidad que se
encuentre más cercana a la expresión del tópico. Luego, delimitan el tamaño
de la región donde se encuentra el sentimiento expresado por la entidad. El
tamaño de la región se puede definir de varias formas:
1. La oración completa.
2. Las palabras entre la entidad y la expresión que define al tópico.
3. Las dos palabras antes y después de la entidad.
4. Las palabras a partir de la entidad y hasta el final de la oración.
Finalmente, se clasifica la polaridad de las palabras de la región y se
combinan estas polaridades para determinar la polaridad del sentimiento en
la región (KIM & HOVY, 2004).
CLaC
El sistema CLaC (ANDREEVSKAI & BERGLER, In Proceedings of the 4th
International Workshop on Semantic Evaluations, 2007), señala una
aproximación no supervisada e independiente del dominio de conocimiento
para la clasificación de la polaridad de titulares de noticias. El sistema utiliza
tres tipos de recursos: una lista de palabras disparadoras de sentimiento, una
lista de palabras modificadoras de polaridad y un conjunto de reglas que
definen el alcance y el resultado de combinar las palabras disparadoras y las
modificadoras de polaridad.
Para construir la lista de palabras disparadoras el método extiende la lista
de adjetivos anotados manualmente por (HATZIVASSILOGLOU &
MCKEOWN, 1997), usando el algoritmo STEP (ANDREEVSKAI &
BERGLER, Semantic tag extraction from wordnet glosses., 2006b) El
algoritmo STEP comienza con un conjunto pequeño de palabras semillas
anotadas manualmente con la polaridad y lo extiende utilizando las
10
relaciones de sinonimia y antonimia de WordNet. Las palabras sinónimas
mantienen la misma polaridad y las antónimas, la polaridad opuesta.
Luego, el algoritmo realiza varias corridas sobre todos los glosarios de
WordNet, agregando a la lista de palabras disparadoras aquellas palabras
para las cuales (HATZIVASSILOGLOU & MCKEOWN, 1997), la definición
contiene alguna de las palabras ya incorporadas a la lista. Estas palabras se
registran con la polaridad de la palabra disparadora que se encontró en su
glosario.
Finalmente, el sistema determina la polaridad de un titular aplicando las
reglas construidas manualmente y obteniendo un valor difuso, que permite
clasificar el titular como positivo si el valor difuso es mayor que 0, negativo si
es menor que 0, o neutro en caso de que el valor difuso sea igual a 0.
2.2.3. Algunas Aproximaciones Supervisadas
SWAT
El sistema SWAT (KATZ, SINGLETON, & WICENTOWSKI, 2007), presenta
una aproximación supervisada para determinar la polaridad de titulares de
noticias usando un modelo de unigramas.
El algoritmo utiliza un conjunto de entrenamiento que contiene titulares de
noticias etiquetados manualmente con la polaridad (valor entre -100 y 100),
que a partir de ellos se construye una base de conocimientos formada por
palabras que ocurren en el conjunto de entrenamiento, a las que se les asigna
un valor de pertenencia a la clase positiva y negativa (valores de polaridad).
Para ello, primeramente, se lematizan todas las palabras y luego, se calculan
los valores de polaridad de una palabra W presente en el conjunto de
entrenamiento como el promedio de la polaridad que presenta cada titular H
donde ella ocurre:
𝐒𝐜𝐨𝐫𝐞(𝐏𝐨𝐥,𝐖) =∑ 𝑺𝒄𝒐𝒓𝒆(𝑷𝒐𝒍,𝑯)𝑯:𝑾∊𝑯
|{𝑯:𝑾 ∊ 𝑯}|
Pol es la clase de polaridad de la palabra w.
Finalmente, extienden esta base de conocimientos con sus sinónimos y
antónimos obtenidos a partir del tesauro Roget (Thesaurus, 2007). A los
sinónimos se les asigna un valor de polaridad de 100 mientras que a los
antónimos se les asigna - 40.
11
Para determinar la polaridad de un nuevo titular, se promedian los valores
de polaridad de las palabras que ocurren en el titular y se selecciona el mayor
de ellos. Las palabras que no ocurren en la base de conocimientos se
ignoran.
SICS
El sistema SICS (SAHLGREN, KARLGREN, & ERIKSSON, 2007), presenta
una aproximación sencilla para la clasificación de titulares de noticias
basándose en un modelo de espacio vectorial y en un conjunto de palabras
semillas. La idea es crear dos vectores en un espacio de palabras de alta
dimensión: uno representando la polaridad positiva y otro la negativa. Cada
titular se proyecta en este espacio y se elige la polaridad cuyo vector se
encuentre más cerca del vector que representa al titular.
Positivas Negativas
Positivo Negativo
Bueno Malo
Ganar Derrota
Paz Guerra
Feliz Tristeza
Salud Enfermo
Seguro Peligros
Tabla 2: Palabras semillas usadas para crear los
vectores de valencia (WANTON, 2014)
CLAC-NB
El sistema CLAC-NB (ANDREEVSKAI & BERGLER, In Proceedings of the
4th International Workshop on Semantic Evaluations, 2007), utiliza el
conocido clasificador Naive Bayes para anotar titulares de noticias con la
polaridad. Para el entrenamiento requiere una gran colección de titulares
anotados manualmente para poder estimar las probabilidades del
clasificador.
12
RESUMEN
A continuación se resumen las principales características de las aproximaciones descritas anteriormente. Para cada aproximación se detalla:
Técnica
Dominio
Idioma
Recursos
Rasgos
Evaluación
Aproximación Técnica Dominio Idioma Recursos Rasgos Evaluación
(TURNEY, 2002) Información Mutua y
Recuperación de Información
No Sí "- Motor de Búsqueda -Reglas sintácticas"
Bigramas Críticas de Opiniones
(KAMPS, 2004) Camino de longitud
mínima en un grafo de sinonimia
No No Word Net Adjetivos Lista de adjetivos
anotados por
(KIM & HOVY, 2004) Probabilística No No Word Net (tópico,
entidad, región)
100 oraciones extraídas del
corpus DUC 2001 etiquetas
anualmente
CLAC Basado en reglas
sintácticas No Sí
"- Lista de palabras
modificadoras de polaridad
- Reglas sintácticas"
Palabras Titulares de
noticias
Tabla 3: Aproximaciones no supervisadas. (Autoría Personal)
Ap Aproximación Técnica Dominio Idioma Recursos Rasgos Evaluación
SWAT Modelo de unigramas
Sí Sí
"- Tesauro -Titulares de noticias anotados manualmente"
Palabras Titulares de
noticias
SICS Modelo de espacio
vectorial Sí No
Vectores de contexto de frecuencias
Vectores en un espacio de
palabras
Titulares de noticias
CLAC-NB Naive Bayes Sí No Titulares de
noticias Palabras
Titulares de noticias
Tabla 4: Aproximaciones supervisadas. (Autoría Personal)
En base a lo indicado anteriormente nos permitimos señalar un concepto
orientado a nuestro problema. Minería de Opinión es clasificación de palabras,
textos o documentos de acuerdo a las opiniones, sentimientos, emociones y
subjetividades expresadas.
13
2.3. Redes Sociales
Definición
El término red, proviene del latín rete, (BELIAL DIAZ, 2015) y se utiliza para
definir a una estructura que tiene un determinado patrón. Existen diversos tipos
de redes: informáticas, eléctricas, sociales. Las redes sociales se podrían
definir como estructuras en donde muchas personas mantienen diferentes
tipos de relaciones amistosas, laborales, amorosas.
Por lo tanto hoy en día el término "red social " se llama así a los diferentes
sitios o páginas de internet que ofrecen registrarse a las personas y
contactarse con infinidad de individuos a fin de compartir contenidos,
interactuar y crear comunidades sobre intereses similares: trabajo, lecturas,
juegos, amistad, relaciones amorosas, entre otros.
De acuerdo a lo que plantea Jaime Royero (2007), define las redes sociales
como "el conjunto de personas, comunidades, entes u organizaciones que
producen, reciben e intercambian bienes o servicios sociales para su
sostenimiento en un esquema de desarrollo y bienestar esperado. Dicho
bienestar es mediatizado por los avances en el campo de la ciencia y la
tecnología producidos y ofrecidos en su valor social y mercantil a las personas
o grupos de ellas, en un territorio y en unas condiciones económicas sociales
determinadas. Estos intercambios se dan a nivel local regional, nacional,
internacional y global".
A continuación se presenta una breve historia de las redes sociales. (BELIAL
DIAZ, 2015):
Evolución
Las redes sociales tienen sus inicios a mediados del año 1995, cuando Randy
Conrads crea el sitio Web classmates.com. Ésta permite que las personas
puedan recuperar o mantener el contacto con antiguos compañeros del
colegio, instituto, universidad, trabajo, entre otros.
En el año 2002 aparecen sitios web promocionando las redes de círculos de
amigos en línea cuando el término se empleaba para describir las relaciones
en las comunidades virtuales.
Una de las primeras redes sociales más populares, Friendster, apareció en
el año 2002, y fue creada para ayudar a encontrar amigos de amigos, y desde
su comienzo hasta la difusión oficial del sitio, en mayo del año 2003, había
crecido a la cantidad de 300 mil usuarios.
14
En el año 2003 con la llegada de sitios tales como Friendster, Tribe.net,
MySpace, Ecademy, Soflow y LinkedIn. Había más de 200 sitios de redes
sociales, aunque Friendster ha sido uno de los que mejor ha sabido emplear
la técnica del círculo de amigos. La popularidad de estos sitios creció
rápidamente y grandes compañías han entrado en el espacio de las redes
sociales en Internet. Google lanzó Orkut en enero del año 2004 apoyando un
experimento que uno de sus empleados realizaba en su tiempo libre.
Facebook fue creado originalmente para apoyar a las redes universitarias, en
el año 2004, los usuarios del sitio estaban obligados a proporcionar las
direcciones de correo electrónico asociada con las instituciones educativas.
Facebook posteriormente se ha ampliado para incluir a los estudiantes de
secundaria, profesionales, y finalmente todos los usuarios potenciales de
Internet.
A través de estas redes sociales se puede compartir fotos, videos, aficiones,
conocer gente, darte a conocer, relacionarte, en general, con los demás, los
sitios ofrecen características como actualización automática de la libreta de
direcciones, perfiles visibles, la capacidad de crear nuevos enlaces mediante
servicios de presentación y otras maneras de conexión social en línea.
Desde entonces diversas redes se han creado, unas permanecen y otras
han desaparecido. Un poco antes del año 2009 hasta la actualidad, los
principales competidores a nivel mundial son: Hi5, MySpace, Facebook,
Tuenti, Twitter.
Impacto en la forma de comunicación.
Con las redes sociales tenemos la posibilidad de interactuar con otras
personas aunque no las conozcamos, el sistema es abierto y se va
construyendo obviamente con lo que cada suscripto a la red aporta, cada
nuevo miembro que ingresa transforma al grupo en otro nuevo, la red no es lo
mismo si uno de sus miembros deja de ser parte. Las redes cuentan con una
serie de herramientas tecnológicas muy sencillas de utilizar y permiten la
creación de comunidades de personas en que se establece un intercambio
dinámico y comunicativo.
Las redes sociales han producido gran impacto como forma de
comunicación, debido a que las ciencias tecnológicas, buscan siempre innovar
e ir a la par de las exigencias del colectivo. La comunicación por medio de las
redes sociales, es más amplia dado que la utilizan como un hobbie por ser
muy sencilla creando un espacio convergente en el cual expresamos nuestros
saberes, sentimientos, emociones, entre otros.
15
Las redes sociales de contactos de amigos, intentan potenciar la
comunicación y mantener contacto entre usuarios. Este tipo de redes sociales
está desplazando en gran medida la comunicación por telefonía fija ya que
antes para organizar una fiesta o cena se tenían que estar llamando por
teléfono y ahora gracias a este tipo de redes sociales se ahorra tiempo y dinero
con tan solo meterse en internet desde su propia casa o establecimiento
cercano. Además debido a las redes sociales se ha disminuido la utilización
de otros medios de comunicación como el uso del correo y la mensajería
instantánea.
Las redes sociales han sido un fenómeno en estos últimos años, no sólo las
utilizan personas para comunicarse de una forma instantánea, intercambiar
ideas, reencontrarse con otras personas, compartir e intercambiar información
en diferentes medios, sino también están siendo utilizadas por grandes
corporaciones, organizaciones y compañías para promover sus productos y
servicios, es una forma amplia de comunicación para las corporaciones y
compañías ya que tienen un encuentro más cercano con sus consumidores o
afiliados.
Ventajas y desventajas del uso de las redes sociales. (BELIAL DIAZ, 2015):
Ventajas:
1. Puede ser utilizada en el sector académico y laboral, para el intercambio de
diversas experiencias innovadoras.
2. Los empresarios que hacen uso de las redes han demostrado un nivel de
eficiencia y un acertado trabajo en equipo, consolidando proyectos de gestión
del conocimiento.
3. Favorecen la participación y el trabajo colaborativo entre las personas, es
decir, permiten a los usuarios participar en un proyecto en línea desde
cualquier lugar.
4. Permiten construir una identidad personal y/o virtual, debido a que permiten
a los usuarios compartir todo tipo de información (aficiones, creencias,
ideologías, etc.) con el resto de los cibernautas.
5. Facilitan las relaciones entre las personas, evitando todo tipo de barreras
tanto culturales como físicas.
6. Facilitan el aprendizaje integral fuera del aula escolar, y permiten poner en
práctica los conceptos adquiridos.
16
7. Por el aislamiento social del mundo actual, la interacción a través de Internet
permite a un individuo mostrarse a otros. Es decir, las redes sociales son una
oportunidad para mostrarse tal cual.
8. Permite intercambiar actividades, intereses, aficiones.
Desventajas:
1. Personas con segundas intenciones pueden invadir la privacidad de otros
provocando grandes problemas al mismo. Compañías especialistas en
seguridad afirman que para los hackers es muy sencillo obtener información
confidencial de sus usuarios.
2. Para algunos países ser usuario de estas redes se convierte en una amenaza
para la seguridad nacional. Esto ha hecho que para el personal relacionado
con la seguridad de un país sea una prohibición.
3. Si no es utilizada de forma correcta puede convertir en una adicción.
4. Gran cantidad de casos de pornografía infantil y pedofilia se han manifestado
en las diferentes redes sociales.
5. Falta de privacidad, siendo mostrada públicamente información personal.
Ejemplos y descripción de sitios (BELIAL DIAZ, 2015):
MySpace: Ofrece un espacio web que puede personalizarse con videos,
fotos, un blog y toda una serie de diversas y variadas aplicaciones.
Facebook: Comenzó como una red social de universitarios; pero sus
estrategias de mercadotecnia la han convertido en la red social generalista
más importante del mundo.
Skype: No sólo una red social, sino un servicio de telefonía.
Twitter: Red social para intercambio de intereses sobre todo profesionales y
literarios.
Características de las redes sociales
1. Están basadas en el usuario: Las redes sociales son construidas y dirigidas
por los mismos usuarios, quienes además las nutren con el contenido.
2. Son Interactivas: Las redes sociales poseen además de un conjunto de salas
de chat y foros, una serie de aplicaciones basadas en una red de juegos,
como una forma de conectarse y divertirse con los amigos.
17
3. Establecen relaciones: Las redes sociales no sólo permiten descubrir nuevos
amigos sobre la base de intereses, sino que también permiten volver a
conectar con viejos amigos con los que se ha perdido contacto desde muchos
años atrás.
4. Intercambio de información e intereses: Las redes sociales permiten que el
contenido publicado por un usuario se difunda a través de una red de
contactos y sub-contactos mucho más grande de lo que se pueda imaginar.
5. Ofrece una variedad de servicios: Intercambio de información, fotografías,
servicios de telefonía, juegos, chat, foros.
Tipos de redes sociales
Existen muchos tipos (SUEIRAS, 2015), clasificadas según su propósito y
ámbito. Sin embargo, podemos hablar de tres grandes categorías:
1. Redes personales. Se componen de cientos o miles de usuarios en los que
cada uno tiene su pequeño “espacio” con su información, sus fotos, su
música, etc. Y cada uno se puede relacionar con los demás de múltiples
maneras, aunque todas ellas involucran el uso de Internet de una u otra
forma.
2. Redes temáticas. Son similares a las anteriores aunque se diferencian por el
hecho de que suelen centrarse en un tema en concreto y proporcionan las
funcionalidades necesarias para el mismo. Por ejemplo, una red de cine, una
de informática, de algún tipo de deporte, etc.
3. Redes profesionales. Son una variedad especial de las anteriores, dedicadas
exclusivamente al ámbito laboral, en todas sus vertientes. Pueden poner en
contacto a aquellos que ofrecen trabajo con los que lo buscan, crear grupos
de investigación, etc.
Podemos señalar gracias a lo mencionado anteriormente, que Red Social es conjunto de personas, comunidades que están estrechamente comunicados virtualmente, como si cada uno de ellos fuera un nodo individual.
2.4. Gestión de Datos
La gestión de los datos (GIL, 2015), no
estructurados se ha convertido en uno
de los principales retos a los que hacen
frente las compañías en lo relativo a
gestión de información y Big Data. Ilustración 1: Redes Sociales
18
2.4.1. Definición de datos no estructurados
Una posible definición de datos no estructurados, son aquellos datos no
almacenados en una base de datos tradicional. La información no
estructurada no puede ser almacenada en estructuras de datos relacionales
predefinidas (GIL, 2015).
Se pueden establecer diferentes clasificaciones, vamos a considerar dos de
ellas (GIL, 2015):
Datos no estructurados y semiestructurados. Los datos
semiestructurados serían aquellos datos que no residen de bases de
datos relacionales, pero presentan una organización interna que facilita
su tratamiento, tales como documentos XML y datos almacenados en
bases de datos NOSQL.
Datos de tipo texto y no-texto. Datos no estructurados de tipo texto
podrían ser datos generados en las redes sociales, foros, e-mails,
presentaciones Power Point o documentos Word, mientras que datos no-
texto podrían ser ficheros de imágenes jpeg, ficheros de audio mp3 o
ficheros de video tipo flash.
Características de datos no estructurados
Las principales características de los datos no estructurados son las
siguientes: (GIL, 2015):
Volumen y crecimiento: el volumen de datos y la tasa de crecimiento
de los datos no estructurados es muy superior al de los datos
estructurados. Por ejemplo, Twitter genera 12 Terabytes de información
cada día. De acuerdo con Gartner, la tasa anual de crecimiento de datos
es del 40 a 60 por ciento, pero para los datos no estructurados en
empresas, la tasa de crecimiento puede llegar al 80 por ciento (informe
2012).
Orígenes de datos: El origen de los datos es muy diverso: datos
generados en redes sociales, datos generados en foros, e-mails, datos
extraídos de la web empleando técnicas de web semántica, documentos
internos de la compañía (word, pdf, ppt).
Almacenamiento: Debido a su estructura no podemos emplear
arquitectura relacional, siendo necesario trabajar con herramientas ‘Big
Data’, siendo crítico en estas arquitecturas los aspectos relacionados con
19
la escalabilidad y paralelismo. Según el tipo de dato se impone el
almacenamiento cloud. Monitorizar la frecuencia de uso y la detección
de datos inactivos son aspectos críticos de cara a reducir costes de
almacenamiento.
Terminología e idiomas: La terminología es una cuestión crítica
tratando datos no estructurados de tipo texto. Es habitual llamar a lo
mismo de diferentes formas, de tal modo que es necesario una
racionalización de la terminología. Otra cuestión es el idioma en el que
se he generado la información tratada.
Seguridad: Hay que considerar que algunos datos no estructurados de
tipo texto, pueden no ser seguros. Por otra parte el control de accesos a
los mismos es complejo debido a cuestiones de confidencialidad y la
difícil clasificación del dato.
Tratamiento de datos no estructurados
Las principales cuestiones a considerar en el tratamiento de información
no estructurada son las siguientes (GIL, 2015):
Crear una plataforma escalable (infraestructura y procesos) que
permita tratar grandes cantidades de datos. Las tecnologías RDBMS son
insuficientes para tratar información no estructurada. Es necesaria una
capacidad de almacenamiento y una capacidad de proceso escalable.
Teniendo en cuenta que el coste económico de mantener plataformas
escalables, hay que considerar la opción cloud. Desde el punto de vista
de los procesos, en ocasiones es interesante utilizar in-memory analytics.
Añadir información / estructura complementaria a los datos no
estructurados. Es importante añadir algún tipo de estructura a los datos
no estructurados que ayude a su tratamiento. Por ejemplo, en una
colección de tweets de redes sociales puede ser interesante añadir
campos tales como el idioma, la localización geográfica para su posterior
procesado. Esta estructura adicional que añadimos debe ser modelizada
de cara a estar en constante evolución.
Crear conjuntos reducidos de datos que sean representativos. Dado
el volumen ingente de información, es importante trabajar con muestras
de datos que sean estadísticamente representativos sobre los datos a
analizar. Muchos análisis pueden llevarse a cabo con un grado de
20
exactitud razonable, utilizando conjuntos de datos que son más
pequeños en un orden de magnitud que la información en bruto.
Desarrollo de algoritmos. Hay diferentes tipos de aproximación hacia
la información no estructurada. Por ejemplo, para procesos de text
mining, puede utilizarse natural language processing combinado con
redes neuronales. Otras técnicas como redes bayesianas permiten
descubrir patrones sobre múltiples dimensiones. Son importantes
también las técnicas de visualización de datos.
Procesos de depuración / limpiado de datos. Dado el ingente volumen
de datos, se convierte en crítico la correcta gestión del histórico de datos.
Detección de datos no usados o de frecuencia de consulta muy baja con
objeto de limpiar información y liberar espacio.
Ejemplo sencillo tratamiento datos no estructurados (redes sociales):
Dada la variada naturaleza de los datos no estructurados, hay infinidad de
posibles procesos relacionados con ellos. A continuación mostramos un
sencillo ejemplo de tratamiento de datos provenientes de redes sociales.
El objetivo de este análisis de datos es conocer la percepción que existe
sobre el precio de determinado producto en Twitter:
Extracción: Utilizando una clase de java (ejemplo Twitter4j) leemos el feed de Twitter disponible en https://twitter.com/search/realtime. Añadimos a los campos disponibles calificaciones del tipo: idioma, localización geográfica.
Transformación: Filtramos todos aquellos tuits que contengan el
nombre del producto. Refinamos el filtro introduciendo campos del tipo
(“precio”) + (“barato”, “caro”, “económico”, etc...), teniendo en cuenta el
idioma en el que se generan lo tuits. Valorar la opción en base al volumen
de obtener una muestra representativa de los datos extraídos y filtrados.
Volcado a BBDD: Insertamos en una tabla el registro del tuit con la
calificación identificada (idioma, localización geográfica).
Informes: Creamos informe que permita realizar análisis por tiempo y
campos de calificación. Hay que considerar que este informe puede ser
actualizado en tiempo real.
21
2.4.2. NOSQL
Definición
NOSQL es una clase (JANSSEN, 2015), de sistemas de gestión de bases de
datos (DBMS), que no cumplan con todas las normas de un DBMS relacional
y no pueden usar SQL tradicional para consultar datos. El término es algo
engañoso cuando se interpreta como "NOSQL," y la mayoría traducirlo como
"No Sólo SQL", ya que este tipo de base de datos no es generalmente un
reemplazo sino, más bien, una adición complementaria a RDBMS y SQL.
Sistemas basados en NOSQL se utilizan típicamente en grandes bases de
datos, que son particularmente propensos a problemas de rendimiento
causados por las limitaciones de SQL y el modelo relacional de bases de
datos. Muchos piensan de NOSQL como la base de datos moderna de la
elección que se adapta a los requisitos Web. Algunas implementaciones
notables de NOSQL son base de datos Cassandra de Facebook, BigTable de
Google y Dynamo de Amazon.
2.4.3. Base de Datos NOSQL
Una base de datos NOSQL no necesariamente (JANSSEN, 2015), sigue las
estrictas reglas que rigen las transacciones en las bases de datos relacionales.
Estas normas vulneradas son conocidas por el acrónimo ACID (atomicidad,
coherencia, integridad, durabilidad). Por ejemplo, las bases de datos NOSQL
no utilizan estructuras de los esquemas fijos y uniones SQL.
En un RDBMS tradicionales, manejan las operaciones básicas como las de
lectura y escritura. La lectura pueden ser escalada por la replicación de datos
a varios equipos, por lo tanto el equilibrio de carga solicitudes de lectura. Sin
embargo, a la consistencia de los datos que debe ser mantenida, si el escalado
es particionado por datos. Esto afecta ya que pueden ser lentos y difíciles de
implementar. Además, para mantener las propiedades ACID, bases de datos
deben bloquear datos. Esto significa que cuando un usuario abre un elemento
de datos, ningún otro usuario debe ser capaz de realizar cambios en el mismo
artículo. Esta restricción tiene serias implicaciones en el rendimiento.
Estas limitaciones no han sido un gran problema en el pasado. Sin embargo,
con el advenimiento de las redes sociales y los grandes datos, una serie de
bases de datos masivas que surgió fueron obligadas a servir a las decenas o
incluso cientos de millones de clientes en todo el mundo, con varios miles de
lecturas y escrituras de cada minuto. Tradicional RDBMS simplemente no
22
cumplen con esta necesidad, ya que sólo pueden "escalar", o aumentar los
recursos en un servidor central. Una implementación NOSQL, por otro lado,
puede "escalar", o distribuir la carga de la base de datos a través de varios
servidores.
Bases de datos NOSQL se centran en determinadas clases de problemas -
de ser más flexible en cuanto a los datos almacenados (tiendas de
documentos), a la focalización de casos de uso, al igual que las relaciones (las
bases de datos del gráfico) y la agregación de datos (bases de datos de
columna) o simplemente la simplificación de la idea de una base de datos a
algo que almacena un valor (tiendas de clave / valor).
Bases de datos NOSQL ofrecen las ventajas de escalabilidad rápida, un
rendimiento mucho mejor, y una estructura más sencilla en comparación con
los RDBMS. Sin embargo, también sufren de ser un relativamente nuevo y no
probado la tecnología, y no pueden proporcionar RDBMS 'rica de información
y funcionalidad analítica.
En base a lo indicado anteriormente nos permitimos señalar un concepto
orientado a nuestro problema. Gestión de datos es una frase muy importante
en análisis, tratamiento y almacenamiento de los datos. Hoy las empresas
gestionan sus datos a tal punto de concebir como activo de la empresa misma.
Por esta razón se considera muy importante manejar la Gestión de datos para
el presente proyecto.
2.5. Inteligencia de Negocios
Business Intelligence (Sinnexus, 2015), es la habilidad para transformar los
datos en información, y la información en conocimiento, de forma que se pueda
optimizar el proceso de toma de decisiones en los negocios.
Ilustración 1: Conocimiento, Información y Datos (sinnexus, 2015)
23
Desde un punto de vista más pragmático, y asociándolo directamente con las
tecnologías de la información, podemos definir Business Intelligence como el
conjunto de metodologías, aplicaciones y tecnologías que permiten reunir,
depurar y transformar datos de los sistemas transaccionales e información
desestructurada (interna y externa a la compañía), en información
estructurada, para su explotación directa (reporting, análisis OLTP / OLAP,
alertas...), o para su análisis y conversión en conocimiento, dando así soporte
a la toma de decisiones sobre el negocio.
La inteligencia de negocio actúa como un factor estratégico para una
empresa u organización, generando una potencial ventaja competitiva, que no
es otra que proporcionar información privilegiada para responder a los
problemas de negocio: entrada a nuevos mercados, promociones u ofertas de
productos, eliminación de islas de información, control financiero, optimización
de costes, planificación de la producción, análisis de perfiles de clientes,
rentabilidad de un producto concreto, etc...
Los principales productos de Business Intelligence que existen hoy en día
son (Sinnexus, 2015):
Cuadros de Mando Integrales (CMI).
Sistemas de Soporte a la Decisión (DSS).
Sistemas de Información Ejecutiva (EIS).
Por otro lado, los principales componentes de orígenes de datos en el
Business Intelligence que existen en la actualidad son (Sinnexus, 2015):
Datamart
Datawarehouse
Los sistemas y componentes del BI se diferencian de los sistemas
operacionales en que están optimizados para preguntar y divulgar sobre datos.
Esto significa típicamente que, en un datawarehouse, los datos están
desnormalizados para apoyar consultas de alto rendimiento, mientras que en
los sistemas operacionales suelen encontrarse normalizados para apoyar
operaciones continuas de inserción, modificación y borrado de datos. En este
sentido, los procesos ETL (extracción, transformación y carga), que nutren los
sistemas BI, tienen que traducir de uno o varios sistemas operacionales
normalizados e independientes a un único sistema desnormalizado, cuyos
datos estén completamente integrados.
24
En definitiva, una solución BI completa permite (Sinnexus, 2015):
Observar ¿qué está ocurriendo?
Comprender ¿por qué ocurre?
Predecir ¿qué ocurriría?
Colaborar ¿qué debería hacer el equipo?
Decidir ¿qué camino se debe seguir?
Ilustración 2: Acción, Información y Decisión. (Sinnexus, 2015)
2.5.1. Datos, información y conocimiento
Ilustración 3: Business Intelligence / Business Operation. (Sinnexus, 2015)
25
2.5.1.1. Datos
Los datos (Sinnexus, 2015), son la mínima unidad semántica, y se
corresponden con elementos primarios de información que por sí solos son
irrelevantes como apoyo a la toma de decisiones. También se pueden ver
como un conjunto discreto de valores, que no dicen nada sobre el porqué
de las cosas y no son orientativos para la acción.
Un número telefónico o un nombre de una persona, por ejemplo, son datos
que, sin un propósito, una utilidad o un contexto no sirven como base para
apoyar la toma de una decisión. Los datos pueden ser una colección de
hechos almacenados en algún lugar físico como un papel, un dispositivo
electrónico (CD, DVD, disco duro...), o la mente de una persona. En este
sentido las tecnologías de la información han aportado mucho a recopilación
de datos.
Como cabe suponer, los datos pueden provenir de fuentes externas o
internas a la organización, pudiendo ser de carácter objetivo o subjetivo, o
de tipo cualitativo o cuantitativo, etc.
2.5.1.2. Información
La información, se puede definir como un conjunto de datos procesados y
que tienen un significado (relevancia, propósito y contexto), y que por lo
tanto son de utilidad para quién debe tomar decisiones, al disminuir su
incertidumbre. Los datos se pueden transforman en información
añadiéndoles valor (Sinnexus, 2015):
Contextualizando: se sabe en qué contexto y para qué propósito se
generaron.
Categorizando: se conocen las unidades de medida que ayudan a
interpretarlos.
Calculando: los datos pueden haber sido procesados matemática o
estadísticamente.
Corrigiendo: se han eliminado errores e inconsistencias de los datos.
Condensando: los datos se han podido resumir de forma más concisa (agregación).
Por tanto, la información es la comunicación de conocimientos o
inteligencia, y es capaz de cambiar la forma en que el receptor percibe algo,
impactando sobre sus juicios de valor y sus comportamientos.
26
2.5.1.3. Conocimiento
El conocimiento (Sinnexus, 2015) es una mezcla de experiencia, valores,
información y know-how que sirve como marco para la incorporación de
nuevas experiencias e información, y es útil para la acción. Se origina y
aplica en la mente de los conocedores. En las organizaciones con
frecuencia no sólo se encuentra dentro de documentos o almacenes de
datos, sino que también está en rutinas organizativas, procesos, prácticas,
y normas.
El conocimiento se deriva de la información, así como la información se
deriva de los datos. Para que la información se convierta en conocimiento es
necesario realizar acciones como (Sinnexus, 2015):
Comparación con otros elementos.
Predicción de consecuencias.
Búsqueda de conexiones.
Conversación con otros portadores de conocimiento.
En base a lo indicado anteriormente nos permitimos señalar un concepto
orientado a nuestro problema. Inteligencia de Negocios es la habilidad para
transformar los datos en información, y la información en conocimiento. Esto
con la finalidad de optimizar recursos o procesos innecesarios.
2.6. Marco de Trabajo (FRAMEWORK)
Un marco o marco de software, es una plataforma (Techterms, 2015), para
el desarrollo de software de aplicaciones. Proporciona una base sobre la que
los desarrolladores de software pueden crear programas para una
determinada plataforma. Por ejemplo, un marco puede incluir predefinidos
clases y funciones que pueden ser utilizados para procesar la entrada,
gestionar los dispositivos de hardware, e interactuar con el software del
sistema. Esto simplifica el proceso de desarrollo ya que los programadores
no tienen que reinventar la rueda cada vez que desarrollan una nueva
aplicación.
Un marco es similar a una interfaz de programación de aplicaciones (API),
aunque técnicamente es un marco de trabajo incluye una API. Como su
nombre indica, un marco sirve como base para la programación, mientras
que una API proporciona acceso a los elementos admitidos por el marco. Un
marco también puede incluir bibliotecas de código, un compilador, y otros
programas utilizados en el proceso de desarrollo de software.
27
2.6.1. ¿Qué es un framework Web?
El concepto framework (Informática, 2015), se emplea un muchos ámbitos
del desarrollo de sistemas software, no solo en el ámbito de aplicaciones
Web. Podemos encontrar frameworks para el desarrollo de aplicaciones
médicas, de visión por computador, para el desarrollo de juegos, y para
cualquier ámbito que pueda ocurrírsenos.
En general, con el término framework, nos estamos refiriendo a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.
Los objetivos principales que persigue un framework son: acelerar el
proceso de desarrollo, reutilizar código ya existente y promover buenas
prácticas de desarrollo como el uso de patrones.
Un framework Web, por tanto, podemos definirlo como un conjunto de
componentes (por ejemplo clases en java y descriptores y archivos de
configuración en XML) que componen un diseño reutilizable que facilita y
agiliza el desarrollo de sistemas Web.
Ilustración 4: Framework (Marco). (Informática, 2015).
28
2.6.2. Patrón MVC
Para comprender como trabajan los frameworks Web existentes es
imprescindible conocer el patrón MVC.
Ilustración 5: Modelo Vista Contralor (MVC). (Informática, 2015)
El patrón Modelo-Vista-Controlador es una guía para el diseño de
arquitecturas de aplicaciones que ofrezcan una fuerte interactividad con
usuarios. Este patrón organiza la aplicación en tres modelos separados, el
primero es un modelo que representa los datos de la aplicación y sus reglas
de negocio, el segundo es un conjunto de vistas que representa los
formularios de entrada y salida de información, el tercero es un conjunto de
controladores que procesa las peticiones de los usuarios y controla el flujo de
ejecución del sistema (Informática, 2015).
29
Ilustración 6: (MVC). (Informática, 2015)
La mayoría, por no decir todos, de los frameworks para Web implementan
este patrón. Una aplicación de este patrón en entornos Java para
programación Web es lo que se conoce con el nombre de arquitectura model
2.
2.6.3. Tipos de framework Web
Existen varios tipos de frameworks Web: orientados a la interfaz de usuario,
como Java Server Faces, orientados a aplicaciones de publicación de
documentos, como orientados e a la parte de control de eventos, como Struts
y algunos que incluyen varios elementos como Tapestry. (Informática, 2015).
La mayoría de frameworks Web se encargan de ofrecer una capa de
controladores de acuerdo con el patrón MVC o con el modelo 2 de Servlets y
JSP, ofreciendo mecanismos para facilitar la integración con otras
herramientas para la implementación de las capas de negocio y
presentación.
30
2.6.4. Características.
A continuación enunciamos una serie de características que podemos
encontrar en prácticamente todos los frameworks existentes (Informática,
2015).
Abstracción de URLs y sesiones.
No es necesario manipular directamente las URLs ni las sesiones, el framework ya se encarga de hacerlo.
Acceso a datos. Incluyen las herramientas e interfaces necesarias para integrarse con herramientas de acceso a datos, en BBDD, XML, etc.
Controladores.
La mayoría de frameworks implementa una serie de controladores para gestionar eventos, como una introducción de datos mediante un formulario o el acceso a una página. Estos controladores suelen ser fácilmente adaptables a las necesidades de un proyecto concreto.
Autentificación y control Incluyen mecanismos para la identificación de usuarios
Internacionalización.
Separación entre diseño y contenido.
Tabla 5: Características de los Frameworks. (Informática, 2015)
En base a lo indicado anteriormente nos permitimos señalar un concepto
orientado a nuestro problema. Framework (Marco de Trabajo) es una
plataforma para el desarrollo de software de aplicaciones. Proporciona una
base de software para los desarrolladores como clases, funciones, etc.
2.7. ODBC
Conectividad abierta de bases de datos (ODBC) es la interfaz estratégica de
Microsoft para obtener acceso a datos en un entorno heterogéneo de
relacional y no-relacionales, sistemas de administración de base de datos.
Basado en la especificación de interfaz de nivel de llamada del grupo de
acceso SQL, ODBC proporciona una forma abierta, independiente del
proveedor de acceso a datos almacenados en una variedad de equipo
propietario, minicomputadoras y bases de datos de mainframe (Microsoft,
2015).
ODBC alivia la necesidad de proveedores de software independientes y los
programadores corporativos a aprender múltiples interfaces de programación
de aplicaciones. ODBC proporciona ahora una interfaz de acceso a datos
universal. Con ODBC, los desarrolladores de aplicaciones pueden permitir que
una aplicación para obtener acceso al mismo tiempo, ver y modificar datos
procedentes de varios diversas bases de datos.
31
ODBC es un componente básico de la arquitectura de servicios abiertos de
Microsoft Windows. Apple ha respaldado ODBC como clave de habilitación de
la tecnología anunciando soporte en System 7 en el futuro. Con soporte en la
creciente industria, ODBC es rápidamente como un sector importante estándar
emergente para acceso a datos para aplicaciones de Windows y Macintosh
(Microsoft, 2015).
2.8. Metodologías
2.8.1. Metodología de Desarrollo Software
Para el desarrollo del sistema se va a considerar la metodología de desarrollo
de software, RUP (Rational Unified Process) para el análisis, construcción y
documentación del sistema ya que es un modelo que cubre todo el ciclo de
vida del producto, soporta un enfoque de desarrollo iterativo e incremental,
proporciona iteraciones tempranas que se enfocan en validar y producir una
arquitectura de software, y un ciclo de desarrollo inicial que toma la forma de
un prototipo ejecutable que gradualmente evoluciona convirtiéndose en el
sistema final y además tiene implícito en su proceso de desarrollo la
evaluación continua de la calidad con respecto a los requerimientos de calidad
deseados (KRUCHTEN, 1996).
El proceso de ciclo de vida de RUP se divide en cuatro fases llamadas
(KRUCHTEN, 1996):
Inicio: El objetivo en esta etapa es determinar la visión del proyecto. Mayor
énfasis en modelado del proyecto: objetivos, alcance, limitaciones, y
requerimientos.
Elaboración: En esta fase el objetivo es determinar la arquitectura óptima.
Se define infraestructura y ambiente de desarrollo.
Construcción: En esta etapa se lleva a cabo la construcción del producto
por medio de una serie de iteraciones obteniendo la capacidad operacional
inicial.
Transición: Se pretende obtener el producto preparado para la entrega.
Pruebas beta y piloto.
Esas fases se dividen en iteraciones, cada una de las cuales produce una
pieza de software demostrable.
32
CAPÍTULO III
3. ANÁLISIS DEL SISTEMA
3.1. Especificación de Requerimientos
Los principales procesos que el presente trabajo pretende alcanzar, nacieron
de la necesidad por información que se prende brindar a los usuarios en la
web, en cualquier tipo de temática política, siendo así una manera útil en
aspectos políticos del país.
El objetivo fundamental es satisfacer la necesidad de información confiable,
acompañada de diagramas UML con casos de uso para puntualizar las
características de cada proceso de análisis, brindando así una descripción
detallada de los requerimientos tanto funcionales como no funcionales del
proyecto.
El análisis de los requerimientos, es el proceso de establecer con el mayor
detalle los servicios y funcionalidades que debe proporcionar el sistema, en
resumen nos dará una guía de cómo hemos conceptualizado el proyecto.
3.1.1. Contextualización
El Análisis busca demostrar una realidad política, enfocado a un actor político
en especial al “Presidente Rafael Correa”, mediante el manejo de
herramientas, conceptos informáticos.
La fuente de datos para el análisis es la Red Social Twitter, estos datos son
dados por los seguidores de la cuenta del Presidente Econ. Rafael Correa.
Considerando que los datos fueron tomados de manera abierta o publica,
Los datos extraídos por esta fuente, se dieron en el mandato del Presidente
Econ. Rafael Correa.
El análisis se encuentra dividido en varios aspectos como:
Dentro de un contexto muy general.
Dentro de Temáticas definidas, las cuales son:
o Educación
o Información y Comunicación
o Política, Derecho y Economía
o Cultura
o General
33
3.2. Requerimientos Funcionales
3.2.1. Características principales del sistema
El análisis tendrá un sitio web principal donde se visualizara un panel de
control, donde se presentaran las diferentes opciones.
a) El sitio cuenta con una barra de opción, donde el usuario puede acceder a
los programas, videos, archivos de Excel, pruebas de comentario.
b) El sitio web deberá ser usado fácilmente, por personas sin conocimientos
en programación, base de datos ni diseño gráfico.
c) El sitio web permitirá al usuario visualizar los archivos de Excel además
de tener links directos a los reportes necesarios.
3.2.2. Descripción de los Actores
El Análisis de Preferencias Políticas empleará los siguientes grupos de
usuarios:
Administrador: Usuario encargado del mantenimiento del sitio web.
El administrador del modelo podrá:
Cargar nuevos datos o archivos.
Modificar los reportes.
Usuarios Final: Un usuario común.
Los usuarios podrán:
Visualizar el tablero de control principal, dentro del sitio web.
Visualizar los reportes, videos, ejemplo de prueba (comentario).}
Visualizar los archivos de Excel relacionados al análisis.
34
3.2.2.1. Procesos de Actores y Roles
3.2.2.1.1. Actividades del Administrador
Al administrador configura y el sitio web para uso del usuario.
Ilustración 7: Actividades Administrador. (Autoría Personal)
3.2.2.1.2. Actividades del Usuario del Sistema
El usuario del sistema puede navegar por el sitio, con la opción de visualizar los reportes y ejecutar un ejemplo de análisis de preferencias políticas.
Ilustración 8: Actividades del usuario final. (Autoría Personal)
35
3.2.3. Requerimientos Específicos
Usuario del Final:
El usuario podrá acceder al sitio principal de la aplicación y visualizar el tablero de control.
El usuario tendrá la posibilidad de acceder a reportes.
El usuario no necesitará conocimientos de programación, base de datos o diseño gráfico para poder navegar por la aplicación.
El usuario tendrá la posibilidad de visualizar el contenido del archivo de Excel con el sitio web.
Aplicación:
La aplicación se ejecutara en un entorno web.
El archivo de Excel provisto de datos podrá ser alimentado por un entorno de desarrollo (Web).
3.3. Casos de Uso
3.3.1. Diagrama general de casos de uso
Ilustración 9: Diagrama de casos de uso Análisis de preferencias Políticas, Soportado fundamentalmente por las redes sociales. (Autoría Personal)
36
3.3.2. Descripción de los Casos de Uso
CU1. Gestionar Información
Actor: Administrador
Descripción: El Administrador podrá interactuar con todos los datos disponibles en el archivo de Excel.
Ilustración 10: Diagrama casos de uso Gestionar Información. (Autoría Personal)
CU2. Gestionar Reportes
Actor: Administrador
Descripción: El Administrador podrá gestionar los reportes, mediante la herramienta de inteligencia de negocios.
Ilustración 11: Diagrama de casos de uso Gestionar Reportes. (Autoría Personal)
37
CU3. Gestionar Sitio Web
Actor: Administrador
Descripción: El Administrador podrá gestionar el sitio web.
Ilustración 12: Diagrama de casos de uso Gestionar Sitio Web. (Autoría Personal)
CU4. Barra de opciones
Actor: Usuario Final
Descripción: El Usuario final podrá tener acceso a los contenidos dentro del sitio web.
Ilustración 13: Diagrama de casos de uso Barra de Opciones. (Autoría Personal)
38
CU5. Visualizar Comentarios
Actor: Usuario Final
Descripción: El Usuario final podrá tener acceso a los contenidos dentro del sitio web.
Ilustración 14: Diagrama de caso de usos Visualización Comentarios. (Autoría Personal).
CU6. Visualizar Comentarios
Actor: Usuario Final
Descripción: El Usuario final realizar pruebas de comentario.
Ilustración 15: Diagrama de caso de usos Prueba de Comentario. (Autoría Personal)
39
3.4. Requerimientos no funcionales
Describen de manera general los atributos del sistema, así tenemos:
RNF1. Usabilidad
El sistema debe ser de fácil uso y comprensión por parte de los usuarios, debe mantener áreas definidas para la manipulación de la información, botones, menú y mensajes.
El usuario deberá poder acceder al sistema sin tener que descargar aplicaciones.
El sistema deberá estar completamente documentado, cada uno de los componentes de software que forman parte de la solución propuesta deben estar debidamente documentados tanto en el código fuente como en los manuales de administración y de usuario.
RNF2. Disponibilidad
El sistema estará en capacidad de dar respuesta al acceso de todos los usuarios y sus procesos.
RNF3. Escalabilidad – Capacidad
El sistema deberá garantizar el crecimiento del volumen de la información almacenada que se manejará en la base de datos.
RNF4. Portabilidad
La aplicación, al ser una aplicación web y estar desarrollada en lenguaje java, podrá ser portada de una plataforma a otra sin necesidad de modificar código.
40
CAPÍTULO IV
4. DISEÑO DEL SISTEMA
Como producto del análisis minucioso de los requisitos del sistema se
describe a continuación el diseño del ANÁLISIS DE PREFERENCIAS POLÍTICAS,
SOPORTADO FUNDAMENTALMENTE POR LAS REDES SOCIALES, especificando el
modelo de la base de datos y diagramas que nos permitan identificar como se
ha construido el sistema.
4.1. Arquitectura del Sistema
La IEEE Std 1471-2000 (IEEE, 2015), da una definición que se ha acordado
como “oficial” sobre la Arquitectura de Software que dice:
“La Arquitectura de Software es la organización fundamental de un sistema
incorporado en sus componentes, las relaciones entre ellos, el ambiente y los
principios que orientan su diseño y evolución”.
4.1.1. Diseño de la Arquitectura Lógica del Sistema
En esta sección se presenta la estructura lógica de la arquitectura del
sistema, de acuerdo al patrón arquitectónico elegido.
Uno de los patrones arquitectónicos más utilizados para el desarrollo de
aplicaciones orientadas a objetos en la actualidad es el denominado
“arquitectura multi-capa”.
Por definición las aplicaciones JEE utilizan una arquitectura multicapa,
permitiendo separar lógicamente y en algunos casos físicamente, los aspectos
de presentación de la aplicación (interfaz de usuario), la lógica del negocios
(funcionalidad del sistema) y la gestión de los datos (bases de datos o archivos
planos).
La Capa de Presentación
Se la considera muchas veces llamada
capa de usuario, es la que gestiona la
interfaz del usuario, controlando la captura
y presentación de los datos y recibiendo
los eventos accionados por los usuarios a
través de la interfaz. Esta capa se
comunica únicamente con la capa de
lógica de negocios y es la capa que
visualiza el cliente. Ilustración 16: Capa Presentación
(Autoría Personal)
41
La Capa de Lógica de Negocios
Es la responsable de manejar la
funcionalidad del sistema, es donde
residen los objetos de negocio
(programas) los cuales ejecutan las
reglas de negocio definidas
previamente. Esta capa se comunica
con la capa de presentación para
recibir solicitudes y presentar
resultados y con la capa de datos,
para solicitar al gestor de base de
datos que almacene, modifique,
elimine o recupere datos.
La Capa de Datos
Es llamada en algunos casos capa
de persistencia es la encargada del
almacenamiento, modificación,
eliminación y recuperación de los
datos. Se comunica únicamente con
la capa de lógica de negocios.
A continuación se detallará la
arquitectura del ANÁLISIS DE
PREFERENCIAS POLÍTICAS,
SOPORTADO FUNDAMENTALMENTE
POR LAS REDES SOCIALES en cada
una de las capas, así tenemos:
1. CAPA DE PRESENTACIÓN
CAPA DEL CLIENTE
El cliente general para acceder a esta aplicación es un navegador, se
recomienda utilizar navegadores actualizados como por ejemplo: Firefox,
Google Chrome.
CAPA WEB
El usuario al ingresar se le presenta el tablero de control y las opciones
a las que tiene acceso.
Ilustración 17: Capa Negocios
Ilustración 18: Capa Datos
42
Toda la capa de presentación ha sido desarrollada con la
implementación Primefaces que pertenece al estándar Java Server
Faces. Toda la lógica del control de pantallas, ingreso de datos para
reportes es realizado a nivel de esta capa.
2. CAPA DE LÓGICA DE NEGOCIO
La lógica de negocio se encuentra dentro de esta capa. Técnicamente
en el contenedor EJB 3 se encuentran los session beans que contienen
dicha lógica de negocio.
3. CAPA DE DATOS
Se utilizará ODBC para conectar con un archivo Excel.
4. BASE DATOS
En función a los requerimientos especificados en el capítulo anterior, se
usó como gestor de base de datos, Excel office 2013.
MODELO Entidad / Relación
En este modelo encontraremos un conjunto de objetos básicos
llamados (tablas, entidades), que son los elementos principales que se
identifican en el problema a resolver. Cada entidad posee sus propios
elementos o características denominadas atributos.
Por otro lado también están las relaciones que se representan mediante enlaces de unión entre las tablas (entidades).
Ilustración 19: Modelo Entidad / Relación del Sistema. (Autoría Personal)
43
4.2. Descripción de las Entidades
a.- LOCALIZACIÓN: Almacena los datos de cada provincia del país.
A T R I B U T O S
Nombre Tipo Descripción
user_location Número Código Único
descripción Loca String Nombre de Provincia
Latitud Float Coordenada Geográfica
Longitud Float Coordenada Geográfica
Tabla 6: Descripción de Entidad Localización. (Autoría Personal)
b.- TABLA: Almacena los datos del sistema, se considera la tabla maestro
del sistema.
A T R I B U T O S
Nombre Tipo Descripción
user_location Número Número de Provincia
polaridadGeneral Número Número de Polaridad
Tema Número Número de Tema
Num Número Número Único
Text String Comentario
reweet-Count String Número de Reweet
favorite-Count String Número de Favorito
possibly-Sensitive String Sentimiento Posible
Tabla 7: Descripción de Entidad Tabla. (Autoría Personal)
c.- POLGENERAL: Almacena los datos, correspondientes a la descripción de cada polaridad:
Positivo
Negativo
Neutro
A T R I B U T O S
Nombre Tipo Descripción
polaridadGeneral Número Número Único
descripcionPolG String Descripción de Polaridad
Tabla 8: Descripción de Entidad PolGeneral. (Autoría Personal)
44
d.- DESCOD: Almacena los datos, correspondientes a la descripción de cada
temática:
Educación.
Información y Comunicación.
Política, derecho y Economía.
Cultura.
General.
A T R I B U T O S
Nombre Tipo Descripción
Tema Número Número Único
descripcionTema String Descripción del Tema
Tabla 9: Descripción de Entidad Descod. (Autoría Personal)
e.- TEMA: Almacena los datos, correspondientes al diccionario por temática.
A T R I B U T O S
Nombre Tipo Descripción
Definición String Definición de Palabra
Paltema String Palabra del Diccionario
Tema Número Número de Tema
Tabla 10: Descripción de Entidad Tema. (Autoría Personal)
f.- GENERAL: Almacena los datos, correspondientes al diccionario de
manera general.
A T R I B U T O S
Nombre Tipo Descripción
Definicion String Definición de Palabra
Palabra String Palabra del Diccionario
Polaridad Número Número de Polaridad
Tabla 11: Descripción de Entidad General. (Autoría Personal)
45
4.3. Diseño de Interfaces
A continuación se presentará el formato estándar de las pantallas, en cada una de las partes.
4.3.1. Interface Sitio Web
4.3.1.1. Interfaz de Usuario
Menú Principal, con dos opciones (Programa de extracción de datos y Reportes)
Ilustración 20: Página Principal. (Autoría Personal)
a. PAGINA DE VIDEO
Procesamiento del comentario dentro del archivo Excel.
Ilustración 21: Página de Video. (Autoría Personal)
46
b. PAGINA DE VISUALIZACION DICCIONARIO GENERAL
Página de administración del diccionario.
Ilustración 22: Página Diccionario General. (Autoría Personal)
c. PAGINA DE VISUALIZACIÓN DE DICCIONARIO POR TEMA
Página de administración del diccionario
Ilustración 23: Página Diccionario Temas. (Autoría Personal)
47
d. PAGINA DE VISUALIZACIÓN DE TABLA MAESTRA
Página de visualización del contenido de la tabla maestra.
Ilustración 24: Pagina Tabla Maestra. (Autoría Personal)
e. PAGINA DE PRUEBA (COMENTARIO)
Página para realizar prueba, mediante el ingreso de comentarios.
Ilustración 25: Página de Prueba. (Autoría Personal)
48
4.3.2. Interfaz de Reportes
PESTAÑA DE INTRODUCCIÓN
Ilustración 26: Pestaña Introducción Reporte. (Autoría Personal)
PÁGINA INICIO
Ilustración 27: Pestaña Inicio Reporte. (Autoría Personal)
49
PÁGINA VALORES
Ilustración 28: Pestaña Valores. (Autoría Personal)
PÁGINA GRÁFICOS
Ilustración 29: Pestaña Gráficos. (Autoría Personal)
50
PÁGINA MODELO ENTIDAD RELACIÓN
Ilustración 30: Pestaña Modelo-Entidad-Relación. (Autoría Personal)
PÁGINA MAPA GEO LOCALIZACIÓN
Ilustración 31: Pestaña Mapa Geo localización. (Autoría Personal)
51
PÁGINA COMENTARIOS
Ilustración 32: Pestaña Comentarios. (Autoría Personal)
PÁGINA DICCIONARIOS
Ilustración 33: Pestaña Diccionarios. (Autoría Personal
52
PÁGINA RESUMEN
Ilustración 34: Pestaña Resumen. (Autoría Personal)
53
CAPÍTULO V
5. HERRAMIENTAS UTILIZADAS Y PRUEBAS DEL SISTEMA
5.1. Plataforma
La plataforma a utilizar en el desarrollo del ANÁLISIS DE PREFERENCIAS
POLÍTICAS es Java, que a más de ser un lenguaje de programación,
constituye una plataforma completa de desarrollo de aplicaciones, con una
gran cantidad de herramientas.
Java brinda independencia de plataforma, lo que significa que un programa
escrito en este lenguaje puede correr en cualquier tipo de hardware que tenga
la máquina virtual de Java (JVM).
Ofrece un soporte completo para la programación orientada a objetos,
además soporta los paradigmas de la orientación a objetos como son:
encapsulamiento, sobrecarga, herencia y polimorfismo.
5.2. Herramientas Utilizadas
5.2.1. Herramientas a utilizarse para el desarrollo
5.2.1.1. Herramientas para modelado informático
Power Designer 16
Ilustración 35: PowerDesigner
Es una herramienta para el análisis, diseño y construcción sólida de una
base de datos y un desarrollo orientado a modelos de datos a nivel físico y
conceptual, que brinda a los desarrolladores la más firme base para
aplicaciones de alto rendimiento. Ofrece un acercamiento de diseño para
optimizar las estructuras de las bases de datos, capturando el flujo de datos
de su organización, puede crear un modelo conceptual y físico de la base
de datos.
PowerDesigner combina de forma única los estándares gráficos y no
gráficos de las técnicas de modelado (Requerimientos, UML, Modelado de
Procesos de Negocio y XML) con ambientes líderes y modernos como
.NET, Workspace, Power Builder, Java, Eclipse, etc., ofreciendo soluciones
innovadoras de análisis, diseño y desarrollo para el ciclo de vida de
software.
54
Excel 2013
Ilustración 36: Excel 2013
Excel es un programa informático desarrollado y distribuido por Microsoft
Corp. Se trata de un software que permite realizar tareas contables y
financieras gracias a sus funciones, desarrolladas específicamente para
ayudar a crear y trabajar con hojas de cálculo (Definicion, 2015).
QVSource 1.5.4.6
Ilustración 37: QVSOURCE
Licencia trial QvSource.
QVSource es una herramienta que permite extraer de manera simple los
datos de la Redes) y cruzarlos en un tablero analítico con el resto de la
información de mis sistemas corporativos (SANCHEZ, 2015).
Características:
Permite analizar la presencia de mis competidores en Twitter,
Facebook, y otras redes sociales, observando sus campañas y
resultados.
Ayuda a comprender el posicionamiento de mi marca en las redes
sociales, incluso cuando no estoy actuando activamente.
QLIKVIEW V11
Ilustración 38: QlikView
Licencia trial QlikView.
QlikView es una herramienta que permite el acceso a la información y
posibilita el análisis de los datos, lo cual a su vez mejora y optimiza el proceso
de toma de decisiones de negocio y por ende también el desempeño del
mismo (Packtpub, 2015).
55
5.2.1.2. Herramientas para desarrollo de interfaces de usuario
Tecnologías Vista
JSF 2.2
Ilustración 39: JSF
La tecnología Java Server Faces es un marco de trabajo de interfaces de usuario del lado de servidor para aplicaciones Web basadas en tecnología Java. PRIMAFACES V5.1
Ilustración 40: Primefaces
Primefaces es una librería de componentes visuales open source
desarrollada y mantenida por Prime Technology, una compañía Turca de IT
especializada en consultoría ágil, JSF, Java EE y Outsourcing (LERMA,
2015).
Las principales características de Primefaces son:
Soporte nativo de Ajax, incluyendo Push / Comet.
kit para crear aplicaciones web para móviles.
Uso de javascript no intrusivo (no aparece en línea dentro de los elementos, sino dentro de un bloque <script>).
Es un proyecto open source, activo y bastante estable entre versiones.
5.2.1.3. Herramientas para codificación
Para la codificación se utilizará Netbeans, el cual es de libre distribución.
Una característica importante de Netbeans es que se pueden agregar diferentes plug-ins para aumentar la funcionalidad del Framework.
56
NETBEANS
Ilustración 41: Netbeans
Versión: 8.0.2
Netbeans es un entorno de desarrollo muy completo y profesional. Contiene
muchas funcionalidades, para distintos tipos de aplicaciones y para facilitar
al máximo la programación, la prueba y la depuración de las aplicaciones que
se desarrollan. También incorpora un editor propio (YANEZ, 2015).
JDK
Ilustración 42: JDK
Versión 1.7
Se trata de un conjunto de herramientas (programas y librerías) que
permiten desarrollar (compilar, ejecutar, generar documentación, etc.)
programas en lenguaje Java.
Existen versiones del JDK para prácticamente todos los Sistemas
Operativos y existen también distintos programas comerciales (GARCIA,
2015).
Java EE7
Ilustración 43: JAVA EE7
Versión Java EE IDE for Web Developers.
Es una plataforma cuyo objetivo es el desarrollo de aplicaciones distribuidas dirigidas principalmente a la empresa. Entre sus requisitos están la fiabilidad, la facilidad de mantenimiento, la escalabilidad, entre otros.
57
Patrón arquitectónico: MVC
Ilustración 44: MVC
MVC es una propuesta de diseño de software utilizada para implementar
sistemas donde se requiere el uso de interfaces de usuario. Surge de la
necesidad de crear software más robusto con un ciclo de vida más adecuado,
donde se potencie la facilidad de mantenimiento, reutilización del código y la
separación de conceptos (ÁLVAREZ, 2015).
Tecnologías Java EE EJB
Ilustración 45: EJB
Enterprise Java Beans (EJB) es una plataforma para construir aplicaciones
de negocio portables, reutilizables y escalables usando el lenguaje de
programación Java.
Tipos de EJB: Beans de Sesión (Session Beans)
En una aplicación típica, dividida en cuatro grandes capas:
Presentación.
Lógica de Negocio.
Persistencia.
Base de datos.
58
Los Beans de Sesión viven en la lógica de negocio. Hay dos grandes tipos
de Beans de Sesión:
Stateless (sin estado), no conserva el estado de ninguno de sus
atributos de la invocación de un método a otro.
Stateful (con estado), conserva el estado a lo largo de toda una
sesión.
Message-Driven Beans (MDBs):
También viven en la lógica de negocio y los servicios que proveen son
parecidos a los Beans de Sesión, con la diferencia de que los MDBs son
usados para invocar métodos de forma asincrónica. Cuando se produce la
invocación de un método de un MDB desde un cliente, la llamada no bloquea
el código del cliente y el mismo puede seguir con su ejecución, sin tener que
esperar indefinidamente por la respuesta del servidor.
Entidades (Entities): Las entidades viven en la capa de persistencia y son
los EJBs que manejan la Java Persistence API (JPA). Las entidades son
POJOs con cierta información metadata que permite a la capa de persistencia
mapear los atributos de la clase a las tablas de la base de datos y sus
relaciones.
GLASSFISH 4.1
Ilustración 46: GlassFish
Glassfish es un servidor de aplicaciones de software libre desarrollado por
Sun Microsystems, compañía adquirida por Oracle Corporation, que
implementa las tecnologías definidas en la plataforma Java EE y permite
ejecutar aplicaciones que siguen esta especificación. Es gratuito, de código
libre y se distribuye bajo un licenciamiento dual a través de la licencia CDDL
y la GNU GPL.
59
5.3. Estándares de Programación
Los nombres de los paquetes estarán dados de acuerdo a la funcionalidad y módulo de desarrollo al que corresponden, tendrán letras minúsculas; así por ejemplo:
Conexiones
Controladores
DAO
DTO
Procesamiento
Donde:
Conexiones.- se encuentra todas líneas de código para realizar el
ODBC con el archivo de Excel.
Controladores.- Son Managed Bean encargados de interactuar
directamente con las páginas o la vista.
DAO.- es una capa intermedia en donde se encuentra todas las
operaciones fundamentales del sistema.
DTO.- son clases POJO con atributos y métodos necesarios para la
creación de objetos en el sistema.
Procesamiento.- se encuentra las clases necesarios para el análisis
de preferencias políticas.
EJBs: (Lógica de Negocio)
Carpeta Controladores - Archivo Bean
- Comentario Bean
- Diccionario Bean
- Diccionario Tema Bean
- Ejecutar Bean
60
JSF: (Parte Web)
Faces
Inicio. xhtml
Programas. xhtml
Comentarios. xhtml
Archivos. xhtml
Dicc. xhtml
Dicc. Tema. xhtml DAO: (Data Acces Objetc)
Archivo Dao.
Comentario Dao.
Diccionario Dao.
Diccionario Tema Dao.
DTO: (Data Transfer Object)
Comentario.
Diccionario.
Diccionario Tema.
5.4. Pruebas
El propósito de las pruebas es proporcionar una guía de cómo evaluar y
asegurar la calidad del producto.
En el presente trabajo se necesita probar los siguientes puntos:
Validez del análisis de preferencias políticas.
Funcionalidad de la aplicación Web
La primera parte que es probar la validez del análisis de preferencias
políticas ya sea el algoritmo y los diccionario creados.
Para la segunda parte Funcionalidad de la aplicación Web se considerará
tanto el funcionamiento del archivo de datos como las funcionalidades
propias de la aplicación.
61
CAPÍTULO VI
6. CONCLUSIONES Y RECOMENDACIONES
6.1. Conclusiones
Los algoritmos de optimización contribuyan positivamente en legibilidad del código fuente, gracias al uso del patrón de diseño MVC.
Los diccionarios de palabras tanto de contexto general como de temática específica, juegan un factor muy decisivo en el procesamiento del comentario.
El tratamiento, procesamiento y ejecución del comentario a nivel de memoria es mucho más eficiente que el llevado a cabo por disco.
El uso de mapas de geo localización facilitan el entendimiento a los usuarios finales.
La implementación de Inteligencia de Negocios facilita a la gerencia en la toma de decisiones.
El flujo de datos que se generan en las redes sociales, pueden ser de acceso público o privado.
El análisis de preferencia permite presentar información fiable a cierto actor político, como sujeto de comentario.
El manejo de archivos planos, determina que la visualización de las etapas de procesamiento del comentario se ejecuten de manera coherente con el algoritmo implementado.
6.2. Recomendaciones
Debido a que los datos extraídos resultan ser incontables y de forma no poco o nada estructurada, es necesario manejar Bases de Datos no Estructuradas a fin de garantizar un análisis mucho más exhaustivo.
La creación de diccionario se la debe realizar de forma automática, es decir que por sí solo aprenda y crezca a la vez.
62
Disponer de un recurso tecnológico dotado de recursos de hardware de alta disponibilidad técnica y operativa al momento del procesamiento de texto.
Es importante que la creación de Modelo-Entidad-Relación se la realice bajo norma mínima 3FN, con lo cual se garantiza exactitud en carga de datos al momento de la generación del reporte requerido.
Es necesario que la codificación de los campos definidos en la tabla de datos, sean de tipo categórico.
Se aconseja para futuras investigaciones, considerar el tema de Minería de Datos, para introducir metodologías matemáticas en el análisis de comentarios.
63
GLOSARIO DE TÉRMINOS
API, Una interfaz de programación de aplicaciones es un conjunto de
convenciones internacionales que definen cómo debe invocarse una
determinada función de un programa desde una aplicación.
ENCAPSULAMIENTO, Es el ocultamiento del estado, es decir, del dato
miembro, de un objeto de manera que sólo se puede cambiar mediante las
operaciones definidas para ese objeto.
FRAMEWORK, Representa una arquitectura de software que modela las
relaciones generales de las entidades del dominio, y provee una estructura y
una especial metodología de trabajo, la cual extiende o utiliza las aplicaciones
del dominio.
GRAFO, en matemáticas y ciencias de la computación, un grafo (del griego
grafos: dibujo, imagen) es un conjunto de objetos llamados vértices o nodos
unidos por enlaces llamados aristas o arcos, que permiten representar
relaciones binarias entre elementos de un conjunto.
HERENCIA, A través de ella los diseñadores pueden crear nuevas clases
partiendo de una clase o de una jerarquía de clases preexistente (ya
comprobadas y verificadas) evitando con ello el rediseño, la modificación y
verificación de la parte ya implementada.
IEEE, El Instituto de Ingeniería Eléctrica y Electrónica abreviado como IEEE,
inglés Institute of Electrical and Electronics Engineers es una asociación
mundial de técnicos e ingenieros dedicada a la estandarización y el desarrollo
en áreas técnicas.
JSP, es una tecnología que ayuda a los desarrolladores de software a crear
páginas web dinámicas basadas en HTML, XML, entre otros tipos de
documentos.
LEMATIZACION, es un proceso lingüístico que consiste en, dada una forma
flexionada (es decir, en plural, en femenino, conjugada, etc.), hallar el lema
correspondiente. El lema es la forma que por convenio se acepta como
representante de todas las formas flexionadas de una misma palabra. Es
decir, el lema de una palabra es la palabra que nos encontraríamos como
entrada en un diccionario tradicional: singular para sustantivos, masculino
singular para adjetivos, infinitivo para verbos. Por ejemplo, decir es el lema
64
de dije, pero también de diré o dijéramos; guapo es el lema de guapas; mesa
es el lema de mesas.
La lematización es una tarea propia de la Lingüística Computacional, y es
útil en la tecnología aplicada a buscadores, traductores automáticos,
extracción de información y demás herramientas vinculadas al
Procesamiento del Lenguaje Natural.
MODEL 2 (MODELO 2), es un complejo patrón de diseño utilizado en el
diseño de Java aplicaciones Web que separa la visualización de contenido
de la lógica utilizada para obtener y manipular el contenido.
N-GRAMA, es una subsecuencia de n elementos de una secuencia dada. El
estudio de los n − gramas es interesante en diversas áreas del conocimiento.
Por ejemplo, es usado en el estudio del lenguaje natural, en el estudio de las
secuencias de genes y en el estudio de las secuencias de aminoácidos.
Para ciertos valores de n los n − gramas tienen nombres especiales. Por
ejemplo:
Los 1-gramas también se llaman unigramas.
Los 2-gramas también se llaman bigramas o digramas.
Los 3-gramas también se llaman trigramas.
PLUG-IN, También conocido como complemento, es una aplicación que se
relaciona con otra para aportarle una función nueva y generalmente muy
específica.
POJOs, Clases planas comunes y corrientes de Java utilizada por
programadores para enfatizar el uso de clases simples y que no dependen
de un framework en especial.
POLIMORFISMO, Se refiere a la posibilidad de enviar un mensaje a un grupo
de objetos cuya naturaleza puede ser heterogénea.
RDBMS (Sistema de Gestión de Bases de Datos Relacionales), se basa en
el modelo relacional como inventado. Muchas bases de datos populares
actualmente en uso se basan en la base de datos relacional modelo.
SERVLET, es una clase en el lenguaje de programación Java, utilizada para
ampliar las capacidades de un servidor. Aunque los servlets pueden
65
responder a cualquier tipo de solicitudes, éstos son utilizados comúnmente
para extender las aplicaciones alojadas por servidores web,
SOBRECARGA DE MÉTODOS, es la creación de varios métodos con el
mismo nombre pero con diferentes firmas y definiciones.
UI, Interfaz de usuario es un conjunto de protocolos y técnicas para el
intercambio de información entre una aplicación computacional y el usuario.
UML, El Lenguaje de Modela miento Unificado es un lenguaje gráfico para
visualizar, especificar y documentar cada una de las partes que comprende
el desarrollo de software.
URL, es una cadena de caracteres con la cual se asigna una dirección única
a cada uno de los recursos de información disponibles en la Internet.
XML, es un lenguaje de marcas desarrollado por el World Wide Web
Consortium utilizado para almacenar datos en forma legible.
66
BIBLIOGRAFÍA
1. ÁLVAREZ, M. (21 de Enero de 2015). Desarrollo Web. Obtenido de
http://www.desarrolloweb.com/articulos/que-es-mvc.html
2. ANDREEVSKAI, A., & BERGLER, S. (2006b). Semantic tag extraction from wordnet glosses.
En In 5th Conference on Language Resources and Evaluation. Genova: IT.
3. ANDREEVSKAI, A., & BERGLER, S. (2007). In Proceedings of the 4th International
Workshop on Semantic Evaluations. Prague: Association for Computational Linguistics.
4. BELIAL DIAZ, E. J. (05 de Enero de 2015). Monografias. Obtenido de
http://www.monografias.com/trabajos84/redes-sociales/redes-sociales.shtml
5. CARBONELL, J. (14 de Enero de 2015). Centro Virtual Cervantes. Obtenido de
http://cvc.cervantes.es/obref/congresos/sevilla/tecnologias/ponenc_carbonell.htm
6. Definicion. (21 de Enero de 2015). Definicion. Obtenido de http://definicion.de/excel/
7. GARCIA, J. (21 de Enero de 2015). Ceit. Obtenido de
http://www1.ceit.es/Asignaturas/Informat2/Clases/Clases9899/Clase01/JavaEntorno/tsl
d003.htm
8. GIL, J. V. (06 de Enero de 2015). Dataprix. Obtenido de http://www.dataprix.com/blog-
it/big-data/big-data-gestion-datos-no-estructurados
9. HATZIVASSILOGLOU, V., & MCKEOWN, K. R. (1997). Predicting the semantic orientation
of adjectives. En In Proceedings of ACL-97, 35th Annual Meeting of the Association for
Computational Linguistics (págs. 174-181). Madrid: Association for Computational
Linguistics.
10. IEEE. (20 de Enero de 2015). Iso Architecture. Obtenido de http://www.iso-
architecture.org/ieee-1471/docs/all-about-ieee-1471.pdf
11. Informática, E. T. (13 de Enero de 2015). Departamento de Lenguajes y Sistemas
Informaticos. Obtenido de
http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf
12. JANSSEN, C. (06 de Enero de 2015). Techopedia. Obtenido de
http://www.techopedia.com/definition/27689/nosql-database
13. KAMPS, J. (2004). In Proceedings of LREC-04, 4th International Conference on. Lisbon.
14. KATZ, P., SINGLETON, M., & WICENTOWSKI, R. (2007). the semeval-2007 systems for task
5 and task 14. En In Proceedings of the 4th International Workshop on Semantic
67
Evaluations (SemEval-2007) (págs. 336-341). Prague: Association for Computational
Linguistics.
15. KIM, S., & HOVY, E. (2004). In Proceedings COLING-04,the Conference on Computational
Linguistics. Chicago: Geneva.
16. KRUCHTEN, P. (1996). Rational. Obtenido de
www.rational.com/media/whitepapers/xtalk.pdf
17. LERMA, E. V. (21 de Enero de 2015). Adictos al trabajo. Obtenido de
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=introduccionPrimefa
ces
18. Microsoft. (15 de Enero de 2015). Soporte Microsoft. Obtenido de
http://support.microsoft.com/kb/110093/es
19. Packtpub. (21 de Enero de 2015). packtpub. Obtenido de
https://www.packtpub.com/books/content/conozca-qlikview
20. SAHLGREN, M., KARLGREN, J., & ERIKSSON, G. (2007). Valence annotation based on
seeds in word space. En In Proceedings of the 4th International Workshop on Semantic
Evaluations (págs. 296-299). Prague,Czech Republic: Association for Computational
Linguistics.
21. SANCHEZ, A. (21 de Enero de 2015). Dataiq. Obtenido de
http://dataiq.com.ar/blog/qvsource-ignacio-albano/
22. Sinnexus. (11 de Enero de 2015). Sinnexus. Obtenido de
http://www.sinnexus.com/business_intelligence/
23. SUEIRAS, E. (05 de Enero de 2015). Scribd. Obtenido de
http://es.scribd.com/doc/24658747/Redes-sociales-definicion#scribd
24. Techterms. (12 de Enero de 2015). techterms. Obtenido de
http://techterms.com/definition/framework
25. Thesaurus. (2007). Roget’s New Millennium Thesaurus, volume 1.3.1. Lexico Publishing
Group,LLC, 1st edition. Obtenido de http://thesaurus.reference.com
26. TURNEY. (2002). In Proceedings of the 40th Annual Meeting on Association for
Computational Linguistics. 417-424.
27. WANTON, T. (16 de Noviembre de 2014). Academia.edu. Obtenido de
https://www.academia.edu/4254540/La_polaridad_de_las_opiniones
28. YANEZ, L. (21 de Enero de 2015). Fdi. Obtenido de
https://www.fdi.ucm.es/profesor/luis/fp/devtools/NetBeansUso.html
68
ANEXOS
69
APÉNDICE
1. ARQUITECTURA DEL SITIO WEB
En el siguiente grafico se muestra el funcionamiento del sitio web:
Ilustración 47: Arquitectura del Sitio Web. (Autoría Personal)
DETALLE DE CADA PAQUETE
Vista: La vista se conecta directamente con el paquete de controladores.
Controlador:
El controlador maneja la administración de la vista además de pedir los
servicios de DAO (Data Acces Object).
DAO (Data Access Object)
El paquete DAO (Data Transfer Object) presenta la operatividad del sitio
web.
DTO (Data Tranfer Object)
El paquete consta de POJO o clases simples de cada tabla relacionada.
70
2. DIAGRAMAS UML
2.1. PAQUETE CONEXIONES
Ilustración 48: Paquete Conexiones
El paquete conexiones contiene la siguiente clase:
2.1.1 Conexiones
2.1.1. CLASE CONEXIÓNES
La Clase Conexión presenta el método para crear la conexión ODBC con el archivo Excel. CÓDIGO FUENTE DE CLASE CONEXIÓN:
// CLASE DE CONEXIÓN CON ODBC
public class Conexion {
private static Connection conexion = null;
public static Connection getConexion(String base) { //Método Static que permite la conexión
ODBC y retorna un Objeto Connection
try {//BLOQUE TRY PARA LANZAR EXCEPCIÓN
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//Path para ODB
conexion = DriverManager.getConnection("jdbc:odbc:"+base);//Creación de Objeto
Connection con el respectivo String de Conexion
return conexion;
} catch (ClassNotFoundException ex) {// BLOQUE CATCH PARA CAPTURAR LA EXCEPCIÓN
System.out.println("No se encontró el Driver " + ex.getMessage());
} catch (SQLException sqle){// BLOQUE CATCH PARA CAPTURAR LA EXCEPCIÓN
System.out.println("Problemas con la base de datos" + sqle.getMessage());
}
return conexion;// OBJETO CONNECTION
}
}
Tabla 12: Diagrama UML de la Clase Conexión. (Autoría Personal)
71
2.2. PAQUETE CONTROLADORES
Ilustración 49: Paquete Controladores
El paquete controladores contiene las siguiente clases:
2.2.1 ArchivoBean
2.2.2 ComentarioBean
2.2.3 DiccionarioBean
2.2.4 DiccionarioTemaBean
2.2.5 EjecutarBean
2.2.1. CLASE ARCHIVO BEAN
La Clase ArchivoBean presenta métodos para procesar el comentario ingresado por el usuario final.
Tabla 13: Diagrama UML de la Clase ArchivoBean. (Autoría Personal)
72
//MÉTODO PARA PROCESAR EL COMENTARIO CON UN DICCIONARIO GENERAL DE PALABRAS //OPERACIÓN DE LECTURA Y ESCRITURA DE ARCHIVOS public String procesar() { //VARIABLES TIPO COLLECTION
ArrayList<String> aux = null; ArrayList<String> aux2 = null; ArrayList<String> aux3 = null; try{ archivoDao.Escribir("./prueba.txt", comentario);//MÉTODO ESCRIBIR EL ARCHIVO
aux = new ArrayList<String>();//INICIALIZACIÓN DE VARIABLE AUX
aux = archivoDao.Leer("./prueba.txt");//ASIGNACIÓN DE VARIABLE A TRAVÉS DEL MÉTODO DE
LECTURA
archivoDao.Escribir("./prueba2.txt", aux, ",", ",");// PROCESO DE SEPARAR STRING EN
PALABRAS CON CARACTERES ESPECIALES ,
mostraTextArear(aux, 1);//MÉTODO PARA MOSTRAR EL CONTENIDO DEL ARCHIVO DESPUÉS
DE SEPARAR POR , LAS PALABRAS
aux2 = new ArrayList<String>();// INICIALIZACIÓN DE VARIABLE AUX2
aux2 = archivoDao.Leer("./prueba2.txt");//ASIGNACIÓN DE VARIABLE A TRAVÉS DEL MÉTODO
DE LECTURA
archivoDao.Escribir("./prueba3.txt", aux2, ".", "\\.");//PROCESO DE SEPARA STRING EN PALABRAS
CON CARACTERES ESPECIALES
mostraTextArear(aux2, 2);//MÉTODO PARA MOSTRAR EL CONTENIDO DEL ARCHIVO DESPUÉS
DE SEPARAR POR . LAS PALABRAS
aux3 = new ArrayList<String>();//INICIALIZACIÓN DE VARIABLE AUX3 aux3 = archivoDao.Leer("./prueba3.txt");//ASIGNACIÓN DE VARIABLE A TRAVÉS DEL MÉTODO
DE LECTURA
mostraTextArear(aux3, 3);
//COMENTARIO VS DICCIONARIO PROCESO 1 (GENERAL)
resultado1=Ejecucion.procesar(aux3, listaDiccionario); resultado2=EjecucionTema.procesar(aux3, listaDiccionarioTema); }catch(Exception e){ System.out.println(e.getMessage()); } return "";
}
// MÉTODO PARA PROCESAR EL COMENTARIO public String procesarResultado() throws Exception { ArrayList<String> comentarioAux = new ArrayList<String>(); try {
ArrayList<Diccionario> listaDiccionario = new ArrayList<Diccionario>(diccDao.obPalabras()); Ejecucion.ArchivoProcesar(comentario);
comentarioAux=archivoDao.Leer("C:/Users/SHADOW/Documents/NetBeansProjects/TesisProyecto/ArchivosPrueba/prueba3.txt");
Ejecucion.procesar(comentarioAux, listaDiccionario); } catch (Exception e) { System.out.println("Mensaje error: " + e.getMessage());
} return ""; }
73
2.2.2. CLASE COMENTARIOBEAN
La clase Comentario Bean no presenta métodos para obtener los contenidos de la tabla maestra. public ArrayList<Comentario> getListadeComentario() {
listadeComentario = new ArrayList<Comentario>(comentarioDao.obComentarios());//MÉTODO
PARA ASIGNAR UNA LISTA A LA VARIABLE LISDE COMENTARIO
return listadeComentario;
}
public void setListadeComentario(ArrayList<Comentario> listadeComentario) {
this.listadeComentario = listadeComentario;
}
public ArrayList<Comentario> getListadeComentario2() {
listadeComentario2=new ArrayList<Comentario>(comentarioDao.obCom()); //MÉTODO PARA
ASIGNAR UNA LISTA A LA VARIABLE LISTADECOMENTARIO2
return listadeComentario2;
}
public void setListadeComentario2(ArrayList<Comentario> listadeComentario2) {
this.listadeComentario2 = listadeComentario2;
Tabla 14: Diagrama UML de la Clase ComentarioBean. (Autoría Personal)
74
2.2.3. CLASE DICCIONARIOBEAN
Tabla 15: Diagrama UML de la Clase DiccionarioBean. (Autoría Personal)
La clase DiccionarioBean nos presenta métodos para obtener las palabras del Diccionario General y también nos permite insertar palabras nuevas.
public String insertarDiccionario() throws Exception { Diccionario nueva = new Diccionario(); //CREACIÓN DE UN OBJETO NUEVA
nueva.setPalabra(palabra); // MODIFICACIÓN DE ATRIBUTO PALABRA
nueva.setDefinicion(definicion); //MODIFICACIÓN DE ATRIBUTO DEFINICIÓN
nueva.setPolaridad(polaridadGeneralSelecc); // MODIFICACIÓN DE ATRIBUTO POLARIDAD
diccioDao.insertarDiccionario(nueva); // MÉTODO PARA INSERTAR PALABRA A UN NUEVO
REGISTRO DE LA TABLA
//BORRADO DE VALORES
palabra=""; definicion=""; return ""; } public ArrayList<Diccionario> getListadeDiccionario() { listadeDiccionario = new ArrayList<Diccionario>(diccioDao.obPalabras()); return listadeDiccionario; }
75
2.2.4. CLASE DICCIONARIOTEMABEAN
La clase DiccionarioTemaBean nos presenta métodos para obtener las palabras del
Diccionario por Temas y también nos permite insertar palabras nuevas.
//MÉTODO PARA INSERTAR PALABRAS AL DICCIONARIO POR TEMA
public String insertarDiccionarioTema() throws Exception {
DiccionarioTema nueva = new DiccionarioTema(); //CREACIÓN DEL OBJETO NUEVA
nueva.setTema(Tema); // MODIFICACIÓN DEL ATRIBUTO TEMA
nueva.setDefincion(Defincion); // MODIFICACIÓN DEL ATRIBUTO DEFINICIÓN
nueva.setCodigo(CodigoSelect); // MODIFICACIÓN DEL ATRIBUTO CODIGOSELECT
dicciTemaDao.insertarDiccionarioTema(nueva); // MÉTODO PARA INSERTAR NUEVA PALABRA
EN EL DICCIONARIO
//BORRADO DE VALORES DE CADA VARIABLE EN EL SITIO WEB
Tema="";
Defincion="";
return "";
}
//MÉTODO PARA OBTENER UN LISTA DE PALABRAS DE DICCIONARIO POR TEMÁTICA
public ArrayList<DiccionarioTema> getListadeDiccionarioTema() {
listadeDiccionarioTema = new ArrayList<>(dicciTemaDao.obPalabrasTema());
return listadeDiccionarioTema;
}
Tabla 16: Diagrama UML de la Clase DiccionarioTemaBean. (Autoría Personal)
76
2.2.5. CLASE EJECUTARBEAN
Tabla 17: Diagrama UML de la Clase EjecutarBean. (Autoría Personal)
La clase EjecutarBean nos presenta el método para llamar a los programas necesarios para
el análisis de preferencias políticas.
//CLASE EJECUTARBEAN
//CLASE PARA ENLAZAR A LOS PROGRAMAS VINCULADOS EN EL ANÁLISIS DE PREFERENCIAS POLÍTICAS
public class EjecutarBean implements Serializable{
//CONSTRUCTOR DE LA CLASE EJECUTARBEAN
public EjecutarBean() {
}
public void EjecutarPro(int op) {
try {
switch (op) {
//QVSOURCE
case 1:
Runtime.getRuntime().exec("cmd /c start C:\\\"Demo Toyota.qvw");
break;
//QLIKVIEW
case 2:
Runtime.getRuntime().exec("cmd /c start C:\\\"Demo Toyota.qvw");
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
77
2.3. PAQUETE DAO
Ilustración 50: Paquete DAO
El paquete dao contiene las siguientes clases:
2.3.1 ArchivoDao
2.3.2 ComentarioDao
2.3.3 DiccionarioDao
2.3.4 DiccionarioTemaDao
2.3.1. CLASE ARCHIVODAO
Tabla 18: Diagrama UML de la Clase ArchivoDao. (Autoría Personal)
La clase ArchivoDao nos presenta métodos con las operaciones de lectura y escritura de archivos.
//MÉTODO PARA LEER EN ARCHIVO
public ArrayList<String> Leer(String path) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;
ArrayList<String> ar = new ArrayList<>();
try {
78
archivo = new File(path);
fr = new FileReader(archivo);
br = new BufferedReader(fr);
String linea;
while ((linea = br.readLine()) != null) {
ar.add(linea);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != fr) {
fr.close();
return ar;
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ar;
}
//MÉTODO PARA ESCRIBIR EN EL ARCHIVO
public void Escribir(String path, String mensaje) {
String arreglo[] = null;
arreglo = mensaje.split(" ");
FileWriter fichero = null;
PrintWriter pw = null;
// ESCRIBIR
try {
fichero = new FileWriter(path);
pw = new PrintWriter(fichero);
for (int i = 0; i < arreglo.length; i++) {
pw.println(arreglo[i]);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// Nuevamente aprovechamos el finally para
// asegurarnos que se cierra el fichero.
if (null != fichero) {
fichero.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
79
2.3.2. CLASE COMENTARIODAO
Tabla 19: Diagrama UML de la Clase ComentarioDao. (Autoría Personal)
La clase comentario nos presenta métodos para obtener los comentarios de la tabla maestro. //MÉTODO PARA OBTENER LOS COMENTARIOS DE LA TABLA
public ArrayList<Comentario> obComentarios() {
ArrayList<Comentario> listaComentario = new ArrayList<>();
Connection con = null;
Statement st = null;
ResultSet rs = null;
String consulta = "select top 300 * from [tabla$]";
try {
con = Conexion.getConexion("Comentarios");
st = con.createStatement();
rs = st.executeQuery(consulta);
String a, b, c, d, e;
while (rs.next()) {
a = rs.getString(1);
b = rs.getString(2);
c = rs.getString(8);
d = rs.getString(3);
e = rs.getString(4);
listaComentario.add(new Comentario(a, b, c, d, e));
}
con.close();
return listaComentario;
} catch (SQLException ex) {
System.out.println("mensajes " + ex.getMessage());
}
return listaComentario;
}
80
2.3.3. CLASE DICCIONARIODAO
Tabla 20: Diagrama UML de la Clase DiccionarioDao. (Autoría Personal)
La clase DiccionarioDao nos presenta métodos para obtener las palabras del Diccionario Genera, además de insertar nuevas palabras. //MÉTODO PARA OBTENER LAS PALABRAS DEL DICCIONARIO GENERAL public ArrayList<Diccionario> obPalabras() {
ArrayList<Diccionario> listaDiccionario = new ArrayList<>();
Connection con = null;
Statement st = null;
ResultSet rs = null;
String consulta = "select * from [General$]";
try {
con = Conexion.getConexion("Comentarios");
st = con.createStatement();
rs = st.executeQuery(consulta);
String a, b, c;
while (rs.next()) {
a = rs.getString(1);
b = rs.getString(2);
c = rs.getString(3);
listaDiccionario.add(new Diccionario(a,b,c));
}
con.close();
return listaDiccionario;
} catch (SQLException ex) {
System.out.println( "mensajes "+ex.getMessage());
}
return listaDiccionario;
}
81
//MÉTODO PARA INSERTAR PALABRAS EN DICCIONARIO GENERAL
public void insertarDiccionario(Diccionario dicc) throws Exception {
Connection conexion = null;
PreparedStatement ps = null;
String sql = "insert into [General$](Palabra,Definicion,Polaridad) values(?,?,?)";
try {
conexion = Conexion.getConexion("Comentarios");
ps = conexion.prepareStatement(sql);
ps.setString(1, dicc.getPalabra());
ps.setString(2, dicc.getDefinicion());
ps.setString(3, dicc.getPolaridad());
int valor = ps.executeUpdate();
if (valor > 0) {
}
conexion.commit();
} catch (SQLException sqe) {
System.out.println(sqe.getMessage());
} finally {
ps.close();
conexion.close();
}
}
82
2.3.4. CLASE DICCIONARIOTEMADAO
Tabla 21: Diagrama UML de la Clase DiccionarioTemaDao. (Autoría Personal)
La clase DiccionarioTemaDao nos presenta métodos para obtener las palabras del Diccionario por Temas, además de insertar nuevas palabras. //MÉTODO PARA OBTENER LAS PALABRAS DEL DICCIONARIO POR TEMAS
public ArrayList<DiccionarioTema> obPalabrasTema() {
ArrayList<DiccionarioTema> listaDiccionarioTema = new ArrayList<>();
Connection con = null;
Statement st = null;
ResultSet rs = null;
String consulta = "select a.paltema,a.Definicion,a.tema,b.descripcionTem from [Tema$] a
,[DesCod$] b where a.tema=b.tema";
try {
con = Conexion.getConexion("Comentarios");
st = con.createStatement();
rs = st.executeQuery(consulta);
String a, b, c,d;
while (rs.next()) {
a = rs.getString(1);
b = rs.getString(2);
c = rs.getString(3);
d = rs.getString(4);
listaDiccionarioTema.add(new DiccionarioTema(a,b,c,d));
}
con.close();
return listaDiccionarioTema;
} catch (SQLException ex) {
System.out.println( "mensajes "+ex.getMessage());
}
return listaDiccionarioTema;
}
83
2.4. PAQUETE DTO
Ilustración 51: Paquete DTO
El paquete dto contiene las siguientes clases:
2.4.1 Comentario
2.4.2 Diccionario
2.4.3 DiccionarioTema
2.4.1. CLASE COMENTARIO
Tabla 22: Diagrama UML de la Clase Comentario. (Autoría Personal)
La clase Comentario es una clase tipo POJO o un clase simple, que contiene atributos, métodos get, set y constructor.
84
2.4.2. CLASE DICCIONARIO
Tabla 23: Diagrama UML de la Clase Diccionario. (Autoría Personal)
La clase Diccionario es una clase tipo POJO o un clase simple, que contiene atributos, métodos get, set y constructor.
2.4.3. CLASE DICCIONARIOTEMA
Tabla 24: Diagrama UML de la Clase DiccionarioTema. (Autoría Personal)
La clase Diccionario Tema es una clase tipo POJO o un clase simple, que contiene atributos, métodos get, set y constructor.
85
2.5. PAQUETE PROCESAMIENTO
Ilustración 52: Paquete Procesamiento
El paquete procesamiento contiene las siguientes clases:
2.5.1 Ejecución
2.5.2 EjecucionTema
2.5.3 Objeto
2.5.1. CLASE EJECUCIÓN
Tabla 25: Diagrama UML de la Clase Ejecución. (Autoría Personal)
La clase Ejecución nos presente métodos para procesar el comentario y a su vez determinar su polaridad.
//MÉTODO PARA ACTUALIZAR LA TABLA MAESTRA DURANTE EN PROCESAMIENTO DE CADA COMENTARIO
public static void ActualizarTabla(ArrayList<String> comentario,ArrayList<Diccionario> diccionario,String num) throws Exception {
int contPositivo=0; int contNegativo=0; ComentarioDao comeDao= new ComentarioDao(); //RECORRIDO DE UN COMENTARIO for (int i = 0; i < comentario.size(); i++) {
for (int j = 0; j < diccionario.size(); j++) { if(comentario.get(i).equalsIgnoreCase(diccionario.get(j).getPalabra())){
switch(diccionario.get(j).getPolaridad()){ case "P": contPositivo=contPositivo+1;
86
break; case "N": contNegativo=contNegativo+1; break; } } } } //ASIGNACIÓN DE POLARIDAD DEL COMENTARIO if(contPositivo>contNegativo){
//positivo
comeDao.ActualizarTabla(num,"0",1);
}else{
if(contNegativo>contPositivo){
//negativo
comeDao.ActualizarTabla(num,"1",1);
}else{
//neutro
comeDao.ActualizarTabla(num,"2",1);
}
}
}
87
2.5.2. CLASE EJECUCIONTEMA
Tabla 26: Diagrama UML de la Clase EjecucionTema. (Autoría Personal)
La clase EjecucionTema nos presente métodos para procesar el comentario y a catalogar su temática.
public static void ActualizarTabla(ArrayList<String> comentario, ArrayList<DiccionarioTema> diccionario, String num) throws Exception { Objeto camb; Objeto[] auxArre = new Objeto[4]; //1 ---EDUCACIÓN //2 ---Información y Comunicación //3 ---Política, Derecho y Economía //4 ---Cultura auxArre[0] = new Objeto("1", 0); auxArre[1] = new Objeto("2", 0); auxArre[2] = new Objeto("3", 0); auxArre[3] = new Objeto("4", 0); ComentarioDao comeDao = new ComentarioDao(); //DE UN COMENTARIO EL RECORRIDO for (int i = 0; i < comentario.size(); i++) { for (int j = 0; j < diccionario.size(); j++) { if (comentario.get(i).equalsIgnoreCase(diccionario.get(j).getTema())) { switch (diccionario.get(j).getCodigo()) { case "1": auxArre[0].setVal(auxArre[0].getVal() + 1); break; case "2": auxArre[1].setVal(auxArre[1].getVal() + 1); break; case "3": auxArre[2].setVal(auxArre[2].getVal() + 1); break; case "4": auxArre[3].setVal(auxArre[3].getVal() + 1); break; } } } }
88
//MÉTODO BURBUJA
if (auxArre[0].getVal() == auxArre[1].getVal() && auxArre[0].getVal() ==
auxArre[2].getVal() && auxArre[0].getVal()== auxArre[3].getVal()) {
//TEMA GENERAL
comeDao.ActualizarTabla(num, "5", 2);
} else {
//TEMA ESPECÍFICO
for (int i = 1; i <= auxArre.length - 1; i++) {
for (int j = 0; j <= auxArre.length - i - 1; j++) {
if (auxArre[j].getVal() > auxArre[j + 1].getVal()) {
camb = new Objeto(auxArre[j].getCodigo(), auxArre[j].getVal());
auxArre[j] = auxArre[j + 1];
auxArre[j + 1] = camb;
}
}
}
comeDao.ActualizarTabla(num, auxArre[3].getCodigo(), 2);
}
}
89
2.5.3. CLASE OBJETO
Tabla 27: Diagrama UML de la Clase Objeto. (Autoría Personal)
La clase Objeto es una clase tipo POJO o un clase simple, que contiene atributos,
métodos get, set y constructor.
90
3. MANUAL PARA EL USO DEL SITIO WEB
GRAFICO DE NIVELES DE NAVEGACIÓN EN EL SITIO WEB
Ilustración 53: GRÁFICO DE NIVELES DE NAVEGACIÓN EN EL SITIO WEB. (Autoría Personal)
El sitio web está constituido por cuatro pestañas principales que son:
3.1 Inicio
3.2 Diccionario
3.3 Datos Cargados
3.4 Procesamiento
91
3.1. INICIO
Ilustración 54: Menú de Inicio. (Autoría Personal)
En la Pestaña de inicio el usuario puede visualizar las siguientes opciones:
3.1.1 Programas
3.1.2 Videos
3.1.2.1 Procesamiento (Comentario)
3.1.3 Salir
3.1.1. PROGRAMAS
En esta opción se nos presenta un ventana, con algunas opciones de programas, lo cuales fueron necesarios para el análisis de preferencias políticas para el presente proyecto.
Los botones ejecutar nos llevan a:
QVSOURCE.- programa que permitió la extracción de los tweets.
QLIKVIEW.- programa donde se realizó los reportes de Inteligencia de negocio (BI).
Ilustración 55: Pantalla de Programas. (Autoría Personal)
92
3.1.2. VIDEOS
En esta opción el usuario tendrá la posibilidad de ver un video. En el video se muestra el procesamiento del comentario dentro del archivo Excel.
Ilustración 56: Opción de Video. (Autoría Personal)
Ilustración 57: Captura del Video. (Autoría Personal)
3.1.3. SALIR En esta opción el usuario tendrá la posibilidad de cerrar la aplicación y dirigirse a
la página de Primefaces.
3.2. DICCIONARIO
En la Pestaña de Diccionario el usuario puede visualizar las siguientes opciones.
3.2.1 General.
Abrir.
3.2.2 Temas.
Abrir.
3.2.1. GENERAL
Ilustración 57: Opción de Diccionario General. (Autoría Personal)
93
En esta opción el usuario podrá visualizar el contenido del Diccionario General. Además de poder ingresar nuevas palabras.
Ilustración 58: Pantalla del Diccionario General. (Autoría Personal)
3.2.2. TEMAS
Ilustración 59: Opción de Diccionario por Temas. (Autoría Personal)
En esta opción el usuario podrá visualizar el contenido del Diccionario por Temas. Además de poder ingresar nuevas palabras.
Ilustración 60: Pantalla del Diccionario por Temas. (Autoría Personal)
94
3.3. DATOS CARGADOS
En la Pestaña de Datos Cargados el usuario puede visualizar las siguientes
opciones.
3.3.1 Comentarios.
Ver.
3.3.2 Pantalla de Comentarios.
Ilustración 61: Opción de Cometarios. (Autoría Personal)
En esta opción el usuario podrá visualizar la tabla maestra del análisis.
Ilustración 62: Pantalla de Comentarios. (Autoría Personal)
95
3.4. ARCHIVOS VS. BASE DE DATOS
En la Pestaña de Archivos vs Base de Datos el usuario puede visualizar las
siguientes opciones:
3.4.1 Archivos vs Base de Datos.
Ver.
Ilustración 63: Opción de Archivos vs Base de Datos. (Autoría Personal)
En esta opción el usuario puede ingresar un texto, para obtener el
procesamiento del mismo, en relación a una temática o de manera general.
Ilustración 64: Pantalla de Ingreso de Comentario. (Autoría Personal)
96
4. MANUAL DE USO DEL REPORTE
El reporte está constituido por nueve pestañas que son:
4.1. Introducción
4.2. Inicio
4.3. Valores
4.4. Gráficos
4.5. Modelo-Entidad-Relación
4.6. Comentarios
4.7. Diccionarios
4.8. Resumen
4.1. PESTAÑA DE INTRODUCCIÓN
En esta pestaña se puede visualizar el título del proyecto, acompañado de
imagen relacionadas con el tema.
4.2. PÁGINA INICIO
Ilustración 66: Pestaña Inicio Reporte. (Autoría Personal)
Ilustración 65: Pestaña Introducción Reporte. (Autoría Personal)
97
En esta pestaña se puede visualizar un mapa del Ecuador indicando las
provincias a ser estudiadas, además de otras opciones de filtrado que son:
Selecciones Múltiples
Localización
Tema
Polaridad
Localización (Provincias)
4.3. PÁGINA VALORES
Ilustración 67: Pestaña Valores. (Autoría Personal)
En esta pestaña se puede visualizar un gráfico de barras que representa el
número de comentarios en cierta temática, con respecto a su localización, además
de otras opciones de filtrado que son:
Selecciones Múltiples
Localización
Tema
Polaridad
Localización
Temática
98
4.4. PÁGINA GRÁFICOS
Ilustración 68: Pestaña Gráficos. (Autoría Personal)
En esta pestaña se puede visualizar gráficos de polaridad general, sentimientos,
radar, tema vs polaridad general y el número de comentarios para un determinado
tema, además de otras opciones de filtrado que son:
Selecciones Múltiples
Tema Polaridad
Tema
Localización
4.5. PÁGINA MODELO - ENTIDAD - RELACIÓN
Ilustración 69: Pestaña Modelo-Entidad-Relación. (Autoría Personal)
En esta pestaña se puede visualizar modelo entidad relación, que está
constituido por cada pestaña.
99
Descripción de Entidades
Tabla.- esta entidad contiene los comentarios extraídos de Twitter, además de
ser la tabla maestra de todas las pestañas.
Localización.- esta entidad contiene códigos de cada provincia, con su nombre,
coordenadas geográficas (latitud y longitud).
Descod.- esta entidad contiene los códigos de cada temática hacer analizada:
Educación
Información y Comunicación
Política, Derecho y Economía
Cultura
General
PolGeneral.- esta entidad contiene los datos, correspondientes a la descripción de cada polaridad:
Positivo
Negativo
Neutro
General.- esta entidad contiene los datos correspondientes al diccionario de
manera general.
Tema.- esta entidad contiene los datos, correspondientes al diccionario por
temática.
PÁGINA MAPA GEO LOCALIZACIÓN
Ilustración 70: Pestaña Mapa Geo localización. (Autoría Personal)
En esta pestaña se puede visualizar mapa geo localización correspondiente al
Ecuador.
100
4.6. PÁGINA COMENTARIOS
Ilustración 71: Pestaña Comentarios. (Autoría Personal)
En esta pestaña se puede visualizar los comentarios generados por usuarios
vinculados a Twitter, además de otras opciones de filtrado que son:
Polaridad
Tema
Localización
4.7. PÁGINA DICCIONARIOS
Ilustración 72: Pestaña Diccionarios. (Autoría Personal)
En esta pestaña se puede visualizar el contenido de los diccionarios (General
y Temática especifica), además de otras opciones de filtrado que son:
Polaridad General
Tema
101
4.8. PÁGINA RESUMEN
Ilustración 73: Pestaña Resumen. (Autoría Personal)
En esta pestaña se puede visualizar gráficas y tablas, que fueron
presentadas en anteriores pestañas.